-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
type: discussion질문 또는 논의. A question or discussion질문 또는 논의. A question or discussion
Description
이슈 개요
@CreatedDate, @LastModifiedDate 사용을 위해 @EnableJpaAuditing 어노테이션을 JpaConfig 클래스를 만들어야 하나, @EnableJpaAuditing 어노테이션을 사용하지 않고 createdAt, updatedAt의 값을 수동으로 넣어주는 방식으로 가야 하나 고민이 생겼습니다.
부연 설명
해당 이슈에 대해 @github-insu 님과 먼저 의견을 나누었고, 같이 리서치를 했습니다.
JpaConfig를 작성하면 JPA 의존도가 높아져 나중에 DB 또는 ORM을 변경할 때 불필요한 작업이 생길까?라는 의문점도 생겼고, 그렇다기엔 JpaConfig로 관리를 하는 게 불필요한 중복 코드도 방지할 수 있고, 유지 보수에 좋다고 생각했습니다.
현재 저희가 진행하고 있는 헥사고날 아키텍처에 어떤 방식이 더 잘 어울릴지 고민이 되었습니다.
그래서 어떤 방식이 더 좋을지에 대해 팀원들의 생각이 궁금합니다!
JpaConfig, 직접구현 리서치 결과
JpaConfig
- 장점
- 표준화된 접근
- 적용 범위 관리
- 유지보수 용이
- 단점
- JPA 의존성
- 커스터마이징 한계
- 헥사고날 아키텍처와 충돌 가능성
직접 구현
- 장점
- JPA 의존성 제거
- 높은 커스터마이징
- 헥사고날 아키텍처 준수
- 단점
- 코드 중복 가능성
- 직접 관리의 부담
- 추가 구현 작업(다중쓰레드 환경에서 동기화 이슈 고려해야 할 수도 있습니다.)
@EnableJpaAuditing 설정 참고 ( @github-insu 님 리서치 결과 )
- 헥사고날 아키텍처 관점에서 봐도 @EnableJpaAuditing이 Application 메인 클래스에 있으면 핵심 도메인 로직에 인프라스터럭처 코드(JPA코드)가 있는 것이라서 문제가 생길 수도 있다고 합니다.
merge-simpson and wch-oswch-os
Metadata
Metadata
Assignees
Labels
type: discussion질문 또는 논의. A question or discussion질문 또는 논의. A question or discussion