내일배움캠프 TIL (221230): 실시간 서비스 팀 프로젝트 시작

Jiumn·2022년 12월 30일
0

실시간 세탁 서비스 팀 프로젝트

SA (Starting Assignment)

요구사항

  • 손님
    1. 회원가입 (이 때, 손님으로 회원가입) → 회원가입 완료시 1,000,000P 지급
    2. 로그인 / 로그아웃
    3. 세탁 서비스 신청하기
      1. 잔여 포인트가 10,000P 미만이면 세탁 서비스를 신청할 수 없습니다.
      2. 세탁 서비스를 신청할 시에 10,000P(세탁비)가 깎입니다.
      3. 세탁 서비스 신청할 때는 다음과 같은 정보들을 입력을 받아야 합니다.
        1. 손님 닉네임
        2. 손님 전화번호
        3. 손님 집 주소
        4. 손님 세탁물 사진
        5. 세탁 요청사항
    4. 내가 신청한 세탁 서비스 상태 파악
      1. 대기 중
        1. 사장님 중 아무도 손님의 세탁물 수거를 신청하지 않은 상황
      2. 수거 중
        1. 사장님 중 한 분이 세탁물 수거를 신청하여 수거를 하러 가는 상황
      3. 수거 완료
        1. 사장님이 수거를 완료한 상황
      4. 배송 중
        1. 사장님이 세탁을 완료하고 배송 중인 상황
      5. 배송 완료
        1. 사장님이 손님의 집 앞으로 세탁물을 배송 완료한 상황
    5. 세탁 서비스 평점 및 리뷰 작성
      1. 해당 기능은 사용자가 선택적으로 작성 할 수 있어야 합니다. 의무는 아닙니다.
  • 사장님
    1. 회원 가입 (이 때, 사장님으로 회원가입) → 회원 가입 시 0P 지급
    2. 로그인 / 로그아웃
    3. 손님들이 신청한 세탁물 조회
    4. 조회된 세탁물 중 하나를 세탁 진행
      1. 사장님이 2개 이상 “세탁 진행”을 할 수 없게끔 합니다. 오로지 하나만 세탁할 수 있습니다.
    5. 작업 중인 세탁물 상태 업데이트
      1. 사장님은 수거 완료배송 중배송 완료의 3단계로 세탁 상태를 업데이트 할 수 있습니다.
      2. 오로지 위에 나온 순서대로 세탁 상태를 업데이트 할 수 있으며 그 외의 상태 업데이트는 금지합니다.
      3. 배송 완료를 누르면 10,000P를 입금 받습니다.
    6. 본인의 세탁 서비스 평점 및 리뷰 조회

<프로젝트 구조 개선하기>
1. Layered Architecture Pattern을 적용하기
- 요구사항에 맞게 Controller, Service, Repository로 분리된 구조로 구현하기
2. Repository Layer에서 Sequelize Model생성자 주입(Constructor Injection)을 이용해 전달받도록 개선하기

<테스트 코드 작성하기>
1. 단위 테스트(Unit Test)
- **Controller, Service Layer 내에서 함수 범위로 단위 테스트(Unit Test) 구현하기
-
단위 테스트(Unit Test) 코드 실행 시 데이터베이스에 연결하는 것이 아니라 코드 안에서 데이터를 임시로 정의한 후 테스트하기
2.
통합 테스트(Integration Test)**

API 명세서

1차로 작성한 API 명세서다. 피드백을 받아 수정할 예정이다.

ERD

1차로 작성한 ERD다. 역시 피드백을 받으면 수정할 예정이다.

고민되는 점

손님이 자신의 세탁물을 신청하고 나서 세탁물의 현재 상태를(수거 또는 배송 상태)확인할 수 있는 페이지를 맡았다.
실시간 업데이트가 되어야 하는데 어떻게 구현해야 할지 고민스럽다.

profile
Back-End Wep Developer. 꾸준함이 능력이다.

0개의 댓글