[보드버디] 보드게임 플랫폼

과정
풀스택
노출 페이지
풀스택
대표 이미지
대표이미지
서비스 한 줄 소개
회차
5 more properties

배경(Problem)

🌐
기획 배경 대한민국의 MZ세대 사이에서 보드게임의 인기가 높아짐에 따라 다양한 보드게임 카페가 생겨나고 있음. (ex. 홈즈앤루팡, 레드버튼, 더홀릭 보드게임카페)
⚠️
문제점 1. 보드게임은 다수가 하는 게임이라 게임의 특성 상 친구가 없거나 주변 친구들이 보드게임을 좋아하지 않으면 보드게임 카페를 갈 수 없음. 2. 주변에 보드게임을 좋아하는 친구가 있다고 할지라도 본인이 mbti P 성향일 경우 바로바로 보드게임을 하고 싶은 니즈를 해결할 수 없음. (ex. 아 오늘 저녁 약속 전에 잠깐 보드게임하고 싶은데?)
💡
해결 방안 나의 지역 or 주변에 보드게임을 좋아하는 사람을 실시간으로 모집한다. (ex. 게시물)

서비스 소개(Solution)

기획 의도

✨
BoardBuddy는 보드게임을 통해 사람들을 연결하여, 편리하게 커뮤니티를 형성하고 삶의 즐거움을 높이고자 한다. 이를 위해 모든 이들이 쉽게 만나고 소통하며, 즐거운 시간을 보낼 수 있는 플랫폼을 제공한다.

주요 타겟층

👥
1. 보드게임을 즐겨 하는 사람 2. 주변에 보드게임을 같이 할 사람을 찾기 어려웠던 사람 3. 보드게임 커뮤니티를 찾아다니던 사람

서비스 핵심 키워드

🤝
연결 보드게임을 통해 사람들을 연결하고, 새로운 친구를 사귀고 커뮤니티를 형성할 수 있도록 지원
🙆
편리함 직관적인 인터페이스와 위치 기반 검색 기능을 통해 사용자가 쉽게 보드게임 모임을 찾고 참여할 수 있도록 함
🤩
즐거움 보드게임을 통해 사용자들이 즐거운 시간을 보내고, 다양한 게임을 통해 재미와 만족을 느낄 수 있도록 지원

최종 발표자료

보드버디 발표자료.pdf
6045.4KB

시연 영상

아키텍처 및 핵심 기능

아키텍처

핵심 기능

🔒
회원가입 및 로그인 기능 보드버디는 유저들의 만남을 위한 커뮤니티이므로 회원제로 운영하며, 따라서 회원가입 및 로그인을 할 수 있다.
🔍
주변 보드게임 카페 검색 기능 반경 5, 10, 15 km 등 km를 조절해 주변 보드게임 카페를 검색할 수 있다. 지도 상의 보드게임 카페를 클릭하면 보드 게임 카페에 대한 정보를 확인할 수 있다.
📍
위치 기반 게시글 기능 유저는 현재 위치를 설정하고, 현재 위치를 기준으로 주변 보드게임 카페의 모임에 대한 게시글을 확인할 수 있다.
✏️
게시글 및 댓글, 대댓글 기능 유저는 보드게임 모임을 모집하기 위해 게시글을 작성할 수 있으며, 게시글에는 댓글 및 대댓글을 작성하며 소통할 수 있다.
🔖
상세 필터링 기능 최신, 모집, 마감 등으로 모임 게시글을 필터링하여 게시글을 필터링하여 확인할 수 있다.
👌
모임 참가 및 승인, 거절 기능 게시글에서 모임 참가 버튼을 누르면 모임 주최자에게 모임 참가 요청이 가고, 모임 주최자는 이를 승인 및 거절할 수 있다.
💬
실시간 채팅 기능 모임 주최자와 모임 주최자에 의해 참가 승인된 참가자들은 실시간으로 소통하고, 모임에 대해 논의할 수 있다.
🔔
알림 기능 유저는 미리 설정해 놓은 위치(동네) 기반의 게시글이 올라올 때 알림을 받을 수 있다.
🥇
랭킹 시스템 매달 모임 참여가 많은 사용자에게 순서대로 1등, 2등, 3등 타이틀을 부여한다. 이 타이틀은 다음 달까지 유지되며, 프로필에 특별한 배지로 표시된다. 이 배지는 프로필에서 한번에 모아볼 수 있다.
👥
리뷰 및 평가 시스템 모임이 끝난 후, 참가자들이 모임에 대한 후기를 작성하고 참가자들의 버디 지수(매너 점수)를 평가할 수 있다.

활용 라이브러리 및 개발 환경

🚀 Frontend Stacks

Next.js - SSR 구현 가능 - 적절한 추상화로 개발 생산성이 높음
TypeScript - 타입 지정을 통해 코드 퀄리티와 가독성을 높일 수 있음 - 협업에 도움이 됨 - 정적 타입 언어 → 컴파일 단계에서 타입 체크를 하기 때문에 오류를 빠르게 확인 가능
정적 타입 언어 → 컴파일 단계에서 타입 체크를 하기 때문에 오류를 빠르게 확인 가능
협업에 도움이 됨
정적 타입 언어 → 컴파일 단계에서 타입 체크를 하기 때문에 오류를 빠르게 확인 가능
shadcn/ui - 이미 준비된 UI 컴포넌트를 사용하므로 개발 시간 단축 가능 - 자유로운 커스터마이징 가능
Tailwind CSS
MSW - 백엔드 API에 대한 의존을 최소화하여 개발 속도 상승 - 환경 별 Mocking 활용을 통해 배포환경에서 코드 수정 불필요 - 현실적인 API 통신 모방하여 정확한 인터랙션 테스트 용이
React Query - 데이터 패칭, 캐싱, 데이터 동기화와 같은 서버 상태를 효율적으로 관리 - 직관적인 상태 처리를 통한 로딩 및 오류 상태 처리 용이 - 클라이언트 상태와 서버 상태 별도 관리하여 유지보수성 향상
📌
Axios - 백엔드와의 통신에 사용 - Promise API를 활용하는 HTTP 통신 라이브러리

🚀 Backend Stacks

Spring Boot - 확장성과 유지보수성을 높여주는 프레임워크 - 신속하고 효율적인 개발 환경을 구축 - 자동 설정과 의존성 관리 기능을 제공하여 복잡한 설정을 최소화
Spring Data JPA - 데이터베이스와의 상호작용을 추상화하여 쿼리 작성이 간단 - 코드의 가독성과 유지보수성 향상 - 복잡한 데이터베이스 작업을 손쉽게 처리
Spring Security - 강력한 인증과 권한 관리를 제공 - 다양한 보안 기능을 손쉽게 구현 가능 - OAuth2.0과의 통합을 통해 더욱 안전한 애플리케이션 구축
OAuth2.0 - 표준화된 방식으로 사용자 인증과 권한 관리를 처리 - 강력한 보안, 유연성, 표준 준수, 사용자 경험 개선, 다양한 플랫폼 지원 및 간편한 통합 - 다양한 소셜 로그인과의 연동을 통해 사용자 접근성 향상
QueryDSL
- 컴파일 시점에 SQL 문법 오류를 검출해, 런타임 에러를 사전에 방지 - 조건에 따라 동적으로 쿼리를 구성할 수 있어, 복잡한 로직을 유연하게 처리 - IDE의 자동 완성 기능을 통해 쿼리 작성이 더 편리하고 빠르게 이루어지며, 코드의 가독성 향상
WebSocket - 실시간 양방향 통신을 지원 - 채팅과 같은 실시간 기능 구현에 최적화 - 빠르고 안정적인 데이터 전송 가능
📎
Stomp - WebSocket 위에서 동작하는 메시징 프로토콜 - 텍스트 기반의 간단한 메시지 전송을 위한 표준화된 프로토콜 제공 - 클라이언트와 서버 간의 메시지 전송을 안정적이고 효율적으로 처리
Quartz - 스케줄링 작업을 관리하는 강력한 라이브러리 - 복잡한 스케줄링 작업을 손쉽게 설정하고 실행할 수 있는 기능 제공 - 주기적인 작업, 예약된 작업 등을 효율적으로 관리할 수 있는 환경 제공
MariaDB - 신뢰성 높은 오픈소스 데이터베이스 관리 시스템 - 높은 성능과 확장성 제공 - MySQL과의 호환성을 유지하면서도 추가적인 기능과 개선된 기능을제공
Redis - 인메모리 데이터베이스로 빠른 데이터 접근이 가능 - 높은 성능의 캐싱과 세션 관리 제공 - 애플리케이션의 응답 속도를 크게 향상

🛠  Infra

AWS EC2 - 확장성과 유연성을 갖춘 가상 서버 환경 제공 - 애플리케이션 배포와 관리가 용이한 환경 제공
AWSEC2/S3/Route53/RDS
Docker
Nginx
Github Actions

👥  Collaboration

GitHub
Notion
Discord
Zep
Figma
AWS S3 - 확장 가능한 객체 스토리지로, 정적 파일 및 미디어 파일을 안전하게 저장 - 애플리케이션 배포와 관리가 용이한 환경 제공
AWS Route53 - 도메인 이름을 쉽게 관리할 수 있는 DNS 관리 서비스 제공 - 트래픽 관리 및 라우팅을 최적화하는 통합 환경 제공
AWS RDS - DB를 쉽게 운영할 수 있는 관리형 데이터베이스 서비스 제공 - 서버 운영의 부담을 줄이는 자동 백업, 복구, 보안 업데이트 제공
Docker - 애플리케이션을 컨테이너로 패키징하여 일관된 실행 환경 제공 - 다양한 환경에서 애플리케이션을 빠르고 쉽게 배포할 수 있는 기능 제공
Nginx - HTTP 및 리버스 프록시 서버로, 웹 트래픽을 효율적으로 관리할 수 있는 기능 제공 - 정적 파일을 빠르게 서빙하고, 서버의 부하를 분산할 수 있는 로드 밸런싱 기능 제공
Github Actions - 코드 배포 및 테스트를 자동화하여 CI/CD 파이프라인을 효율적으로 관리할 수 있는 기능 제공 - 코드 변경 시 자동으로 테스트와 빌드를 실행하여 안정적인 배포 지원

👥  Collaboration

GitHub - 코드 버전 관리를 통해 팀원 간의 협업을 원활하게 지원 - 코드 리뷰, 이슈 관리, 프로젝트 보드 등 다양한 기능을 통해 개발 프로세스를 효율적으로 관리
Notion - 문서화, 일정 관리, 할 일 목록 등을 관리하는 올인원 협업 툴 제공 - 팀원 간의 실시간 협업이 가능하며, 프로젝트 진행 상황을 투명하게 공유할 수 있는 기능 제공
Discord - 실시간 커뮤니케이션을 위한 음성 및 채팅 도구 제공 - 채널을 통해 팀원들 간의 의사소통을 조직화하고 효율적으로 관리할 수 있는 환경 제공
Zep - 메타버스 기반 협업 툴로, 가상 공간에서 실시간 소통 지원 - 비대면 환경에서도 효과적인 회의와 브레인스토밍을 위한 기능 제공
Figma - 디자인과 개발에 대해 실시간으로 협업할 수 있는 디자인 툴 제공 - UI/UX 디자인을 시각적으로 공유하고 피드백을 즉시 반영할 수 있는 환경 제공

트러블 슈팅

Front-end

Back-end

팀 소개

✨
이름: 채유빈
포지션: FE, 팀장
https://github.com/ChaeYubin | cyoobin@naver.com
꾸준히 성장하는 개발자가 되고 싶습니다😊
✨
이름: 마혜준
포지션: 디자이너, 팀원
https://github.com/mhjoon99 | hyejoon8@gmail.com
✨
이름: 공태현
포지션: BE, 백엔드 리더
https://github.com/runtime-zer0 | bigstring.zero@gmail.com
지속가능한 개발자를 추구하고 있습니다!
✨
이름: 김근호
포지션: BE, 팀원
https://github.com/geunhokinn | gghh1220@gmail.com
오늘보다 내일 더 성장하는 개발자가 되고 싶습니다!
✨
이름: 이다솜
포지션: BE, 팀원
https://github.com/serahissomi | dsy20320@gmail.com
✨
이름: 최민지
포지션: BE, 팀원
https://github.com/meanzi3 | minjishoe0326@gmail.com