[2024.07.22 TIL] 내일배움캠프 68일차 (최종 팀프로젝트, 프로젝트 주제 결정, 와이어프레임 작성)

My_Code·2024년 7월 22일
0

TIL

목록 보기
83/113
post-thumbnail

본 내용은 내일배움캠프에서 활동한 내용을 기록한 글입니다.


💻 TIL(Today I Learned)

📌 Today I Done

✏️ 프로젝트 주제 결정 (우선 순위 조정)

  • 프로젝트 명 : Give me the Ticket
  • 선정 사유
    • 티켓 환불이 애매할 때, 환불보다는 안전한 중고 거래가 있으면 해서.
    • 최근 암표로 사기를 치는 사람들이 늘어나고 있어서 이러한 암표 사기를 조금이라도 방지할 수 있기 때문
  • 장단점
    • 장점 : 예매와 중고 거래를 하나의 플랫폼에서 제공함으로써 사용자의 편의성이 향상됨
    • 단점 : 정말 안전한 거래를 위한 규제, 보안 등의 요구 사항이 많아짐
  • 개선점 : 안전한 거래를 위한 신뢰성 높은 거래 시스템 구축이 필요함
    • 해결 방안 : 해당 사이트에서 티켓을 구매한 사람만 중고 거래가 가능하도록 구현
  • 특징
    • 일반적인 티켓팅이 가능하고, 환불 대신에 다른 사람들과 중고로 거래도 가능함
    • 대신에 중고로 거래 시 원래 티켓 가격보다 비싸게 판매 불가(플미 방지)
  • 기술 및 API
    • 유저 API
      • 회원가입 및 로그인 (상)
        • Passport 적용 (소셜로그인: 카카오, 네이버, 애플- 예정)
      • 사용자 정보 조회
        • 북마크 기능 - 내가 찜해둔 공연 추가 및 삭제
        • 포인트 기능
          • 나의 포인트 잔여 조회 (상)
          • 나의 포인트 충전 (포트원 port one, 가짜 거래 용 계정 생성) (중)
          • 나의 포인트 로그 조회 (입금 내역, 사용 내역, 사유) (상)
        • 리뷰 및 평점 기능 (하)
          • 사용자가 작성한 리뷰, 평점 조회
          • 사용자가 좋아요 누른 리뷰 조회
        • 예매한 티켓 기능 (상)
          • 내가 예매한 공연 목록 조회
          • 티켓 환불도 공연 시작 1시간 전까지만 가능
    • 공연 관련 API (관리자만, 조회 제외)
      • 생성 : 이미지 첨부는 array 형식의 Multer를 사용 (이미지 업로드 API가 별도로 필요) (상)
      • 조회 : 페이지네이션 기능 (중, 하)
      • 공연 예매 기능 (좌석 지정, 스탠딩 둘 다 가능). 공연 시작 2시간 전까지만 예매 가능 (Bull Queue를 통한 동시성 처리) (상)
      • 공연 종료 기능 (지정된 시간이 되면, 자동으로 기준 시를 확인하여 종료) (하)
      • 티켓 재발급 - (티켓의 정보를 그대로 둔 채 발급 코드만 수정되도록 수정) (상)
    • 리뷰 및 평점 API ((신규/중고)예매 내역이 있는 사람만) (하)
      • 공연에 대한 리뷰 및 평점 기능
      • 평점은 최소 1점~ 최대 10점으로 할 수 있습니다.
      • 사용자가 작성한 리뷰, 평점에 대한 좋아요 기능
    • 검색 API
      • 검색 시 Elasticsearch 사용 (상)
      • 필터링 : 날짜, 좋아요, 카테고리, 지역 (상, 중)
    • 중고 거래 API (로그인한 모든 사용자 접근 가능, 생성/수정/삭제는 티켓 보유자만 가능)
      • 생성 : 티켓을 소유한 사람들만 중고 거래 게시물 작성 가능 (상)
      • 조회 : 공연 시간이 1시간 남으면 자동으로 거래 게시판에서 삭제 (상)
      • 상세 조회 : 상태 확인 (판매 중, 판매 완료 등) (상)
      • 거래 기능 (Bull Queue를 통한 동시성 처리) (상)
        • 판매자 : 티켓 정보와 가격을 게시물로 올림
        • 구매자 : 선착순으로 구매 가능 - Bull Queue를 통한 동시성 처리
        • 거래되는 금액은 사이트 내 재화로 진행된다
        • 판매할 티켓을 가격 조정이 가능하도록 (구매했을 때의 결제 가격 이하로)
        • 중고 거래 시 거래 금액의 5%는 사이트에게 지급 (공연 기간에 맞춰서 수수료 변경 정책 필요)
        • 끝끝내 중고 거래를 통해서 판매되지 않은 티켓의 환불 처리 정책이 필요
        • 중고 거래로 구매 된 티켓은 재 판매 가능 (정책 정의 필요)
    • 전체 API 삭제 기능 - softDelete 기능 사용 (데이터 복구가 가능하도록)
    • 대용량 트래픽 처리 필요 - 로드밸런싱 (상)
    • GitHub Actions을 이용한 CI/CD 배포 - 초반에 구축하면 개발 시간 단축 가능 (상)

✏️ 와이어프레임 제작



📌 Tomorrow's Goal

✏️ 프로젝트 순서도(Flow Chart) 작성

  • 내일은 우선 프로젝트 기능들에 대한 순서도를 작성할 예정

  • 아래와 같이 해당 기능의 요청이 들어오면 어떤 경우에 어떤 동작이 이루어지는지 한 눈에 보기 위해 작성할 예정

  • 특히나 해당 기능의 분기 처리와 예외 처리에 대한 이야기가 주를 이룰 것 같음

✏️ 프로젝트 ERD 작성

  • 순서도가 마무리되면 전체 프로젝트에 대한 ERD를 작성할 예정

  • 우선 기본적인 테이블과 컬럼을 작성해서 나열한 뒤 필요한 기능에 따라 관계를 연결할 예정

  • 그리고 다른 팀의 조원께서 간단한 팁을 알려주셨는데, ERD에서 시간이 오래 걸릴 예정이니 초반에 테이블을 구성하고 연결한 뒤 1차적으로 피드백을 받는 것을 추천해 주셨음

  • 그 이유는 열심히 작성하고 나중에 피드백을 받으면 많은 부분이 수정되는 경우가 발생하기에 초반에 가서 방향성을 잡는 것이 중요하다고 하셨음



📌 Today's Goal I Done

✔️ 프로젝트 주제 결정

  • 오늘은 프로젝트 주제를 결정했음

  • 주말 동안 팀원들이 조사해온 아이디어를 바탕으로 투표를 진행함

  • 첫 번째 투표에서는 TIL 작성 전용 사이트가 많이 투표되어서 TIL 사이트로 기능 구체화를 진행함

  • 기본적인 기능 구체화를 하고 튜터님께 피드백을 받으러 갔지만 일단 기각 당함

  • 기각의 이유는 일단 프로젝트 스코프가 너무 작고 도전할 만한 기술적 요소가 보이지 않았기에 튜터님께서 다른 아이디어를 들어보시고 몇 가지 다시 추천해주셨음

  • 그래서 다시 팀원들과 튜터님께 추천받은 아이디어로 투표를 진행한 결과 티켓 예매 + 중고 거래 사이트가 가장 많이 투표됨

  • 팀원들과 다시 아이디어를 구체화하고 조금 더 세세한 기능까지 작성해서 튜터님께 다시 피드백 받았고 아이디어와 기획 자체는 통과되었음

  • 그렇기에 팀원들과 이어서 와이어프레임을 제작하고 기능별 우선 순위를 결정함

profile
조금씩 정리하자!!!

0개의 댓글