<aside> 💁‍♂️ 이 장에서는 이름을 대충 붙였을 때 어떤 악마가 태어나는지, 그리고 이러한 악마를 퇴치하려면 이름을 어떻게 붙여야 하는지 등 **‘이름 설계 방법’**에 대해 살펴봅니다.

</aside>

이 장에서 이름을 짓근 기본적인 방법은 목적 중심 이름 설계입니다.

목적 중심 이름 설계 : 소프트웨어가 달성해야 하는 목적을 기반으로 이름을 설계하는 방법

소프트웨어 목적 예
온라인 쇼핑몰 캠페인 등으로 고객의 구매 의욕을 환기하고 싶다.
게임 캐릭터 설정 및 무기 강화 시 사용자 맞춤 콘텐츠를 제공하고 싶다.
사내 라이브러리 특정 부서의 개발 생산성을 높이고 싶다.

목적 중심 이름 설계는 이름에서 목적과 의도를 읽고 이해할 수 있게 설계하는 것입니다.

그리고 ‘설계’라는 단어가 붙어있으므로, 지금까지 소개했던 객체 지향 설계와 단일 책임 원칙을 지키는 설계와 같이 어떤 문제를 해결하기 위한 것입니다.

고객 대상 제품 개발에서는 ‘회사에서 사업적으로 어떤 목적을 달성하고 싶은가’라는 비즈니스 목적이 중요한 역할을 하므로, 비즈니스 목적을 중심으로 이야기합니다.


#10-1. 악마를 불러들이는 이름

온라인 쇼핑몰 서비스에서 흔히 볼 수 있는 좋지 않은 이름 설계는 상품을 **그대로 ‘상품 클래스’**라고 이름 붙이는 것입니다.

온라인 쇼핑몰은 출고, 예약, 주문, 발송 등 상품을 다루는 유스케이스가 많습니다.

따라서 이름을 단순하게 상품 클래스라고 붙이면, 여러 유스케이스와 관계를 맺게 됩니다.

그럼 상품 클래스가 여러 클래스와 관련 있는 로직을 갖게 되고, 점점 거대하고 복잡해질 것입니다.

강한 결합 구조가 되어버리는 것입니다.

이렇게 거대해진 상품 클래스에 사양 변경이 발생하면 변경된 부분의 영향을 받아 동작에 버그가 생기지는 않은지, 상품 클래스와 관련된 클래스를 모두 확인해 봐야 합니다.

하지만 영향 범위가 너무 넓어 개발 생산성이 저하될 것입니다.

#10-1-1. 관심사 분리