1960년대, 인터넷의 탄생
웹이란?
1990년, 웹의 탄생
단순한 정보 제공 위주
기능이 많지 않음
User Interaction
요구 없음
로직(동적) 없음
HTML, CSS 자체가 정적
서버가 HTML 페이지 전체를 클라이언트에게 전송
동적인 2세대 웹 서비스의 출현
웹 기반의 언어 자바스크립트의 출현
단순한 정적 페이지가 아닌 다이나믹한 요소들이 요구
서버와 클라이언트가 HTML 페이지와 JavaScript 로직을 통해 필요한 데이터를 주고 받으며 User Interaction
구현
아직 프/백 구분 없이 동일한 서버
SPA (Single Page Application) 방식 등장
프론트엔드와 백엔드 개발의 분리
기획자 (Product Manager)
개발하려는 서비스를 정의하고 기획
디자이너 (Designer)
UI 및 UX를 구현하는 역할을 담당
사용자가 사용하기 편리하게, 눈에 보기 좋게 디자인하는 역할
Scrum Master / Project Manager
프로젝트의 일정 및 출시 관리를 담당하는 역할
Scrum 개발론이 개발팀 에서 널리 사용 됨에 따라 scrum process 를 관리하고 코치하는 직군이 생김
Tester
시스템을 테스트하여 검증하는 직군
직접 manual testing 하는 QA (Quality Assurance), 자동 테스트 시스템을 개발하는 Software Engineer in Test / Test Automation Engineer 등이 있음
프론트엔드 개발자 (Frontend Developer)
HTML, CSS, JavaScript로 프론트엔드 시스템을 구현
사용자와 가장 가까이 연결된 개발자
백엔드 개발자 (Backend Developer)
백엔드 시스템을 개발하며 크게 2가지로 나뉜다.
백엔드에서 앞 쪽(API)을 담당하는 개발자
백엔드의 뒤쪽 - 데이터 수집,분석,관리 등 데이터 관련 시스템을 개발하는 개발자
풀스택 개발자 (Full Stack Developer)
프론트엔드 + 백엔드 모두 하는 개발자
DevOps (Development Operations)
시스템 개발과 시스템 운영을 함께 담당
직군이라기 보다는 개발 문화의 추세!
백엔드 개발자가 서버 구축 및 운영 등 System infrastructure 관리까지 담당하는 추세다!
SysOps (System Operations)
System Infrastructure의 구현과 관리, 운영을 담당하는 직군으로 DevOps와 다르게 실제 하드웨어를 다룰 수 있음
Data Center를 사용해 시스템을 운영하는 회사에 필요하지만, AWS같은 클라우드 서비스가 보편화되며 DevOps 개발자들이 System Infrastructure를 담당하는 추세에 따라 사라지고 있는 직군....
Data Scientist
많은 양의 데이터를 분석해 새로운 정보와 가치로 만들어내는 직군
Data Engineer
Data Scientist가 데이터를 분석할 수 있도록 데이터를 정리하는 시스템을 구현하는 역할