본문 바로가기
독서

객체지향의 사실과 오해 (Chapter 6 - 객체 지도)

by graygreat 2021. 4. 13.
728x90
반응형

소프트웨어를 설계할 때는 두 가지 측면을 생각해야 한다.
바로 기능과 구조이다. 기능 측면의 설계는 제품이 사용자를 위해 무엇을 할 수 있는지에 초점을 맞춘다.
구조 측면의 설계는 제품의 형태가 어떠해야 하는지에 초점을 맞춘다.

우리는 객체지향을 설계할 때 객체의 구조에 집중하고 기능이 객체의 구조를 따르게 만들어야한다.
이것이 객체를 기반으로 책임과 역할을 식별하고 메시지를 기반으로 객체들의 협력 관계를 구축하는 이유이다.

안정적인 재료 : 구조

책에서는 도메인 모델을 설명한다.
우선 도메인이란 사용자가 프로그램을 사용하는 대상 분야를 말한다. 도메인 모델은 사용자가 프로그램을 사용하는 대상 영역에 관한 지식을 선택적으로 단수화하고 의식적으로 구조화한 형태다. 예를 들어, 은행 ㅇ버무에 종사하는 사람은 은행 도메인을, 중고 자동차 판매상은 자동차 도메인으로 볼 것이다.

도메인 모델의 핵심은 사용자가 도메인을 바라보는 관점을 반영해 소프트웨어를 설계하고 구현하는 것이다.

불안정한 재료 : 기능

유스케이스란 사용자의 목표를 달성하기 위해 사용자와 시스템 간에 이뤄지는 상호작용의 흐름을 텍스트로 정리한 것이다. 유스케이스의 가치는 목표를 중심으로 시스템의 기능적인 요구사항들을 이야기 형식으로 묶을 수 있다는 점이다.
유스케이스의 5가지 특징이 있다

  1. 사용자와 시스템 간의 상호작용을 보여주는 '텍스트'이다.
  2. 여러 시나리오들의 집합이다.
  3. 단순한 feature 목록과 다르다. 이야기를 통해 연관된 기능들을 함께 묶을 수 있다.
  4. 사용자 인터페이스와 관련된 세부 정보를 포함하지 말아야 한다.
  5. 내부 설계와 관련된 정보를 포함하지 않는다.

유스케이스는 단지 사용자가 시스템을 통해 무엇을 얻을 수 있고 어떻게 상호작용할 수 있느냐에 관한 정보만 기술한다.

우리는 불안정한 기능을 안정적인 구조 안에 담음으로써 변경에 대한 파급효과를 최소화할 수 있다.
이것이 바로 객체지향 설계자가 갖춰야 할 기본 설계 능력이다.

내 생각

이번 장은 생각보다 많이 어려웠다. 도메인 모델이라는 것을 개발할 때 항상 패키지 명으로 입력하였는데, 무슨 뜻인지 모르고 개발했다는 생각이 든다. 내용이 어려워도 얻어가는 것은 있어서 좋다.
이 책을 한번 더 읽을 쯤에는 이번 장이 무슨 말인지 더 와닿을 것 같다.

반응형

댓글