[Codeit]/Spring 백엔드 10기 위클리페이퍼

[07] 웹 API의 발전 과정과 HTTP 요청의 흐름

uzlru 2026. 2. 26. 19:05

01. 웹 API의 발전 과정

1.  SOAP(Simple Object Access Protocol)이란?

SOAP이란 서로 다른 환경에서 실행되는 애플리케이션이 네트워크를 통해 정보를 교환할 수 있게 해주는 HTTP 기반의 통신 프로토콜을 의미한다. 이러한 SOAP는 Envelope, Header, Body 세 부분으로 구성되며, 각 부분은 XML 형식으로 구성되어 엄격한 구조와 명확한 명세를 가진다.

 

2. SOAP의 문제점

SOAP의 문제점  
무겁고 제한된 데이터 형식 오직 XML 형식 만을 지원하여, 데이터 전송 양이 많아질 뿐만 아니라 네트워크의 속도 또한 저하됨
복잡한 명세 데이터를 주고 받는 규칙(WSDL)이 복잡하여, 개발자가 학습하고 구현하는데 오랜 시간이 걸림
하드웨어 자원 소모 XML을 해석하는 과정에서 많은 CPU 자원과 메모리를 사용함

 

3. REST (Representational State Transfer)란?

REST란 웹 서비스 구조의 이름으로, 클라이언트 - 서버 웹의 본래 기능을 활용하자는 설계 원칙을 뜻한다.

 

REST의 특징  
자유로운 형식 XML 뿐만 아니라 JSON, Text, RSS 등 다양한 형식을 지원
무상태성
(Stateless)
서버가 클라이언트의 상태를 기억하지 않으므로, 각 호출은 반복되는 정보와 문맥을 가져야 함
일관성
(Consistency)
새로운 규칙을 만드는 대신 HTTP의 메서드와 상태 코드, 자원 중심 URL을 그대로 사용
확장성
(Scalability)
자원 중심 설계이므로, 규칙을 준수한다면 쉽게 확장 가능

 

4. SOAP vs REST

  SOAP REST
정의 프로토콜 (엄격한 규칙) 아키텍처 스타일 (유연한 가이드라인)
데이터 형식 XML만 가능 JOSN, XML, Text 등 다양한 형식
전송 효율 무겁고 느림 가볍고 빠름
보안성 매우 강력 기본 HTTP 보안에 의존
학습 곡선 높음 낮음
성공 사례 은행, 보험사 등 구글, 카카오 등

 


 

02. HTTP 요청의 흐름

@RestController에 들어온 클라이언트의 요청은 DispatcherServlet을 중심으로 처리된다.

 

전체 흐름 수행 주체  
요청 수신 DispatcherServlet 클라이언트의 HTTP 요청 수신
핸들러 매핑 HandlerMapping 해당 URL과 연결된 @RestController의 메서드를 찾아 전달
핸들러 어댑터 실행 HandlerAdapter 전달받은 컨트롤러의 해당 메서드를 실행
비지니스 로직 수행 Controller → Service → Repository 비지니스 로직 수행 및 데이터가 담긴 객체(DTO) 반환
응답 변환 ReturnValueHandler 해당 컨트롤러의 반환 값을 JSON으로 처리할 지 결정
메시지 컨버터 동작 HttpMessageConverter 자바 객체를 JSON 문자열로 변환 (직렬화)
응답 전송 DispatcherServlet 변환된 JSON 데이터를 응답 바디에 담아 클라이언트에게 전송