스파르타코딩클럽 로고
로그인
전체 강의
부트캠프
국비
커뮤니티
블로그
이벤트
수강생 작품
고객센터
기업 서비스
둘러보기
인텔리픽
신입 개발자 채용 공고를 한 곳에서
로그아웃
1721984867413-Frame%201000007927%20%281%29.png
코딩 가이드

문과생을 위한 IT 용어 강의② 코딩? 서버? 그게 뭔가요?

조회수 64·6분 분량
2024. 7. 25.
🔍 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 용어 해설' 강의를 통해 IT 업계와의 소통 방법과 코딩의 기초 개념을 살펴보았습니다. IT 지식이 점점 더 중요해지는 시대, 우리는 누구나 IT와 가까워질 수 있습니다. 어렵게만 느껴졌던 코딩도 실제로 마주해보면 그리 어렵지 않다는 사실을 알게 되었죠.

이 강의는 IT 지식을 통해 직장에서의 커뮤니케이션을 원활하게 하고, 나아가 업무 효율성을 높이는 데 큰 도움이 될 것이예요.


앞으로 이어질 강의 시리즈에서는 더욱 다양한 IT 지식과 실무에서 유용하게 활용할 수 있는 정보들을 다룰 예정입니다.

스파르타코딩클럽을 방문한 수많은 사람들이 가장 궁금해했던 질문들을 중심으로, IT 기초 상식부터 고급 지식까지 폭넓게 제공할 것이니 많은 기대 부탁드려요!



누구나 큰일 낼 수 있어

스파르타코딩클럽

강의 | 이범규 스파르타코딩클럽 대표

에디팅 | 신수지 팀스파르타 에디터

- 해당 콘텐츠는 저작권법에 의해 보호받는 저작물로 스파르타코딩클럽에 저작권이 있습니다.
- 해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.
내용이 유익하셨다면? 공유하기
copyclip-blog-sharekakao-blog-sharefacebook-blog-share
다른 분들이 많이 읽은 글
코딩 가이드
문과생을 위한 IT 용어 강의① 나도 코딩을 알아야 할까?
조회87·5분 분량
문과생을 위한 IT 용어 강의① 나도 코딩을 알아야 할까?
코딩 가이드
왕초보도 쉽게 배울 수 있는 코딩 입문 강의 4
조회119·6분 분량
왕초보도 쉽게 배울 수 있는 코딩 입문 강의 4
copyclip-blog-share