본문 바로가기
스터디 트래블/CS

1. 네트워크 기본

by 유니프 2025. 4. 29.
반응형

네트워크 기본 개념 정리

 

OSI 7계층, TCP/IP 4계층 구조

  • OSI 7계층은 네트워크 통신 과정을 7단계로 나눈 국제 표준 모델로, 각 계층이 특정 기능을 담당합니다. 하위부터 물리(1), 데이터링크(2), 네트워크(3), 전송(4), 세션(5), 표현(6), 응용(7) 계층으로 구성되어 있습니다. 각 계층은 계층 간 독립성을 보장하여 네트워크 기술의 표준화와 호환성을 높입니다.
  • TCP/IP 4계층은 실제 인터넷에서 주로 사용되는 구조로, OSI 7계층을 간소화한 모델입니다. 네트워크 접근, 인터넷, 전송, 응용 계층으로 구성되며, 각각 이더넷, IP, TCP/UDP, HTTP 등의 프로토콜이 동작합니다. 데이터는 상위 계층에서 하위 계층으로 이동할 때마다 헤더가 추가(캡슐화)되고, 수신 측에서는 역순으로 헤더를 해석(역캡슐화)합니다.

 

HTTP/HTTPS 프로토콜, REST 원칙, 상태코드

  • HTTP(Hypertext Transfer Protocol)는 웹 클라이언트와 서버 간 데이터 전송에 사용되는 애플리케이션 계층 프로토콜입니다. 클라이언트-서버 구조, 요청/응답 방식, 비연결성(Stateless)이 특징입니다. HTTP 메시지는 요청(Request)과 응답(Response)으로 구분되며, 각 메시지는 시작줄(Start Line), 헤더(Header), 바디(Body)로 구성됩니다.
  • HTTPS는 HTTP에 SSL/TLS 암호화 계층을 추가한 프로토콜로, 데이터 전송 시 기밀성과 무결성, 서버 신원 인증을 보장합니다. HTTPS는 중간자 공격, 스니핑 등 보안 위협을 방지합니다.
  • REST 원칙: REST(Representational State Transfer)는 웹 아키텍처 스타일로, 클라이언트-서버 구조, 무상태성(Stateless), 캐시 처리 가능(Cacheable), 일관된 인터페이스(Uniform Interface), 계층화 시스템(Layered System), 필요시 코드 온 디맨드(Code on Demand) 등의 6가지 원칙을 따릅니다. 이를 통해 확장성과 유연성을 확보합니다.
  • HTTP 상태코드: 서버가 클라이언트 요청에 대해 응답하는 세 자리 숫자 코드입니다. 1xx(정보), 2xx(성공), 3xx(리다이렉션), 4xx(클라이언트 오류), 5xx(서버 오류)로 분류됩니다. 대표적으로 200(OK), 301(영구 이동), 404(찾을 수 없음), 500(서버 오류) 등이 있습니다.

 

DNS, 로드밸런싱, 프록시, CDN

  • DNS(Domain Name System)는 사람이 읽기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 시스템입니다. 계층적 구조, 분산 데이터베이스, 캐싱, 다양한 레코드 타입(A, CNAME 등)이 특징입니다.
  • 로드밸런싱은 여러 서버에 트래픽을 분산하여 특정 서버의 과부하를 방지하고, 서비스 가용성과 확장성을 높이는 기술입니다. 라운드로빈, 가중치, 최소 연결, IP 해시 등 다양한 분산 알고리즘이 있습니다.
  • 프록시 서버는 클라이언트와 서버 사이에서 중개 역할을 하며, 익명성 제공, 캐싱을 통한 속도 향상, 보안 및 접근 통제 등의 기능을 수행합니다.
  • CDN(Content Delivery Network)은 전 세계 여러 지점에 캐시 서버를 두고, 사용자와 가까운 서버에서 콘텐츠(HTML, 이미지, JS 등)를 제공함으로써 응답 속도를 높이고 트래픽 병목을 해소합니다. 정적/동적 캐싱, 로드밸런싱, 장애 대응 등이 주요 기능입니다.

 

소켓 통신, WebSocket, Keep-Alive, CORS

  • 소켓 통신은 네트워크 상의 두 프로세스가 IP 주소와 포트 번호를 통해 데이터를 송수신하는 창구 역할을 합니다. TCP(연결지향, 신뢰성 보장), UDP(비연결, 빠른 전송) 방식이 대표적입니다. 서버는 소켓을 열고 클라이언트 연결을 대기, 클라이언트는 서버에 연결 요청을 보냅니다.
  • WebSocket은 클라이언트와 서버 간에 실시간 양방향 통신을 지원하는 프로토콜입니다. HTTP로 핸드셰이크 후 연결을 유지하며, 실시간 채팅, 게임, 주식 등 실시간성이 중요한 서비스에 적합합니다.
  • HTTP Keep-Alive는 한 번 맺은 TCP 연결을 여러 HTTP 요청에 재사용해, 연결 설정 오버헤드를 줄이고 성능을 높입니다. HTTP/1.1에서는 기본 활성화되어 있습니다.
  • CORS(Cross-Origin Resource Sharing)는 브라우저가 다른 출처(도메인, 포트, 프로토콜)의 리소스를 요청할 때 서버가 허용 여부를 명시하는 HTTP 헤더 기반 보안 메커니즘입니다. 서버가 허용하지 않으면 브라우저는 요청을 차단합니다.

 

클라이언트-서버 통신 흐름, 요청/응답 구조

  • 클라이언트-서버 통신 흐름은 클라이언트가 서버에 요청(Request)을 보내고, 서버가 처리 후 응답(Response)을 반환하는 구조입니다. HTTP 요청/응답 메시지는 각각 시작줄, 헤더, 바디로 구성됩니다. 요청 메시지는 메서드(GET, POST 등), URL, 버전, 헤더, 바디로, 응답 메시지는 상태코드, 상태 메시지, 헤더, 바디로 이루어집니다.
  • 요청/응답 구조는 RESTful API, 웹 애플리케이션 등에서 표준적으로 사용되는 통신 패턴입니다.
반응형