
[Kotlin + Spring] JPA Entity 캡슐화 유지하는 방법 (field vs property, lazy-loading, private set, protected set)
·
Java & Kotlin/JPA
🧐 들어가기 전코프링으로 JPA Entity를 설계하던 도중 문득 의문이 생기게 되었다. 자프링에서는 보통 엔티티의 필드를 정의할 때 private로 외부로의 필드의 노출을 막고, 롬복 어노테이션을 통해 getter나 setter를 제공하여 해당 메서드를 통해 접근할 수 있도록 하여 객체지향적인 특성을 만족시켜 주었다.그러나 Spring 공식문서를 살펴보면, 코프링의 Entity를 설계할 때는 private와 같은 접근제어자를 사용하지 않는다. 따라서 왜 private 접근제어자를 사용하지 않는지, 그렇다면 어떻게 객체지향적인 특성을 만족하면서 설계할 수 있는지에 대해 알아보고자 한다.🔸Kotlin은 Field의 개념이 아닌 Property의 개념프로그래밍에서 필드(Field)와 프로퍼티(proper..