728x90 728x90 Spring12 [@Transactional은 만능이 아니다!] Checked Exception과 @Transactional: 초보 스프링 개발자를 위한 가이드 Checked Exception과 @Transactional: 초보 스프링 개발자를 위한 가이드스프링(Spring) 프레임워크는 개발 생산성을 높이고, 복잡한 트랜잭션 관리 및 예외 처리를 간소화하는 데 강력한 도구를 제공합니다. 하지만 초보 개발자들은 Checked Exception과 트랜잭션 처리에 대해 자주 혼란스러워합니다. Checked Exception은 발생 시 반드시 처리해야 하는 특징을 가지며, 이는 코드의 안정성을 보장하지만 스프링의 기본 트랜잭션 관리 규칙과 충돌할 수 있습니다.이 글에서는 Checked Exception과 @Transactional 어노테이션의 기본 개념을 설명하고, 트랜잭션 관리에서 Checked Exception의 중요성을 실제 애플리케이션 사례를 통해 다룹니다. .. 2025. 1. 23. [Spring; 스프링] 직렬화와 역직렬화: Jackson ObjectMapper와 스프링부트에서의 활용 직렬화와 역직렬화는 데이터 저장 및 전송 시 자주 사용되는 개념입니다. 특히 Java와 같은 언어에서 객체를 효율적으로 다루기 위해 필수적인 기술입니다. 이 글에서는 직렬화와 역직렬화의 기본 개념을 소개하고, ObjectMapper를 활용한 JSON 데이터 변환 예제를 통해 어떻게 활용할 수 있는지 알아보겠습니다. 더 나아가, 스프링부트(Spring Boot) 환경에서 이를 어떻게 활용할 수 있는지 살펴보겠습니다.1. 직렬화(Serialization)와 역직렬화(Deserialization)란?1.1 직렬화(Serialization)직렬화는 객체의 상태를 저장하거나 네트워크로 전송할 수 있는 형식(예: JSON, XML, 바이너리 데이터)으로 변환하는 과정입니다. 이를 통해 메모리에 존재하는 객체를 파일.. 2024. 9. 23. [Spring; 스프링] 스프링에서 `final`과 `@RequiredArgsConstructor`로 의존성 주입(DI) 쉽게 이해하기 스프링 프레임워크를 사용하다 보면 **의존성 주입(Dependency Injection, DI)**이라는 말을 자주 듣게 됩니다. 의존성 주입은 객체 간의 의존 관계를 스프링이 대신 관리해주는 것을 의미하는데요, 이 과정을 효율적으로 하기 위해 final과 @RequiredArgsConstructor를 많이 사용합니다. 이 글에서는 이 두 가지 키워드가 무엇인지, 왜 사용하는지, 그리고 롬복(Lombok) 없이도 의존성을 주입하는 방법까지 알아보겠습니다.1. final 키워드는 무엇인가요?final은 자바에서 변수를 한 번만 초기화하고, 이후에는 변경할 수 없게 만드는 키워드입니다. 이 키워드를 사용하면 다음과 같은 장점이 있습니다:변경 방지: 해당 변수가 의도치 않게 변경되는 것을 방지합니다.안정성: .. 2024. 9. 23. [Spring; 스프링] Spring Boot Configuration Processor 란? (feat. 메타데이터; Metadata) Spring Boot Configuration Processor 스프링 부트 Configuration Processor는 스프링 부트 프로젝트에서 사용되는 어노테이션 프로세서입니다. 이 프로세서는 @ConfigurationProperties 어노테이션으로 마킹된 클래스들을 처리하고, 해당 클래스들의 설정 값을 바인딩하여 사용할 수 있게 해줍니다. Configuration Processor는 스프링 부트의 자동 구성 기능을 향상시키고, 애플리케이션 설정을 더 쉽게 관리할 수 있게 도와줍니다. 이를 통해 개발자는 application.properties나 application.yml 파일에 작성된 설정 값을 자동으로 매핑하여 사용할 수 있습니다. 이 프로세서는 스프링 부트의 의존성으로 제공되며, 일반적으로 .. 2023. 12. 18. [Spring; 스프링] JPA @Transient @Transient 어노테이션은 JPA에서 사용되는 어노테이션으로, 해당 필드가 데이터베이스와 매핑되지 않음을 나타냅니다. JPA는 엔티티 클래스의 필드와 데이터베이스의 컬럼을 매핑하여 데이터를 저장하고 조회하는 기능을 제공합니다. 그러나 때로는 특정 필드를 데이터베이스에 저장하지 않고, 임시로 사용하거나 계산에만 활용하고자 할 때가 있습니다. 이럴 때 @Transient 어노테이션을 사용하여 해당 필드를 데이터베이스와 매핑에서 제외할 수 있습니다. 위의 코드에서 pointDiv 필드에 @Transient 어노테이션이 사용되었기 때문에, 이 필드는 데이터베이스의 컬럼과 매핑되지 않습니다. 대신, 동적으로 WHERE 절을 설정할 때 사용되는 임시적인 값으로 활용됩니다. 즉, @Transient 어노테이션이.. 2023. 11. 13. [Spring; 스프링] HttpServletRequest JSP 기본 내장 객체 중 request 객체는 JSP에서 가장 많이 사용되는 객체입니다. 클라이언트(Chrome, Edge 등)로 부터 서버로 요청이 들어오면 서버에서는 HttpServletRequest를 생성하며, 요청정보에 있는 패스로 매핑된 서블릿에게 전달합니다. 이렇게 전달받은 내용들을 파라미터로 GET과 POST 형식으로 클라이언트에게 전달합니다. HttpServletRequest HttpServletRequest를 사용하면 값을 받아올 수 있습니다. 정보를 Controller에 보내면 HttpServletRequest 객체 안에 모든 데이터들이 들어갑니다. 데이터를 꺼낼때는 HttpServletRequest 객체 안의 getParameter()를 사용합니다. `getParameter` 메서드.. 2023. 11. 8. 이전 1 2 다음 728x90 728x90