목록 보기
코드 품질 개선 기법 16편: 불이 'null'인 굴뚝에 연기가 'null'이 아닐 수 없다
아키텍처

코드 품질 개선 기법 16편: 불이 'null'인 굴뚝에 연기가 'null'이 아닐 수 없다

라인
라인
2025년 7월 9일

두줄요약

널 객체 패턴은 호출부를 단순하게 만들 수 있지만, 오류 값과 정상 값을 구분해야 할 때는 부적합했습니다. 타입으로 구분 가능한 경우에는 Optional이나 null 같은 정적 표현을 우선 고려해야 했습니다.

핵심 내용

  • 널 객체 패턴은 null 같은 값을 대체해 호출부를 단순하게 만들 수 있는 설계 기법
  • 경계 조건과 일반 로직을 함께 다뤄도 되는 경우에는 유용하지만, 오류 값과 정상 값을 명확히 구분해야 하면 부적합
  • 타입으로 구분 가능한 경우에는 Optional, Maybe, Kotlin null, Swift nil 같은 정적 검증 방식이 더 바람직
  • 동일성과 동등성 차이로 인해 널 객체 판별이 예상치 못한 버그를 만들 수 있음

적용해볼 점

  • 오류 값을 구분해야 하는지 먼저 판단하고 널 객체 패턴 사용 여부 결정
  • 판별 누락이 버그로 이어질 수 있는 구조라면 타입 기반 표현 검토
  • List의 null과 빈 목록처럼 오류 후보가 여러 개면 표현 방식 재검토

다음 읽기

#Kotlin 주제를 이어서 읽기

코드 품질 개선 기법 17편: 사상누각

빌더 패턴은 편리하지만 필수 인수 누락을 런타임에 드러내기 쉬워 더 견고한 대안이 필요했습니다. 특별한 이유가 없다면 생성자나 팩토리 함수로 대체하는 방식을 제안했습니다.

라인
라인
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...