도메인 모델링
도메인 모델링 (Domain Modeling)
이 장에서는 Scala 3로 주변 세상을 어떻게 모델링할 수 있는지 살펴봐요. 실제 프로그램에서 다루는 데이터와 그 데이터가 가지는 의미를 코드로 표현하는 방법을 보여주는데, 크게 세 부분으로 나뉘어요.
- Tools 섹션에서는 여러분이 쓸 수 있는 도구들을 소개해요. 클래스(class), 트레이트(trait), 열거형(enum) 등이 여기에 해당해요.
- OOP Modeling 섹션에서는 객체지향 프로그래밍(Object-Oriented Programming, OOP) 스타일로 속성과 동작을 모델링하는 방법을 다뤄요.
- FP Modeling 섹션에서는 함수형 프로그래밍(Functional Programming, FP) 스타일로 도메인을 모델링하는 방법을 다뤄요.
출처: Scala 3 Book
본문
도메인 모델링은 "현실 세계의 개념을 코드 안에 옮겨 놓는 작업"이라고 볼 수 있어요. Scala 3는 이를 위한 여러 도구를 제공하는데, 이 장에서는 세 가지 관점에서 그 도구들을 살펴요.
먼저 Tools에서는 모델링에 쓰일 기본 재료들을 확인해요. 클래스는 상태와 동작을 하나로 묶을 때 쓰고, 트레이트는 여러 클래스가 공유할 행동을 정의할 때 써요. 열거형(enum)은 한정된 값의 집합을 표현할 때 유용하죠. 이 장에서는 이 도구들이 언제, 왜 쓰이는지를 중심으로 설명해요.
다음 OOP Modeling에서는 객체지향 방식에 집중해요. 데이터(속성)를 보고하는 방식과 동작(메서드)을 표현하는 방식을 살피면서, 클래스와 트레이트를 어떻게 조합하는지 배워요.
마지막으로 FP Modeling에서는 함수형 방식을 봐요. 불변 데이터와 함수 조합을 중심으로 도메인을 표현하는데, 실무에서는 OOP와 FP 방식을 적절히 섞어 쓰는 경우가 많아요.