웹 서버로부터 HTML 파일을 받을뿐 아니라 Javascript를 통해 필요한 정보를 주고 받음
User Interaction이 요구되기 시작 (Javascript 출현)
그러나 Javascript 와 API가 범용적으로 사용되지 않음
3세대 웹
Client ↔ Frontend Server( HTML /Javascript ) ← Backend Server( Date )
프론트엔드/백엔드 구분
SPA(Single Page Application) : 단일의 html 페이지에서 전체 웹 사이트/서비스를 구현
- 이전에는 페이지 구성에 필요한 요소를 매번 전송했다면 3세대 웹에서는 서버에 필요한 파일을 한번에 다운받고, 그 뒤로는 실시간 데이터만 주고 받음
3세대 웹에서 존재하는 포지션과 각 포지션의 역할
Product manager (기획자)
개발하고자 하는 서비스를 정의하고 기획하는 역할을 담당하는 직군
Designer (디자이너)
UI(User Interface) 및 UX (User Experience)
사용자가 직접 경험하고 사용하는 서비스를 눈에 보기 좋게, 사용하기 편리하게 디자인
Frontend Developer (프론트엔드 개발자)
HTML, CSS, JavaScript 로 프론트엔드 시스템을 구현하는 역할
사용자와 가장 밀접하게 연결되어 있는 개발자
Backend Developer (백엔드 개발자)
백엔드에서 앞쪽(API)를 담당하는 개발자
백엔드 뒤쪽(데이터 수집,분석,관리 등 데이터 관렴 시스템)을 담당하는 개발자
(경력이 높아질 수록 좀 더 난이도가 있는 뒷 부분에 해당하는 시스템을 많이 구현 : DevOps)
DevOps (Development Operations)
시스템 개발(Development) 뿐만 아니라 시스템 운영(Operation)까지 담당
직군 이라기 보다는 개발 분야에서 나타나는 문화나 추세
AWS 등의 클라우드 서비스가 발달함에 따라 서버 구축 및 운영 등의 System Infrastructure 관리까지 백엔드 개발자가 직접 구현하는 추세
SysOps (System Operations)
System Infrastructure 의 구현과 관리 및 운영을 담당하는 직군
DevOps 와 다르게 실제 하드웨어를 다룰 수 있는 직군
Data Center 를 사용하여 시스템을 운영하는 회사에 필요한 직군
(직접 데이터 센터에 서버를 구성하지 않고 AWS 같은 클라우드 서비스가 점점 더 많이 쓰이는 추세)
=> 따로 SysOps 인력을 두지 않고 DevOps 개발자들이 System Infrastructure 를 담당하는 추세
Data Scientist
Machine Learning, AI 등의 데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당하는 직군
많은 양의 데이터를 분석해서 새로운 정보와 가치를 만들어 낼 수 있는 직군
Data Engineer
Data Scientist 가 데이터를 분석할 수 있도록 데이터를 정리하고 정석화 시키는 시스템을 구현하는 역할
Tester
시스템을 테스트하여 검증하는 역할을 담당하는 직군
QA (Quality Assurance) - 직접 manual testing을 실행
Software Engineer in Test / Test Automation Engineer - Manual testing이 아닌 자동 테스트 시스템을 전문으로 구현하는 개발자