[210706 TIL - (1)] Internet & Web

Choi Rim·2021년 7월 6일
0

Way to developer

목록 보기
12/21
post-thumbnail

웹 서비스의 역사와 발전

Internet & Web

  • Internet
    • network를 연결해서 통신하는 것
    • 처음에 만들어질 땐 군사목적으로 만들어짐
    • 핵 공격에도 강인한 통신 시스템과 멀리 있어도 통신 가능한 시스템을 만들기 위해 Internet이 탄생함
  • Web
    • Web을 발명하며 Internet이 대중화됨
    • 스위스에서 팀 버너스리가 world wide web이라는 최초의 웹을 개발함.

Internet이 발전되며 수혜받은 곳

  • 유통업계
    • 예전에는 소프트웨어를 구입하려면 매개체가 필요했다
    • 이런 유통의 과정이 인터넷을 통해 줄어들며 많은 개발자들이 창업을 시작했다.
    • 이와 함께 실리콘 밸리(Yahoo, Google, Amazon) 이 형성되었다.
    • 닷컴붐 (Dot-com bubble) (2000년대)
      수많은 닷컴들이 생겨나고, 사라짐
    • 정적 웹사이트들이 생겨남 (동적이지 않는 웹 사이트, HTML & CSS 만으로 만든 웹사이트), 1세대 웹서비스

Web History

정적 웹 / 1세대 웹

  • HTML & CSS만 사용해서 웹 사이트를 만들어 정적
  • 웹 서버가 HTML 페이지 전체를 클라이언트 (웹 서버)에게 전송
  • 사용자와 상호작용 하지 않음

동적 웹 / 2세대 웹

  • Javascript
  • 사용자와 상호작용
  • 다이나믹한 요소 추가 (팝업 등, 더 매력적인 사이트를 만들기 위해)
  • HTML & Javascript를 통해 서버와 필요한 데이터를 주고 받으며 User interaction을 구현
  • 아직 Javascript는 일부만 사용
  • API의 개념, 아직 널리 사용되지 않음
  • 동일한 서버에서 HTML, Javascript 동시에 전송

3세대 웹

  • FrontEnd (UI/UX) / BackEnd (Data) 업무가 분리됨
  • 웹 서버가 HTML 페이지 전체 클라이언트에게 전송
  • Javascript >>>>> HTML, CSS
  • SPA (Single Page Application) 등장
    • 하나의 파일로 전체 사이트를 구현하는 것
    • 단일의 html 페이지에서 전체 웹 사이트와 서비스를 구현하는 것이 다.
    • 기존의 방식처럼 서버가 페이지 구성에 필요한 모든 요소(HTML, JavaScript, Data)를 매번 전송하는 것이 아니라, 파일은 처음 한번만 송수신하고 그 뒤로는 실시간 데이터만 주고 받는다.
    • 이렇게 처음 전송된 단일 HTML 페이지에는 JavaScript가 포함되어 있고 여기서 필요한 데이터를 API 서버로부터 호출하여 필요한 화면을 다이나믹하게 구성해주는 방식이다.
    • 그래서 HTML, JavaScript 와 데이터 부분 이 명확히 나눠질 수 있었다.

Database & API

  • Database
    • 데이터가 정제되기 전 모여있는 저장소
  • API
    • 데이터가 좀 더 기능적으로 나뉘는 장소

Modern Web

  • 현대의 웹은?
    • 복잡해지고, 세분화됨
    • User Interaction 높아짐, 웹 복잡성 높아짐, 사용자수와 데이터 양 많아짐
    • 동시 접속사 수, 데이터 양이 많아서 어떻게 처리할 지 문제
    • System Architecture의 발전
      • FE / BE 분리
        • FE - 자바스크립트 (Node.js, React), 복잡한 웹 기능 구현
        • BE - API 서버의 세분화, 데이터의 관리

System Architecture이란

  • 시스템 목적을 달성하기위해 시스템의 상호작용등의 시스템디자인에 대한 제약 및 설계이다
  • 쉽게 말해서 시스템을 구조적으로 설계하는 것이다.
    • 최적화를 목표로 두고 시스템 구성과 동작원리 그리고시스템의 구성환경 등을 설명 및 설계하는 청사진 또는 설계도

Development Team

기획자 (PM, Product Manager)

  • 개발 서비스 정의와 기획

디자이너

  • UI (User Interface) 및 UX (User Experience) 구현
  • 사용자가 직접 경험하고 사용하는 서비스를 눈에 보기 좋게, 편리하게 디자인 하는 역할

Frontend Developer

  • HTML & CSS & Javascript 시스템 구현
  • 사용자와 밀접
  • 퍼블리셔라는 HTML & CSS 만 담당하는 고유 직군도 있음

Backend Developer

  • 크게 두 개로 나뉠 수 있음
    • API 개발자 (좀 더 앞쪽)
    • 데이터 수집, 분석, 관리 등 데이터 관련 시스템 개발 (좀 더 뒤쪽)

DevOps

  • 개발과 시스템 같이 운영

Data Scientist

  • Machine learning & AI

Data Engineer

  • 데이터 정리 & 정석화 시스템 구현

Tester

  • 시스템을 테스트 하며 검증

그외

Full Stack Developer, Project Manager, Scrum Master, Software Architecture 등 ..

<참고>

profile
https://rimi0108.github.io/

0개의 댓글