HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
⚽
SFAM (스포츠 패밀리) Portfolio
⚽

SFAM (스포츠 패밀리) Portfolio

SFam
Github
SFam
Owner
whyWhale
Updated
Jul 22, 2022

프로젝트 소개


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

성능 개선 및 이슈대응

스포츠 패밀리 문서화
개선
Name
확장자 검증 성능 개선
벌크 연산을 사용한 성능 개선
인증 여부 확인 중복 코드 개선
로그 확인 개선
응답속도 개선을 위한 매칭글 조회 성능 개선 [프로젝트 기간 후 개선]
인덱스 적용을 통한 조회 성능 개선 [프로젝트 기간 후 개선]
이슈대응
Name
Cursor 페이징 데이터 손실
벌큰 연산시 IDENTITY KEY 이슈
@WithMockUser 사용으로 인한 Test code 이슈 대응 및 코드 개선
협업 중 Branch Merge 시 Test Code 깨지는 이슈 대응
CloudWatch 권한 설정 이슈 대응
Jasypt 설정 암호화 이슈 대응
Swagger에서 Record class 스펙을 표현하지 못하는 이슈 대응
순환참조 이슈 대응
커서페이징 데이터 유실 문제 해결

백엔드 기술


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

ERD


notion image

시스템 디자인


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

협업 방식


  • Jira WorkFlow
notion image
  • 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
 

팀구성


프론트앤드
팀장- 김창민
스크럼마스터 - 장규범
개발자 - 홍정기, 신승연
 
백앤드
팀장 - 김형욱
스크럼 마스터 - 박혜빈
개발자 - 곽동운, 김병연, 박진형
 
 
배포링크
운동 메이트가 필요할 땐 SFAM
운동 메이트가 필요할 땐 SFAM
https://www.dongkyurami.link/
프로젝트 관리
🖼️
프로젝트 관리 상세 보기
발표영상
Video preview