본문으로 이동
null 리턴은 왜 나쁠까?
문서

null 리턴은 왜 나쁠까?

나재은 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

null은 값이 없다는 사실만 드러낼 뿐, 데이터 미동기화나 조회 실패처럼 왜 값이 없는지는 설명하지 않아 코드를 읽는 개발자가 맥락을 추측하게 만듭니다. 글은 이런 의미 축약이 코드 복잡성을 높인다고 설명하며, 원인과 해결 단서를 예외 메시지나 로그에 구체적으로 남기는 방법을 제안합니다. 호출자가 재시도해야 하는 경우에는 재시도 동작을 함수 API나 정책으로 표현하고, 필요할 때만 선택하도록 해 nullable 분기와 불필요한 인자 부담을 줄일 수 있습니다. 핵심은 특정 패턴을 고집하는 것이 아니라, 코드와 실행 결과에 필요한 맥락을 명시해 다음 개발자가 추측하지 않도록 하는 것입니다.

  • null, 빈 문자열, -1처럼 여러 원인을 하나의 값으로 표현하면 호출자가 배경과 실패 원인을 추측해야 합니다.
  • 주석에만 의존하기보다 예외 메시지나 로그에 원인, 관련 값, 해결 방법, 참고할 위치를 남기세요.
  • 호출자가 재시도 같은 후속 동작을 해야 한다면 그 맥락을 함수의 API로 표현해 분기와 nullable 처리를 줄일 수 있습니다.
  • 자주 쓰지 않는 동작은 기본값이나 선택 가능한 정책으로 제공해 일반적인 호출의 부담을 낮추세요.

소개

코드 복잡성 관리 측면에서 의미를 축약한 표현의 문제와 해결 방법을 예제로 알아봐요.

비슷한 학습 자료

문서 한주연

토스의 Technical Writer들이 어떻게 '문서를 쓰는 사람'에서 '조직의 지식 시스템을 설계하는 사람'으로 일을 넓혀왔는지 소개해요.

문서 나재은

인자가 많은 메서드를 함께 리팩토링 하면서 코드 사용자 입장에서 코드 복잡성을 관리하는 방법을 알아봅니다.

개발 · 프로그래밍 기타

문서 임재후/최수민

웹에서 복잡한 퍼널 쉽게 관리하기

문서 임재후/최수민

토스페이먼츠 프론트엔드 챕터에서 웹에서 퍼널을 손쉽게 관리하기 위해 했던 고민과 해결 방법을 공유해요.

웹 개발 프론트엔드

문서 이지윤

디자이너들도 어떻게 하면 빠른 속도를 내며 전체적인 경험을 맞출 수 있을지 매 순간 고민하고 있어요.

UI/UX

문서 김소현

사용자 관점에서 본다는 게 엄청난 게 아닌데도, 왠지 엄청난 것으로 개선해야 할 것 같은 느낌이 들 때도 있죠. 그래서 오늘은 사용자 관점을 활용해 개선한 굉장히 가벼운 사례들을 가져와봤어요.

UI/UX

문서 강영화

토스 앱에는 little big detail 이 많은데요, 그중 하나를 소개하고 싶어요. 바로 불필요한 클릭 없애는 방법이에요.

UI/UX