이 글은 2024년 3월 7일에 일본어로 먼저 발행된 기사를 번역한 글입니다.
안녕하세요. 커뮤니케이션 앱 LINE의 모바일 클라이언트를 개발하고 있는 Ishikawa입니다.
저희 회사는 높은 개발 생산성을 유지하기 위해 코드 품질 및 개발 문화 개선에 힘쓰고 있습니다. 이를 위해 다양한 노력을 하고 있는데요. 그중 하나가 Review Committee 활동입니다.
Review Committee에서는 머지된 코드를 다시 리뷰해 리뷰어와 작성자에게 피드백을 주고, 리뷰하면서 얻은 지식과 인사이트를 Weekly Report라는 이름으로 매주 공유하고 있습니다. 이 Weekly Report 중 일반적으로 널리 적용할 수 있는 주제를 골라 블로그에 코드 품질 개선 기법 시리즈를 연재하고 있습니다.
이번에 블로그로 공유할 Weekly Report의 제목은 '불이 'null'인 굴뚝에 연기가 'null'이 아닐 수 없다'입니다.
불이 'null'이면 연기도 'null'이다
널 객체(null object) 패턴은 null, nil, undefined와 같은 값 대신 '비어 있음'이나 '유효하지 않음'과 같은 의미를 가진 객체를 사용하는 디자인 패턴 중 하나입니다. 이 패턴을 사용하는 이유로는 몇 가지가 있는데요. 대표적인 이유 중 하나는 ‘오류를 폴백(fallback)용 값으로 변환’하기 위해서 입니다.
TeamDao.selectMemberIds(TeamId): List<Int>?라는 함수가 있다고 가정해 봅시다. 이 함수는 보통 팀 멤버의 ID 목록을 반환하지만 존