웹이란?
- 월드 와이드 웹(World Wide Web)이란 인터넷에 연결된 사용자들이 서로의 정보를
공유할 수 있는 공간을 의미함
- 간단히 줄여서 WWW나 W3라고도 부르며, 간단히 웹(Web)이라고 가장 많이 불림
- 인터넷과 다른 개념 ... 인터넷 상의 서비스 중 하나
웹의 특징
- 웹은 인터넷 상에서 텍스트나 그림, 소리, 영상 등과 같은 멀티미디어 정보를
하이퍼텍스트 방식으로 연결하여 제공함
(하이퍼텍스트: 문서 내부에 또 다른 문서로 연결되는 참조(하이퍼링크)를 집어
넣음으로써 웹 상에 존재하는 여러 문서끼리 서로 참조할 수 있는 기술
웹의 구성
- 웹에서는 HTML 언어를 사용하여 작성된 하이퍼텍스트 문서를 웹 페이지라고 부름
- 서로 관련된 내용으로 작성된 웹 페이지들의 집합을 웹 사이트라고 함
- 수많은 웹 페이지들이 하이퍼링크를 통해 서로 연결되어 구성
1세대 웹 서비스
- 전통적인 Web System Architecture
- 정적 웹
- 웹 서버가 HTML 페이지 전체를 클라이언트에게 전송
- 초창기 웹사이트/서비스에 적합 (단순 정보 제공 위주)
- User Interaction이 많이 요구되지 않았음
2세대 웹 서비스
- 웹 서비스들이 발전함에 따라 다이나믹한 요소들이 요구됨
- 웹 기반 언어인 JavaScript 출현. JavaScript의 역할 커짐
- 자바스크립트를 통해 서버와 필요한 데이터만 주고 받음으로써
dynamic한 User Interaction 구현
- 동일한 서버에서 HTML, JavaScript(프론트 영역), 데이터(백엔드 영역)을 전송
3세대 웹 서비스
- 동적인 기능이 주가 됨 (JavaScript가 주가 되고 그 안에 일부 HTML,CSS)
- SPA (Single Page Application) -> 하나의 파일로 전체 사이트를 구현
- 제일 처음 전송된 단일 HTML 페이지에 포함되어 있는 JavaScript에서 필요한 데이터를
API 서버로부터 호출하여 필요한 화면을 dynamic하게 새롭게 구성해주는 방식
- HTML 태그 자체를 JavaScript가 동적으로 생성
- 프론트엔드와 백엔드가 나뉘게 되는 기점 (프론트 - UI UX / 백엔드 - Data)
- 다양한 기술 스택의 출현 (ex. React, Angular, Vue 등)
현대의 개발 팀 구조
Product Manager(기획자)
Designer
- UI(User Interface) 및 UX(User Experience)를 구현
- 사용자가 직접 경험하고 사용하는 서비스를 눈에 보기 좋게,
사용하기 편리하게 디자인
Frontend Developer
- HTML, CSS, JavaScript로 프론트엔드 시스템을 구현
- 사용자와 가장 밀접하게 연결
Backend Developer
- 백엔드 시스템 개발
- 크게 2가지로 나뉨
- API 개발
- 데이터 수집, 분석, 관리 등 데이터 관련 시스템 개발
DevOps (Development Operations)
- 시스템 개발뿐만 아니라 시스템 운영까지 담당
- AWS 등의 클라우드 서비스가 발달함에 따라 서버 구축 및 운영 등의
System Infrastructure 관리까지 백엔드 개발자가 직접 구현하는 추세
SysOps (System Operations)
- System Infrastructure 의 구현과 관리 및 운영을 담당
- DevOps 와 다르게 실제 하드웨어를 다룰 수 있음
- Data Center 를 사용하여 시스템을 운영하는 회사에 필요
Data Scientist
- Machine Learning, AI 등의 데이터 분석에 필요한 알고리즘과
모델링의 구현을 담당
- 많은 양의 데이터를 분석해서 새로운 정보와 가치를 만들어 낼 수 있음
Data Engineer
- Data Scientist 가 데이터를 분석할 수 있도록 데이터를 정리하고
정석화 시키는 시스템을 구현
Tester
- 시스템을 테스트하여 검증하는 역할
- QA (Quality Assurance) - 직접 manual testing을 실행
- Software Engineer in Test / Test Automation Engineer
- Manual testing이 아닌 자동 테스트 시스템을 전문으로 구현
Project Manager
Scrum Master
- Scrum 개발론이 개발팀 에서 널리 사용 됨에 따라 scrum process를
관리하고 코치하는 직군이 생김