웹 서비스의 역사와 발전

deokyeong1020·2020년 9월 28일
0

check point

  • 인터넷과 웹이 어떠한 형태로 출현하였는지?
  • 1세대, 2세대, 3세대 웹의 발전과 각각의 특징이 무엇인지?
  • Frontend, Backend 가 언제부터 나누어지었고 각각의 역할이 무엇인지?
  • 현대 개발팀을 구성하는 여러 직군들이 어떻게 일을 하는지?

1. &nbsp인터넷과 웹이 어떠한 형태로 출현하였는지?

인터넷은 1960년대에 등장한 것이다. 처음에는 군사 목적으로 출현하였는데, 전쟁시에도 문제없이 통신할 수 있는 강력한 커뮤니케이션 도구의 필요성에 의하여 등장한 도구이다. 물리적으로 떨어져있는 서버와 서버의 연결을 가능하게 해주는 강력한 통신도구, 그것이 인터넷이다.
그렇다면 웹은? 웹은 단순히 인터넷에서 이용할 수 있는 '서비스'라는 한 부분이다.
1990년대부터 팀 버너스리라는 사람에 의하여 대중화 될 수 있었다.
cf) 첫 웹 브라우저 "world wide web"이라는 프로그램을 개발

이러한 인터넷의 출현은 유통의 혁신을 가져왔다.
예전에는 소프트웨어를 구입하려면 어떠한 물리적인 매개가 필요하였으나 이제는 서버상으로 주고받을 수 있게 되었기 때문이다. 이러한 혁신은 2000년대 닷컴버블을 일으켰고 자연스럽게 실리콘벨리를 형성하였다.

2. &nbsp웹의 발전 (1세대,2세대,3세대)

1세대 웹 서비스 - 전통적인 Web System Architecture. 정적 웹.

(HTML, CSS로만 구성)

클라이언트 <----- 웹 서버

  • 웹 서버가 HTML 페이지 전체를 클라이언트(ex. Web browser)에게 전송
  • 초창기 웹사이트는 단순한 정보를 제공하는 정도였기 때문에, 특별한 기능이 많지 않았고 UI도 많이 요구되지 않았다.
  • 1세대 웹이 정적인 이유? HTML, CSS 자체가 정적
    • Hyper Text : 링크로 연결된 문서
    • Markup Language : “이렇게 보여줘라” 에 대한 지시
    • HTML : 웹페이지의 내용을 브라우저에게 어떻게 렌더링(rendering) 해주라고 마크업 해주는 것

2세대 웹 서비스 - User Interaction 의 증가. 동적 웹 (자바스크립트).

클라이언트 <-----> 웹 서버(프론트, 백엔드 영역)

  • 웹서비스들이 점점 발전함에 따라 단순한 정적 페이지가 동적 요소들이 요구되시 시작
  • 웹 기반의 언어인 자바스크립트가 출현. 자바스크립트의 역할이 커지기 시작함.
    cf) 그 이전의 언어들은 브라우저에서 작동하지 않았다.
  • 이렇게 2세대 웹 서비스가 출현
  • Web server에서 전체 HTML 페이지 뿐만이 아니라 JavaScript를 통해 서버와 필요한 데이터만 주고 받음으로 동적인 user interaction을 구현하게 되었다.
  • 그러나 아직 JavaScript 는 일부분에서만 사용되었고, 또한 현재 통용되는 API 의 개념이 아직은 널리 사용 되지 않음동일한 서버에서 HTML, Javascript(프론트 영역) 데이터(백엔드 영역) 둘 다 전송.

3세대 웹 서비스 - SPA. 구별되기 시작하는 Frontend / Backend.

  • 동적인 기능이 주가 되기 시작하고 그 안에 일부 HTML, CSS 가 포함된 형태로 바뀌었다.
  • 이게 바로 SPA(Single Page Application) - 하나의 파일로 전체 사이트를 구현
  • 이름 그대로, 단일의 html 페이지에서 전체 웹 사이트/서비스를 구현.
  • 기존의 방식대로 서버가 페이지 구성에 필요한 모든 요소(HTML, JavaScript, Data)를 매번 전송하는 것이 아니라, 파일은 처음 한 번만 송수신. 그 뒤로는 실시간 데이터만 주고 받으된다.
  • 제일 처음 전송된 단일 HTML 페이지에 포함되어 있는 JavaScript 에서 필요한 데이터를 API 서버로부터 호출하여 필요한 화면을 동적으로 구성해주는 방식.
  • 이것이 프론트엔드와 백엔드가 나뉘게 되는 시점이다.
  • 즉 HTML/JavaScript 부분과 데이터 부분이 구조적으로 분리 되기 시작
  • Frontend 개발과 Backend 개발이 독립적으로 분리 (프론트 - UI UX / 백엔드 - Data)
  • 명확히 나뉘어진 두 개의 시스템으로 웹이 동작하게됨.
  • 프론트엔드가 개발의 혁신이 빠른 이유도 이 분야 자체의 역사가 짧음.
  • Fronetend 와 Backend가 구조적으로 분리가 되면서, Frontend 서버와 Backend API 서버도 분리가 되며 그에 따라 Frontend 개발과 Backend 개발 업무가 분리가 되는 구조로 발전된다.

3. &nbspModern WEB - 규모가 커지기 시작한 Web System의 발전

웹이 기능적, 서비스적으로 발전함에따라 이전에 겪지 못했던 두 가지 문제가 발생하기 시작하였다.
바로 동시접속자, 어마어마한 데이터의 양이 그것인데, 그래도 덕분에 System architecture 의 발전도 이끌어 낼 수 있었다.

Frontend 서버와 Backend 서버의 분리

  1. Backend :

    • Micro Service Architecture 등의 새로운 architecture 개념의 발전으로 API 서버들이 훨씬 더 세분화 되며 규모가 커짐

    • 분석해야 하는 데이터의 양이 엄청나게 늘어나면서 소위 "Big Data" 분석 시스템이 많은 회사들의 backend 시스템을 도입

    • 데이터를 통해 Insight 를 도출해내는 것이 중요한 과제 (ex. 추천 상품, 음악 플레이리스트 추천)

    • 게다가 최근에는 ML(Machine Learning)과 AI 기술의 발달로 많은 회사들이 ML과 AI 시스템도 활용하게 됨으로 backend 시스템은 계속해서 방대해지는 추세

  2. &nbspFrontend :

    • Node.js 와 React 등의 JavaScript 엔진과 프레임워크/라이브러리의 발달로 웹에서 더 복잡한 기능 구현이 가능해졌다. 심지어 Node.js 의 발전으로 프론트 개발자가 간단한 백엔드 기능을 직접 구현하는 일도 요즘은 흔함.
profile
일일 개발 기록 블로그

0개의 댓글