동적인 기능이 주가 되며 3세대 웹이 된다.
SPA : Single Page Application : 단일의 html 페이지에서 전체 웹 사이트/서비스를 구현한다.
이전에는 페이지 구성에 필요한 요소를 매번 전송했다면 3세대 웹에서는 서버에 필요한 파일을 한번에 다운받고, 그 뒤로는 실시간 데이터만 주고받는다.
이에 따라 HTML/JavaScript를 개발하는 Frontend와 데이터를 개발하는 Backend가 명확히 나뉘게 된다.
Frontend 와 Backend가 구조적으로 분리 ->
Frontend 서버와 Backend API 서버도 분리 ->
그에 따라 Frontend 개발과 Backend 개발 업무가 분리가 되는 구조로 발전한다.
기획자 (Product Manager)
개발하려는 서비스를 정의하고 기획한다.
디자이너 (Designer)
UI 및 UX를 구현하는 역할을 담당한다.
사용자가 사용하기 편리하게, 눈에 보기 좋게 디자인하는 역할이다.
프론트엔드 개발자 (Frontend Developer)
HTML, CSS, JavaScript로 프론트엔드 시스템을 구현한다.
사용자와 가장 가까이 연결된 개발자이다.
백엔드 개발자 (Backend Developer)
백엔드 시스템을 개발하며 크게 2가지로 나뉜다.
백엔드에서 앞 쪽(API)을 담당하는 개발자
백엔드의 뒤쪽 - 데이터 수집,분석,관리 등 데이터 관련 시스템을 개발하는 개발자
DevOps (Development Operations)
시스템 개발과 시스템 운영을 함께 담당한다. 직군이라기 보다는 개발 문화의 추세이다.
백엔드 개발자가 서버 구축 및 운영 등 System infrastructure 관리까지 담당하는 추세이다.
SysOps (System Operations)
System Infrastructure의 구현과 관리, 운영을 담당하는 직군으로 DevOps와 다르게 실제 하드웨어를 다룰 수 있다.
Data Center를 사용해 시스템을 운영하는 회사에 필요하지만, AWS같은 클라우드 서비스가 보편화되며 DevOps 개발자들이 System Infrastructure를 담당하는 추세에 따라 사라지고 있는 직군이다.
Data Scientist
Machine Learning, AI 등을 이용해 많은 양의 데이터를 분석해 새로운 정보와 가치로 만들어내는 직군이다.
Data Engineer
Data Scientist가 데이터를 분석할 수 있도록 데이터를 정리하는 시스템을 구현하는 역할이다.
Tester
시스템을 테스트하여 검증하는 직군이다.
직접 manual testing 하는 QA (Quality Assurance), 자동 테스트 시스템을 개발하는 Software Engineer in Test / Test Automation Engineer 등이 있다.