일상/레벨업 독서

[내 코드가 그렇게 이상한가요?] 13장 모델링:클래스 설계의 토대

Gamii 2024. 11. 15. 18:20
728x90

 

 

시스템은 목적을 달성하기 위한 수단입니다. 그리고 모델은 시스템의 구성 요소들입니다.

 

 

모델이란 특정 목적 달성을 위해 최소한으로 필요한 요소를 갖춘 것입니다.

 

 

 

 

예시 - 온라인 쇼핑몰

  • 상품 매매를 시스템화한 것
  • 온라인 쇼핑몰은 매매가 효율적으로 이루어지게 도와줌

 

 

 

 

모델로 구분하기 전

상품 class
ID
상품영
원가
판매 가격
제조년월일
제조 업체
보증 기간
대응 통신 규격
구성 부품
ㅂ부품 재료
부품 제조업자
유통 기한
소비 기한
...

 

 

 

 

모델 별로 구분한 후

 

1) 주문 시의 상품 모델

최소한으로 필요한 요소 - 상품ID, 상품명, 판매 가격, 재고 수량 등

 

주문 시의 상품 class
ID
상품명
판매 가격
재고 수량
...

 

 

 

2) 배송 시의 상품 모델

최소한으로 필요한 요소 - ID, 크기, 무게 등

 

배송 시의 상품 class
ID
크기
무게
...

 

 

 

 

주문과 배송은 달성해야 하는 목적이 다릅니다. 즉, 목적에 따라 상품의 모델이 달라지는 것입니다.

 

 

 

 

모델은 대상이 아니라 목적 달성의 수단입니다. 목적 중심으로 이름을 잘 설계하면, 목적을 달성하기에 적절한 모델을 설계할 수 있습니다.

 

 

 

 

 

 

 

[모델을 다시 확인하는 방법]

 

  • 해당 모델이 달성하려는 목적을 모두 찾아냅니다.
  • 목적별로 모델링을 다시 수정합니다.
  • 목적 중심 이름 설계를 기반으로 모델에 이름을 붙입니다.
  • 모델에 목적 이외의 요소가 들어가 있다면 다시 수정합니다.

 

 

'모델 = 클래스'는 아닙니다. 일반적으로 모델 하나는 여러 개의 클래스로 구현됩니다.

 

모델과 클래스의 차이