반응형
Spring Framework에서 REST API 요청이 처리되는 과정은 다음과 같은 단계로 이루어집니다. 이 과정은 Spring MVC의 구조를 기반으로 하며, 주로 Controller, Service, Repository 등의 계층으로 구성됩니다.
1. 클라이언트 요청
- 클라이언트(웹 브라우저, 모바일 앱 등)는 REST API 엔드포인트에 HTTP 요청(예: GET, POST, PUT, DELETE 등)을 보냅니다. 요청은 URL, HTTP 메서드, 헤더, 요청 본문(필요한 경우) 등으로 구성됩니다.
2. DispatcherServlet
- Spring의 DispatcherServlet이 요청을 받습니다. 이 서블릿은 Spring MVC의 중앙 처리자이며, 모든 요청을 처리하는 시작점입니다.
- web.xml 또는 Java Configuration을 통해 DispatcherServlet이 설정됩니다.
3. 핸들러 매핑
- DispatcherServlet은 요청 URL을 기반으로 적절한 컨트롤러(Controller)를 찾기 위해 **핸들러 매핑(Handler Mapping)**을 사용합니다. 이 과정에서 URL 패턴과 메서드를 연결합니다.
- 예를 들어, @GetMapping("/api/users")와 같은 어노테이션이 있는 메서드를 찾습니다.
4. 컨트롤러 호출
- 매핑된 컨트롤러의 메서드가 호출됩니다. 이 메서드는 요청을 처리하고 비즈니스 로직을 수행합니다.
- 컨트롤러는 일반적으로 서비스 계층을 호출하여 실제 비즈니스 로직을 처리합니다.
5. 서비스 계층
- 서비스 계층(Service Layer)에서는 비즈니스 로직이 수행됩니다. 여기에서 데이터베이스와 상호작용하기 위해 리포지토리 계층을 호출합니다.
- 서비스 메서드는 주로 트랜잭션 관리, 데이터 처리 등을 수행합니다.
6. 리포지토리 계층
- 리포지토리(Repository) 계층은 데이터베이스와의 상호작용을 처리합니다. Spring Data JPA와 같은 기술을 사용하여 CRUD 작업을 수행합니다.
- 리포지토리 메서드가 호출되어 데이터를 가져오거나 저장합니다.
7. 응답 생성
- 컨트롤러는 서비스 계층에서 받은 데이터를 기반으로 HTTP 응답 객체를 생성합니다.
- 필요한 경우 응답 본문을 JSON, XML 등으로 변환합니다. Spring은 @ResponseBody 또는 @RestController 어노테이션을 통해 자동으로 변환할 수 있습니다.
8. 응답 반환
- 최종적으로 DispatcherServlet은 클라이언트에게 HTTP 응답을 반환합니다. 이 응답은 상태 코드(예: 200, 404 등), 헤더, 본문을 포함합니다.
- 클라이언트는 이 응답을 수신하고 처리합니다.
요약
Spring Framework에서 REST API 요청 처리 과정은 클라이언트의 요청이 DispatcherServlet에 도달하고, 이를 기반으로 적절한 컨트롤러가 호출되어 비즈니스 로직을 수행하며, 최종적으로 HTTP 응답이 클라이언트에게 반환되는 일련의 단계로 구성됩니다. 이 구조는 MVC(모델-뷰-컨트롤러) 패턴을 기반으로 하며, 코드의 가독성과 유지보수성을 높여줍니다.
반응형
'전공살리기 > CS' 카테고리의 다른 글
[CS 면접 기본 - 자바] 14. 디자인패턴에 대해서 알려줘 (1) | 2024.10.27 |
---|---|
[CS 면접 기본 - 자바] 13. SOLID 원칙에 대해서 말해줘 (0) | 2024.10.27 |
[CS 면접 기본 - 자바] 12. Check 예외, unCheck 예외에 대해서 말해줘 (1) | 2024.10.27 |
[CS 면접 기본 - 자바] 11. JDK , JRE , JVM에 대해서 알려줘 (0) | 2024.10.27 |
[CS 면접 기본 - 자바] 10. JVM에 대해서 알려줘 (0) | 2024.10.27 |