
백엔드
코드 품질 개선 기법 22편: To equal, or not to equal
두줄요약
`equals`를 일부 속성만으로 정의하면 예상치 못한 버그가 생길 수 있음을 설명했습니다. 동일성인지 등가성인지 목적을 먼저 정하고, 필요한 부분은 별도 함수로 분리해야 합니다.
핵심 내용
equals는 동일성(identity) 또는 모든 속성을 포함한 등가성(equivalence) 중 하나를 나타내도록 정의하는 것이 핵심- 일부 속성만 비교하는
equals구현은 observable 갱신 누락 같은 버그를 유발할 수 있어 별도 비교 함수로 분리 필요 - Kotlin
data class의 기본 비교 범위와 캐시 같은 예외적 무시 사례, 유리수 예시를 통해 표현 목적에 맞는 정의가 중요