프로젝트 설계

Lee·2023년 9월 4일
0

서론

개인 프로젝트의 설계 과정에 대해 기록한다.

필요한 도메인 정리

이번 프로젝트는 음식 배달 서비스로 이 서비스에 필요한 도메인들이 어떤 것들이 있을지 생각해 보았다.
그 결과 배달을 할 식당,
식당에서 관리하는 음식,
사용자에게 판매할 메뉴,
어떠 메뉴를 주문하는지 관리할 주문,
서비스를 이용할 사용자 도메인을 생각했고
각 도메인에 필요한 필드를 정리했다.

ex) Menu 도메인

  • 필요한 필드
    • 메뉴 이름
    • 메뉴 가격
    • 판매 유무
    • 메뉴 설명
    • 메뉴 상태

요구사항 정리

위에서 도메인과 필드를 전체적으로 정리 후 이를 통해
각 도메인에 어떤 요구사항이 프로젝트에 필요한지 작성해보았다.

ex) 음식 요구사항

1. 음식
    1. 음식을 등록 할 수 있다.
        1. 음식은 식별 가능한 고유한 값과 가격, 이름으로 구성된다.
        2. 음식의 이름과 가격은 반드시 존재해야 한다.
        3. 같은 이름의 음식이 존재 할 수 있다.
        4. 음식 가격은 0보다 커야 한다.
    2. 음식의 가격 및 이름은 변경 될 수 있다.
        1. 음식의 가격은 0보다 작거나 null 상태가 될 수 없다.
        2. 변경할 음식은 반드시 존재하는 음식이어야 한다.
        3. 변경 요청 음식은 구성된 메뉴에 영향을 미치므로 제품이 포함된 메뉴의 가격은 0보다 커야 하며, 작다면 그 메뉴는 사용자에게 보이면 안된다.
    3. 한 음식이 여러 메뉴에 존재할 수 있다.
    4. 모든 음식을 조회 할 수 있다.

링크 : 요구사항 정리

도메인 정리 및 ERD 작성

위의 과정을 통해 불필요한 필드 삭제 및 추가 필드 추가 등의 작업을 통해 도메인을 정리했다.
이후 ERD 툴을 사용해 사용할 도메인의 필드가 사용할 타입 정보를 입력했다.
개별 도메인에 대한 ERD 작성이 끝나고 테이블 연관관계를 어떻게 구성할지 생각한 후 외래키를 사용해 관계를 맺고 필요한 경우 경유 테이블을 추가했다.

아래는 완성한 ERD이다.

ERD

API 설계

작성된 ERD를 기반으로 서비스에 사용할 REST API를 설계했다.
초기 단계인 관계로 각 도메인에 대한 CRUD API로 구성하고 프로젝트 진행과정에서 필요한 API를 추가하거나
요구사항 변경에 의한 API를 변경할 가능성이 높다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글