코틀린 data class: 실무에서 어디까지 쓸까
Kotlin data class는 짧게 쓰기 편한 문법처럼 보이지만, 실제로는 equals, copy, componentN이 함께 움직이는 값 중심 설계 도구에 가깝습니다. 이 글에서는 query 객체, UI state, mutable list 예제로 data class가 어디까지 편하고 어디서부터 조심해야 하는지 실무 기준으로 정리합니다.
Kotlin data class는 짧게 쓰기 편한 문법처럼 보이지만, 실제로는 equals, copy, componentN이 함께 움직이는 값 중심 설계 도구에 가깝습니다. 이 글에서는 query 객체, UI state, mutable list 예제로 data class가 어디까지 편하고 어디서부터 조심해야 하는지 실무 기준으로 정리합니다.
코틀린에서는 data class copy() 덕분에 Prototype 패턴을 가볍게 쓸 수 있습니다. 하지만 copy()는 shallow copy이므로, mutable list나 nested object가 섞이면 언제 deep copy가 필요한지 분명한 판단 기준이 필요합니다.
코틀린 data class는 문법이 간단해서 자주 쓰이지만, 자동 생성되는 함수가 정확히 무엇인지, copy가 얕은 복사인지, DTO와 Entity에 똑같이 써도 되는지는 따로 이해해야 합니다. 이 글에서는 data class의 선언 규칙, equals/hashCode, copy, 구조 분해, 불변성 오해, sealed class·value class와의 선택 기준까지 한 번에 정리합니다.
1편에서는 코틀린 클린코드의 기준을 잡았습니다. 2편에서는 이름 짓기를 다뤘고, 3편에서는…