본문 바로가기

dev

[WEB] 웹? 네트워크? 인터넷? 브라우저? 클라이언트? 서버?

내가 그리고 우리가 개발 공부를 하던 중 힘든 게 뭐가 있을까?

아마 용어에 대한 정의가 힘들 것이다

사실 개발공부 뿐만이 아니라 어느 분야든 마찬가지겠지만

 

내가 이것이 어떤 건지 아는 것과 남에게 이것이 무엇이다라고 설명할 수 있는 건 큰 차이가 있다

기능이나 사용방법은 알아도 정확한 정의나 의의에 대해선 소홀히 하고 넘어갈 수 있는데

나는 그런 방식보다는 그래도 한번은 보고 넘어가는 걸 선호한다

 

근데 위코드 커리큘럼 상 내 입을 열어 지식을 강제로 쑤셔 넣어야 하기 때문에 소홀히 하고 넘어간 것 같다

1차 프로젝트가 끝난 이 시점에 인터넷에 대한 기초 정의를 포스팅하는 건 바로 그 소홀함에 대한 반성이다


Network

A computer network is a set of computer sharing resources located on or provided by network nodes

위키피디아에 컴퓨터 네트워크를 검색하면 나오는 원문이다

근데 이건 computer network 의 정의고 network의 정의는 그럼 따로 굳이 한글로 표현해보자면

 

두개 이상의 개체가 서로 그물망처럼 연결되어 어떠한 것을 공유하는 집합, 체계, 시스템이라고 표현할 수 있겠다

 

원문의 node 가 연결망의 교점인데

그 node가 사람이 된다면 social network 

컴퓨터가 된다면 computer network 라고 할 수 있겠다


Internet

전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는 하나의 거대한 컴퓨터 통신망(네트워크)

Web

인터넷 네트워크를 이용하여 통신되는 정보의 집합

 

인터넷이라는 네트워크 기능 안에 웹이라는 서비스가 존재함

현재까지 총 3세대의 웹으로 구분할 수 있음

 

웹의 등장으로 달라진 것들

  • 정보 유통이 발전됨
  • 물리적인 매개체 없이도 소프트웨어를 구입하고 공유할 수 있음
  • 1세대 웹 서비스가 시작

Tim Berners-Lee : 웹의 아버지, 1990년 세계 최초의 웹 브라우저인 WWW이라는 프로그램 개발

http://info.cern.ch/

 

Client

웹 서비스를 사용하는 고객

우리에게 가장 친숙한 예시로는 Web Browser(크롬, IE, 파이어폭스 등등)

 

Server

웹 서비스를 제공하는 제공자

만약에 내 컴퓨터가 웹 서비스를 제공한다면 내 컴퓨터가 서버가 된다

과거의 물리적인 서버를 사용하던 방식에서 요즘은 클라우드 형식의 서버를 많이 사용한다

물론 산업군 특성 등의 이유로 물리적인 서버를 사용하는 곳도 많다

 

웹의 발전 역사

 

1세대 웹

  • 1세대 웹
    • 정적인 웹 사이트
      • html, css 로 웹페이지 구현
      • 서버가 html 페이지 전체를 클라이언트에게 전송
      • User interaction , logic 없음
    • Front / Back 구분 없이 동일한 서버
      • html, css, data 전부가 클라이언트로 전송됨 

 

2세대 웹

  • 2세대 웹
    • 동적인 웹 사이트 
      • 웹 기반 언어인 자바스크립트 출현
      • 서버가 html 페이지와 JS 로직을 통해 필요한 데이터를 클라이언트에게 전송
      • 따라서 User interaction 구현 가능
    • Front / Back 의 구분은 아직 없음
      • html, css, Javascript, data 전부가 클라이언트로 전송됨

 

3세대 웹

  • 3세대 웹
    • SPA(Single Page Application) 방식 등장
      • Javascript가 포함 된 1개의 html 페이지로 전체 웹 서비스 구현
      • Javascript가 html 요소 생성부터 모든 페이지 및 기능을 동적으로 처리
      • 랜더링에 필요한 JS 코드는 최초 통신에서 한번에 송수신한 후 실시간으로 서버와 클라이언트 간의 데이터 전송
    • Front-end / Back-end 분리
      • FE: 웹 페이지 렌더링에 필요한 코드는 최초 통신에서 한 번에 송수신
      • BE: 웹 브라우저가 필요한 서버와의 통신은 데이터 전송 및 연산 작업
      • 서버가 분리됨에 따라 업무도 분리

 

  • 현재의 웹
    • 웹 서비스의 복잡성 증가
      • 유저 인터렉션의 중요성 증가
      • 사용자 수와 데이터의 양이 증가
    • System Architecture 발전
      • 프론트 엔드 서버와  백 엔드 서버가 분리
      • 백엔드 API 서버의 세분화
      • API Gateway : 데이터 요청 분산 처리

 

'dev' 카테고리의 다른 글

[wecode] project 회고록  (0) 2022.03.27
[Docker] 도커란??  (0) 2022.03.15
[wecode] project 회고록  (0) 2022.03.13
[project] wecode 1st project - ChickIN  (0) 2022.03.07
보수연산?? 그게 뭔데..  (0) 2022.02.06