본문 바로가기

Java, JavaScript/Spring Boot

[Spring Boot] Auditing은 뭐야?

728x90

테이블을 설계를 할 때 필수적으로 관리되는 Column이 존재합니다. 생성 시간, 수정 시간, 생성한 사람, 수정한 사람 등을 예로 들 수 있습니다. 모든 도메인에 위에 나열한 column들을 생성하여 관리하기에는 번거로움이 있습니다. 이러한 문제를 해결하기 위해 Spring Data JPA에서 Auditing 기능을 제공해줍니다. 

 

다음은 BaseTimeEntity를 생성하여 제공할 데이터들의 정의해줍니다.

 

...

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {

    @CreatedDate
    private LocalDateTime createdDate;

    @LastModifiedDate
    private LocalDateTime modifiedDate;
}

 

@Getter를 제외한 다른 Annotation들의 기능은 다음과 같습니다.

 

  • @MappedSuperclass = JPA Entity class가 해당 class를 상속받을 경우 createdDate, modifiedDate를 column으로 인식한다.
  • @EntityListeners(AuditingEntityListener.class) = 해당 class에 Auditing 기능을 추가한다.
  • @CreatedDate = Entity 생성 후 저장 시점의 시간을 자동 저장한다.
  • @LastModifiedDate = Entity 수정 후 저장 시점의 시간을 자동 저장한다.
...

@Configuration
@ComponentScan
@EnableJpaAuditing // 추가
public class AutoAppConfig {

}

 

마지막으로 @EnableJpaAuditing 어노테이션을 Config 파일에 추가하여 auditing 기능을 사용할 수 있게 만들어줍니다.

 

적용화면

Entity 코드를 수정 및 추가를 하지 않았는데 CREATE_DATE, MODIFIED_DATE column이 추가된 것을 확인할 수 있습니다.

 

PET Entity 코드 - https://hangjastar.tistory.com/219

728x90