오늘 인상깊게 들은 강의.
- 인터넷의 시작: 미국에서 군사목적으로. 문서를 주고 받는. 그건 1950년대부터 시작됨. 1990년대에 WWW가 등장함. HTML & HTTP.
- 인터넷의 핵심은 "유통". 이전에는 물리적으로 유통이 필요함. 예를 들어 윈도우 설치할 때 CD로 깔듯이... 이 때문에 개발자들이 창업하기 매우 쉬워져 2000년대에 닷컴버블.
- HTML Hyper Text Markup Language: 하이퍼로 이어진 텍스트들을 표시해주는 언어. 당연히 HTML은 로직이 없음. 초기에는 상당히 static한 웹사이트들만 있었음. 1세대 웹사이트.
- 그래서 동적인 기능을 구현하기 위해 생긴 것이 JavaScript. 동적인 기능들이 구현되면서 (예를들어 검색순위가 바뀌는) 2세대. 여전히 HTML이 main이긴함.
- 3세대는 주객전도로 JavaScript를 통해서 HTML을 구현함.
- SPA(Single Page Application) - 페이지 하나로 구현이 가능. 한번 렌더링 한 후에는 데이터만 받아오면 됨. 그래서 이제 Frontend와 Backend로 나뉘기 시작함. Frontend는 UI/UX 구현, Backend는 Database와 연결.
- 하지만 데이터가 많아지면서 단순한 구조가 아니고 매우 복잡한 architecture를 가지게 됨. (이 때문에 facebook이나 instagram도 매우 간단한 기능이지만 개발자가 수천에서 수만명임.)
- 생 데이터에 가까워지면 Data pipeline. 굉장히 어렵고 우리나라에서는 아직 경험해볼 수 있는 회사가 많지 않음.
#참고
직군
- Product Manager: 무엇을 만들지 정하는 사람. 한국에서는 관리자처럼 되었지만 그저 다른 직군임.(개발자관리는 개발자가) PM은 기획자일 뿐.
- Designer
- Frontend Developers
- Backend Developers: 여기서도 API와 데이터로 나뉨. DevOps라고 백엔드 개발자가 system infra 관리까지 하기도 함. 이건 AWS, 즉 클라우드가 나오면서 하드웨어를 몰라도 서버로 배포가 가능해짐. SysOps가 필요없어 지면서 DevOps가 생김. IAC(Infrastructure As Code).
- SysOps: Data Center에서 서버를 관리함. 점점 필요없어지지만 아주 없어지지는 않음.
- Data Scientist: machine learning, AI 등의 데이터 분석 알고리즘과 데이터 분석 modelling을 구현하는 직군.
- Data Engineer: Data Scientist와 개발자들의 다리.
- Tester: QA(Quality Assurance, 손테스트)와 테스트 시스템 만드는 직군도 있음.
- 이 밖에도 Full Stack, Project Manager, Scrum Master, Software Architecture(많이 사장됨)