
백엔드
스포카에서 Kotlin으로 JPA Entity를 정의하는 방법
두줄요약
Kotlin에서 JPA Entity를 정의할 때 자주 보이는 안티 패턴을 정리했습니다. mutable property, data class, lateinit 사용 시 주의할 점을 설명했습니다.
핵심 내용
- Kotlin + JPA에서 Entity를 더 객체답고 Kotlin답게 정의하려는 문제의식
- mutable property, data class, lateinit 사용 시 나타나는 안티 패턴과 주의점 정리
- Entity의 동일성은 식별자 기준이며, 연관관계는 초기화 시점과 접근 방식에 특히 주의 필요
주의할 점
- 식별자와 상태를 외부에 무분별하게 노출하는 mutable property 지양
- data class의 equals, copy가 Entity 특성과 충돌할 수 있으므로 신중한 사용 필요
- 연관관계에 lateinit을 쓰면 조회는 되더라도 생성 직후 접근 시 런타임 오류 가능
