L
LY Corp
April 18, 20251회
코드 품질 개선 기법 8편: 실상과 허상

간단 소개
함수의 반환값이 조회 후 변경될 수 있는지를 명확히 밝혀 코드의 안정성을 확보해야 합니다.
AI Summary
- UserNameMapLoader 클래스의 문제점
loadedUserNameMap,loadedUserIds,decoratedUserNameMap의 가변성 차이로 인해 값의 일관성이 깨질 수 있음loadedUserNameMap과loadedUserIds는 원본 Map에 대한 참조 또는 뷰이므로 loader에 의해 변경될 수 있음decoratedUserNameMap은 속성 접근 시 생성된 Map 복사본이므로 loader의 작업에 영향을 받지 않음
- 해결 방안
- 옵션 1: 요소에 대한 접근만 허용하고 Map이나 Set을 직접 반환하지 않음
- 옵션 2: 컬렉션 반환 시 복사본을 반환하고, 함수 이름에 복사본임을 명시
- 옵션 3: 원본 컬렉션에 대한 직접 참조를 반환하되, 변경 가능성에 대한 주의사항을 문서에 명시
- 핵심 권고 사항
- 함수의 반환값이 조회 후 변경될 수 있는지 명확히 밝혀야 함
- 컬렉션을 순회하는 함수는 호출자에서 수행하거나 유틸리티 함수로 구현하여 의존성을 정리
Next Feeds
쿠버초보의 kubestronaut 도전기(feat. 시험 준비 Tips)
쿠버네티스 초보 개발자가 Kubestronaut이 되기까지의 여정과 자격증 취득 노하우, 그리고 Kubestronaut의 혜택을 공유합니다.
KubernetesCNCFCKACKADCKS
2025. 4. 18.
현대자동차

암호화된 AMI 및 EBS 볼륨을 리전 및 계정간 마이그레이션 가이드
암호화된 AMI와 EBS 볼륨을 리전 및 계정 간에 마이그레이션하는 방법을 단계별로 설명하고, AWS KMS 관리형 키 사용 시 주의사항을 안내합니다.
AMIEBS마이그레이션AWS KMS암호화
2025. 4. 18.
베스핀글로벌
Iceberg Operation Journey: Takeaways for DB & Server Logs
Iceberg 테이블에 DB 로그와 서버 로그를 효율적으로 관리하기 위한 운영 전략, 파티셔닝, 최적화 방법, 모니터링에 대한 여정을 공유합니다.
IcebergCDCFlinkParquetzstd
2025. 4. 18.
카카오
로그 유형별 Iceberg 테이블 적재 및 운영 전략
로그 유형(DB, 서버)별 Iceberg 테이블 적재 및 운영 전략, 압축, 파티션, 최적화, 모니터링 방안을 제시합니다.
Iceberg로그파티션최적화모니터링
2025. 4. 18.
카카오

단지 권한 기능을 추가해달라고 했을 뿐인데(feat. 인증 기능 개선)
키친보드 앱의 권한 관리 기능 추가를 위해 JWT 인증 방식 개선, Refresh Token 도입, 하위 호환성 유지, Spring Security 활용 등의 과정을 거쳐 인증 로직을 개선한 경험 공유.
JWTRefresh Token인증권한 관리Spring Security
2025. 4. 18.
스포카

Firehose부터 OpenSearch까지: AWS 서비스를 활용한 로그 분리 전략
AWS 서비스를 활용하여 특정 로그를 분리하고 장기간 보관하는 다양한 전략을 제시합니다. MDC, Fluent Bit, Lambda 등을 활용한 방법을 설명합니다.
로그 분리AWSOpenSearchFirehoseLambda
2025. 4. 17.
펫프렌즈