프로젝트 준비 준비 준비 ✍🏻

maketheworldwise·2022년 4월 10일
0


프로젝트 준비 시작!

프로젝트를 시작 전의 나는 '공부하는 것만으로도 벅찬데 할 수 있을까?' 라는 두려움이 앞섰다. 하지만 K님이 적극적으로 이끌어주신 덕분에 부담감을 어느정도 덜 수 있었다. K님의 적극적인 자세는 나도 본받아야 할 것 같다.. 갓 K님 존경합니다. 🙏🏻

아무튼! 우리는 프로젝트를 진행하기 위해서 기능 리스트업과 목업 그리고 그 외 필요한 내용들을 정리했다.

프로젝트 이름 정하기!

프로젝트 이름의 후보는 mashinsayoushinsa 가 나왔는데, 더 간지(?)나는 youshinsa를 선택하기로 했다.

Use Case

나는 Buyer, K님은 AdminStore Owner에 대한 Use Case를 각자 준비하기로 했다. 나는 Use Case를 어떻게 작성해야할지 감이 안와서 무신사에서 실제로 물품을 구매도 하면서 기능들을 리스트업했다.

나는 설계 쪽에 관심이 많다보니 Use Case가 많으면 많을 수록 설계할 때 다양한 부분을 고려할 수 있다고 생각해서 무신사에서 제공하는 기능들을 가능하면 많이 담아냈다.

그리고 나서 각자 정리해온 Use Case를 공유하는 시간을 가졌는데, 내가 정리해온 Use Case는 완전히 잘못되었다는 것을 깨닫게 되었다... K님과 비교해서, 내 Use Case는 시간상 모두 구현하기에 어렵고, 복잡하고, 그리고 무엇보다도 설계만을 위한 Use Case라는 점에서 문제였다.

그래서 K님의 조언을 얻어 최대한 간단하고 단순하게 구성하기로 결정했다. 조회 기능은 최소한으로, 소셜 로그인, 댓글 등의 기능들은 모두 제외하기로 했다.

📂 . Common

  • user는 회원 가입을 통해 Role을 획득할 수 있다.
  • user는 회원 탈퇴를 할 수 있다.
  • user는 로그인을 통해 서비스를 사용할 수 있다.
  • user는 로그아웃 을 통해 서비스 사용을 종료할 수 있다.

📂 . Buyer

  • buyer는 물품 목록 조회를 할 수 있다.
  • buyer는 물품 상세 조회를 할 수 있다.
  • buyer는 물품을 장바구니에 추가 할 수 있다.
  • buyer는 물품을 장바구니에서 제거 할 수 있다.
  • buyer는 물품을 즐겨찾기 할 수 있다.
  • buyer는 물품 구매를 할 수 있다.
  • buyer는 물품 구매 취소를 할 수 있다.
  • buyer는 주문 내역 조회를 할 수 있다.
  • buyer는 이벤트 참여를 할 수 있다.

(여기서 말하는 이벤트는 참여 이벤트와 상품에 연결되어있는 이벤트 2개의 종류로 생각해서 진행하기로 했다.)

📂 . Store Owner

  • store owner는 입점 신청 을 진행할 수 있다.
  • store owner는 입점이 완료되면 물품 등록 을 진행할 수 있다.
  • store owner는 신청된 주문을 수락 할 수 있다.
  • store owner는 신청된 주문을 취소 할 수 있다.
  • store owner는 신청된 주문의 주문을 배송 상태로 진행 할 수 있다.
  • store owner는 해당 샵에서 진행하는 이벤트를 개최 할 수 있다.

📂 . Admin

  • admin은 입점 신청을 수락할 수 있다.
  • admin은 모든 User의 정보를 조회 할 수 있다.

목업 준비

우리는 위의 Use Case를 기반으로 ovenapp 사이트를 이용해 목업을 준비했다.

프로젝트 중점사항

다음으로는 프로젝트의 중점사항을 정리해보았다. (K님이 정리해주신 내용을 그대로 가져왔다 😙)

🧷 . Common

  • Version 관리 전략
  • 문서화

🧷 . Performance

  • 서버 확장성
  • 대규모 트래픽을 처리에 대한 고려
  • 비동기 처리를 경험해 볼 수 있도록

🧷 . Code Quality

  • Code Convention을 준수
  • OOP와 관련된 원칙들을 준수
  • 테스트 가능하도록 설계
  • 리팩토링

🧷 . Spring

  • Spring 기능을 충분히 활용
  • Spring 내부 동작과 구조를 숙지하면서 사용

🧷 . 문제 상황 Simulation

  • 한정 판매로 정해진 수량의 물품만 판매 - 수량의 제한
  • 주문 데이터가 많은 경우 정산에 대한 처리 시간 문제
  • 이벤트 시 한번의 트래픽이 몰리는 경우
  • 어쩔 수 없이 서버가 다운되는 경우에 대한 Fail-Over 테스트
  • 이미지는 S3와 같은 File Storage에 저장, 다른 데이터는 DB에 저장할 시 많은 데이터를 빠르게 저장하는 방법
profile
세상을 현명하게 이끌어갈 나의 성장 일기 📓

0개의 댓글