[벡엔드 필수 개념] Spring을 배우기 전에 꼭 알아야 할 소켓부터 버퍼까지, HTTP 통신 구조

Spring을 배우기 전에 꼭 알아야 할 기본기인 소켓, 버퍼, HTTP 통신 구조를 완벽 정복 하였습니다.
도경원's avatar
Aug 01, 2025
[벡엔드 필수 개념] 
Spring을 배우기 전에 꼭 알아야 할 소켓부터 버퍼까지, HTTP 통신 구조

1. Application 개발자가 다루는 데이터 흐름

  • 애플리케이션 개발자가 개발하는 애플리케이션은 대부분 ByteStream(바이트 스트림)을 통해 데이터를 주고받는다.
  • 1bye = 8bit, 영어 한 문자를 전송할 수 있는 최소 단위이다.
  • 이 스트림을 통해 데이터를 주고받기 위해 입출력(IO) 개념이 등장한다.
    • → InputStream, OutputStream 등
notion image
notion image

2. 네트워크 전송 구조와 패킷

  • 네트워크에서 데이터를 주고받을 땐 패킷(Packet)이라는 단위로 전송된다.
  • 이 패킷은 크게 두 부분으로 구성된다.
    • Header: 출발지/목적지 주소(IP), 포트 번호, 순서, 프로토콜 등
    • Body: 실제 데이터(우리가 보내는 메시지, 파일, 요청 정보 등)
  • 라우터(Router): 목적지까지 최적의 경로를 찾아주는 장비
    • → 선을 효율적으로 줄이기 위해 사용됨.
notion image

3. 포트(Port)와 프로토콜(Protocol)

  • 포트: 하나의 IP 주소에서 여러 개의 네트워크 서비스를 구분하는 번호 (예: HTTP는 80, HTTPS는 443, 톰캣은 8080 등)
  • 프로토콜: 데이터 통신을 위한 약속 또는 규칙
    • → 대표적으로 TCP, UDP가 있음

4. TCP vs UDP

구분
TCP (Transmission Control Protocol)
UDP (User Datagram Protocol)
연결 여부
연결 기반 (3-way handshake)
비연결
신뢰성
높음 (순서 보장, 재전송)
낮음
속도
느림
빠름
사용 예
웹 통신, 이메일
영상 스트리밍, 게임
  • TCP는 신뢰성 확보가 필수인 통신에 사용됨
    • 예: 브라우저에서 서버에 HTTP 요청 → 응답 받을 때

5. 버퍼(Buffer)와 입출력 구조

  • 버퍼란?
    • 데이터를 주고받기 전에 잠시 보관하는 중간 저장소
  • 종류:
    • Write Buffer (Output Stream): 보낼 데이터를 임시 저장
    • Read Buffer (Input Stream): 받은 데이터를 임시 저장
이 구조를 통해 성능을 높이고, 불필요한 입출력을 줄임
notion image

6. 통신 방식: 단방향 / 반이중 / 전이중

통신 방식
설명
단방향
한 쪽 방향으로만 전송 (예: 방송, 키보드 입력)
반이중(Half Duplex)
양쪽이 번갈아가며 통신 가능 (예: 무전기)
전이중(Full Duplex), 양방향
양쪽이 동시에 송수신 가능 (예: 전화, TCP 기반 통신)
HTTP 통신은 엄밀히 보면 반이중 구조에 가까움
  • 요청 → 응답 흐름이 있고
  • 응답이 끝나야 다음 요청 가능
 

7. 소켓 통신(Socket Communication) 이란?

  • 소켓(Socket): 네트워크에서 양쪽 시스템이 데이터를 주고받기 위한 출입구
  • 클라이언트 ↔ 서버 간에 통신을 연결하기 위해 사용
  • 내부적으로는 TCP/UDP 프로토콜 위에서 작동함
  • 프로그래밍에서는 Socket, ServerSocket 등의 객체로 구현

8. URL 요청과 버퍼 흐름 → 객체로 변환되는 과정

  • 사용자가 브라우저에서 http://localhost:8080/hello 를 요청하면?
  1. 문자열 형태의 URL이 네트워크를 타고 서버로 전송
  1. 이 문자열은 버퍼를 통해 서버에 들어옴
  1. 톰캣이 이 버퍼를 읽어 Request 객체로 만들어줌
  1. Spring은 이 Request 객체를 기반으로 컨트롤러 등을 작동시킴
즉, 우리가 흔히 쓰는 @GetMapping("/hello")와 같은 매핑은
이 과정을 통해 매칭되고 동작하는 것!
 
Share article

Gyeongwon's blog