프로젝트 소개

- 인근 주위 사람들과 다양한 스포츠 경기를 매칭 시켜주는 서비스입니다.
- 동네 운동 메이트를 만들고 싶을 때, 상대방이 스포츠맨십이 갖춰져 있는지 궁금할 때, 어떤 팀에 소속되어 에이스로 성장하고 싶을 때 스포츠 패밀리 서비스를 통해 해결할 수 있습니다. 개인전, 팀전 및 다양한 종목에 대해 매치가 가능하며 전적 관리, 후기 등의 기능을 통해 매너 있는 스포츠 문화를 도모할 수 있습니다.
성능 개선 및 이슈대응
스포츠 패밀리 문서화
개선
개선
이슈대응
이슈대응
백엔드 기술

- 자바 버전(17)을 Up함으로써 레코드와 개선된 스위치문을 사용할 수 있었습니다.
- record 를 적극적으로 사용하여 불변성에 대한 라이프 사이클의 범위를 넓혀 변경에 대한 이슈를 해소할 수 있었습니다.
- 개선된 스위치문을 통해 보다 더 간결한 코드와 가독성있는 코드를 작성할 수 있었습니다.
- Flyway 도입으로 마이그레이션이 쉽게 가능하도록 구성하여 Database 설계 변동에 유연하게 대응할 수 있었으며 변경 이력 확인이 가능하여 편리함을 얻을 수 있었습니다.
- QueryDSL의 도입으로 동적 쿼리를 보다 더 편리하게 작성하고 코드 가독성에 대한 이점 도 얻을 수 있었습니다.
- CI/CD의 도입을 통해 자동으로 배포환경을 구축하여 비즈니스 로직 개발에 더욱 집중할 수 있게 되었습니다.
- Deprecated된 설정을 그대로 사용하지 않고 스프링 시큐리티 최신 버전(5.7.2)을 도입하여 새롭게 가이드된 설정을 기반으로 구성하여 새로운 변화에 대해 즉각적으로 대응하였습니다.

ERD

시스템 디자인
- Front + BackEnd

- BackEnd

[2개의 배포 구조를 구성한 이유]
- 프론트와 함께 프로젝트를 진행할 때 프론트와 연동하는 Dev 환경과 실제 사용자에게 제공되어야 하는 Production 환경이 따로 분리하여 기존 서비스는 사용자가 이용할 수 있도록 해야한다고 생각했습니다. 그렇기 때문에 Dev 환경에서 충분히 검증 된 API와 Front만이 실제 사용되는 서비스 서버에 배포될 수 있도록 아키텍처를 구성했습니다.
협업 방식
- Jira WorkFlow

- 3-4일 주기 스프린트 및 회고 진행.
- 매일 14:00 ~ 19:00 코어타임 이라는 시간동안 공통 회의, 스크럼 및 개발을 진행
- 협업도구
- Discord (Front ,Backend 소통 및 회의)
- Gather (BackEnd 소통 및 회의)
- Slack (Front ,Backend 비동기적 소통)
- Jira (개인 개발 일정 산정 및 이슈 Tracking)
- Notion (개발 관련 문서화, 이슈, 회의록, ToDo 등 관리)
- Git (코드 관리 및 코드 리뷰 진행)
역할
- 기획 및 정책 구성.
- ERD 모델링.
- 파일 처리, 인증, 매칭 초대 API 설계 및 개발, 테스트
- 환경 구성 (jasypt, PR Test, Logging, HTTPS)
- Feign Client를 활용하여 거리 정보 및 지역명 제공
기술 스택
🪟 프론트
- React
- TypeScript
- Next.js
- Recoil
- Emotion
- Axios
🎒 백엔드
- SpringBoot 2.7.1
- Java 17
- Gradle 7.4.1
- Junit5
- JPA
- MySQL
- Redis
- QueryDsl
- Flyway
- Swagger
- AWS
📃 문서/협업
- Jira
- Notion
- Slack
- Git
- DisCord
- Gather
팀구성
프론트앤드
팀장- 김창민
스크럼마스터 - 장규범
개발자 - 홍정기, 신승연
백앤드
팀장 - 김형욱
스크럼 마스터 - 박혜빈
개발자 - 곽동운, 김병연, 박진형
발표영상
