회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
IT 지식이 무엇보다 중요해진 요즘, 여러분은 어떻게 공부하고 있나요? 가장 먼저 눈길이 가는 건 다양한 IT 강의 영상일 겁니다. 강의를 제공하는 교육 기업들과 함께, 요즘IT에서 ‘IT 강의 시리즈’를 준비했습니다. 엄선한 교육 영상을 텍스트로 읽고 필요한 정보를 빠르게 가져가세요.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
IT 지식이 무엇보다 중요해진 요즘, 여러분은 어떻게 공부하고 있나요? 가장 먼저 눈길이 가는 건 다양한 IT 강의 영상일 겁니다. 강의를 제공하는 교육 기업들과 함께, 요즘IT에서 ‘IT 강의 시리즈’를 준비했습니다. 엄선한 교육 영상을 텍스트로 읽고 필요한 정보를 빠르게 가져가세요.
첫 강의는 ‘문과생을 위한 IT 용어 해설’입니다. IT 교육 기업 스파르타코딩클럽의 대표, 이범규 님이 강의를 진행합니다. 쉽고 재미있는 설명으로 IT 기업에서 개발자와 효과적으로 소통하는 방법을 다루죠. 전체 영상은 스파르타코딩클럽에서 확인할 수 있습니다.
문과생을 위한 IT 용어 강의 ① 나도 코딩을 알아야 할까?
문과생을 위한 IT 용어 강의 ② 코딩? 서버?
앞서 강의 ‘나도 코딩을 알아야 할까?’에서는 왜 코딩을 알아야 하는지를 다뤄 봤습니다. 이번 강의는 기초 지식입니다. “코딩과 프로그래밍이란 무엇인가?”, “서버란 또 무엇인가?” 이를 알아보겠습니다.
자, 컴퓨터에 일을 시키려고 합니다. 여러분은 어떻게 일을 시키고 있나요? 마우스와 키보드로 하죠. 그런데 실제로 마우스와 키보드로 일을 시키면 컴퓨터는 이렇게 받아들입니다.
“CPU(뇌)를 돌려서 이걸 계산하고, 이 숫자는 잠깐 기억하고 있고. 그때 내가 적어뒀던 것 다시 꺼내오고, 뜨겁니? Fan 좀 돌려봐.”
컴퓨터는 기계니까요. CPU, 계산, 기억… 벌써 머리 아프죠?
쉽게 가 볼게요. 컴퓨터 사 본 적 있으신가요? 그럼 램, 하드 디스크, SSD, 이런 용어를 들어 보셨을 거예요. 컴퓨터는 이런 부품을 잘 활용해 우리가 수행하라고 한 일을 합니다. 이런 컴퓨터에 마우스와 키보드로만 명령을 내릴 수 있을까요? 아니겠죠.
사실 마우스와 키보드는 사람의 인터페이스로 쉽게 명령을 내리기 위한 도구예요. 옛날에는 DOS 컴퓨터라는 것을 썼는데요, 마우스 없이 키보드만 있는 컴퓨터였어요. 마우스가 있어야 훨씬 편하겠죠? 그래서 마우스로도 명령 내릴 수 있는 윈도우라는 시스템이 확 떴고요.
사실 컴퓨터는 명령을 받을 수 있는 루트가 아주 많아요. 그런데 이처럼 컴퓨터에 명령을 내리려면 어떻게 해야 할까요? 이제 설명할 지점이 우리가 ‘코딩은 어렵다’라고 생각하게 만드는 부분일 겁니다.
예시로 알아볼게요. 컴퓨터에 샌드위치를 만들어 보라고 시킬 거에요. 물론 컴퓨터는 샌드위치를 만들 수 없죠. 컴퓨터가 다시 로봇한테 샌드위치를 주문한다고 할게요.
만약 사람한테 샌드위치를 만들어 달라고 했다면, 알아서 빵을 고르고 좋은 계란을 고르고 여러 가지를 하겠죠. 로봇은 그렇지 않습니다. 시키는 사람이 할 일이 많아요.
빵은 몇 cm로 잘라야 할지, 빵은 호밀 빵으로 해야할 지, 반쪽 면만 구울지 아니면 다 구울지, 토스트 기계는 어떤 토스트 기계를 쓸 것이며, 계란은 완숙인지 반숙인지, 노른자를 터트려야 할지 말지….
이를 우리가 하나하나 다 지정해 줘야 합니다. 여기에 먼저 빵을 고른 다음, 토스트에 넣고, 동시에 계란을 굽는다, 이 과정이 끝나면 계란이 식지 않게 합친다. 이런 업무 프로세스까지 우리가 다 짜야 해요.
정말 불편하죠? 내가 편하려고 쓰는 컴퓨터인데, 이런 것까지 다 짜서 주면 오히려 불편한 거 아닐까요? 그런데요, 이렇게 우리가 컴퓨터와 소통하는 방식은 익숙해지면 사실 그리 어렵지 않습니다. 이러한 사고방식을 컴퓨팅 사고라고 합니다. 컴퓨터처럼 생각하기, 이렇게 말하기도 하죠. 아마 자녀가 있는 분들은 특히 컴퓨팅 사고란 단어를 많이 들었을 거예요.
이렇게 모든 과정을 쪼갠 다음, 프로세스 단위로 생각하는 방식. 생각보다 어렵지 않습니다. 이처럼 차근차근 명령을 내리면, 컴퓨터가 그대로 무언가를 수행할 겁니다. 또한 이 명령을 하나하나 코드로 써 놓는 작업, 이를 코딩이라고 합니다.
여러분도 프로그래밍 언어라는 단어를 들어보셨나요? C 언어, 또 파이썬(Python). 들어보셨겠죠. 자바(Java), 자바스크립트(JavaScript), 루비(Ruby), PHP, 이런 언어도 있고요. 앞서 말한 명령을 내릴 때 쓰는 언어, 이를 프로그래밍 언어라고 합니다.
컴퓨터가 사람이라고 생각해 보세요. 우리는 이런 명령을 한국 말로도, 중국 말로도, 미국 말로도, 일본 말로도 할 수 있어요. 다 다르죠. 결국 어떤 말을 쓰는지가 중요한 것이 아니라, 어떤 말로 무슨 의미를 전달하는지가 더 중요한 거죠.
언어에는 장단점이 있습니다. 예를 들어 우리말에는 ‘누르스름하다, 샛노랗다, 노랗다’ 이런 다양한 표현이 있죠. 영어에는 무슨 표현이 있죠? ‘Yellow’ 말고 기억에 남는 것이 잘 없네요. 이처럼 언어에는 더 잘 표현할 수 있는 영역, 특징이 있습니다. 분명 영어가 조금 더 풍부하게 표현할 수 있는 영역도 있을 테고요.
그러니 언어는 특징이 다를 뿐입니다. 결국 무슨 의미를 전달하는 지가 중요하다고 말한 이유죠.
다시 한번 더 돌아가 볼게요. 아까 작업할 때처럼 복잡한 과정을 어떻게 매번 할까요? 그러나 사실 하다보면 이는 그렇게 복잡하지 않습니다. 오히려 한 번만 공들여 짜두면 클릭 한 번 할 때마다 그대로 똑같이 실행해 주죠. 얼마나 좋은가요?
특히 개발자라는 사람들은 반복 업무를 아주 싫어합니다. 두 번, 세 번만 반복해도 벌써 코드를 짜기 시작해요. 네 번째 시키면 그냥 코드 돌려야지, 이런 분들이죠.
이처럼 미리 짜둔 코드로 매번 똑같이 움직이는 것을 프로그램이라고 부릅니다. 우리가 일상에서 자주 접하는 단어죠. 프로그래밍이라는 용어도 ‘프로그램을 만드는 과정’이라고 볼 수 있고요. 운동 프로그램, 이런 단어도 들어보셨을 텐데요. 이는 해야 할 운동을 순서대로 하는 것을 말합니다.
이처럼 프로그래밍이라는 것은 정해진 일을 순서대로 써 놓는 일, 그런 행위입니다.
정리해 보겠습니다. 코딩은, 프로그래밍 언어를 활용해 프로그램을 만드는 일입니다. 그렇다면, 코딩과 프로그래밍은 다를까요? 아니요, 코딩이나 프로그래밍, 똑같습니다. 이 작업으로 핸드폰 앱도 만들고 게임도 만들고 웹 사이트도 만들고 다 할 수 있는 거죠.
다음으로 알아볼 IT 기초 지식, 서버입니다.
서버가 터진다? 이런 이야기 들어보셨죠. 어떻게, 서버라는 것이 뻥 터지는 걸까요? 뻥 터진다. 물리적으로 그런 건 아닐 것 같은데 말이죠. 같이 한 번 볼게요.
이런 페이지 많이 보셨나요? 특히 공연 티켓 같은 것을 끊을 때 많이 뜨는 화면이죠.
서버라는 건 여러분이 어떠한 응답을 요청하면 그에 대한 답을 주는 역할을 합니다. 누가 이 역할을 할까요? 컴퓨터입니다. 우리가 평소에 보는 컴퓨터하고 다른 컴퓨터가 아닙니다. 서버라고 하는 건 그저 역할이에요.
조금 헷갈릴 수 있습니다. 잘 보세요. 사람이 컴퓨터라고 해 볼게요. 이들은 직업을 가지고는 합니다. 그런데 한 사람의 직업이 두 개일 수 있습니다. 예를 들어 낮에는 요리하는 요리사, 저녁에는 무언가 가르치는 선생님이 될 수 있죠. 이 사람이 주말에는 프리랜서로 개발도 한다고 합시다. 직업이 세 개, 네 개, 다섯 개까지 늘어날 수 있는 거죠.
컴퓨터도 똑같습니다. 마치 사람의 직업처럼, 역할이 두 개, 세 개, 그 이상이 될 수 있어요. 서버는 역할입니다. 여러분이 듣게 될 데이터베이스(DB), 이것도 역할입니다. 우리가 듣는 모든 것들이 다 역할입니다. 물체는 컴퓨터 하나고요. 그래서 컴퓨터는 서버이면서 DB이며 또 다른 것이 되기도 하죠. 이를 잘 분리해야 합니다.
아직도 “서버란 특별한 거야”라고 생각하시나요? 왜 그럴까요? 이런 사진을 많이 봐서 그렇습니다.
보면 사실 이는 컴퓨터 본체에서 껍데기, 그러니까 커버를 떼고 가로로 눕혀 꽂은 것에 불과합니다. 컴퓨터를 사람이 쓰지 않고, 응답만 해주면 되니까 모니터와 키보드가 필요 없죠. 그러니 이를 연결할 껍데기도 필요하지 않은 겁니다. 그래서 꼭 필요한 부분만 모아 다 꽂아두었습니다.
그런데 사진만 보면 “와, 무언가 엄청난 건가 보다. 서버는 이렇게 다른 거구나. 데이터베이스는 또 어떻게 생겼을까?” 이런 오해를 하죠. 아닙니다. 모두 그저 컴퓨터이며, 그 컴퓨터에 어떠한 역할을 우리가 부여한 겁니다.
여러분이 파워포인트를 켠다고 해 볼게요. ‘따닥’ 클릭하죠. 데이터베이스는 어떻게 켤까요? 똑같습니다. ‘따닥’ 누르면 켜집니다. 데이터베이스라고 하는 프로그램을 돌려놓으면 이제 그 역할을 해주는 거죠. 서버도 ‘따닥’하고 켭니다. 그러면 곧 서버 역할을 해 줍니다. 신기하죠.
이러한 서버는 IT 업무를 하다 보면 많이 등장할 겁니다. 왜 그럴까요? 서버는 요청을 받은 다음, 다시 요청을 보내는 일을 하기 때문입니다.
예를 들면 이런 거죠. 사용자의 화면(클라이언트)에서 “주문해 줘”하면 주문을 안에서 잘 처리하고 다시 “응, 잘했어”라고 알려 줍니다. 그럼 다시 페이지가 넘어가며 “주문이 완료되었습니다” 이렇게 뜨게 됩니다.
이것이 핵심입니다. (클라이언트에서) 요청을 하면, (서버가) 준다.
서버 쪽 이미지에 나온 API(Application Programming Interface)라는 단어, 들어본 분이 많을 텐데요. 회사 생활을 하다 보면 많이 듣는 단어 중 하나입니다. 이는 서버와 통하는 통로라고 생각하면 됩니다. 은행의 창구와 비슷하죠. 우리가 은행에 가서 곧바로 “지점장 어디 있어?” 말하지 않잖아요. 우선 창구에서 정해진 약속에 따라 얘기하죠. API는 그런 역할을 한다, 이렇게 생각할 수 있습니다.
자, 그런데 이런 요청이 엄청 많아졌다고 합시다. 그럼 어떻게 할까요? 터집니다. 말 그대로 뻥 터질까요? 아닙니다.
서버는 가운데에서 데이터를 저장하고 주는 역할을 합니다. 그러다 보니 역할이 지나치게 많이 오면 터져버리는 겁니다.
서버가 뭐라고 했나요? 컴퓨터라고 했죠. 여러분도 컴퓨터가 파란 화면 띄우며 갑자기 꺼지는 경험을 한 적이 있을 겁니다. 그럼 언제 그랬나요? 무언가를 많이 켰을 때죠. 포토샵도 켜고, 일러스트레이터도 켜고, 파워포인트도 켜고, 그 와중에 게임도 돌리고, 영화도 보고요. 이러면 컴퓨터가 어떻게 될까요? 갑자기 먹통이 되면서 꺼집니다.
똑같습니다. 요청이 많아지면 파란 화면이 나오면서 컴퓨터가 꺼지는 거예요. 이를 우리는 서버가 터졌다고 합니다. 표현이 “터졌다”일 뿐이에요. 요청을 처리하다 한계를 넘겨 꺼지는 거죠.
실제로 서버가 터지면 개발자들이 무슨 일을 하는지 아시나요? 서버에 가서 다시 켭니다. 우리 컴퓨터가 꺼지면 잠시 쉬었다가 다시 켜는 것하고 똑같아요. 그러니 서버가 터지면 이제 카톡 전송이라든가 이런 일이 어려워지는 거죠. 가운데에서 요청을 받고 돌려주는 역할을 하는 서버가 없으니 안 되는 겁니다.
오늘은 IT 기초 중의 기초, 코딩과 서버의 개념을 알아보았습니다. 정리해 볼까요? 컴퓨터에 무언가를 시키기 위해 정해진 일은 순서대로 써 놓는 일. 이를 코딩, 다른 말로 프로그래밍이라고 합니다. 또 컴퓨터는 각각 다른 역할을 맡기도 하는데요. 대표적으로 요청을 주고받는 서버란 것이 있죠.
다음 강의에서는 좀 더 나아가 개발자와 소통하기 위해 알아야 할 것들을 살펴보겠습니다.
원본 강의 보러가기 https://bit.ly/4b2nKLl *스파르타코딩클럽에서 무료로 신청할 수 있는 강의입니다.
[스파르타코딩클럽 강의 할인 이벤트] 요즘IT 독자를 위한 혜택을 준비했어요. |
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.