WEB과 Internet의 출현
인터넷
이라는 전체 안에 웹
이라는 서비스가 존재Internet
의 출현WEB
이 출현하며 대중적으로 사용되기 시작팀 버너스리
스위스 유럽입자물리 연구소world wide web
이라는 프로그램을 개발Dot-com bubble
)(2000년대). 실리콘 밸리 형성 -> 야후, 구글, 아마존 등의 회사기 이 때 출현Web System Architecture History
- 1세대 웹 - 전통적인 Web System Architecture. 정적 웹.
- 2세대 웹 - User Interaction의 증가. 동적 웹(자바스크립트)
- 3세대 웹 - SPA(Single Page Application) - 구별되기 시작하는 Frontend와 Backend
- Modern WEB - 규모가 커지기 시작하는 Web System의 발전
SPA(Single Page Application)
- 하나의 파일로 전체 사이트를 구현Angular
의 출현)웹 시스템의 발전 역사와 함께 현대 웹 시스템의 구조에 대해 알아보면,
System architecture
의 발전Backend
는 웹 서비스의 스케일이 엄청나게 커짐에 따라(그리고 분석해야 하는 데이터 양이 엄청나게 늘어남에 따라) architecture(시스템 구조)가 굉장히 복잡하게 발전되며 규모도 엄청나게 커진다Frontend
는 Node.js와 React 등의 javascript엔진과 프레임워크/라이브러리의 발달로 웹에서 더 복잡한 기능 구현이 가능 -> Node.js의 발전으로 프론트 개발자가 간단한 백앤드 기능을 직접 구현하는 일도 요즘에는 흔해졌다.Modern Development Team 구조
현대 개발팀의 일반적인 구조와 구성원들을 보면 시스템을 개발할 때 개발자 혼자 개발하는 경우는 거의 없다. 대부분의 경우 협업으로 진행되기 때문에 개발팀이 어떠한 역할과 형태로 이루어져있는지 이해가 필요하다
Product manager(기획자)
- 개발하고자 하는 서비스를 정의하고 기획하는 역할을 담당하는 직군
Designer
- 웹 시스템 개발에는 UI(User Interface) 및 UX(User Experience)를 구현하는 역할을 담당
Frontend Developer
- HTML, CSS, Javascript로 프론트앤드 시스템을 구현하는 역할
Backend Developer
- 백앤드 시스템을 개발하는 역할
DevOps (Development Operations)
- 시스템 개발(Development)뿐만 아니라 시스템운영(Operation)까지 담당하는 것
SysOps (System Operations)
- System Infrastructure의 구현과 관리 및 운영을 담당하는 직군
Data Scientist
- Machine Learning, AI 등의 데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당하는 직군
Data Engineer
- Data Scientist가 데이터를 분석할 수 있도록 데이터를 정리하고 정석화 시키는 시스템을 구현하는 역할을 담당
Tester
- 시스템을 테스트하여 검증하는 역할을 담당하는 직군
Others
- Project Manager (PM)
- 프로젝트의 일정 및 출시 관리를 담당하는 역할