Spring6 SpringBoot @Transactional이 동작하지 않는 이유와 해결법 개요예전에 개발 중 트랜잭션 처리가 자동으로 되지 않는 문제를 경험한 적이 있었다. 처음에 @Transactional 어노테이션을 사용하면 모든 트랜잭션이 알아서 처리될 것이라고 생각했었다. 하지만 예상대로 트랜잭션이 작동하지 않고, 데이터가 반영되지 않는 문제가 발생해 한참을 헤맸다. 결국, 트랜잭션이 동작하지 않는 다양한 이유를 알게 되었고, 그 해결 방법을 찾게 되었다. 이 글에서는 @Transactional이 왜 동작하지 않는지, 그리고 그 해결법을 예시와 함께 설명해보려고 한다. @Transactional 기본 개념 @Transactional은 스프링 프레임워크에서 제공하는 어노테이션으로, 데이터베이스 작업에서 트랜잭션을 관리하는 데 사용된다. 트랜잭션이란 작업의 일련의 과정을 하나로 묶어주.. 2024. 10. 2. Spring @RequestBody로 데이터 바인딩 오류 개요 Spring Boot를 사용해 REST API를 개발하면서, 클라이언트로부터 JSON 데이터를 받아 처리하는 상황이 빈번하다. 이때 @RequestBody 애너테이션을 사용해 데이터를 바인딩하는데, 간혹 데이터 형식이 맞지 않거나 잘못된 값이 들어오면 데이터 바인딩 오류가 발생할 수 있다. 최근 프로젝트에서도 비슷한 문제가 발생했는데, 이 과정에서 어떻게 오류를 해결하고 예방할 수 있는지에 대해 자세히 알아보게 되었다. @RequestBody와 데이터 바인딩 오류의 이해 @RequestBody는 클라이언트로부터 전송된 JSON 데이터를 객체로 변환하는 역할을 한다. 예를 들어, 클라이언트에서 JSON 형식으로 데이터를 보내면, 해당 데이터를 Java 객체로 매핑해 사용할 수 있게 도와준다. 하.. 2024. 10. 1. Spring Boot 애플리케이션 로그 설정하기 개요개발을 진행하다 보면 로그(Log)는 디버깅, 모니터링, 이슈 해결에 필수적인 도구이다. Spring Boot는 기본적으로 로깅을 지원하지만, 개발 또는 운영 환경에서 로그 설정을 변경하거나 최적화할 필요가 자주 생긴다. 로그 파일이 쌓여 디스크 공간을 차지하거나, 로그 레벨이 너무 상세해 중요한 정보를 놓치는 상황도 발생할 수 있다. 최근 프로젝트에서 이러한 로그 설정 문제를 겪으면서 적절한 해결책을 찾았고, 이를 정리해 공유하고자 한다. Spring Boot의 기본 로그 설정 Spring Boot는 기본적으로 Spring-JCL을 통해 로깅을 지원하며, 내부적으로 SLF4J와 Logback을 사용한다. 이를 통해 다양한 로깅 레벨을 지원하며, 애플리케이션이 구동될 때 별도의 설정을 하지 않아도 .. 2024. 9. 29. Spring Boot Actuator 엔드포인트가 작동하지 않는 문제 해결 개요개발 프로젝트를 진행하다 보면, 애플리케이션의 상태를 모니터링하고 진단하는 것이 중요하다. 특히 Spring Boot Actuator는 이러한 기능을 제공하여 매우 유용하다. 하지만 Actuator 엔드포인트가 예상대로 작동하지 않는 문제를 몇 차례 경험했다. 이런 문제를 해결하고, 다른 개발자들도 같은 문제를 겪을 때 쉽게 해결할 수 있도록 글을 정리하게 되었다. Actuator란 무엇인가? Spring Boot Actuator는 애플리케이션의 상태를 모니터링할 수 있는 여러 엔드포인트를 제공하는 모듈이다. 이를 통해 애플리케이션의 헬스 체크(health), 메트릭(metrics), 로그(logs) 등을 쉽게 확인할 수 있다. Actuator는 기본적으로 여러 엔드포인트를 제공하지만, 때때로 이 .. 2024. 9. 28. 이전 1 2 다음