백엔드 로드맵 : https://roadmap.sh/backend
로드맵을 따라 처음인 네트워크부터 배우겠습니다.
카테고리 : 네트워크
인터넷
- 여러 통신망을 하나로 연결하는 거대한 컴퓨터 통신망
- 클라이언트와 서버가 연결되어 구성된 망을 컴퓨터 네트워크 라고 하며, TCP/IP 프로토콜을 통해 제공됨.
- 즉, 수많은 컴퓨터 네트워크들로 구성된 집합체이다.
- 인터넷은 서로 동시에 참여할 수 있는 쌍방향 통신을 제공한다.
TCP/IP 프로토콜
- IP(인터넷 프로토콜) : 네트워크 상에서 컴퓨터의 고유한 주소. 총 4바이트로 0.0.0.0 형태이며 각 숫자는 256까지 가능하다.
- TCP(전송 제어 프로토콜) : 클라이언트와 서버간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜.
- 근거리통신망(LAN), 원거리 통신망(WAN), 인트라넷, 인터넷 등 컴퓨터에서 실행되는 프로그램 간에 데이터를 안정적이고, 에러없이 데이터를 교환 가능하게 합니다.
DNS 주소
- 도메인 : WWW.NAVER.COM과 같은 도메인 이름을 통해 온라인에 접근한다.
- 이때 DNS는 브라우저가 도메인 이름을 IP주소로 변환하여 서버에서 인터넷 자원을 받을 수 있게 하는 시스템이다.
DNS의 작동 원리
- DNS는 세가지 요소로 구성된다
- 도메인 네임 스페이스 : 네임 서버에서 도메인 주소를 관리하는 방법 또는 관리 단위.
- 네입 서버 : 도메인 주소를 관리하기 위해 사용하는 DNS 전용 서버. DNS 서버라고도 한다.
- 리졸버 : DNS 상의 클라이언트. 네임 서버에게 도메인 주소에 대한 IP주소를 물어보는(반대여도 마찬가지) 장비 또는 프로그램.
- 사용자의 PC가 될 수도, 네임 서버가 될 수도.
- 작동 원리 www.naver.com -> www : 3차 도메인 , naver : 2차 도메인, com : 1차 도메인
- 사용자는 크롬 브라우저에 "www.naver.com" 검색
- 클라이언트(리졸버)가 www.naver.com에 대해 DNS 조회.
3, 캐시 네임 서버(ISP에서 운영하는 캐시 네임 서버)에 www.naver.com에 대한 값이 있다면 바로 IP 주소 가지고 웹 페이지 표시.
없다면 루트 네임 서버에 www.naver.com에 대한 응답 요청 - 루트 네임 서버는 com 네임 서버의 IP 주소를 캐시 네임 서버에 전달
- 캐시 네임 서버는 com 네임 서버에 www.naver.com에 대한 응담 요청
- com 네임 서버는 naver 네임 서버의 IP 주소를 캐시 네임 서버에 전달
- 캐시 네임 서버는 naver 네임 서버에 www.naver.com에 대한 응답 요청
- naver 네임 서버는 www.naver.com의 IP 주소를 캐시 네임 서버에 전달
- 캐시 네임 서버는 www.naver.com의 IP 주소를 클라이언트(리졸버)에 전달
- 클라이언트는 이 IP 주소를 가지고 www.naver.com에 접속

HTTP 프로토콜
- 데이터를 주고 받기 위한 프로토콜이며, 서버와 클라이언트 모델을 따른다.
- 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless 특징을 가진다.
- 장점
- 통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단.
- 각각의 HTTP 요청에 독립적으로 응답만 보내주면 OK
- 단점
- 이전 통신의 정보를 모르기 때문에 매번 인증 해야한다
- 해결하기 위해 쿠키, 세션을 사용해서 데이터를 처리한다.
- 장점
HTTPS 프로토콜
- HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에, 제 3자에 의해 조회될 수 있습니다.
- HTTP에 SSL을 추가한 프로토콜이 HTTPS 입니다.
- SSL(Secure Socket Layer) : 인터넷을 통해 전달되는 정보를 보호하기 위해 개발한 통신 규약
- HTTP는 원래 TCP와 통신하지만, HTTPS에서는 HTTP가 SSL과 통신 후 SSL이 TCP와 통신해서 암호화, 증명서 등 보호가 가능하다.
웹
- 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간이지만, 인터넷과 같은 의미로 많이 사용됩니다.
- 웹은 텍스트, 그림, 소리, 영상 등과 같은 멀티미디어 정보를 하이퍼텍스트 방식으로 연결하여 제공합니다.
- 하이퍼텍스트 : 문서 내부에 또 다른 문서로 연결되는 참조를 집어 넣음으로써 웹 상에 존재하는 문서끼리 참조할 수 있는 기술.
- 이때 참조를 하이퍼 링크 라고 부릅니다.
- 하이퍼텍스트 : 문서 내부에 또 다른 문서로 연결되는 참조를 집어 넣음으로써 웹 상에 존재하는 문서끼리 참조할 수 있는 기술.
웹 브라우저
- HTML(하이퍼 텍스트 마크업 언어) 를 사용하여 작성된 하이퍼텍스트 문서를 웹 페이지라고 하며,
- 웹 페이지 중에서 서로 관련된 내용으로 작성된 웹 페이지들의 집합을 웹 사이트 라고 한다.
- 웹은 수많은 웹페이지들이 하이퍼 링크를 통해 서로 연결되어 구성됩니다.
- 웹 브라우저 : 웹 페이지를 검색하기 위해 사용하는 프로그램.
인터넷 연결 원리
- 가깝거나 소규모의 컴퓨터끼리의 연결은 케이블, 와이파이, 블루투스와 같은 것으로 연결이 가능하다.
- 하지만, 대규모가 되면 컴퓨터끼리 연결도 힘들어서 컴퓨터 사이에 중재자 역할인 라우터를 활용한다.
- 라우터 : 특수한 소형 컴퓨터로 여러 컴퓨터에 연결되어서 테이터를 받아 잘 전달해주는 역할만 하는 간단한 컴퓨터.
- 여기까진 가까운 컴퓨터끼리는 연결이 되지만, 멀어지면 모뎀을 써야한다.
- 모뎀 : 우리의 네트워크와 연결되어, 외부에 전화 시설과 연결해주는 기계.
- (전화 시설에 사용되는 데이터와 컴퓨터에 사용되는 데이터 교환해주는 기계)
- 이제 모뎀이 외부 ISP로 데이터를 전송, ISP가 연결을 원하는 지역의 ISP로 전송, 이 ISP가 모뎀, 라우터를 거쳐서 원하는 컴퓨터로 전송한다.
- ISP : 인터넷 서비스 제공 업체로 몇몇 특수한 라우터를 관리하고 다른 ISP에 액세스 할 수 있는 회사. SKT, KT, LG 등이 있다.

포트 포워딩
- 공유기의 포트를 통해 이 공유기와 연결된 기기들의 특정 포트에 진입할 수 있게 하는 기능.
- 만약, 공유기와 핸드폰이 연결되어 있다. 이때 외부에서 공유기 IP + 포트번호를 입력하면 공유기의 어느 기기 의 포트로 들어가야 하는지 모른다. 따라서 포트 포워딩은 공유기에 연결된 기기(컴퓨터나 핸드폰)의 포트를 특정 포트(번호)를 통해 전달(포워딩) 해주는 것이다.
웹 동작 원리
- 사용자가 브라우저에 URL(www.naver.com) 입력
- DNS 가 서버 IP 찾아옴.
- IP 주소로 웹 서버에 TCP 3 HANDSHAKE 로 연결 수립
- 클라이언트는 웹 서버로 HTTP 요청 메시지 보냄
- 웹 서버는 HTTP 응답 메시지를 보냄
- 도착한 HTTP 응답 메세지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력.

네트워크 1 끝.
다음 게시글 네트워크 2
https://hoozy.tistory.com/entry/%EB%B0%B1%EC%97%94%EB%93%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-2
[백엔드] 네트워크 2
이전 게시글 네트워크 1 https://hoozy.tistory.com/entry/%EB%B0%B1%EC%97%94%EB%93%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1 카테고리 : 네트워크 쿠키와 세션 쿠키 : HTTP의 일종으로 사용자의 컴퓨터에 저장하는 작은 기
hoozy.tistory.com
참고 자료
https://dev-coco.tistory.com/161
https://development-crow.tistory.com/3
https://hyunie-y.tistory.com/23
https://susoterran.github.io/other/dns_process/
'CS > 네트워크' 카테고리의 다른 글
[백엔드] 네트워크 2 (0) | 2023.03.05 |
---|
댓글