작성
·
12
0
안녕하세요 영한님!
11강에서 created_at
과 updated_at
값을 데이터베이스의 DEFAULT CURRENT_TIMESTAMP
과 ON UPDATE CURRENT_TIMESTAMP
기능을 사용하는 가이드에 대해 다뤄주셨는데요.
Spring Data JPA를 사용하면 아래와 같이 @EnableJpaAuditing
을 사용하여 Application 단에서 Auditing 기능을 사용할 수 있는 걸로 알고 있습니다.
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
@Getter
public class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
}
만약 위와 같은 JPA 기능을 데이터베이스와 같이 사용한다면, Application 단에서 createdAt
, updatedAt
값이 채워진 채로 저장되고, DB에서 한 번 더 덮어쓰는 구조가 될 것 같더라고요.
실무에서 created_at
과 updated_at
값을 채울 때, @EnableJpaAuditing
과 데이터베이스의 DEFAULT CURRENT_TIMESTAMP
과 ON UPDATE CURRENT_TIMESTAMP
중 어떤 것을 사용하는게 더 나은 선택일지 궁금합니다. 각각을 사용했을 때 유리한 케이스가 따로 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. bebe님!
created_at
과 updated_at
값을 채울 때 JPA Auditing을 사용할지, DB의 DEFAULT CURRENT_TIMESTAMP
와 ON UPDATE CURRENT_TIMESTAMP
를 사용할지는 프로젝트의 특성에 따라 다를 수 있습니다.
JPA Auditing 사용 시 장점:
DB DEFAULT CURRENT_TIMESTAMP
와 ON UPDATE CURRENT_TIMESTAMP
사용 시 장점:
실무에서의 선택:
- 규모가 큰 애플리케이션이나 멀티 서버 환경에서는, DB에서 타임스탬프를 관리하여 모든 서버 간의 일관성을 유지하는 것이 더 나을 때가 있습니다.
- 반면, 개발자들이 비즈니스 로직에 대한 통제권을 강화하고 싶거나, 테스트 환경이 중요하다면 JPA Auditing을 선택할 수 있습니다.
관련 질문들에서 더 풍부한 정보를 얻고 싶으시면 아래 링크를 참조하세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.