[TicketRaider] 티켓팅 프로젝트 기획하기

JUNHYUK CHANG·2024년 2월 27일
0

TIL

목록 보기
23/33

이번 프로젝트는 그동안 공부해본 기능들을 종합하여 가능한 완성도 높은 프로젝트를 개발해보기 위해 차근차근 기획을 시작해보았다.

이번에는 특이하게 각자 관심 있는 부분이나 구현해보고 싶은 내용을 먼저 이야기해보고, 이를 적용해볼 수 있는 프로젝트를 구상해보는 것으로 시작해보았다.

이야기해보며 나왔던 기능들은

  • QueryDsl 을 활용한 동적 쿼리
  • Spring Security 를 통한 인증/인가 + OAuth
  • Redis 를 활용한 동시성 제어, Cache
  • nGrinder 등을 활용한 결과 분석
  • Docker 를 통한 배포 까지.

지난 프로젝트들과는 다르게 기간을 넉넉하게 두었기 때문에 가능한 많은 것을 도전해보고 많은 것을 배워보고 싶었다.

내가 제안해본 아이디어는 학원 업무의 경험을 살려 다음과 같은 학원 관리 프로그램을 기획해 보았다.

기능:

  • 지점별 관리 페이지 설정
  • 멤버 관리
    - 원장 / 매니져 / 강사 / 학부모 / 원생
  • 커리큘럼 ( 과목 ) 관리
    - 정규 과목 ( 분기별 수강 신청 )
    - 이벤트성 특강 과목 ( 특정 기간 일시적 수강신청 )

필요 기술:

  • 동시성 필요 ( 분기별 / 이벤트 과목 수강 신청 )
  • OAuth 멤버 관리
  • 동적쿼리 - 특정 조건에 맞는 원생 목록 조회
  • 관계성 정의

고려사항:

  • 서비스적 측면에서 다양한 편의 기능을 제공할 수 있도록 고민 필요

하지만 주요 관점이 제공하는 "서비스"에 치중이 될 것 같고, 프론트엔드와 연계한 "편의성" 이 포인트가 될 것 같아 다른 아이디어를 고민해보기로 했다.

회의 끝에 선택된 프로젝트는 인터파크의 티켓팅으로, 동시성 제어와 대기시간, 캐시를 구현해보기 적당할 것으로 판단했기 때문이다.


주제를 정하며 팀 규칙도 함께 의논하며 정해나갔다.

깃 커밋 컨벤션

Feat : 새로운 기능을 추가하는 경우
Fix : 버그를 고친경우
Docs : 문서를 수정한 경우
Style : 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는경우
Refactor : 코드 리펙토링
Test : 테스트 코드. 리펙토링 테스트 코드를 추가했을 때

ex) #1 Feat : 유저 로그인 기능 개발

브랜치 전략

main
dev
hotfix/~~
feature/user
feature/comment ...

이슈 템플릿 활용

  • 개발할 내용을 이슈로 등록해둔 뒤 #num 으로 해당 이슈에 커밋을 연결하기
  • 완성할 커밋 메세지에 closed #num 으로 닫아주기

구현경험

  • 각자 구현 경험을 나눈 과정이 특히 역할분담에 좋았던 것 같다.
  • 서로의 경험에 대한 스몰토크도 되고, 가볍게 개념 설명도 나누며 도움이 되는 시간이었다.
  • 그리고 각자 할 줄 아는 기능만 맡으려는 것이 아니라 아직 해보지 않은 기능을 확인하고 도전하려는 자세가 좋았던 것 같다.

다시 프로젝트로 돌아와서, 티켓팅을 위한 공격대! Ticket Raider 라고 이름을 짓고 레이더(Radar) 와 동음이의어 같은 느낌으로 티켓을 감지해내는! 느낌도 주어보았다.

https://www.design.com 에서 AI 로고 생성을 통해 적절하게 만들어본 로고

ERD

ERD 에 대해서도 고민이 많았다. 바로 눈에 보이는 분류로는
유저 / 공연 / 티켓 / 리뷰 정도가 있었으나 세부적으로 구현 방법을 고민하다 보니 테이블을 분리하기도 하고, 단방향-양방향 설계를 어떻게 도입할 지..

이에 대한 내용은 따로 정리해서 올려보아야겠다.

1개의 댓글

comment-user-thumbnail
2024년 2월 27일

세미콜론 수정 같은 게 있다니 백엔드는 prettierrc 안쓰나요

답글 달기