Ch.13 모델링: 클래스 설계의 토대

텐저린티·2023년 8월 6일
0
post-thumbnail
💡 모델
  • 설계 청사진
  • 사물 특징, 관계 그림으로 나타낸 것
  • 시스템 구조 설명
  • 특정 목적 달성 위해 최소한으로 필요한 요소를 갖춘 것
💡 모델링
  • 모델 만드는 활동
  • 모델링 하지 않으면, 변경하기 어렵고 악마 불러들이는 코드 작성

1. 악마를 불러들이기 쉬운 User 클래스

  • 모델링을 제대로 하지 않은 User 클래스는 버그를 한 움큼 머금은 악마 클래스

2. 모델링으로 접근해야 하는 구조

  • 모델링을 위해선 일단 시스템 이해 선행

시스템

  • 목적 달성 수단
  • 이족 보행 시스템 : 이동 목적 달성
  • 음파 통한 회화 시스템 : 의사 전달 목적 달성

시스템 구조와 모델링

  • 편리한 시스템은 특징적 구조 가짐
  • 모델
    • 시스템의 특징적 구조 설명을 위한 것
    • 특정 목적 달성 위해 최소한으로 필요한 요소를 갖춘 것
  • 모델링
    • 모델 의도 정의
    • 구조 설계

소프트웨어 설계와 모델링

  • 목적에 따라 개념의 모델이 달라짐
  • 상품
    • 주문 시 상품 모델
      • ID
      • 상품명
      • 판매 가격
      • 재고 수량
    • 배송 시 상품 모델
      • ID
      • 크기
      • 무게

3. 안 좋은 모델 문제점과 해결 방법

  • 안 좋은 모델
    • 여러 목적에 무리하게 사용
    • 모델링한 것 처럼 보이기만 하는 클래스
    • 여러 요소가 추가되어 일관성 잃은 모델
    • 예: 주문, 배송 목적으로 나누지 않은 상품 모델

정보 시스템 활용

  • 물리적인 시스템과 달리 정보 시스템만이 갖는 특징 활용
  • 현실 개념을 정보 시스템 내 개념으로 만들어, 개념적 처리를 빠르게 수행하는 것

목적별로 모델링하기

  • 개념을 표현하는 수단은 목적에 따라 이름과 형태가 달라짐.
    • 사용자 = 개인 사용자, 법인 사용자
  • 물리적 존재 : 정보 시스템 모델 = 1 : N
    • 사용자
      • 개인
        • 개인 계정
        • 프로필
        • 직무 경험
      • 법인
        • 법인 계정
        • 회사 개요

모델 = 목적 달성 수단

  • 모델 ≠ 대상
    • 모델을 대상으로 해석하면 모든 목적 담김
    • 데이터 거대화 + 일관성 없는 구조
  • 모델 = 목적 달성 수단
  • 목적 중심 이름 설계 필요
    • 목적 달성에 적절한 모델링 가능
    • 구체적인 이름
    • 의미 범위가 좁은 이름
    • 목적 나타내는 이름

단일 책임 = 단일 목적

  • 목적 = 책임
  • 클래스가 이뤄야 하는 목적은 반드시 하나
  • 특정 목적 특화하도록 설계 → 변경 쉬운 고품질 구조
  • 목적 먼저 확립 → 관심사에 따라 책임 정하기

모델을 다시 확인하는 방법

  • 모델의 달성 목적 모두 찾기
  • 목적 별 모델링 수정
  • 목적 중심 이름 설계 기반으로 모델 작명
  • 모델에 목적 외 요소 포함되면 재수정

모델과 구현은 반드시 피드백 순환

  • 모델 ≠ 클래스
  • 모델 = 클래스 * N
    • 상품 = 상품 ID + 상품명 + 판매 가격 + 재고 수량
  • 모델 → 클래스(코드) 과정에서 동작 필수 요소 간과하는 경우 다반
    • 이 과정에서 지속적으로 모델에 피드백
    • 모델 수정 → 모델 구조 개선
  • 나중에 피 보기 싫으면 개발 초기부터 목적에 맞는 모델링에 목숨 걸자

4. 기능성을 좌우하는 모델링

  • 기능성
    • 고객 니즈를 만족하는 정도

숨어 있는 목적 파악

  • 법적 내용이 시스템에 반영되어야 함
    • 문제 발생 시 법적 효력 없다면, 기능 손실
  • 개념의 정체, 숨겨있는 중요한 목적에 유의

깊은 모델

  • 기능성을 혁신하는 모델
  • 뛰어난 변환 능력을 갖춘 모델
  • 본질적 과제 해결 + 기능성 혁신에 공헌
  • 한 번의 설계 아닌, 매일 개선을 반복하는 설계
profile
개발하고 말테야

0개의 댓글

관련 채용 정보