서론코틀린으로 개발하는 백엔드 개발자들 대부분에게 나타나는 고민이 하나 있다. 바로 코틀린의 불변성을 유지하면서 JPA와 같은 ORM의 가변 요구사항 사이에서 어떤 해결책을 가져가야 하는가? 이다.본 글에서는 몇가지 해결책에 대해 알아보고 선택 기준을 제시하려고 한다.본론해결책1. 첫번째 선택지는 JPA == Domain, 현실 타협형 해결책이다.@Entityclass User( @Id @GeneratedValue var id: Long? = null, var name: String)이 방식의 장점은 구현이 단순하고, 러닝 커브가 높지 않아 생산성이 높다는 것이다.반대로 단점은, 코틀린의 가장 큰 장점 중 하나인 객체 불변성을 활용할 수 없다는 것, 또 인프라에 의존하게 되어 테스트가 어렵다는..