웹 서비스의 역사와 발전

정진우·2022년 5월 11일
0

TIL

목록 보기
48/54
post-thumbnail
post-custom-banner

웹이란?

  • 월드 와이드 웹(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를
    관리하고 코치하는 직군이 생김
profile
프론트엔드 개발자를 꿈꾸는
post-custom-banner

0개의 댓글