백엔드 개발자 블로그

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

테크 블로그 리뷰

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

backend-dev 2024. 3. 13. 11:38

메서드를 사용하기 위해서는 인자에 사용된 도메인에 대한 지식을 가지고 있어야 합니다.

함수의 인자가 많을수록 팀원들이 도메인에 대한 지식을 습득하는 시간이 길어지게 되어 팀원들에게 민폐가 될 수 있습니다.해당 불상사를 예방하기 위해서 해당 글을 읽고 정리해볼려고 합니다.

https://toss.tech/article/engineering-note-4

 

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

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

toss.tech

재전송, 메일 수신자 필터링, SMS 전송(fallback) 등 다양한 기능을 제공하는 메일 발송 기능을 예시로 들고 있습니다.

리펙토링

  1. 함께 사용하는 인자는 하나로 묶는다
  2. 관련 없는 것은 분리한다
  3. 가장 중요한 인자만 남긴다

바뀐점

  • Before: 일단 Mail 클래스의 send() 메서드 통해서 보낼 수 있는데요, id는 꼭 랜덤하게 넣어야 하고요, 예약 메일이 아니면 reservedAtnull을 넣으세요. 아, 혹시 수신자 메일 도메인이 어떻게 되나요? 강제로 보내야 할 때가 있어서요.
  • After: Mail 클래스가 제공하는 공개 메서드 목록을 보세요.