📚 열심히 공부하고 기록해서 남주자!

Spring 6

Swagger 와 Spring Boot 버전 충돌. (Global Exception Handler 도입 이후 Swagger 작동 중단 이슈, Spring Framework 6.2.x 는 springdoc-openapi 2.7.x 이상부터 사용하세요. )

문제 개요프로젝트에서 Global Exception Handler를 도입해서 예외 처리를 구성해서 공통적인 에러처리를 @RestControllerAdvice를 통해 구성했다. 또한 api 문서를 자동화할 수 있게끔 Swagger를 도입했었다. 글로벌 익셉션 핸들러를 도입한 이후 테스트를 해보니 잘 돌아가던 Swagger가 먹통이 되버렸다. 해결엥? 잘 돌아가고 있었는데.. 문제를 해결한 결론부터 말하자면, 이 이슈는 Swagger와 Spring Boot 버전 간의 충돌문제였다. build.gradle에서 swagger 사용을 위한 springdoc-openapi-starter-common 2.5에서 2.7 버전으로 올려주니 무사히 잘 되었다. 그럼 이전에는 됐는데, 글로벌 익셉션을 구현하니까 왜 안됨?우..

Spring/Spring Boot 2025.05.28

[4/30 TIL] Spring Boot 공부, ORM,JPA에 대해

Spring Boot 실전에서의 예외 처리 방법들을 공부했다. 글로벌 예외 처리를 해도 특별한 경우 예외 처리를 하고 싶을 때의 여러 방법들에 대해 공부했다. Controller에서 직접하는 방법, @RestControllerAdvice(basePackages = “”) 사용방법, basePackageClasses 사용, 어노테이션으로도 가능하다고 한다. 실제 현업에서는 모든 예외처리를 관리하는 글로벌 예외 처리를 구현하고 커스텀하게 구현해야 할 것들은 우선적으로 해야할 것들을 나열하고 관리한다. 구분 설명 예시@RestControllerAdvice전역(Global) 예외 처리기@RestControllerAdvice()@ExceptionHandler특정 예외 처리 핸들러@ExceptionHandler(N..

Spring/Spring Boot 2025.04.30

[Spring Boot] 직렬화, 역직렬화 해주는 Object Mapper 톺아보자!

Object Mapper (Jackson 라이브러리 사용법)Object Mapper스프링 부트에서 직렬화, 역직렬화 수행해준다. (JACKSON 사용)JSON → DTO ( 역직렬화 )DTO → JSON (직렬화)변수가 아닌 method에 매칭이 된다.Object Mapper 불러오기@SpringBootTestclass DemoApplicationTests { @Autowired // 스프링에서 관리하는 빈들 중에 자동으로 생성되는 ObjectMapper를 가져오겠다. private ObjectMapper objectMapper; // dto를 json으로 바꾸는게 직렬화 @Test void contextLoads() throws JsonProcessingException { ..

Spring/Spring Boot 2025.04.30

[Spring Boot] 응답(response) 만들기!

응답 만들기 4가지 String : 일반 Text Type 응답Object : 자동으로 Json 변환되어 응답, 상태 값은 항상 200 OKResponseEntity : Body의 내용을 Object로 설정, 상황에 따라 HttpStatus Code 설정@ResponseBody : RestController가 아닌곳(Controller)에서 Json 응답을 내릴 때Object 객체 응답DTO@Data@AllArgsConstructor@NoArgsConstructor@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)public class UserRequest { private String userName; private Integer U..

Spring/Spring Boot 2025.04.29

[4/29 TIL] Spring Boot 톺아보기 Day

Spring Boot와 java에 대해 계속해서 궁금한 것들 찾아보며 공부 했던 하루였다.하루의 시간이 너무 부족하다. 시간을 쪼개고 쪼개며 공부하고 있지만 물리적 시간이 너무 부족함을 느낀다. 근데 재밌다. 역시 계속해서 배우고 알아가는 재미가 최고다. 이 맛에 개발자하겠지~ Spring 진짜 방대하다. 방대한만큼 배울 것도 많은 것 같다. Spring Boot로 프로젝트를 해봤지만 하나하나 자세히 보지는 못해서 이번 기회에 좀 자세하게 알아가면서 공부해보자. https://jinsang-2.tistory.com/137 [Spring Boot] 응답(response) 만들기!응답 만들기 4가지 String : 일반 Text Type 응답Object : 자동으로 Json 변환되어 응답, 상태 값은 항..

Spring/Spring Boot 2025.04.29

[Spring Boot] REST API 사용, DTO

SPRING RESTGETGET으로 원하는 데이터 요청하는 방법 2가지@RequestParam@PathVariable@GetMapping(path="/echo/{message}")public String echo( @PathVariable(name = "message") String msg, @PathVariable int age, // integer, int 중 integer은 null 으로 초기화, int는 0으로 초기화 지금은 int가 맞음 @PathVariable boolean isMan){ System.out.println("echo message:"+msg); return msg;}// @GetMapping(path="/book")public q..

Spring/Spring Boot 2025.04.29