본문 바로가기
  • Let's study

spring boot8

[Spring] AOP로 REST API 응답 후처리하기 AOP 코드를 작성할 때 가장 복잡해 보이는 부분이 어떤 메서드에 AOP를 적용할 것인지 지정하는 부분과 실제 메서드를 실행한 뒤 응답을 처리하는 부분이다. 해당 부분만 간단하게 정리해보겠다.1. 어떤 메서드에 AOP를 적용할 것인가( within ( org.springframework.web.bind.annotation.RestController * ) && ( annotation(org.springframework.web.bind.annotation.GetMapping) || annotation(org.springframework.web.bind.annotation.PostMapping) || ann.. 2026. 8. 13.
[Spring] @Controller와 @RestController 일반적인 Spring MVC에서는 @Controller를 사용한다.@Controllerpublic class PostController { @GetMapping("/posts") @ResponseBody public List list() { return postService.findAll(); }}@Controller에서 객체나 리스트를 HTTP 응답 본문으로 반환하려면 @ResponseBody가 필요하다.REST API에서는 대부분 데이터를 JSON으로 반환하기 때문에 @RestController를 사용하는 것이 편리하다.@RestControllerpublic class PostController { @GetMapping("/posts") public Lis.. 2026. 8. 12.
[Spring] REST API 버저닝과 @RequestMapping 1. API 버저닝이란?API 버저닝(API Versioning)은 API의 버전을 관리하여 기존 클라이언트와의 하위 호환성을 유지하면서 API를 발전시키는 방법이다.API를 운영하다 보면 기존 API의 응답 형식이나 기능을 변경해야 하는 상황이 발생할 수 있다.이때 기존 클라이언트가 갑자기 동작하지 않도록 기존 버전을 유지하면서 새로운 버전을 제공할 수 있다.예를 들어 기존 API가 다음과 같다고 가정한다./api/v1/posts이후 API의 구조가 변경되었다면 기존 API를 수정하는 대신 새로운 버전을 만들 수 있다./api/v2/posts기존 클라이언트는 v1을 계속 사용하고, 새로운 클라이언트는 v2를 사용하도록 할 수 있다.2. API 버저닝이 필요한 이유API 버저닝을 사용하는 주요 이유는 다.. 2026. 8. 12.
[Spring] REST API 순환참조 해결하기 - DTO와 Record 활용 1. 양방향 연관관계에서 발생하는 순환참조JPA에서 엔티티 간 양방향 관계를 사용하면 순환참조 문제가 발생할 수 있다.예를 들어 Post와 Comment가 다음과 같이 서로를 참조한다고 가정한다.// Post@OneToMany(mappedBy = "post")private List comments;// Comment@ManyToOneprivate Post post;Post를 JSON으로 변환하면 Post 안의 comments를 조회하게 된다.그런데 Comment에는 다시 post가 존재한다.Post └─ comments └─ Comment └─ post └─ comments └─ Comment .... 2026. 8. 12.
[Spring] REST API란? SSR과 CSR 차이부터 JSON 응답까지 1. REST API란?API(Application Programming Interface)는 서로 다른 프로그램이 기능이나 데이터를 주고받을 수 있도록 정해놓은 인터페이스이다.웹에서는 클라이언트와 서버가 HTTP를 통해 데이터를 주고받는데, 이때 어떤 URL로 요청하고 어떤 데이터를 응답할지에 대한 규칙을 API로 정의할 수 있다.REST API에서는 데이터를 중심으로 URL과 HTTP 메서드를 설계한다.2. SSR과 CSR웹 페이지를 어디에서 렌더링하느냐에 따라 크게 SSR과 CSR로 나눌 수 있다.SSR(Server Side Rendering)SSR은 서버에서 HTML을 만들어 클라이언트에게 전달하는 방식이다.Spring Boot에서는 Thymeleaf를 이용한 방식이 대표적이다.브라우저 ↓ 요.. 2026. 8. 11.
[Spring] Validation 오류 처리하기 - BindingResult 활용 앞서 @Valid를 사용하여 게시글 작성 Form의 입력값을 검증하였다.하지만 Validation에 실패했을 때 단순히 예외가 발생하도록 두는 것보다는, 어떤 입력값이 잘못되었는지 사용자에게 알려주고 다시 Form을 보여주는 것이 더 좋은 사용자 경험을 제공할 수 있다.이번에는 BindingResult를 사용하여 Validation 오류를 직접 처리해 보았다.1. BindingResult란?@Valid를 사용하면 Validation 조건에 맞지 않는 입력값이 들어왔을 때 오류가 발생한다.이때 BindingResult를 Controller 메서드의 매개변수로 함께 사용하면 Validation 결과를 직접 확인하고 처리할 수 있다.@PostMapping("/posts/doWrite")@ResponseBody.. 2026. 8. 11.