
백엔드
코드 품질 개선 기법 8편: 실상과 허상
두줄요약
컬렉션 반환값의 읽기 전용과 변경 가능성은 다를 수 있어 주의가 필요했습니다. 상황에 따라 요소 접근, 스냅샷 복사, 직접 참조 반환을 구분해 사용해야 했습니다.
핵심 내용
- 컬렉션 반환값의 실시간 변경 가능성에 따라 참조, 뷰, 복사본의 차이를 구분
- 읽기 전용이라도 mutability가 다를 수 있어 호출자 관점의 일관성 문제 발생
- 반환 방식에 따라 단일 요소 접근, 스냅샷 복사, 직접 참조 노출 중 선택 필요
주의할 점
- 복사본 반환은 성능 비용 가능성 존재
- 직접 참조 반환 시 문서로 변경 가능성과 순회 중 변경 가능성 명시 필요
- 컬렉션 가공 로직은 호출자 또는 유틸리티로 분리 고려