티스토리 뷰

출처: yes24

 

누구를 위한 책인가

- 개발자와 대화가 통하고 싶은 기획자 또는 일반인
- IT 업무가 어떤 식으로 돌아가는지 전체 그림을 알고 싶은 초보 개발자
- 우물에서 벗어나 외연확장을 하고 싶은 개발자


특징

- '기획자에게 필요한 것은 언어공부가 아니다'라는 명확한 주제의식
- 프로그래밍 언어, 운영체제, 네트워크, API, 앱, 웹, DB 등 중요한 주제를 총망라
- 어려운 개념을 최대한 배제하고 비유를 이용하여 쉽게 설명


장점

- 짧은 분량: 부담 없이, 쉽게, 골치 안 아프게 읽을 수 있음
- 자연스러운 흐름: 1장에서 일부러 매우 개발자스러운 문장을 소개하고, 그 문장을 이해하기 위한 주제를 하나씩 소개함
- 성취감: 책을 다 읽고 나서 상기한 개발자 문장을 다시 읽으면 마법처럼 이해가 되는 짜릿함 선사


단점

- 짧은 분량: 다 읽고 나면 "...그래서 무슨 말이지?" 싶을 수 있음
- 이미 아는 사람은 아니까 쉽지만, 정말 모르는 사람은 여전히 어려울 수 있는 책
- 책이나 인터넷으로 추가자료를 찾아가며 공부해야 할 수 있음


그래서 추천하는가

- 기획을 하고 싶은데 전문용어 때문에 소통에 어려움을 겪고 있다면 추천
- IT 분야 업무(특히 웹 관련)의 흐름을 전반적으로 파악하고 싶다면 추천
- 직접 개발은 안해도 개발자들과 전문용어로 소통하는 데에 문제가 없다면 비추
- 특정 분야의 디테일한 기술을 알고 싶다면 비추

 


 

각 소챕터별 한줄 요약

 

1장. 오리엔테이션

- 기획자가 개발자와 대화하기 위해 프로그래밍 언어를 공부할 필요는 없다.
- 기획자에게 필요한 것은 커뮤니케이션이다.


2장. 프로그래밍 언어 & 운영체제

- 프로그래밍 언어란 컴퓨터와 사람이 대화하기 위한 언어이고, 컴파일러가 프로그래밍 언어를 0과 1로만 구성된 기계어로 바꿔준다.
- 개발자가 하는 일을 '프로그래밍' 또는 '코딩'이라고 부르고, 보통 통합 개발 환경(IDE)의 도움을 받는다.
- 언어가 여러 개인 이유는 언어마다 장단점이 있기 때문인데, 저수준 언어는 컴퓨터 친화적인 대신 어렵고, 고수준 언어는 인간 친화적인 대신 느리다.
  (비유: 저수준 언어 = 초보 알바라서 일일이 가르쳐줘야 하지만 싸다 / 고수준 언어 = 고급 알바라서 알아서 하는게 많지만 비싸다)
  (참고: 프로그래밍 언어는 시간이 곧 돈이므로, 속도가 빠른 것을 '비용이 적게 든다', 느린 것을 '비용이 많이 든다'라고 표현함)
- 컴퓨터는 머리 역할의 CPU, 개인 작업 공간 역할의 메모리(RAM), 창고 역할의 보조기억장치(HDD, SSD)로 구성된다.
- 우리가 CPU, RAM, HDD, SSD 등을 직접 관리할 필요는 없다. 운영체제가 알아서 해준다.
- 파이썬, 자바 등은 PC의 운영체제에 상관없이 같은 코드를 돌릴 수 있도록 '가상머신(VM)'이라는 소프트웨어를 제공한다. 모바일은 PC에 비해 제한적인 리소스 때문에 가상머신을 잘 사용하지 않는다.


3장. 네트워크, 클라이언트, 서버

- 네트워크를 통해 컴퓨터끼리 데이터를 주고받을 수 있다.
- 컴퓨터 또는 모바일 기기는 IP 주소로 서로 다른 기기를 식별하고 데이터를 전송한다.
- 클라이언트(프론드엔드; FE)는 뭔가 계속 달라고 하는 컴퓨터를, 서버(백엔드, BE)는 요청에 따라 달라는 대로 주는 컴퓨터를 말한다.
- 서버는 보통 무료 OS인 리눅스를 운영체대로 돌아간다. 서버는 보통 GUI가 필요없으므로 대다수 리눅스 버전들은 GUI 없이 동작 가능하다.
- 개인 서버는 비용과 리스크 관리 면에서 단점이 있으므로, 보통 호스팅 업체를 사용한다.


4장. API와 JSON

- API란 클라이언트, 서버와 같은 서로 다른 프로그램이 요청과 응답을 주고받을 수 있게 만든 체계이다. 요청에 대해서는 CRUD를, 응답에 대해서는 HTTP 상태 코드를, API에 대해서는 REST API를 찾아서 읽어보자.
- 클라이언트와 서버가 주고받는 요청과 응답은 JSON 형식으로 되어 있다.
- API 문서는 중요하다. 사용할 때든 개발할 때든. API 문서 읽는 법을 배우자.


5장. 애플리케이션

- 애플리케이션(앱)은 클라이언트에 설치해서 사용하는 프로그램으로, 사용자가 업데이트를 하지 않으면 구버전이 계속 돌아간다.


6장. 웹

- 웹페이지는 HTML(내용), CSS(모양), Javascript(동작)으로 구성되며, 앱과 달리 서버에서 모든 걸 가져오므로 사용자는 업데이트를 할 필요가 없다.
- 브라우저 파편화 때문에 웹 개발자는 피곤하다. 
- 반응형 웹에서는 웹페이지의 크기(비율)가 사용자의 기기에 맞춰 자동으로 변형되어서 편하다.
- 하이브리드 앱은 앱의 특정 부분에 브라우저를 올리는 방식으로, 네이티브 종속성을 줄일 수 있고 앱 내 브라우저에 표시할 내용을 수정하기 편하다.


7장. 데이터베이스와 이미지 처리

- 관계형 데이터베이스(DB)란 값들의 관계를 테이블화 시킨 DB로, 관계형 데이터베이스 관리 시스템(RDBMS)로 관리한다.
- DB는 클라이언트에 저장될 수도 있고 서버에 저장될 수도 있다. 어디에 저장되는지 알고 싶으면 API 문서를 봐라.
- 이미지 등 그 외의 자료도 클라이언트에 저장될 수도 있고 서버에 저장될 수도 있다. 역시 API 문서를 봐라.


8장. 프레임워크와 라이브러리

- 서비스를 개발할 때에는 밑바닥부터 만들지 말고 이미 만들어져 있는 프레임워크와 라이브러리를 사용하자. (코코아, React.js, Django 등)


9장. 협업, 소스관리, 디자인

- 깃은 소스 코드 버전관리, 기능 개발 및 테스트를 위한 브랜치, 각 브랜치를 합치는 머지를 쉽게 하게 도와준다.
- 스케치, 제플린, XD 등의 UI 디자인 툴을 이용하면 디자인 가이드를 쉽게 만들 수 있고, 개발자와 디자이너가 덜 싸우게 된다.


10장. 정리

- 우리가 맨날 쓰는 앱이나 웹은 긴 과정을 거쳐 만들어졌고, 긴 경로를 통해 데이터를 주고 받으며 돌아가고 있다.
- 이 바닥에서 일할거라면 잘 공부해둬라. 무능하다고 욕먹기 싫으면. 어려워도 배워두면 다 피와 살이 된다.

 

 

게으른

 

 

더 읽기

개발자의 외계어 쉽게 이해하기

댓글