결론부터.
- web developer는 HTML을 통해 뼈대를 잡고, CSS를 통해 디자인을 입히고, JavaScrips를 통해 기능을 붙이는데, 이를 빠르고 쉽게 개발하기 위해 React.js를 사용하는 사람이구먼
- 컴퓨터에 컴자도 모르는 내가 컴퓨터와 인터넷을 이해하고자 처음 시작한 책이 Brian Kernighan 의 1일 1로그 100일 IT지식인데, 교양서 수준으로 알고있음에도 불구하고 내 눈에는 조금 어려웠다. 서점에서 나같은 쌩초짜가 읽을 수 있는 책이 없을까 서성거리다가 눈에 띄어 산 책이 바로 이 책이다. 두 번 정독했다. 기획자의 시선에서 개발자와 대화하기 위한 큰그림을 알려주는 실용적인 책이다. 그 지식의 깊이가 얕음에도 불구하고, 나같은 사람에게는 뭐가 어떻게 돌아가는지 갈피를 잡게 해주는 책이었다. 이제 조금 감이 온다. 사실 운영체제나 브라우저 이런 개념과 지식조차 전무했기 때문에 모든것이 새로운 지식이다. 소중하다. 내 첫 번 째 IT책. 이 다음은 Brian Kernighan 의 1일 1로그 100일 IT지식을 다시 시작해보려 한다.
내가 다시 보기 위해 쓴 요약
1.
- 컴퓨터의 하드웨어는 CPU, 메모리, SSD(보조기억장치)로 이루어져 있군..
- CPU는 요리하는 애고, 메모리는 주방, SSD는 냉장고같은 녀석이군..
- 얘네들이 지네들 알아서 돌아가는건 아니고 Operating System이 대신 굴려주는거군..
- 대표적으론 윈도우, 맥OS, IOS, 안드로이드 같은 녀석들이군..
- 이 특정 운영체제 위에서 돌아가는 프로그램을 만들기 위해선 그 운영체제에 맞는 프로그래밍 언어가 필요하군..
- 예를들어 윈도우는 C#, C++, 자바스크립트 등등을 써야되고.. 애플 운영체제는 Swift나 Objective-c를 써야되고..
- 특히 웹은 가능한 언어가 졸라많구만.. 그래서 프로그램 하나만 더 설치해놓으면 한 언어로만으로도 여러 운영체제에서 돌아갈 수 있는 것들도 생겼구만.. (자바, 파이썬) 근데 프로그램을 더 돌려야되니 느리구만..
- 모바일은 애플/구글사의 특정 몇가지 언어가 시장을 장악하고 있어서 굳이 그런애들 필요없구만..
그래서 결국...
이 책에서 정의하는 개발자란
프로그래밍 언어를 통해 (Java, Javascript, C++, Swift, Python, Ruby 등)
운영체제 위에 (Window, 안드로이드, 맥OS, IOS 등)
돌아가는 소프트웨어를 개발하는 인간이구만..
2.
- 서버컴퓨터에서 많이 사용하는 운영체제는 '리눅스'군..
- 서버컴퓨터는 보통 24/7 작동해야하고, 요청에 따라 데이터를 주는 컴퓨터라서 무료인 리눅스를 많이 쓰는구만..
- 그래픽 UI 없이 명령어로만 작동하는구만.. 일반인들은 봐도 뭔 말인지 모르겠구만
- '우분투'가 뭔고 하니.. 그냥 윈도우 97, 99처럼 리눅스의 여러 버전중 하나구만
- 암튼 이런 서버컴퓨터는 당연히 개인이 관리하기 어렵게 생겼네..
- 그래서 요즘엔 서버 컴퓨터 대여나 관리를 해주는 호스팅 업체들이 있구만. 한국의 Cafe24라던지, 아마존의 AWS라던지..
3.
- 서버컴퓨터에서 요청에 대한 응답이 잘 되었으면 200번대, 400은 니잘못이야, 500번대는 미안하다 구만..
- 흔하게 보는 404 에러는 '그런 정보 없으니까 똑바로 요청하셈'이였구만... 신기하구만
- 웹 3종세트는 HTML(내용,구조), CSS(디자인), JavaScript(프로그래밍 언어)구만.. 그래서 보통 연달아 배우는구만
- 나는 IOS개발이 재밌어보이는데,, 그냥 처음부터 그거 배우면 안되는건가
- 엑셀시트를 관계형데이터베이스에서는 Table이고.. 엑셀 파일 자체는 Schema or Database라고 하는구나
- 보통 데이터를 다루는 개발자들이 관계형 데이터베이스 관리시스템으로 MySQL, Oracle DB, MySQL등등을 필수로 쓰겠구만
4.
- 웹페이지는 모바일용에는 맞지 않아서 네이버같은애들은 모바일용 웹페이지를 따로 만들어서 배포하는구만..
- 하지만 뭘 바꾸려면 둘 다 바꿔야하니까 불편. 그래서 반응형 웹페이지가 나왔구나. 웹페이지의 비율에 따라 자동으로 변형되는구만.. 예)bootstrap
- 애플리케이션의 개발 방식에는 네이티브 앱개발(IOS는 스위프트, 안드로이드는 자바,코틀린)하는것과 애플리케이션에 브라우저(웹)를 올리는 방식으로 나뉘는구만..
- 브라우저를 통해 html, css, js를 가져와 보여주는건 따로 심사나 설치가 필요하지 않고 새로고침할 때 반영됨. 하지만 네트워크에 종속되기 때문에 네트워크가 느린곳에서는 사용자가 오랜시간을 기다려야 하는구만...
- 반면 네이티브로 만들면 수정하는데 넘어야 할 산이 많고 심사도 받아야 함. 또 사용자가 직접 업데이트를 해줘야 함
- 이 둘을 구분하는건 API를 보면 알 수 있다네?
5.
- API 문서라는게 엄청 중요해보이는구만,, 그 데이터에 대한 모든 답이 다 들어있구만
- 클라이언트와 서버는 API를 통해 요청과 응답을 주고받는데, API는 양면을 가지고 있구만. 기능을 제공하는 쪽은 서버, 사용하는 쪽은 클라이언트.
- API는 특정한 주소와 method로 이루어져 있다. The primary or most-commonly-used HTTP verbs (or methods, as they are properly called) are POST, GET, PUT, PATCH, and DELETE
- method는 각각 CRUD(Creat, Read, Update, Delete)와 매치됨
- 여기서 바로 요청에 대한 응답이 잘 되었으면 200번대, 에러 경우에 따라 400,500번대로 보여주는거구만
- 이걸 통해 이 데이터가 클라이언트(고객의 컴퓨터)에 있는지, 서버에 있는지도 알 수 있구만
- 로컬, 내부DB, 네이티브, 클라/클라이언트, 프론트/프론트엔드가 같은 말 이구만
- 서버, API요청, 그냥 DB, 네이티브 가 같은 말 이구만
- 데이터의 성격에 따라 클라에 놓을수도, 서버에 놓을수도 있다. 예를 들어 가격정책이 들어간 이미지의 경우에는 클라에 놓게되면 사용자가 어플리케이션을 업데이트 하기 전 까지는 바뀐 이미지를 볼 수 없으니 문제가 된다. 그래서 서버에 두고 그때그때 네트워크를 통해서 클라로 불러오는 식으로 사용하게 된다. 하지만 이런게 너무 많아진다면 네트워크가 느린곳에서는 사용자가 많은 시간을 기다릴 수 밖에 없겠지. - 그래서 최대한 네트워크에 부담이 가지 않도록 많은 이미지를 클라이언트에 놓아야 하지만 이미지가 바뀌었을 때 서비스에 영향을 준다면 서버에서 가져와야 함.
- API를 통해 이미지의 URL을 서버에서 받아온다면, 그 이미지는 서버에 있는 이미지
6.
- Framework를 사용해서 프로그래밍을 더 쉽게 할 수 있다. (이미 만들어진 프레임들을 가져가서 쓰는것)
- 애플의 AppKit, UIkit (통칭하여 Cocoa프레임워크라고 부름) 구글의 자바는 Spring이 유명함. Python은 Django 등
- Front end web framework의 3대장은 Angualr.js(Google), Vue.js, React.js(Facebook)
- 한 프로젝트에서 프레임워크는 하나만 쓸 수 있음
- 라이브러리는 하위개념으로, 자잘한 도구들이기 때문에 여러군데서 데려와 함께사용 가능
7.
- Git을 사용하면 개발 단계별로 깃발을 꽃을 수 있군. 그 행위를 Commit이라고 하는군. 그리고 메모를 남기게 되는데, 그건 Commit log라고 하는군.
- 여러 프로젝트를 동시에 진행해야 할 때, 기존 개발에 덮어쓰지 않고 각각 프로젝트별로 가지를 쳐서 진행할 수 있는데 그걸 Branch라고 하는군. 이렇게하면 코드의 충돌 없이 작업 가능
- 그 다음 그 코드들을 서로 합치는 기능들이 Merge구만
- Github은 '원격 저장소'로, 개발자들이 자신의 컴퓨터에서 작업한 뒤 Commit을 하면 그걸 저장하거나 이미 작업된 결과물을 불러올 수 있군. 개발을 위한 구글드라이브같은거군. 개발자들 블로그를 보면 이 Github을 거의 다 사용하는 것 같던데 중요한가보군.
'Books' 카테고리의 다른 글
3월의 책들 (0) | 2022.04.08 |
---|---|
Deep Work - 나는 집중하는 삶을 살 것이다. 그것이 최선의 삶이기 때문이다. (2) | 2022.03.20 |
2월의 책들 (0) | 2022.03.01 |
Atomic Habits / 아주 작은 습관의 힘 - 팩트폭행의 현장. 매번 계획만 세우는 나에게. (0) | 2022.02.17 |