웹 서비스의 역사와 발전

shorry·2022년 2월 15일
0

Frontend

목록 보기
1/8

✔️인터넷과 웹의 출현


📌INTERNET의 출현

  • 1960년 군사목적으로 만들어졌다.
  • 당시 중앙집중적 통신 시스템은 핵 공격등 중앙 집중적인 타격으로부터 취약하였다.
  • 이에 핵 공격에도 견딜 수 있는 강인한 통신 시스템이 필요했고 INTERNET이 출현하였다.
  • 이후 WEB이 출현하면서 사용자에게 브라우저로 볼 수있는 페이지를 제공하면서 INTERNET이라는 통신 시스템이 대중적으로 사용되기 시작하였다.

📌WEB의 출현

  • INTERNET이 출현하고 30년 후인 1990년에 WEB이 출현 하였다.
  • 브라우저를 통해 정보를 전달하는 저장된 기능
  • 팀 버너스리가 World Wide Web이라는 이름으로 처음 만들었다.
  • 처음에는 세계 곳곳의 물리학자들과 빠른 통신 정보교류를 위해 생기게된 기술이다.
  • 이후에 WEB이 널리 퍼지게 되면서 WEBINTERNET의 대중화가 이루어졌다.

📌인터넷과 웹이 불러온 혁신

  • 가장 큰 혁신은 유통의 혁신이다.
    • 예전에는 소프트웨어를 구입하려면 물리적인 매개체가 필요했다. (ex. 게임CD)
    • 그러나 유통 과정이 혁신적으로 줄어들며 많은 개발자들이 창업을 하기 시작했다.
      => 닷컴붐, 실리콘밸리 형성
  • 웹 기반의 서비스 시작
    • 1세대 웹 서비스 = 정적인 사이트 ( HTML, CSS가 전부 )

✔️웹 시스템의 발전과 특징


📌1세대 웹 (정적 웹)

  • 웹 서버가 HTML 페이지 전체를 클라이언트에게 전송
  • 단순한 정보 제공 위주
  • 유저 인터렉션이 많이 요구되지 않는다.
  • HTML, CSS 자체가 정적이기 때문에, 만들어진 페이지가 정적이였다.

📌2세대 웹 (동적 웹)

  • 자바스크립트 + 유저 인터렉션 증가
  • 단순한 정적 페이지가 아닌 다이나믹한 요소들이 요구
  • 자바스크립트의 역할 증대 그러나 아직 일부분에서만 사용
    ( 하드웨어의 부담을 줄이기 위한 최적화 늘 필요 )
  • API의 개념이 아직 널리 사용되지 않음
  • 동일한 서버에서 HTML, 자바스크립트 / 데이터 둘 다 전송
  • 프론트와 백의 구분은 아직

📌3세대 웹 (Single Page Application, SPA)

  • Frontend + Backend
  • 웹 서버가 HTML 페이지 전체를 클라이언트에게 전송
  • 자바스크립트의 비중이 훨씬 커졌다
  • 단일의 HTML 페이지에서 전체 웹 사이트/서비스 를 구현
  • 웹 페이지 한번만 송수신. 실시간 데이터 주고 받으며 필요한 화면을 동적으로 구성.
  • 구조적 분리가 일어남. ( 프론트 서버 / 백엔드 서버 )
    • 즉 HTML/JavaScript 부분과 데이터 부분이 구조적으로 분리 되기 시작
      → Frontend 개발과 Backend 개발이 독립적으로 분리 (프론트 - UI UX / 백엔드 - Data)
      명확히 나뉘어진 두 개의 시스템으로 웹이 동작하게됨.
  • 이러한 구조적인 분리로인해 업무적인 분리 (프론트와 백의 분리) 가 일어 났다.

✔️3세대 이후 현대


📌현대의 웹

  • 유저 인터렉션의 중요성 증가 + 웹 복잡성 증가 + 사용자 수, 데이터 양 증가
    => 동접자 수 , 데이터 양의 문제가 발생
  • (하드웨어에 부담을 줄이기 위한) 최적화의 관점에서 무엇을 요청하느냐에 따라 나눠서 서버에 전송한다.
  • 여러 프론트 서버와 백 서버를 두고 트레픽들을 각각 분산을 시킨다.
  • Backend - API 서버의 세분화. 데이터 양 증가. (빅데이터 머신러닝 AI 등.....)
  • Frontend - 자바스크립트 발달. 복잡한 웹 기능 구현 가능. React.

📌현대 개발팀을 구성하는 여러 직군

🔘Product manager (기획자)

  • 개발하고자 하는 서비스를 정의, 기획, 관리
  • 개발관점 - Project Manager
  • 사용자입장 - Product Manager

🔘Designer

  • UI / UX 를 구현

🔘Frontend Developer

  • 프론트엔드 시스템을 구현
  • 사용자와 가장 밀접하게 연결되어 있는 개발자
  • 퍼블리셔라고 하는 HTML, CSS만 담당하는 고유 직군이 있음.

🔘Backend Developer

  • API 담당자 / 데이터 담당자
  • 데이터를 처리하고 관리.
  • 경력이 높을수록 더 난이도가 있는 뒷부분에 해당하는 시스템 많이 구현 (DevOps)

🔘DevOps (Development Operation)

  • 시스템 개발 + 시스템 운영 (Development + Operation)
  • 직군 이라기 보다는 개발 분야에서 나타나는 문화나 추세

🔘SysOps (System Operation)

  • 이전에 서버실의 하드웨어를 관리

🔘Data Scientist

  • 머신러닝, AI등의 데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당

🔘Data Engineeer

  • 데이터를 정리하고 정석화 시키는 시스템을 구현
  • 파이프라인 구축. 각종 데이터 적재하는 고민하는 일

🔘Tester

  • 시스템을 테스트하여 검증하는 역할 담당

🔘그 외.

  • Full Stack Developer
    • Frontend 와 Backend 를 모두 개발하는 개발자
    • Node.js를 통해 JavaScript로 둘 다 개발이 가능해지면서 Full stack Devloper 증가
  • Project Manger
    • 프로젝트 일정 및 출시관리 담당
  • Scrum Master
    • Scrum process를 관리 및 코치
      ( Scrum 개발론이 개발팀에서 널리 사용되면서 생김 )
  • Software Architecture
    • 규모가 굉장히 큰 시스템을 개발하는 회사는 시스템의 전체 구조 디자인을 담당하는 직군이 존재한다.
    • 주로 오래된 경력의 전문가 개발자들이 담당.
    • Scrum 개발론이 널리 적용되면서부터 많이 사라지고 있는 추세
    • 요즘 개발자들이 Scrum 절차에 따라 직접 시스템 디자인을 구현하고 발전시켜 나간다.


End.

profile
I'm SHORRY about that

0개의 댓글