arsgsg1 / kotlin-practice

0 stars 0 forks source link

kotlin + JPA 문제점 #1

Open arsgsg1 opened 1 year ago

arsgsg1 commented 1 year ago
  1. 동적 프록시로 동작하기 때문에 코틀린의 철학과 어긋나는 면이 몇 개 있다.
    • 코틀린의 기본 클래스는 final인데, 프록시 객체를 만들기 위해선 상속을 받아야 한다. 즉, open을 매번 붙여줘야 함 (플러그인으로 어느정도 해결)
    • val로 프로퍼티를 read-only하게 만들면 엔티티를 수정시킬 수 없음 (제일 중요) 그렇다고 var로 하자니 setter가 생성되어 수정의 여지가 생기고, 커스텀 setter를 만들자니 보일러 코드가 생성됨
    • 결국 var로 setter를 열어야 하는데, 엔티티의 캡슐화가 보장되지 못함.
    • 어쩔 수 없이 안고 가야하는 문제이고, 린트나 컨벤션으로 최대한 못 사용하게 막아야 하는게 최선
arsgsg1 commented 1 year ago

참고: https://multifrontgarden.tistory.com/272