[TIL] 세대별 Web 서비스의 특징

Eden·2022년 8월 2일
0

TIL

목록 보기
3/23

학습 목표

  1. 인터넷과 웹이 어떠한 형태로 출현 했는지 설명할 수 있다.
  2. 1세대, 2세대, 3세대 웹의 발전과 각각의 특징에 대해 설명할 수 있다.
  3. Frontend, Backend 가 언제부터 나뉘게 되었는지, 각각의 역할에 대해 이해한다.
  4. 현대 개발팀을 구성하는 여러 직군에 대해서 이해한다.

Web과 Internet의 출현

Internet

  • 인터넷(Internet)이란 여러 통신망을 하나로 연결한다는 Inter + Network 의미합니다.
  • 전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는 하나의 거대한 컴퓨터 통신망 입니다.
  • 즉 컴퓨터 네트워크를 의미합니다.
  • 1960년대, 인터넷의 탄생
    1960년에 군사목적으로 물리적으로 떨어져 있는 서버와 서버를 연결하기 위해 인터넷이 출현했다. 인터넷 출현 초기에는 기업, 연구소, 군대 등 거대한 기관에서 사용했다.

WEB

  • 웹이란?
    • "Collection of information which is accessed via the Internet."
    • 월드 와이드 웹(World Wide Web)은 인터넷 네트워크에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간
    • 간단히 줄여서 웹(Web)이라고 부름
  • 1990년, 웹의 탄생
    • 인터넷이 등장하고 30년 뒤인 1990년에 유럽 입자 물리 연구소(CERN)의 컴퓨터과학자인 팀 버너스리(Tim Berners-Lee)가 인터넷 기반 하이퍼텍스트 시스템인 세계 최초의 웹 브라우저인 WWW(World Wide Web)이라는 프로그램 개발

1세대 웹 서비스의 특징

1세대 정적인 웹.😶

  • 단순한 정보 제공 위주

  • 기능이 많지 않음

  • User Interaction 요구 없음

  • 로직(동적) 없음

  • HTML, CSS 자체가 정적

  • 서버가 HTML 페이지 전체를 클라이언트에게 전송

2세대 웹 서비스의 특징

2세대는 동적인 웹!🏄🏻‍♂️

  • 동적인 2세대 웹 서비스의 출현

  • 웹 기반의 언어 자바스크립트의 출현

  • 단순한 정적 페이지가 아닌 다이나믹한 요소들이 요구

  • 서버와 클라이언트가 HTML 페이지와 JavaScript 로직을 통해 필요한 데이터를 주고 받으며 User Interaction 구현

  • 아직 프/백 구분 없이 동일한 서버

    • 자바스크립트의 역할 증대, 하지만 JavaScript 는 일부분에서만 사용
    • 동일한 서버에서 HTML, CSS, Javascript, 그리고 Data 전부가 클라이언트로 전송되는 형태
    • 프론트엔드 / 백엔드 구분 없음

3세대 웹 서비스의 특징

3세대는 🧩🧩🧩

  • SPA (Single Page Application) 방식 등장
    • 단일의 HTML 페이지로 전체 웹 서비스 구현
    • 단일 HTML 페이지에 메인 Javascript 파일이 포함
    • JavaScript 가 HTML 요소 생성부터 모든 페이지 및 기능을 동적으로 처리
    • 웹 페이지 렌더링에 필요한 Javascript 코드는 최초의 통신에서 한번에 송수신
    • 그 이후로는 서버와 실시간으로 데이터를 주고 받으며 필요한 화면을 동적으로 구성
  • 프론트엔드와 백엔드 개발의 분리
    • 기존에는 서버가 페이지 구성에 필요한 모든 요소(HTML, JavaScript, Data)를 매번 전송
    • SPA 의 등장 (FE)
      • 웹 페이지 렌더링에 필요한 Javascript 코드는 최초의 통신에서 한번에 송수신
      • 그 이후로는 서버와 실시간으로 데이터를 주고 받으며 필요한 화면을 동적으로 구성
    • 자연스럽게 웹 브라우저가 필요한 서버와의 통신은 데이터 전송 및 연산 작업이 대부분이됨 (BE)
    • 서버의 분리 & 업무의 분리 → 프론트엔드와 백엔드 개발의 분리

3세대 웹에 존재하는 포지션과 그 역할

기획자 (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가 데이터를 분석할 수 있도록 데이터를 정리하는 시스템을 구현하는 역할

profile
one part.

0개의 댓글