본문으로 이동
인자가 많은 메서드는 왜 나쁠까?
문서

인자가 많은 메서드는 왜 나쁠까?

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

원문 보기

AI 핵심 요약

메일 발송 메서드에 인자가 11개나 있어 호출자가 각 값의 의미와 조합을 알아야 했고, 사용하지 않는 기능에도 null을 전달해야 하는 문제가 있었습니다. 작성자는 도메인 지식을 확인한 뒤 함께 쓰이는 인자를 묶고, 관련 없는 기능은 설정 메서드로 분리했으며, 내부에서 정할 수 있는 값은 감춰 `send()`의 필수 인자를 수신자·제목·본문으로 줄였습니다. 그 결과 호출자는 필요한 기능만 명시적으로 설정하고 메일을 보낼 수 있게 됐습니다. 메서드의 복잡성은 구현뿐 아니라 사용하는 사람의 부담으로도 평가해야 하며, 공개 API를 동료가 쉽게 이해하고 사용할 수 있도록 설계하는 것이 중요하다는 교훈을 전합니다.

  • 항상 함께 쓰이는 인자는 하나의 옵션 객체로 묶어 관계를 명확히 하세요.
  • 기능 조합마다 별도 메서드를 만들면 조합 수만큼 API가 늘어날 수 있으니, 독립적인 설정 메서드로 분리하는 방법을 고려하세요.
  • 기능을 켜는 메서드에는 이미 의도가 담겨 있으므로, 중복되는 Boolean 인자나 불필요한 값을 받지 않도록 하세요.
  • 랜덤 ID나 기본 파라미터처럼 내부에서 결정할 수 있는 값은 호출자에게 요구하지 말고 구현 안에서 처리하세요.
  • 공개 메서드와 인자 이름만으로 사용법을 유추할 수 있는지 코드 사용자 관점에서 점검하세요.

소개

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

비슷한 학습 자료

문서 나재은

null 리턴은 왜 나쁠까?

문서 나재은

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

개발 · 프로그래밍 기타

문서 임재후/최수민

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

문서 임재후/최수민

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

웹 개발 프론트엔드

문서 이지윤

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

UI/UX

문서 김소현

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

UI/UX

문서 강영화

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

UI/UX

책 제니퍼 티드웰, 찰스 브루어, 아인 발렌시아 예스24

사용자를 끌어들이는 UX/UI의 비밀

책 제니퍼 티드웰, 찰스 브루어, 아인 발렌시아 예스24

좋은 인터페이스는 유저의 삶을 더 쉽게 만들어야 한다 매력적인 인터페이스는 말이 잘 통하는 친구와 나누는 대화처럼 기분 좋은 경험을 불러오지만, 페인 포인트가 넘쳐 나는 서비스는 사용자에게 짜증과 좌절감을 안겨 준다. 로딩이 느린 화면, 어디로 가라는 건지 도무지 알 수 없는 내비게이션, 번거롭게 자꾸 열리는 모달 박스로 사용자 이탈률을 높이고 있지는 않은가? 『사용자를 끌어들이는 UX/UI의 비밀』에서 알려 주는 80가지 UX/UI 실무 패턴으로 사용자를 고민하게 하지 않는 인터페이스를 만들어 보자!

UI/UX