웹 애플리케이션 설계
도메인 모델링과 API
도메인 모델 정의
도메인 모델은 현실 세계의 개념을 추상적으로 표현한 것으로, 문제 영역을 구조적으로 이해하고 설계하기 위한 도구입니다.
모델의 의미: 하나의 개념(예: 반려견 모델)을 표현합니다.
문제 영역 전체를 표현하는 도메인 모델을 나타냅니다..
도메인 모델을 만들기 위해서는 실제 현실 세계에 있는 개념을 추상적 표현으로 매핑해야 한다. 이 추상적 표현을 모델이라 합니다.
모델의 구성 요소
속성 (Attributes): 개념을 설명하는 데이터 예: 학생의 이름, 번호
행위 (Behaviors): 개념이 수행할 수 있는 동작. 예: 공부, 집으로 가기
모델은 속성과 행위를 나타내고 있다. 속성은 이름처럼 개념을 설명하는 데이터이며, 행위는 개념이 할 수 있는 것 또는 사용자가 그 개념을 가지고 할 수 있는 것을 의미합니다.
다음은 Student 클래스를 사용한 도메인 모델 예제.
속성: name, number. 행위: study, goToHome.
사용할 도메인 모델링
클래스나 관계형 DB 테이블들은 대부분 내부 처리 과정에 적합한 상세 구현에 가깝습니다. 하지만 API는 애플리케이션의 뷰 계층에 더 가깝습니다.
때문에 API 설계자는 서버가 아니라 클라이언트 관점에서 API를 바라봐야 합니다.
때문에 해당 책에서는 클라이언트 관점을 유지하기 위해 프론트엔드 개발을 담당하는 개발자에게 API 명세 초안 작성을 맡기기도 한다.
사용자 스토리
사용자 스토리란 무엇인가?
사용자 스토리는 소프트웨어 개발 과정에서 요구사항을 분석하는 데 사용하는 비형식적인 프로젝트 관리 방법이다.
이러한 사용자 스토리는 제품의 사용자 관점에서 작성하며, 소프트웨어 안에서 무언가를 달성하기 위해 해야 하는 활동을 기술한다.
ex)
나는 사용자로서 패스 신청을 할 수 있고, 패스를 열람할 수 있다.
다른 사용자 스토리에 의존하는 사용자 스토리는 다음과 같은 템플릿을 사용해서 할 수 있다.
패스 승인이 된다면, 나는 해당 패스를 열람할 수 있다.
패스 거절이 된다면, 나는 해당 패스를 다시 신청할 수 있다.
이러한 사용자 스토리 작성을 역할을 분담하여 작성할 수 있으며, 이를 비교하여 팀의 올바른 방향성을 알 수 있다.
패스 승인이 된다면, 나는 패스 열람을 할 수 있다.
나는 관리자로서 패스를 승인해줄 수 있고, 그 결과 해당 패스를 볼 수 있게 할 수 있다.
-> 요구사항과 직접적으로 일치하므로, 팀이 올바른 방향으로 나아가고 있음을 알 수 있다.
이처럼 사용자 스토리는 도메인 모델링에 도움이 되며 모델의 행위와 모델 간의 관계를 정의할 때 특히 유익하다. 사용자 스토리를 작성하고 분석한 결과를 통해 행위 목록을 도출할 수 있으며, 전체를 아우르는 완전한 모델을 뒤이어 수행되는 OpenAPI 기술 작업의 바탕이 된다.