반띵 (BanThing) - 대용량 마켓 소분 플랫폼
프로젝트 개요
반띵은 창고형 할인점(코스트코, 트레이더스 등)의 대용량 상품 구매 부담을 해결하는 지역 기반 소분 커뮤니티 플랫폼입니다.
"대용량 상품 구매의 부담감을 절반으로 줄이고, 이웃과 함께하는 즐거움을 통해 가치를 채운다"는 철학으로, 1-2인 가구의 합리적인 소비를 돕고 지역 커뮤니티를 활성화하는 것을 목표로 합니다.
핵심 가치
- 🗺️ 지도 기반 직관적 탐색: 카카오 맵으로 근처 소분 모임을 한눈에 확인
- 🤖 AI 챗봇 검색: 자연어로 원하는 모임을 대화형으로 찾기
- 💬 댓글 중심 소통: 참여 신청부터 세부 조율까지 모두 댓글로
- ⭐ 신뢰도 시스템: 피드백 기반 사용자 신뢰도 관리
주요 기능
1. 지도 기반 모임 탐색
- 카카오 지도 API를 활용한 마트 지점별 모임 시각화
- 마커 클릭 시 해당 매장의 소분 모임 목록 즉시 확인
- 검색 기능으로 특정 상품이나 지역 필터링
2. AI 챗봇 검색 (Google Gemini)
- "양재동 근처 세제 소분 찾아줘" 같은 자연어 질의 지원
- 대화 맥락을 이해하여 적합한 모임 추천
- 실시간 대화 인터페이스로 편리한 UX
3. 모임 관리 시스템
- 5가지 모임 상태: 모집중 → 모집마감 → 진행중 → 종료 / 취소
- 스케줄러를 통한 모임 상태 자동 관리
- 호스트의 참여 신청 승인/거절 기능
- 댓글을 통한 참여자 간 소통
4. 카카오 소셜 로그인
- OAuth 2.0 기반 간편 로그인
- JWT + HttpOnly 쿠키 방식으로 보안 강화
- 별도 회원가입 없이 빠른 서비스 이용
5. 피드백 & 신뢰도 시스템
- 모임 종료 후 참여자 간 상호 피드백
- 점수 기반 신뢰도 등급 (좋음/기본/경고)
- 닉네임 앞 배지로 신뢰도 시각화
사용 기술
Backend
- Framework: Spring Boot 3.5.4, Spring Security
- Language: Java 17
- Database: MariaDB, Spring Data JPA, QueryDSL
- Authentication: JWT (0.12.3), Kakao OAuth 2.0
- AI Integration: Google Gemini API
- Task Scheduling: Spring Scheduler
Frontend
- Framework: React 19.1.1, Vite
- State Management: Zustand 5.0.8
- HTTP Client: Axios
- UI/UX: HTML5, CSS3, JavaScript ES6+
External APIs
- Kakao Map SDK: 지도 기반 모임 탐색
- Kakao SSO: 소셜 로그인
- Google Gemini: AI 챗봇 자연어 처리
Tools & Collaboration
- Build Tool: Gradle 1.1.7
- Testing: JUnit5, Mockito, H2 Database
- Version Control: Git, GitHub
- Communication: Discord
담당 역할
이 프로젝트에서 저는 팀장으로서 다음과 같은 역할을 수행했습니다:
Backend 개발
- AI 챗봇 시스템 구축: Google Gemini API 연동 및 자연어 처리
- REST API 설계: 대화 기록 관리, 모임 추천 로직 구현
- 폴백 로직: AI 응답 실패 시 안전한 대체 응답 제공
Frontend 개발
- 챗봇 UI/UX 설계: 실시간 대화 인터페이스 구현
- 인증 상태 기반 UI: 로그인 여부에 따른 조건부 렌더링
- 사용자 경험 최적화: 로딩 상태, 에러 처리, 반응형 디자인
문서화 & 협업
- 회의록 작성 및 프로젝트 진행 관리
- README, 환경설정 가이드, AI 챗봇 명세서 작성
- Git 워크플로우 정립 및 팀 컬러 가이드 제작
트러블슈팅
문제 1: AI 응답 지연 및 불안정성
문제 상황: Google Gemini API 호출 시 응답 시간이 불규칙하고, 간헐적으로 실패하는 현상
해결 과정:
- 폴백 로직 구현: API 실패 시 사전 정의된 기본 응답 반환
- 타임아웃 설정: 5초 이내 응답 없으면 폴백 응답 제공
- 로딩 UI 개선: 사용자에게 대기 상태를 명확히 표시
결과: 사용자 경험 개선 및 서비스 안정성 향상
문제 2: 챗봇 대화 맥락 유지
문제 상황: 연속된 질문에서 이전 대화 내용을 기억하지 못함
해결 과정:
- 대화 기록 DB 저장: 사용자별 대화 히스토리 관리
- 컨텍스트 전달: 최근 3개 대화를 API 요청에 포함
- 세션 관리: 로그인 사용자 기준 대화 세션 유지
결과: 자연스러운 대화 흐름 구현 및 사용자 만족도 증가
성과 및 배운 점
기술적 성과
- Google Gemini API를 활용한 실전 AI 서비스 구현 경험
- React Zustand로 효율적인 클라이언트 상태 관리 구현
협업 및 리더십
- 5인 팀에서 팀장으로서 프로젝트 일정 관리 및 커뮤니케이션 조율
- Git 워크플로우 정립 및 코드 리뷰 문화 구축
- 체계적인 문서화를 통한 팀원 간 지식 공유 촉진
문제 해결 역량
- AI API 통합 시 발생하는 불안정성을 폴백 로직으로 해결
- 사용자 경험을 고려한 에러 처리 및 로딩 UI 구현
향후 개선 방향
- 실시간 알림 시스템 도입 (Phase 1)
- 모바일 앱 개발 및 실시간 채팅 기능 (Phase 2)
- 전국 서비스 확대 및 결제 시스템 구축 (Phase 3)
프로젝트 정보
- 개발 기간: 2025.09.05 ~ 2025.09.23 (19일)
- 팀 구성: 5인 (팀장 1명, 팀원 4명)
- 역할: 팀장 (Backend + Frontend + 문서화)