코딩 공부는 조금 얇고 넓고, 실습 위주의 공부가 좋을 수 있다.
빠르게 혼자 만들 수 있는 단계가 돼야 한다.
구글링으로 해결할 수 있는 근육을 만들어야 한다.
집념 + 구글 -> 크래프트맨
1. 컴퓨터와 OS?
컴퓨터?
- 기계를 모아 둔 것
CPU: 계산
RAM: 기억
HDD: 적어두기
OS (운영체제)
인간이 기계와 소통할 수 있게 만드는 기반 프로그램
- IOS
- WINODW
- LINUX
- ANDROID
2. 코딩? 프로그래밍?
코딩은 늘 프로그램을 만드는것, 그래서 프로그래밍 = 코딩이다.
OS에 명령을 내리는것이 코딩이다. 이 때 어떤 언어로 하냐가 프로그래밍 언어다.
3. 웹통신, 웹서버 ?
컴퓨터는 인터넷을 통해 대화
이때 필요한 규칙이 http
http: 웹 통신을 하겠다는 의미임
https: 암구호 표를 서로 가져서 가운데서 못 듣게 하는것 (보안 강화)
4. 서버가 죽었다?
- 가운데서 역살
- client들이 요청하는 것들을 serve 하는 것
- 서버가 받아서 client에게 wnsms rjt
- 서버는 컴퓨터임, 컴퓨터 눕힌거임
- "잘 듣고 있다가 누가 http 요청하면 이 파일을 돌려줘"
- 즉 서버는 직업임
5. 브라우저
브라우저 역할
- 요청 + 그려주기
- HTML : 뼈대
- CSS : 예쁘게
- JS : 이미지 넘기고, 동영상, 반응
JSON 형식
- key value
- 데이터 요청시 데이터 받는 형식
- 앱에서 많이 씀
6. 웹 vs 앱
- 웹은 계속 다 내려받기만함, 따라서 업데이트 필요 X
- 앱은 JSON 데이터만 받아서 갈아끼우는 따라서 앱은 업데이트를 해야함
- 앱은 껍데기
7. API
- API는 창구이자 약속
- 서버에서 미리 만들어둔 기능
- 약속
- 클라이언트 개발자, 서버 개발자와 약속
- API 명세서
- 평소에 보는 URI 처럼 생김
Open API
- 누구나 요청할 수 있게 열어놓은 API
- 공공데이터에서 많이 열어둠
8. 언어와 프레임워크
서버를 처음부터 만드는건 매우 어려움,
따라서 통상 제로부터 서버를 만드는 사람은 없다
프레임워크를 이용한다.
JAVA : SPRING
NODE.JS : Express
Python : Django, Flask
언어, 프레임워크마다 특성이 다르다.
프론트엔드 프레임워크
- 앵귤러
- 뷰
- 리액트
Java : 어렵고, 형식 많고, 큰 회사에서 많이 쓴다.
Python: 쉽게 입문, 자유롭고, 데이터 분석에도 쓰임
node js: JS와 거의 같고 스타트업에서 많이 쓰임
C : 임베디드 칩, IOT에서 가끔 게임회사
Go : 최근 인기 시작 쉬운데 적당히 형식 존재
TypeScript 프론트/백, JS에 타입
Kotlin: 안드로이드 앱 제작
Swift : 아이폰 앱 제작
Flutter, React Native : 한번에 개발
9. 서버 아키텍처와 DB
클라우드 서비스
- 아키텍처가 매우 복잡하기 때문에 클라우드로 서비스를 잘 구현해야함
- 서버 환경을 클라우드로 하는 추세
- AWS
DB
- 잘 찾으려고 정돈하는거임
- 인덱스를 안타면 풀 스캐닝한다 라고 함 (노 인덱스)
- SQL, NoSQL
- 인덱싱이 중요하다 -> 잘, 빠르게 찾으려고
10. 협업
git
- 커밋
- 푸시
- 풀
- 세이브 포인트 = 커밋
- 올리는게 푸시
- 남이 올린거 다운로드가 풀
- 브랜치 (실험적으로 다른 버전 만들고)
- 머지 (잘 돌아가고 맘에 들면 합치기)