IT 관련하여 베이스가 없던 나.
가장 난감했던 것은 시작을 어떻게 하느냐였다.
어디서부터 공부를 해야하는지, 어떤 것을 공부해야하는지,,
찾고 계획하는 것이 가장 어려웠고 지금도 어렵다.
우선 개념을 머릿속에서 정리하는 것이 가장 좋을 것 같아서 이 책을 읽게 되었다.
비전공자도 기본적인 개념을 이해하기 쉽게 정리가 잘 되어있는 책이다.
나와 같이 시작 단계인 사람들이 읽으면 좋을 것 같다.
책을 읽고 나에게 도움 되었던 내용을 정리해보고자 한다.
비전공자가 IT 산업에서 일하기위해 가장 먼저 알아야할 지식은 '프로그래밍 언어'가 아니다.
IT 산업은 6개월 뒤의 모습만 예측할 수 있어도 대박이 난다고 한다.
그만큼 변화의 속도가 빠르기 때문에 처음부터 완성된 형태를 정해놓고 무언가를 만드는 것은 위험하다.
IT서비스는 완벽한 프로세스가 없으며, 고객의 니즈에 맞게 발전(기획)하게 된다.
발전을 위해서는 업무에 참여하는 구성원들과의 커뮤니케이션이 가장 중요하다.
그렇기 때문에 가장 먼저 알아야할 것은 커뮤니케이션을 위한 IT지식이다.
컴퓨터는 0과 1로 이루어진 기계어를 사용한다.
그렇다면 어떻게 컴퓨터에 명령을 할 수 있을까?
개발자들은 기존의 것을 발전시키거나 새로운 것을 만들기를 좋아한다.
C언어가 발전하여 Objective-C, C++, 파이썬이 되었다.
프로그래밍 언어는 '저수준'언어와 '고수준'언어로 구분할 수 있다.
고수준 언어: 인간 친화적인 언어, 사람이 학습하기 쉽지만 작동이 느림
저수준 언어: 컴퓨터 친화적인 언어, 낮은 사양 컴퓨터에서도 원활히 작동
개발자의 컴퓨터와 사용자의 컴퓨터, 서버와 클라이언트
클라이언트 컴퓨터: 사용자들이 소유한 컴퓨터, '프론트 엔드'
'클라이언트', '클라', '프론트 엔드', '프론트'
서버 컴퓨터: 주는 컴퓨터, '백 엔드'
'서버', '백 엔드', '백'
개인이 서버를 운영하게 되면 여러가지 리스크가 발생한다.
그래서 '호스팅 업체'가 존재하는 것이다!
요청을 구분할 수 있도록 하는 '체계'
API는 소프트웨어가 다른 소프트웨어의 기능을 쓰기 위해 중간에 필요한 체계
API는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계
'서버주소/A' 과 같이 표기
주소 뒤에 어떤 문자를 쓰냐에 따라 다른 기능을 수행
서버 개발자가 만들며, 그 결과물이 서버 프로그램
API를 통해 요청과 응답을 주고 받을 때는 데이터도 같이 담긴다.
SDK(Software Development Kit): API를 제공해주는 '다른 소프트웨어'로, 소프트웨어를 개발하기 위한 도구
데이터를 다룰 때 기준이 되는 요청이 있다.
바로 CRUD(CREATE, READ, UPDATE, DELETE)이다.
C(Create): '올리는' 요청
R(Read): '불러오는' 요청
U(Update): '바꾸는' 요청
D(Delete): '지우는' 요청
데이터를 볼 때는 CRUD 관점에서 바라봐야한다.
이 중 특정 기능이 없다면, 그 기획 의도가 명확해야하며, 이유를 설명해야한다.
체계적인 API 사회 운동, RESTful API
CRUD를 하나의 주소로 관리
요청에 따라 메소드(Method) 전송
POST, GET, PUT/PATCH, DELETE
C(Create): POST
R(Read): GET
U(Update): PUT(전체)/PATCH(일부)
D(Delete): DELETE
RESTful API는 모든 회사에서 통용되는 절대 규칙이 아닌 일종의 사회 운동으로 상황마다 다양한 방식으로 변형해서 사용
데이터를 주고받는 주머니, JSON
{
key: Value
key2: [1,2,3]
}
{
"id": "ABC",
"PW": "12345678"
}
네이버, 카카오 홈페이지 등에서 개발자들이 볼 수 있도록 API 문서를 제공하는 API를 Open API라고 함
특정 횟수 이상 사용하면 돈을 받기도 하며, 프리미엄 기능에 대한 API를 따로 정해놓기도 함
개발 = 프로그래밍
(cf. 코딩은 프로그래밍의 하위 개념. 하지만 현업에서는 혼용하여 사용)
개발자 = 프로그래머
와이어 프레임: 애플리케이션이나 웹페이지가 어떻게 구성되는지, 어떻게 동작하는지 기획한 문서
LAN(Local Area Network): 컴퓨터가 연결된 작은 지역 (아파트, 컴퓨터실 정도의 규모)
MAN(Metropolitan Area Network): 도시의 LAN을 하나로 연결
WAN(Wide Area Network): 도시와 도시, 나라와 나라를 연결 (MAN 연결)
최원영, 『비전공자를 위한 이해할 수 있는 IT지식』, T.W.I.G