Spring 가이드에도 나와있듯이 JPA Entity 는 data class가 아닌 일반 class 를 사용하는 것이 권장된다. 사실 data class 를 Entity로 사용하더라도 몇가지만 주의하면 문제될 것은 없지만 일반 class 사용이 권장되는 이유는 data class 를 Entity 로 사용할 경우 data class 답게 사용하지 못하게 된다는 것에 있다. 코틀린이 data class 의 특징은 아래와 같다. equals(), hashCode(), toString(), copy() 메소드를 자동으로 만들어준다. copy() 메소드는 얕은복사만 지원하기 때문에 data class 는 불변 클래스로 사용하는 것이 권장된다. 순수하게 데이터만 관리하는 클래스인 만큼 open 키워드를 통한 상속을..