먼저 기능 목록보다 흐름을 봐야 한다

chap00에는 회원, 상품, 주문, 배송이라는 네 가지 도메인이 들어 있다.

하지만 이 장을 읽을 때 중요한 것은 기능 목록을 외우는 것이 아니라, 이 기능들이 어떤 하나의 흐름으로 이어지는지를 보는 것이다.

이 프로젝트를 가장 단순하게 말하면, 사용자가 로그인하고 상품을 확인한 뒤 주문을 만들고 배송 상태를 확인하는 주문 시스템이다.

큰 흐름은 이렇게 이어진다

전체 흐름을 문장으로 풀면 아래와 같다.

  1. 사용자는 로그인해서 토큰을 발급받는다.
  2. 상품을 조회해 어떤 상품을 주문할지 결정한다.
  3. 주문을 생성하면 주문 정보가 저장되고, 재고가 줄고, 배송도 함께 만들어진다.
  4. 필요하면 주문을 조회하거나 취소할 수 있다.
  5. 배송 역시 조회하거나 취소된 주문에 맞춰 상태가 바뀐다.

image.png

이 흐름은 특별히 복잡하지 않다.

그래서 처음 읽는 사람도 “아, 이 프로젝트는 결국 주문을 중심으로 여러 기능이 이어지는 구조구나” 하고 쉽게 받아들일 수 있다.

도메인은 나뉘어 있지만 시스템은 하나다

회원, 상품, 주문, 배송은 각각 역할이 다르다.

하지만 chap00에서는 이 역할들이 같은 애플리케이션 안에서 협력한다.

이 말은 곧 다음 뜻이기도 하다.