코드 품질 개선 - 세션 46: 함수는 보이는 것과 다르다
·2025.09.12 11:00
함수 이름과 실제 동작의 불일치로 인한 버그를 방지하기 위해 이름과 동작의 일관성을 유지하는 설계 방법을 제안한다.
FooItemRepository 클래스에서 getItem은 캐시된 값만 반환하고, getItemAsync는 캐시에 데이터가 없을 경우 fooItemStore를 통해 데이터를 조회한다. 두 함수의 이름은 단순히 동기/비동기 차이만 있는 것처럼 보이지만, 실제 데이터 조회 방식에는 큰 차이가 존재한다.
이러한 이름과 동작의 불일치는 개발자가 비동기 처리를 위해 함수를 교체할 때, 캐시에 없는 데이터를 가져오지 못하는 버그를 유발할 수 있다.
문제를 해결하기 위해서는 다음 두 가지 방법 중 하나를 선택해야 한다:
- 이름에 맞춰 동작을 일치:
getItem이 캐시뿐만 아니라 스토어에서도 데이터를 조회하도록 수정하여 비동기 버전과 동작을 통일한다. - 동작에 맞춰 이름을 명확히:
getCachedItem이나getOrFetchItemAsync처럼 함수의 실제 동작을 직관적으로 알 수 있는 이름을 사용한다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.