@Component와 그 파생 애노테이션들(@Controller, @Service, @Repository)을 사용하면 @ComponentScan 어노테이션에 의해서 Spring Framework가 Bean을 자동으로 등록하는 데 사용된다고 알아보았었습니다. [Spring] Spring IoC Container와 Bean 알아보기Spring을 사용하다 보면 자연스럽게 접하게 되는 용어들이 있습니다. 그중에서도 IoC(제어의 역전, Inversion of Control)와 DI(의존성 주입, Dependency Injection)는 매우 중요한 개념입니다. 이 용어들은 처pixx.tistory.com 일반적으로는 이러한 자동 등록을 활용하는 것이 좋습니다. 왜냐하면 프로젝트 규모가 커지면 커질수록 등록해야..
JPA에서는 데이터베이스와 상호작용하기 위해 SQL 쿼리를 작성하거나, JPQL(Java Persistence Query Language)을 사용해 데이터 조회 및 조작을 수행할 수 있습니다. 그러나 수동으로 쿼리를 작성하는 것은 번거롭고 오류가 발생할 수 있습니다. 이를 해결하기 위해 Spring Data JPA에서는 Query Method라는 강력한 기능을 제공합니다. Query Method란❓ Query Method는 메서드 이름을 기반으로 자동으로 쿼리를 생성하여 데이터베이스에서 데이터를 조회할 수 있게 해주는 기능입니다. JpaRepository 인터페이스에서 해당 인터페이스와 매핑되어 있는 테이블에 요청하고자 하는 SQL을 메서드 이름을 사용하여 선언할 수 있으며, 이를 통해 복잡한 JPQL이..
데이터의 생성 시간과 수정 시간은 포스팅, 게시글, 댓글 등 다양한 데이터에서 매우 자주 활용됩니다. 이러한 시간 정보를 통해 데이터의 유효성, 최신 상태를 확인할 수 있으며, 데이터를 추적하거나 감사(Audit)하는 데 중요한 역할을 합니다. 하지만 각각의 엔티티에서 생성 및 수정 시간을 매번 수동으로 작성하는 것은 매우 비효율적입니다. 이러한 작업을 자동으로 처리하는 것이 JPA Auditing입니다. JPA Auditing란❓JPA Auditing는 데이터베이스 엔티티의 생성 및 수정 정보를 자동으로 기록하고 관리하는 기능입니다. JPA Auditing 기능을 통해 다음과 같은 정보를 자동으로 기록할 수 있습니다. 생성 시간Entity가 처음 생성된 시간수정 시간Entity가 마지막으로 수정..
Spring에서 JPA를 사용할 때, 개발자는 JPA의 구현체인 Hibernate, EclipseLink, DataNucleus를 직접 다루어야 했습니다. 이 과정에서 데이터베이스와의 상호작용을 처리하기 위해 "EntityManager"를 직접 사용하고, 복잡한 쿼리를 수동으로 작성하며, 트랜잭션을 직접 관리해야 했습니다. 이러한 방식은 많은 반복적인 코드와 관리 작업을 요구했습니다. 이러한 방식을 해결하기 위해 나온 것이 Spring Data JPA입니다. Spring Data JPA 란❓ Spring Data JPA는 앞서 언급한 JPA의 직접적인 사용방식(Raw Data)에 비해 복잡성을 줄이고, JPA의 구현체를 추상화하여 더 쉽게 사용할 수 있도록 도와주는 라이브러리입니다. 이를 통해 데..