L
LY Corp
November 7, 20252회
코드 품질 개선 기법 22편: To equal, or not to equal

간단 소개
Java/Kotlin에서 equals 오버라이딩 시 발생할 수 있는 문제점과 올바른 동일성/등가성 정의 방법을 설명합니다.
AI Summary
- 코드 품질 개선 및 equals 문제
- LY Corporation은 Review Committee를 통해 코드 품질을 개선하고, Weekly Report를 공유합니다.
- Java/Kotlin에서 equals 오버라이딩 시 hashCode도 필수이며, UserProfileViewData 예시처럼 일부 속성만 비교하는 equals는 버그를 유발합니다.
- observable 객체들이 equals로 변경을 감지하므로, 잘못된 구현은 UI 업데이트 누락 등 문제를 일으킵니다.
- 올바른 equals 정의
- equals는 동일성(identity) 또는 등가성/동등성(equivalence) 중 하나를 명확히 정의해야 합니다.
- 일부 속성만 비교할 경우 equals와 별도의 함수로 정의하는 것이 좋습니다 (hasSameIdWith).
- Kotlin data class는 생성자 파라미터만 비교하며, 캐시 값 등 예외적으로 일부 속성을 무시할 수 있습니다.
- 등가성/동등성은 관점에 따라 달라지므로 신중한 정의가 필요합니다 (예: Rational(1,2)와 Rational(2,4)).
Next Feeds

여기어때 검색 광고: 랭킹 부스팅 구축기
여기어때가 검색 광고 랭킹 부스팅 기능을 구축하며 노출 수 보장에서 순위 상승 보장 방식으로 전환하고, Elasticsearch를 활용한 아키텍처와 A/B 테스트를 통해 성공적으로 도입한 과정을 설명합니다.
검색 광고랭킹 부스팅ElasticsearchA/B 테스트Delta Score
2025. 11. 7.
여기어때

SLM 기반 Agentic AI: Planner–Caller–Generator 구조 설계와 성능 분석
한컴이 제안한 SLM 기반 Agentic AI 'P-C-G' 구조는 LLM의 한계를 극복하고 한국어 환경에서 효율적인 성능을 제공한다.
SLMAgentic AIP–C–G한국어 환경효율성
2025. 11. 7.
한글과컴퓨터
카카오 그룹사 기술 공유의 장, Krew Day
카카오 그룹사 기술 공유 행사 'Krew Day'는 Sync & Play 컨셉으로 AI, 코딩 도구 등 다양한 기술 주제를 다루며 그룹사 간 기술 시너지를 창출했습니다.
Krew Day카카오 그룹사기술 공유AI개발자
2025. 11. 7.
카카오

소소한 언플러그드 도서관 '테미도' 이야기
SK플래닛이 개발자들을 위해 '언플러그드' 테크 미니 도서관 '테미도'를 운영하며 AI 중심의 최신 기술 도서를 공유하고 성장을 지원하는 이야기.
테미도언플러그드 도서관AI 도서개발자 성장사내 공유
2025. 11. 7.
skplanet

FE News 25년 11월 소식을 전해드립니다!
25년 11월 FE News는 React 업데이트, LLM 백도어 취약점, JS 암호화 개선, Vite+ 출시, 프론트엔드 최대주의 등 주요 기술 소식을 다룹니다.
ReactLLMJavaScript 암호화Vite+Front-end Maximalism
2025. 11. 6.
Naver d2

7,000줄 PL/SQL 프로시저와의 결별: 클레임 로직 Java 모듈 이관기
올리브영이 7,000줄 PL/SQL 레거시 프로시저를 Java 모듈로 점진적 이관하여 유지보수성, 디버깅, 확장성을 확보한 경험 공유.
PL/SQLJava레거시 시스템Strangler Pattern유지보수성
2025. 11. 6.
올리브영