brunch

You can make anything
by writing

C.S.Lewis

by 김초희 Sep 12. 2020

마케터인데 개발까지 알아야 해요?

IT업계에서 살아남으려는 비전공자라면 이 책을 읽으세요

난생처음 개발자와 이야기했을 때가 기억이 난다. 우리가 분명 한국어로 얘기를 하고 있는데 하나도 이해가 안 갔다. 외계어는 아닌데 당최 하나도 이해할 수 없는 말이었다. 그때는 마냥 어린 마음에 왜 이렇게 알아듣기 어렵게 말해주지? 하고 속으로 투덜거렸다. 그러다가 나도 개발을 이해해보겠어!라고 큰 마음을 먹으면(?) 어디서부터 배워야 하는지 감도 잘 안 오는 거다. 누구는 자바를 배워라, 누구는 파이썬을 배워라 하는데 그게 뭔지 알아야 배우지... 어디에 어떻게 써먹는지도 모르는데 배우기엔 너무 막막해서 뒤로 미뤘던 게 '개발에 대한 이해'였다.


하지만 좋은 프로젝트를 만들기 위해선 마케팅/기획만 하고 끝! 이 아니라 디자인, 개발, CS, 데이터까지 아우르고 결과를 만들어갈 줄 알아야 한다는 게 학계의 정설. (아마 연차가 쌓일수록 점점 체감할 것이다) 여기서 중요한 게 "커뮤니케이션"인데 이 커뮤니케이션을 잘하려면 협업하는 사람의 업무를 이해하고, 제대로 정확히 잘 요청해서, 내가 원하는 결과물을 받는 잘 받을 줄 알아야 한다. 모르겠다고 찡찡되면 결국 내 야근 시간만 늘어난다.


생각해보면 내가 디자인을 알고, 할 줄 알게 되었을 때부터 디자이너와의 협업이 미친 듯이 수월해졌다. 나는 디자이너처럼 고퀄의 비주얼을 만들 수 있는 능력은 없지만, 디자이너가 쓰는 용어를 이해하고 디자이너가 쓰는 툴을 간단한 기능 정도 쓸 줄 알며 디자이너가 어떻게 디자인을 해야 할지 디자인 기획도 제안할 수 있다. 영상도 마찬가지였다. 야매로 여차저차 프리미어를 배워서 영상이 어떻게 만들어지는지, 어떤 기술이 필요한지 알게 되니까 영상 제작자와 커뮤니케이션하기가 수월해지더라.


개발도 그렇다. 내가 직접 개발을 할 필요는 없지만 개발자와 제대로 된 커뮤니케이션을 하려면, 그래서 내가 원하는 것을 잘 요청하고 잘 받을 수 있으려면 개발에 대한 이해가 필요하다. 그러던 찰나에! 지난주 교보문고에서 정말 내게 딱! 필요한 책이 베스트셀러 매대에 있더라. <비전공자를 위한 이해할 수 있는 IT 지식>이다. 당장 샀고 당장 읽었다. 나 같은 마케터분들이 꽤 있을 거라는 생각에 책 내용을 간단하게 요약해본다.




2장. 파이썬, C언어, 자바, 이게 뭐야 다 배워야 해?

개발자는 프로그래밍 언어로 명령어를 적으면 (= 프로그래밍/ 코딩하면), 컴파일러는 그 명령어를 0과 1로 바꿔서 컴퓨터에게 전달해준다.

프로그래밍 언어는 C언어, 자바, 파이썬 등등 다양하다. 차이는 인간 친화적인 언어(고수준)냐, 컴퓨터 친화적(저수준)인 언어냐의 차이이다.

인간 친화적인 언어는 쉽게 작성할 수 있고 유지보수도 쉬운 만큼 고사양의 컴퓨터가 요구된다. 컴퓨터 친화적인 언어는 하나하나 꼼꼼히 다 적어줘야 하기 때문에 저사양의 컴퓨터로도 소화 가능하다.

운영 체제는 하드웨어를 관리해준다. 용량이 얼마나 있는지 확인해주고, 프로그램을 설치해주고, 실행해주고 등등...

운영 체제는 대표적으로 4개가 있다. PC에서 쓰이는 (1)윈도우 (2)맥 OS. 모바일에서  쓰이는 (3)IOS (4)안드로이드.  

"microsoft"에서 만든 "윈도우" 운영체제 위에 돌아가는 프로그램을 만들려면 C#, JavaScript, C++ 언어로.

"애플"에서 만든 "맥 OS, IOS" 운영체제 위에 돌아가는 프로그램을 만들려면 Objective-C, Swift 언어로.

"구글"에서 만든 "안드로이드" 운영체제 위에 돌아가는 프로그램을 만들려면 JAVA, Kotiln 언어로.

즉, 운영체제 회사들은 특정 프로그래밍 언어를 지정한다.  

결론 : 언어마다 수준이 다르고, 운영체제마다 지정한 언어가 다르기 때문에 필요에 따라 배우면 된다.


3장. 컴퓨터는 서로 끊임없이 무언갈 주고받는다

내가 카카오톡으로 사진 한 장을 친구에게 전송한다고 하면, 내 핸드폰은 카카오톡 컴퓨터에게 사진을 보낸다. 친구의 핸드폰은 카카오톡 컴퓨터에게 사진을 달라고 한다. 카카오톡 컴퓨터는 친구의 핸드폰으로 사진을 준다.

달라고 하는 컴퓨터 = 요청하는 컴퓨터 = 프런트엔드 = 프런트 = 클라이언트 = 클라

주는 컴퓨터 = 요청을 받는 컴퓨터 = 백엔드 = 백 = 서버

우리가 잘 몰랐던 운영체제 하나 더! "리눅스". 리눅스 운영체제 위에 서버 프로그램을 돌린다. 리눅스는 심지어 무료!

윈도우에도 윈도 98, 윈도 7, 윈도 8 등등 다양한 버전이 있듯이 리눅스에도 다양한 버전이 있는데 그중 유명한 버전은 "우분투"다.

윈도우와 맥 OS가 리눅스에 비해 비싼 이유는 휴지통, 폴더처럼 직관적이고 쉽게 작동시킬 수 있는 "그래픽 UI"가 있기 때문이다. 서버 프로그램은 그래픽 UI는 딱히 필요하지 않고 안정적으로 잘만 돌아가면 되기 때문에 그래픽 UI가 없고 그래서 싸다.


4장. 그놈의 API

클라이언트 컴퓨터가 여러 가지 요청을 보내는데 서버 컴퓨터가 이 요청들을 이해하려면 요청을 구분할 수 있도록 체계가 필요하다.

클라이언트, 서브와 같이 서로 다른 프로그램에서 요청과 응답을 주고받을 수 있게 만든 체계 = API

예를 들면 로그인 요청이면 서버주소/A로 보내. 그럼 로그인을 처리해줄게. 비디오 파일을 받고 싶으면 서버주소/B로 보내. 그럼 파일을 보내줄게.

서버 개발자가 API를 만들면 클라이언트 개발자는 그 API를 사용한다

API를 클라이언트 컴퓨터 관점에서 생각해보자.

요청의 종류는 크게 4가지. Create, Read, Update, Delete 가 있다.

CRUD는 각각의 주소를 가지는데  주소가 많아지면 관리하기 힘들어지고, API에 문제가 생기기 쉽고, 그러다 보면 버그가 발생하기 쉽다.

그래서 하나의 주소로 만들되, CRUD를 구분할 수 있는 스티커를 붙여서 보낸다. Create > POST,  Read > Get, Update > PUT(전체), PATCH(일부), Deate > DELETE.

API를 서버 컴퓨터 관점에서 생각해보자.

서버 컴퓨터는 클라이언트 컴퓨터의 요청에 응답을 한다. 이때 응답의 표현을 100, 200, 300, 400... 숫자로 한다.

많이 쓰이는 응답은 200번대 (성공) 400번대 (요청에 오류가 있음) 500번대 (서버에 오류가 있음)이다. 대충 이 3가지만 알아도 된다.


API 개념을 조금 확대해보면,

API를 제공해주는 다른 소프트웨어 = SDK

내가 만약 카카오톡을 개발하는데 구글 지도 SDK를 사용하면 이  SDK에서 제공하는 API를 통해 카카오톡에 구글 지도 기능을 넣을 수 있다!


요청과 응답을 주고받을 때 공통된 형식을 쓰는데 그중 가장 유명한 형식은 JSON이다.

GitBook은 API 문서 작성을 도와주는 서비스다.

API 문서를 읽고 이해할 수 있으면 어느 정도 진행이 되었는지 스스로 파악할 수 있다.



1장은 오리엔테이션 부분이라 저자가 개발을 어떻게 배우게 되었는지, 이 책에서는 어떤 내용을 다루게 될 것인지를 소개하고 있다. 나 같은 경우엔 책을 한 번 겉핥기로 쓰윽 읽어보고 두 번째 찬찬히 읽으니 하나씩 퍼즐이 맞춰지듯 이해가 가기 시작했다. 특히 4장의 API 개념을 이해하는 게 어려웠고 책에서 알려준 대로 하나씩 API 문서를 읽어보니 읽는 대로 이해가 가는 게 또 신기했다!


분명 많이 쓰는 용어이지만 정확히 무슨 뜻인지 어떤 개념인지 모르는 체 어렴풋이 알고 사용하는 나 같은 분들이 많을 거라 생각한다. 그런 분들께 이 책을 진짜 진짜 추천한다! 책에서는 이 개념들을 아주 친절하게, 쉬운 사례로, 쉬운 비유로 아주 친절하게 설명해준다. 나머지 5,6,7,8,9장 요약은 다음 글에서 정리해보겠다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari