머슬 마켓 ( https://muscle-market.duckdns.org/ )
운동 장비 구매/판매, 운동장 탐색, 커뮤니티 참여가 각각 분리되어 불편한 운동인들을 위해 “한곳에서 운동관련된 정보를 처리할 수 있으면 어떨까?”라는 질문에서 시작된 서비스입니다.
- 중고 운동 용품 거래 플랫폼 제공
- 사용자의 질문에 맞춰 AI 기반 운동 용품 추천
- 운동장 검색 및 지도 표시 (주변 운동 시설 정보 제공)
- 커뮤니티 & 소셜 기능 제공
- API를 활용한 비동기 데이터 통신 및 SockJS/Stomp 클라이언트를 이용한 실시간 채팅 로직 구현
- Layout Dialect를 활용한 공통 레이아웃(header) 관리 및 SSR 기반 뷰 템플릿 구성
- 직관적이고 빠른 반응형 디자인 구축
- RESTful API 서버 구축 및 계층형 아키텍처 설계
- Spring Data JPA를 활용한 객체 지향적 데이터 조작, Fetch Join을 적용해 N+1 조회 성능 최적화
- JWT 기반 Stateless 인증 시스템 구축, OAuth2(구글) 소셜 로그인 및 HttpOnly 쿠키 저장 방식 적용
- Amazon Linux 기반 애플리케이션 서버(EC2), 데이터 안정성을 위한 관리형 데이터베이스(RDS/PostgreSQL), 이미지의 효율적 저장을 위한 객체 스토리지(S3) 구성
- 리버스 프록시 구성을 통한 내부 WAS 보호, Certbot을 활용한 SSL 인증서 자동 갱신 및 80 → 443 포트 리다이렉트 처리
- main 브랜치 Push시 자동 빌드 및 SCP/SSH를 활용한 자동 배포 파이프라인 구축
muscle_market/
├── scripts/ # 배포에 사용되는 스크립트
└── src/main/ # 메인 디렉토리
├── java/com/example/muscle_market/ # 소스 코드 디렉토리
│ ├── config/ # 설정 코드 (보안, 소켓 등)
│ ├── controller/ # 컨트롤러 (api, view)
│ ├── domain/ # 도메인 (엔티티)
│ ├── dto/ # API를 위한 DTO
│ ├── enums/ # 상태를 담는 열거형 클래스
│ ├── exceptions/ # 커스텀 예외
│ ├── repository/ # JPA 레포지토리
│ ├── service/ # 비즈니스 로직 담당 서비스
│ └── MuscleMarketApplication.java # 메인 클랫스
└── resources/ # 리소스 디렉토리
├── static/ # 정적 파일 디렉토리
│ ├── css/ # 스타일 파일
│ ├── images/ # 정적 이미지 (기본 이미지 등)
│ └── js/ # 정적 소스 코드
├── templates/ # 뷰 템플릿
└── ... # application property yaml
피그마 "파일"을 확인해보세요
머슬마켓 : https://www.notion.so/oreumi/Muscle-Market-2aeebaa8982b80c2953cfec28e27769d
| 이름 | 이메일 |
|---|---|
| 유석원 | youseokwon1667@gmail.com |
| 정인웅 | dlsdnd122@naver.com |
| 김승호 | k355323@gmail.com |



