스포츠 종목에 특화된 중고거래 플랫폼으로, 사용자의 선호 종목과 구력(숙련도) 정보를 기반으로 맞춤형 장비 추천을 제공하고, 카카오 지도 API를 활용해 인근 운동장을 안내하며, 지역 운동 모임까지 연결하는 스포츠 전문 커머스 & 커뮤니티 웹 서비스입니다.


🎯 목적 & 핵심 가치


👤 사용자 역할

역할 권한
회원 온보딩(선호 종목·구력), 상품 CRUD, 관심 태그, 채팅, 거래 신청, 판매 이력/ 거래 상태 관리
관리자 상품/회원 관리 및 신고 처리

기능 영역 기능 설명 조건·제약 비고
계정 & 온보딩 회원가입 / 로그인 이메일 또는 소셜 로그인으로 사용자 계정 생성 및 인증 이메일 중복 불가, 비밀번호 보안 기준 충족 이메일 인증, JWT 발급
온보딩 (선호 정보 설정) 로그인 후 선호 종목과 숙련도 입력 로그인 상태 필요 구력(입문~상급) 선택 가능
사용자 프로필 개인정보 조회 및 수정 닉네임, 선호 종목, 숙련도 등 수정 로그인 필요 마이페이지 내 관리
거래내역 조회 판매/구매 완료된 거래 내역 확인 거래 상태=완료 조건 마이페이지 내 표시
찜목록 조회 찜한 상품 목록 확인 로그인 필요 수정 및 삭제 가능
타 사용자 프로필 조회 타 사용자의 닉네임, 선호 종목, 숙련도 등 조회 로그인 필요 타 사용자의 게시글의 프로필을 통해 접근 가능
타 사용장 게시물 조회 타 사용자가 작성한 게시물 조회 로그인 필요 타 사용자의 프로필을 통해 접근 가능
중고거래 카테고리 분류 종목별 상품 분류 (축구, 농구, 테니스, 골프 등) 종목 미입력 시 etc로 분류 카테고리별 페이지 구성
상품 등록 판매자가 스포츠 장비 등록 (제목, 종목, 가격 등) 필수 입력 누락 시 등록 불가 이미지 업로드 가능
상품 상세 조회 상품 정보, 판매자 정보, 거래 지역,거래 상태 표시 상품 ID 필요 찜, 채팅 기능 포함
상품 상태 관리 판매중/예약중/판매완료 상태 변경 판매자만 변경 가능 거래 진행 시 자동 변경
상품 삭제 판매자가 자신의 물품 삭제 가능 본인 게시글만 삭제 가능 관련 데이터 동시 삭제
좋아요(찜) 찜 기능 사용자가 관심 상품을 등록/조회 가능 로그인 필요 관심목록에서 관리 가능 (관심목록은 마이페이지에서 조회 가능)
거래 리뷰(시간 남으면 구현) 거래 리뷰 작성 거래 완료 후 리뷰 작성 가능 거래 내역 존재해야 함 리뷰 작성 후 확인 가능
거래 기능 거래 예약 채팅방에서 예약 기능으로 거래 생성 구매자·판매자 모두 로그인 필요 예약 시 “예약중”으로 거래 생성, 다른 사용자들이 이 물품에 대한 채팅방 생성 불가능
거래 완료 거래 종료 시 판매자가 상태 변경 예약 상태에서만 완료 가능 거래내역에 자동 반영
거래 취소 판매자/구매자 둘 중 한 명이 거래 취소 가능 예약 상태에서만 취소 가능 취소되면 물품은 다시 ‘판매중’ 상태로 보임
검색 & 추천 상품 검색 제목 기반 상품 검색 검색어 미입력 시 결과 없음 종목 필터링 가능 (추가 예정), 시간 되면 닉네임 검색
정렬 기능 최신순, 가격순(최고, 최저), 조회수 순, 찜 순
LLM 기반 추천 사용자 구력·종목 기반 맞춤 등록되어 있는 상품 추천.
추천 제품에는 검색 url을 하이퍼링크로 걸어줌. 온보딩 정보 필요 Alan 모델 활용
가능하다면, 검색 결과가 없는 제품은 다른 사이트 링크 걸기
카카오 지도 API 운동장 위치 탐색 종목별 운동장 위치를 지도에 표시 API Key 필요 마커 및 정보창 표시
운동장 상세 정보 주소, 운영시간, 예약 링크 등 표시 외부 데이터 조회 필요 Kakao Map API 사용
커뮤니티 / 번개 게시글 조회 전체 게시글 / 운동별 / 번개글 필터링 로그인 상태 필요 게시판 탭에서 접근
디폴트는 전체 게시글
게시글 상세 조회 게시글 상세 조회 기능 로그인 필요 현재는 이미지들을 하단에 까는 식으로 설정.
시간이 되면 html 태그 상태로 content에 저장시켜서 이미지를 원하는 위치에 넣도록 설정 (html 새니타이저 필요)
일반 운동글 작성 운동 주제 일반 게시글 작성 제목, 본문, 운동 종목 필수
(자유게시판은 운동 테이블의 ‘공용’ 사용) DTO 처리
커뮤니티 게시글 검색 제목, 닉네임 검색 제목이나 닉네임 안적으면 결과 없음 처리 시간 나면 이 기능 구현
번개글 작성 시간, 장소, 현재 인원, 최대 인원, 오픈카톡 링크(여기까지 필수), 기타 사항 입력 필수 항목 누락 시 등록 불가 폼 내용 + 기타 사항이 게시글의 본문으로 저장됨
채팅 유저간 1:1 채팅 판매글에서 채팅 버튼 클릭 시 1:1 채팅 생성 중복 생성 불가, 판매글 통해서만 채팅 생성 시간 되면 판매 외에도 유저간 채팅 기능 활성화

홈화면 (카테고리별로 물품 한 5개 정도? 최신순으로 보여주기)

헤더

검색바 (물품 검색 기능; 커뮤니티는 검색바 따로)

카테고리 탭 (운동 종목별)

운동장 탭이 따로 있고 (여기서는 카카오맵 api로 정보를 가져옴)

“테니스장” → 카카오 지도에 핀으로 주변 테니스장 마커 표시

채팅 탭 (이전 프로젝트에서 가져오기)