Mingling은 약속 및 모임 참여자들의 출발역을 기반으로 최적의 중간 지점을 추천하고, 모임 목적에 맞는 장소를 탐색할 수 있도록 지원하는 웹사이트입니다.
| 기능 | 화면 |
|---|---|
| 모임 생성 | ![]() |
| 모임 참여 | ![]() |
| 출발지 등록 | ![]() |
| 중간지점 결과보기 | ![]() |
| 장소 추천 | ![]() |
모든 API 응답은 아래의 공통 규격을 따릅니다.
✅ Success Response
{
"success": true,
"data": {
"items": [],
"page": 1
},
"timestamp": "2026-03-06T14:00:00Z"
}❌ Failure Response
{
"success": false,
"code": "INVALID_TOKEN",
"message": "토큰이 유효하지 않습니다.",
"data": null,
"timestamp": "2026-03-06T14:00:00Z"
}브랜치 생성 시 아래 규칙을 준수하며, 작업 단위별로 명확히 분리합니다.
Format:
<type>/<jira-issue-number>-<short-description>
| Type | Description | Example |
|---|---|---|
| feature | 신규 기능 개발 | feature/SW-10-jwt-refresh-token |
| fix | 버그 수정 | fix/SW-21-user-profile-error |
| refactor | 코드 리팩토링 | refactor/SW-35-order-validation |
| chore | 설정, 환경 및 기타 작업 | chore/SW-01-setup-gradle |
AngularJS Git Commit Convention을 따르며, subject는 한국어로 명확하게 작성합니다.
Format:
[issue-number] <type>: <subject>
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정 (README, Swagger 등)
- style: 코드 포맷팅 (로직 변경 없음)
- refactor: 코드 리팩토링
- test: 테스트 코드 추가 및 수정
- chore: 빌드 업무, 패키지 설정 등
💡 Example:
[SW-94] fix: 장소 추천 API 런타임 오류 수정
전체적인 시스템 구조는 Nginx를 리버스 프록시로 활용하며, 애플리케이션 서버와 데이터베이스 모두 Docker 컨테이너로 독립 운영됩니다. 서비스의 안정적인 운영을 위해 로그 데이터는 호스트 서버와 볼륨 마운트를 통해 영구 보관됩니다.
- Web Server: Nginx (Reverse Proxy)
- Application Server: Docker Containers (Spring Boot 3.x)
- Database: Docker Container (MariaDB 10.11+)
- Log Management: Host-Container Volume Mapping (
/logs)
| Infrastructure | Detail |
|---|---|
| Cloud | NCP (Naver Cloud Platform) |
| Instance | Micro Server (Ubuntu 22.04 LTS) |
| Database | MariaDB 10.11 (Dockerized) |
| Container | Docker, Docker-compose |
GitHub Actions와 NCP Container Registry를 연동하여 배포 자동화를 구축했습니다.
- GitHub Actions:
main브랜치에 코드 Push 시 빌드 및 테스트 자동 수행 - NCP Container Registry (NCR): 빌드된 이미지를 NCP 전용 컨테이너 저장소에 Push 및 관리
- Deployment Flow:
- GitHub Actions에서 프로젝트 빌드 (Gradle)
- Docker 이미지 생성 후 NCP Container Registry로 Push
- 대상 서버에 SSH 접속 후 최신 이미지
pull및docker-compose재실행
컨테이너 재배포 시에도 과거의 에러 기록을 보존하기 위해 호스트 서버의 파일 시스템과 동기화하여 관리합니다.
- 로그 보관 경로:
/home/ncp-user/mingling-logs(Host) ↔/logs(Container) - 로그 파일 구성:
error.log: 모든 ERROR 레벨 로그 기록 (서비스 장애 추적용)warn.log: WARN 이상 레벨 로그 기록 (잠재적 문제 모니터링용)
- 모니터링: 서버 터미널에서
tail -f명령어를 통해 실시간으로 시스템 상태를 확인할 수 있습니다.
상세한 API 명세 및 테스트는 아래 Swagger UI 링크를 참조하세요. 👉 Mingling Swagger UI 바로가기




