Skip to content
@3-RACEHORSE

MEET PLUS

경주마

🎉인플루언서 팬미팅 경매 서비스

image


MEET PLUS 바로가기

MEET PLUS Test ID-1 : [email protected]

MEET PLUS Test PW : meetplus123!@


ADMIN SYSTEM 바로가기



목차

  1. 프로젝트 개요
  2. 팀원 구성
  3. 시스템 아키텍처
  4. 기술 스택
  5. 협업
  6. ERD
  7. 역할 분담
  8. 구현 기능
  9. 트러블 슈팅
  10. 개선 목표
  11. 프로젝트 후기

1. 프로젝트 개요

개발 기간

  • 전체 기간 : 2024.04.18 ~ 2024.07.03
  • 서비스 분석 및 설계 : 2024.04.18 ~ 2024.05.04
  • UI 및 기능 개발 : 2024.05.05 ~ 2024.07.03

목표

  • 협업 능력 향상: 팀원들과 효과적으로 소통하고 협력하며 프로젝트를 성공적으로 완료하는 경험을 통해 협업 능력을 향상시킵니다.
  • 실무 기술 습득: 프로젝트를 통해 최신 기술과 도구를 활용하여 실무에서 필요한 기술과 문제 해결 능력을 습득합니다.
  • 프로젝트 관리 경험: 요구사항 분석, 설계, 개발, 테스트, 배포의 전 과정을 경험하며 프로젝트 관리 능력을 기릅니다.

2. 팀원 구성

Name 조윤찬 김현준 박찬웅 이서용 정재윤
Profile
Position Frontend
(팀장)
Backend Backend Backend Backend, Infra
Git @YOON-CC @hyun7494 @chanchanwoong @LEEForgiveness @ddolboghi

3. 시스템 아키텍처

SystemArchitecture


4. 기술 스택

💻 IDE

VSCode IntelliJ

📱 Frontend

NEXT.JS TypeScript Tailwind React Query PWA SASS Jest Vercel Shadcn/ui NextAuthV5

💾 Backend

Java JWT SpringBoot SpringSecurity SpringWebflux SpringBatch Redis PostgreSQL MongoDB Kafka Kafka Connect Querydsl JPA Debezium

🔃 Infra

docker DockerCompose amazonec2 AWSLambda AWSElasticloadbalancing SpringCloud SpringGateway ElasticSearch Kibana Logstash


5. 협업

  • Git Issue 및 branch protection rules 활용
    • 이슈 생성 및 PR을 통해 팀원들의 코드 변경사항을 쉽고 빠르게 이해하는데 도움이 되었습니다.
    • 'branch protection rules'를 통해 최소 2명의 팀원이 리뷰하고 승인해야만 merge가 가능하게 설정함으로써, 코드 품질을 유지하고 실수를 방지하며 팀 협업을 더 원활하게 만들었습니다.

  • 'Notion'을 통한 프로젝트 관리
    • 프로젝트 문서(회고, 환경설정, 일정 등)
  • 프로젝트 문서화
    • 매일마다 회의한 내용을 'Notion'의 회의록 탭에 꼼꼼히 기록 했습니다.
    • 프로젝트 진행 도중 마주한 문제점을 트러블 슈팅에 문제 상황, 해결 방법, 참고 순으로 작성하였습니다.
    • UserFlow, As Is ToBe 등 직접 작성했던 자료들을 사진으로 찍어 문서 탭에 저장하였습니다.

📒As-Is-ToBe

image

✍️회의록

스크린샷 2024-07-01 171205

🏃‍♂️스프린트

image image image


6. ERD

Copy of Copy of NEW천마인력

https://www.erdcloud.com/d/B5TXAxjSmh2AeW4Bz


7. 역할 분담

✌️Frontend

  • 조윤찬

    • 메인 서비스 전반 담당, 관리자 서비스 전반 담당

🤞Backend

  • 김현준

    • 채팅 서비스, 리뷰 서비스, 관리자 서비스
  • 박찬웅

    • 경매 서비스, 경매글 서비스, 알림 서비스
  • 이서용

    • 멤버 서비스, 스프링 시큐리티, 알림 서비스, 결제 서비스, 관리자 서비스
  • 정재윤

    • 인프라, CDC, 카프카 구축 및 운영, 배치 서비스, 결제 서비스, 인플루언서 구독 서비스


8. 구현 기능

메인 페이지 경매 페이지 경매 리스트 페이지
image image image
경메 상세 페이지 인플루언서 페이지 알림 페이지
image image image
채팅방 페이지 채팅룸 페이지 결제 페이지
image image image
회원가입 관련 페이지 마이페이지 서비스 다크모드 적용
image image image
어드민 로그인 어드민 전체 관리
image image

9. 트러블 슈팅

🧐 고민한 부분

  • 경매 마감 API 호출 시, 동시성 문제
    : 현재 시간이 라운드 마감 시간에 도달했으며 낙찰 가능 인원이 0이 아닌 경우에 경매 마감 API를 호출한다. 보고있는 브라우저가 100개 있으면 100번의 경매 마감 API를 호출.

  • 그럼 다음과 같은 상황이 된다.


- 다수의 `경매 마감 API`가 경매 마감 여부를 조회했을 때 전부 `경매 마감 미처리` 라고 조회된다. 이렇게 되면 여러 번의 경매 마감 로직이 진행되는 문제가 발생!
👉 PostgreSQL의 `unique` 설정을 이용한다.
👉 `경매 API`가 호출되면 `try`문에 `auctionUuid`를 저장한다.
👉 `unique` 설정을 고려해서 저장이 되면 최초 경매 마감이므로 경매 마감 로직을 진행
👉 저장이 안되고 `catch` 블럭으로 가면 해당 경매는 이미 마감됐으므로 로직을 종료한다.

10. 개선 목표

  • 매크로 방지 기능

    • 라운드 대기 시간에 reCAPTCHA 기능 도입
    • 일정 주기의 반복 트래픽을 감지하여 계정 차단
  • 플랫폼화

    • 인플루언서 유입을 위해 직접 프로필을 커스텀 가능하도록 기능 추가
    • 인플루언서와 유저 사이의 생태계 구축
    • 시스템 자동화로 관리자 개입 최소화

11. 프로젝트 후기

🦕 조윤찬

팀장의 역할을 수행하며, 개인의 성장은 결국 열정있는 팀원들로부터 자극을 받는다는 것을 알게 되었습니다. 또한, 프론트 전체를 담당하며, 팀원들에게 피해가 가지 않도록 스프린트를 지켜가며 개발을 하는 과정에서 책임감을 기를 수 있었던 좋은 경험이었습니다.

🦖 정재윤

기술적 성장도 있었지만 가장 많이 성장한 부분은 협업 능력이었습니다. 팀원들과 수없이 토론하며 점점 제 생각을 다른 사람이 이해하기 쉽게 전달할 수 있게 되었습니다. 프로젝트를 진행할수록 기술을 중요시했는데, 기획이 바뀌고 나서는 사용자의 관점에서 서비스를 바라보았습니다. 이를 통해 기술의 완성도보다 서비스의 완성도를 중시하게 되었습니다. 좋은 팀원들을 만나 행복하게 프로젝트를 할 수 있었습니다. 다들 감사합니다!

🐸 이서용

좋은 사람들과 심도있게 기술에 대해 토론하고 어떻게 구현하는게 성능에 더 좋은지 얘기할 기회는 또 없을 것 같습니다. 팀원들 감사합니다.

💚 박찬웅

열정있는 경주마 팀 덕분에 많은 것을 겪고 배우고 제대로 알아가는 소중한 기회를 가졌습니다. 열심히 해주신 팀원분들에게 감사합니다.

🌱 김현준

기획부터 프로젝트 진행까지 전반을 모두 경험할 수 있었던 뜻깊은 시간이었습니다. 처음 접하는 아키텍처와 기술들에 걱정도 많았지만, 개발에 열정이 넘치는 팀원들과 휴일에도 매일 의견을 교환하며 지식을 쌓고 활용했습니다. 덕분에 구현해보고 싶었던 기능들을 만들 수 있어 매우 만족스러웠습니다.


Popular repositories Loading

  1. FRONTEND FRONTEND Public

    MEET PLUS 메인서비스 프론트엔드 입니다.

    TypeScript 1 3

  2. BE_Members BE_Members Public

    Java 1

  3. BE_Auction BE_Auction Public

    Java 1

  4. INFRA_gateway INFRA_gateway Public

    Java 2

  5. INFRA_eureka INFRA_eureka Public

    Dockerfile 1

  6. BE_Chat BE_Chat Public

    판매자와 구매자 간의 채팅, 리뷰 기능입니다

    Java 1

Repositories

Showing 10 of 15 repositories
  • BE_batch Public
    3-RACEHORSE/BE_batch’s past year of commit activity
    Java 0 1 4 0 Updated Jul 6, 2024
  • .github Public

    README

    3-RACEHORSE/.github’s past year of commit activity
    0 1 0 0 Updated Jul 4, 2024
  • FRONTEND Public

    MEET PLUS 메인서비스 프론트엔드 입니다.

    3-RACEHORSE/FRONTEND’s past year of commit activity
    TypeScript 1 3 0 0 Updated Jul 3, 2024
  • FE_Admin Public

    MEET PLUS 어드민서비스 프론트엔드 입니다.

    3-RACEHORSE/FE_Admin’s past year of commit activity
    TypeScript 0 2 0 0 Updated Jul 1, 2024
  • BE_AuctionPost Public

    경매글 서비스입니다.

    3-RACEHORSE/BE_AuctionPost’s past year of commit activity
    Java 0 1 20 0 Updated Jul 1, 2024
  • BE_Notification Public

    notification

    3-RACEHORSE/BE_Notification’s past year of commit activity
    Java 0 1 4 0 Updated Jul 1, 2024
  • BE_Chat Public

    판매자와 구매자 간의 채팅, 리뷰 기능입니다

    3-RACEHORSE/BE_Chat’s past year of commit activity
    Java 0 1 2 0 Updated Jul 1, 2024
  • BE_Auction Public
    3-RACEHORSE/BE_Auction’s past year of commit activity
    Java 0 1 5 0 Updated Jun 30, 2024
  • BE_Members Public
    3-RACEHORSE/BE_Members’s past year of commit activity
    Java 0 1 2 0 Updated Jun 30, 2024
  • BE_Admin Public

    Admin

    3-RACEHORSE/BE_Admin’s past year of commit activity
    Java 0 1 7 0 Updated Jun 30, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…