| 항목 | SOAP | REST |
|---|---|---|
| 프로토콜 | 자체 프로토콜(XML 기반) | HTTP 기반 |
| 메시지 포맷 | XML만 지원 | JSON, XML, 기타 |
| 표준화 수준 | 엄격한 스펙(WSDL, XSD 등) | 느슨한 설계 원칙 |
| 확장성 | 보안/트랜잭션 등 내장 | 필요 시 구현 |
| 사용 용도 | 엔터프라이즈 시스템, 금융/보안 시스템 | 모바일, 웹, 일반 API 서버 |
| 성능 | 느림 (무거운 XML, 복잡한 파싱) | 빠름 (경량 JSON, 단순 구조) |
요청에서 응답 처리 흐름 요약
[Client]
↓ HTTP Request
[DispatcherServlet] (Front Controller)
↓
[HandlerMapping] → @RestController의 메서드 매핑
↓
[HandlerAdapter] → 해당 Controller 실행
↓
[@RestController] → 비즈니스 로직 처리
↓
[HttpMessageConverter] → Java 객체 → JSON 응답 변환
↓
[DispatcherServlet]
↓
[Client] 응답
HTTP Message Converter의 역할과 동작 시점
MappingJackson2HttpMessageConverter 란?
Spring Framework에서 HTTP 요청/응답의 JSON 데이터를 자바 객체로 변환하거나 그 반대로 변환해주는 메시지 컨버터
이름에서 알 수 있듯이 Jackson 2 라이브러리를 사용하여 JSON <-> Java 객체 간 매핑을 처리
@RestController, @ResponseBody, @RequestBody 같은 어노테이션이 붙은 메서드에서 자동으로 동작
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/{id}")
public UserDto getUser(@PathVariable UUID id) {
return userService.findById(id);
}
}
HttpMessageConverter 란?