- 전체 기간 : 2024.04.18 ~ 2024.07.03
- 서비스 분석 및 설계 : 2024.04.18 ~ 2024.05.04
- UI 및 기능 개발 : 2024.05.05 ~ 2024.07.03
- 협업 능력 향상: 팀원들과 효과적으로 소통하고 협력하며 프로젝트를 성공적으로 완료하는 경험을 통해 협업 능력을 향상시킵니다.
- 실무 기술 습득: 프로젝트를 통해 최신 기술과 도구를 활용하여 실무에서 필요한 기술과 문제 해결 능력을 습득합니다.
- 프로젝트 관리 경험: 요구사항 분석, 설계, 개발, 테스트, 배포의 전 과정을 경험하며 프로젝트 관리 능력을 기릅니다.
Name | 조윤찬 | 김현준 | 박찬웅 | 이서용 | 정재윤 |
---|---|---|---|---|---|
Profile | ![]() |
![]() |
![]() |
![]() |
![]() |
Position | Frontend (팀장) |
Backend | Backend | Backend | Backend, Infra |
Git | @YOON-CC | @hyun7494 | @chanchanwoong | @LEEForgiveness | @ddolboghi |
- Git Issue 및
branch protection rules
활용- 이슈 생성 및 PR을 통해 팀원들의 코드 변경사항을 쉽고 빠르게 이해하는데 도움이 되었습니다.
- 'branch protection rules'를 통해 최소 2명의 팀원이 리뷰하고 승인해야만 merge가 가능하게 설정함으로써, 코드 품질을 유지하고 실수를 방지하며 팀 협업을 더 원활하게 만들었습니다.
- 'Notion'을 통한 프로젝트 관리
- 프로젝트 문서(회고, 환경설정, 일정 등)
- 프로젝트 문서화
- 매일마다 회의한 내용을 'Notion'의 회의록 탭에 꼼꼼히 기록 했습니다.
- 프로젝트 진행 도중 마주한 문제점을 트러블 슈팅에 문제 상황, 해결 방법, 참고 순으로 작성하였습니다.
- UserFlow, As Is ToBe 등 직접 작성했던 자료들을 사진으로 찍어 문서 탭에 저장하였습니다.
https://www.erdcloud.com/d/B5TXAxjSmh2AeW4Bz
-
- 메인 서비스 전반 담당, 관리자 서비스 전반 담당
-
- 채팅 서비스, 리뷰 서비스, 관리자 서비스
-
- 경매 서비스, 경매글 서비스, 알림 서비스
-
- 멤버 서비스, 스프링 시큐리티, 알림 서비스, 결제 서비스, 관리자 서비스
-
- 인프라, CDC, 카프카 구축 및 운영, 배치 서비스, 결제 서비스, 인플루언서 구독 서비스
메인 페이지 | 경매 페이지 | 경매 리스트 페이지 |
---|---|---|
![]() |
![]() |
![]() |
경메 상세 페이지 | 인플루언서 페이지 | 알림 페이지 |
---|---|---|
![]() |
![]() |
![]() |
채팅방 페이지 | 채팅룸 페이지 | 결제 페이지 |
---|---|---|
![]() |
![]() |
![]() |
회원가입 관련 페이지 | 마이페이지 | 서비스 다크모드 적용 |
---|---|---|
![]() |
![]() |
![]() |
어드민 로그인 | 어드민 전체 관리 |
---|---|
![]() |
![]() |
-
경매 마감 API 호출 시, 동시성 문제
: 현재 시간이라운드 마감 시간
에 도달했으며낙찰 가능 인원
이 0이 아닌 경우에경매 마감 API
를 호출한다. 보고있는 브라우저가 100개 있으면 100번의경매 마감 API
를 호출. -
그럼 다음과 같은 상황이 된다.
- 다수의 `경매 마감 API`가 경매 마감 여부를 조회했을 때 전부 `경매 마감 미처리` 라고 조회된다. 이렇게 되면 여러 번의 경매 마감 로직이 진행되는 문제가 발생!
👉 PostgreSQL의 `unique` 설정을 이용한다.
👉 `경매 API`가 호출되면 `try`문에 `auctionUuid`를 저장한다.
👉 `unique` 설정을 고려해서 저장이 되면 최초 경매 마감이므로 경매 마감 로직을 진행
👉 저장이 안되고 `catch` 블럭으로 가면 해당 경매는 이미 마감됐으므로 로직을 종료한다.
-
매크로 방지 기능
- 라운드 대기 시간에 reCAPTCHA 기능 도입
- 일정 주기의 반복 트래픽을 감지하여 계정 차단
-
플랫폼화
- 인플루언서 유입을 위해 직접 프로필을 커스텀 가능하도록 기능 추가
- 인플루언서와 유저 사이의 생태계 구축
- 시스템 자동화로 관리자 개입 최소화
팀장의 역할을 수행하며, 개인의 성장은 결국 열정있는 팀원들로부터 자극을 받는다는 것을 알게 되었습니다. 또한, 프론트 전체를 담당하며, 팀원들에게 피해가 가지 않도록 스프린트를 지켜가며 개발을 하는 과정에서 책임감을 기를 수 있었던 좋은 경험이었습니다.
기술적 성장도 있었지만 가장 많이 성장한 부분은 협업 능력이었습니다. 팀원들과 수없이 토론하며 점점 제 생각을 다른 사람이 이해하기 쉽게 전달할 수 있게 되었습니다. 프로젝트를 진행할수록 기술을 중요시했는데, 기획이 바뀌고 나서는 사용자의 관점에서 서비스를 바라보았습니다. 이를 통해 기술의 완성도보다 서비스의 완성도를 중시하게 되었습니다. 좋은 팀원들을 만나 행복하게 프로젝트를 할 수 있었습니다. 다들 감사합니다!
좋은 사람들과 심도있게 기술에 대해 토론하고 어떻게 구현하는게 성능에 더 좋은지 얘기할 기회는 또 없을 것 같습니다. 팀원들 감사합니다.
열정있는 경주마 팀 덕분에 많은 것을 겪고 배우고 제대로 알아가는 소중한 기회를 가졌습니다. 열심히 해주신 팀원분들에게 감사합니다.
기획부터 프로젝트 진행까지 전반을 모두 경험할 수 있었던 뜻깊은 시간이었습니다. 처음 접하는 아키텍처와 기술들에 걱정도 많았지만, 개발에 열정이 넘치는 팀원들과 휴일에도 매일 의견을 교환하며 지식을 쌓고 활용했습니다. 덕분에 구현해보고 싶었던 기능들을 만들 수 있어 매우 만족스러웠습니다.