
백엔드
코드 품질 개선 기법 11편: 반복되는 호출에 함수도 지친다
두줄요약
수신 객체의 상태를 확인하는 로직은 해당 함수 내부로 옮기는 편이 더 안전할 수 있다고 설명했습니다.콜백보다 반환값으로 결과를 드러내면 호출 흐름도 더 명확해집니다.
핵심 내용
- 수신 객체의 상태를 먼저 확인한 뒤 같은 객체를 변경하는 패턴은, 상태 확인을 변경 함수 내부로 옮겨 책임을 한곳에 모으는 편이 유리한 경우가 있음
- 이미 친구인지 확인하는 로직을 호출자에 두기보다
markAsFriend내부에서 처리해 누락 버그와 불필요한 상태 노출을 줄이는 방식 제안 - 성공 시 콜백을 넘기는 고차 함수보다 Boolean 반환으로 결과를 명확히 드러내는 방식이 더 적절한 경우가 있음
주의할 점
- 이미 친구일 때 아무 동작도 하지 않는 의미가 명확하지 않으면 함수명이나 주석으로 의도를 드러낼 필요
- 반환값만으로 의도를 표현할 때는 문서화와 호출자 확인 강제가 필요할 수 있음
적용해볼 점
- 상태 전이 함수는 자기 상태 검사를 내부화할지 검토
- 성공/실패를 콜백보다 반환값으로 드러낼 수 있는지 점검
- implicit precondition을 줄여 호출자 책임과 누락 가능성 완화