wecode 2. 웹의 역사와 발전

윤남주·2021년 12월 29일
0

wecode archive

목록 보기
2/13
post-thumbnail

인터넷과 웹

🌐 인터넷
전세계 컴퓨터들이 서로 연결되는 하나의 거대한 네트워크
디지털 데이터를 기존의 아날로그 통신망을 활용하여 전달

🕸
인터넷 네트워크를 이용하여 통신되는 정보의 집합
Tim Berners-Lee가 최초의 웹브라우저인 WWW 개발

웹 (서비스) 인터넷 (기능)


웹의 세대 별 발전 방향과 특징

🐥 1세대

  • 정적 웹 : HTML, CSS
  • 단방향 통신 : 서버 → 클라이언트
  • User Interation/로직에 대한 니즈 없음
  • 단순 정보 제공

🐓 2세대

  • 동적 웹 : Javascript 발전 (기초적)
  • 양방향 통신 : 서버와 클라이언트가 서로 통신, interaction 가능
  • 한 서버에서 HTML, CSS, JS와 필요한 데이터들이 모두 클라이언트에게 전송

🦢 3세대

  • FE/BE 서버의 분리 : 웹브라우저가 서버에게 HTML/CSS/JS를 계속 받아오지 않아도 됨
  • SPA의 발전 : Javascript가 모든 기능을 동적으로 처리

SPA의 동작방식

SPA (Single Page Application) 는

  1. 웹 페이지 렌더링에 필요한 Javascript 코드를 최초의 통신에서 한번에 송수신
  2. 서버와 실시간으로 데이터를 주고받으며 필요한 화면을 동적으로 구성

하는 방식으로 동작 → FE

이로인해 웹 브라우저는 서버와의 통신하여

  1. 필요한 데이터 전송
  2. 연산 작업

만 수행하면 되도록 분리됨 → BE


프론트엔드/백엔드 분리의 배경

웹의 발전과 함께 복잡성 증가

  • User interaction의 필요성 증가
  • 사용자 수 증가
  • 데이터 양 증가

→ 많은 동접자수와 커진 데이터양을 처리할 방법이 필요해짐


✨ 새로운 아키텍쳐로 극복

  • 프론트엔드와 백엔드의 서버 분리
  • 백엔드 API 서버의 세분화
  • 데이터 요청 분산 처리(트래픽 담당 → API 게이트웨이)

모던 웹 아키텍처의 구성

🎁 Product

클라이언트 (웹 브라우저, 모바일, 클라이언트 API, 기타)

프론트엔드 서버

백엔드 서버 (API 게이트웨이, API 서버들, Database)

⚙️ Dev System, Hardware


개발 직군

🎁 Product

PM (Project Manager)
기획자. 개발하고자 하는 제품을 정의하고 기획함 (비즈니스 로직 중요)

디자이너
사용자가 사용하는 제품을 보기 좋게, 만족감을 주도록 디자인
UI (User Interface) | UX (User Experience)

Scrum Master
프로젝트 매니저. 일정과 출시 관리를 담당
scrum 방법론에 맞춰 scrum process를 관리하고 코칭함

Tester
QA (Quality Assurance) : 직접 테스팅을 실행하는 직무
Software Engineer in Test / Test Automation Engineer : 자동 테스트 시스템을 만드는 개발자


🦄 Frontend

Frontend Developer
HTML, CSS, Javascript로 프론트엔드 시스템을 구현
클라이언트와 가장 가까운 개발자

Publisher
HTML, CSS만 담당하는 직군


🚀 Backend

Backend Developer
서비스의 백엔드 시스템을 개발

  • API 개발
  • 데이터 수집, 분석, 관리 등의 시스템을 개발
  • DevOps

⚙️ System & Data

DevOps (Development Operations)
개발 뿐만 아니라 시스템 운영까지 담당하는 역할

SysOps (System Operations)
시스템 인프라의 구현과 관리, 운영을 담당하는 직군
실제 하드웨어 다룸 (data center 등) → 클라우드 서비스 증가로 DevOps 개발자로 흡수되는 추세

Software Architecture
큰 규모의 시스템의 전체 구조 디자인을 담당하는 직군
오랜 경력의 개발자들이 담당

Data Engineer / Data Scientist
엔지니어는 데이터를 정리하는 시스템을 구현함
사이언티스트는 데이터 분석에 필요한 알고리즘, 모델링을 구현
→ 로우 데이터로 새로운 정보와 가치 창출

profile
Dig a little deeper

0개의 댓글