내가 그리고 우리가 개발 공부를 하던 중 힘든 게 뭐가 있을까?
아마 용어에 대한 정의가 힘들 것이다
사실 개발공부 뿐만이 아니라 어느 분야든 마찬가지겠지만
내가 이것이 어떤 건지 아는 것과 남에게 이것이 무엇이다라고 설명할 수 있는 건 큰 차이가 있다
기능이나 사용방법은 알아도 정확한 정의나 의의에 대해선 소홀히 하고 넘어갈 수 있는데
나는 그런 방식보다는 그래도 한번은 보고 넘어가는 걸 선호한다
근데 위코드 커리큘럼 상 내 입을 열어 지식을 강제로 쑤셔 넣어야 하기 때문에 소홀히 하고 넘어간 것 같다
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이라는 프로그램 개발
Client
웹 서비스를 사용하는 고객
우리에게 가장 친숙한 예시로는 Web Browser(크롬, IE, 파이어폭스 등등)
Server
웹 서비스를 제공하는 제공자
만약에 내 컴퓨터가 웹 서비스를 제공한다면 내 컴퓨터가 서버가 된다
과거의 물리적인 서버를 사용하던 방식에서 요즘은 클라우드 형식의 서버를 많이 사용한다
물론 산업군 특성 등의 이유로 물리적인 서버를 사용하는 곳도 많다
웹의 발전 역사
- 1세대 웹
- 정적인 웹 사이트
- html, css 로 웹페이지 구현
- 서버가 html 페이지 전체를 클라이언트에게 전송
- User interaction , logic 없음
- Front / Back 구분 없이 동일한 서버
- html, css, data 전부가 클라이언트로 전송됨
- 정적인 웹 사이트
- 2세대 웹
- 동적인 웹 사이트
- 웹 기반 언어인 자바스크립트 출현
- 서버가 html 페이지와 JS 로직을 통해 필요한 데이터를 클라이언트에게 전송
- 따라서 User interaction 구현 가능
- Front / Back 의 구분은 아직 없음
- html, css, Javascript, data 전부가 클라이언트로 전송됨
- 동적인 웹 사이트
- 3세대 웹
- SPA(Single Page Application) 방식 등장
- Javascript가 포함 된 1개의 html 페이지로 전체 웹 서비스 구현
- Javascript가 html 요소 생성부터 모든 페이지 및 기능을 동적으로 처리
- 랜더링에 필요한 JS 코드는 최초 통신에서 한번에 송수신한 후 실시간으로 서버와 클라이언트 간의 데이터 전송
- Front-end / Back-end 분리
- FE: 웹 페이지 렌더링에 필요한 코드는 최초 통신에서 한 번에 송수신
- BE: 웹 브라우저가 필요한 서버와의 통신은 데이터 전송 및 연산 작업
- 서버가 분리됨에 따라 업무도 분리
- SPA(Single Page Application) 방식 등장
- 현재의 웹
- 웹 서비스의 복잡성 증가
- 유저 인터렉션의 중요성 증가
- 사용자 수와 데이터의 양이 증가
- 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 |