[SB 3기] 코드잇 스프린트 위클리페이퍼 7주차

JHLee·2025년 5월 24일
post-thumbnail

Q. 웹 API의 발전 과정에서 SOAP에서 REST로의 전환이 일어난 이유와 그 장단점에 대해 설명하세요.

✅ SOAP란?

  • SOAP(Simple Object Access Protocol)은 웹 서비스 간 메시지를 주고받기 위한 XML 기반의 통신 프로토콜이다.

  • 장점

  1. 보안성, 신뢰성, 트랜잭션 처리 등의 다양한 고급 기능을 지원한다. (엔터프라이즈 환경에 적합)
  2. WSDL(Web Services Description Language)을 통해 서비스 기술 명세를 제공한다.
    이를 통해 서비스의 요청 및 응답 형식을 명확하게 정의할 수 있어, 정형화된 통신이 가능하다.
  • 단점
  1. 구조가 복잡하고 무거우며, XML만 지원하므로 유연성과 확장성이 떨어진다.
  2. 메시지 크기가 커서 오버헤드가 발생한다.
  3. 개발 난이도가 높다.

❓ REST로의 전환이 일어난 이유

  • SOAP의 복잡하고 무거운 구조와 낮은 유연성은 빠르고 단순한 통신을 요구하는 웹 환경에 적합하지 않았다.
  • REST(Representational State Transfer)는 이러한 한계를 해결하기 위해 등장하였다.

📌 REST의 장/단점

  • 장점
  1. HTTP 프로토콜 기반으로 표준 HTTP 메서드(GET, POST, PUT, DELETE)를 사용해 직관적이다.
  2. JSON, XML등의 다양한 포맷의 데이터를 지원하여 유연성이 높다. (⭐️JSON의 빠르고 가벼운 구조가 웹 통신에 적합)
  3. 구조가 단순하고 가벼워 속도가 빠르다.
  4. 클라이언트-서버 간의 책임이 명확히 분리되어, 유지보수와 확장성이 좋다.
  • 단점
  1. SOAP에 비해 보안, 트랜잭션 처리 기능이 제한적이다.
  2. 명확한 표준이 없어, 구현 방식에 따라 일관성이나 호환성 문제가 발생할 수 있다.

Q. Spring Boot에서 @RestController로 들어온 HTTP 요청이 처리되어 응답으로 변환되는 전체 과정을 설명하세요. 특히 HTTP 메시지 컨버터가 동작하는 시점과 역할을 포함해서 설명하세요.

  1. DispatcherServlet이 클라이언트의 요청을 받아 HandlerMapping에 전달하면, 해당 요청을 처리할 컨트롤러를 찾는다.

  1. RequestMappingHandlerAdapter는 컨트롤러 메서드를 호출하기 전, ArgumentResolver를 통해 메서드의 파라미터를 처리한다.
    이때 @RequestBody가 붙은 파라미터의 경우, HttpMessageConverter가 동작하여 요청 본문(JSON 등)을 Java 객체로 변환한다.

  2. 컨트롤러가 비지니스 로직을 처리한 뒤 Java 객체를 반환하면, ReturnValueHandler가 이를 처리한다.
    이때, @ResponseBody 또는 @RestController가 붙어 있는 경우,HttpMessageConverter가 동작하여 JSON 등의 형식으로 변환하여 전달한다.

  3. RequestMappingHandlerAdapter는 데이터를 DispatcherServlet에 전달하고 최종적으로 클라이언트에게 응답을 반환한다.


📃 참고 문서

profile
개발자로 성장하기

2개의 댓글

comment-user-thumbnail
2025년 5월 26일

유용한 글! 잘봤습니다~~ 감사합니다~~!!

답글 달기
comment-user-thumbnail
2025년 5월 26일

찾던 정보였는데 잘 보고 갑니다!!

답글 달기