HealthSync Backend Services
AI 기반 개인형 맞춤 건강관리 서비스의 백엔드 시스템입니다.
🏗️ 아키텍처
마이크로서비스 구성
- API Gateway (Port: 8080) - 통합 진입점 및 라우팅
- User Service (Port: 8081) - 사용자 관리 및 인증
- Health Service (Port: 8082) - 건강검진 데이터 관리
- Intelligence Service (Port: 8083) - AI 분석 및 채팅
- Goal Service (Port: 8084) - 목표 설정 및 미션 관리
- Motivator Service (Port: 8085) - 동기부여 메시지 및 알림
기술 스택
- Framework: Spring Boot 3.4.0, Spring WebMVC
- Language: Java 21
- Build Tool: Gradle
- Database: PostgreSQL 15
- Cache: Redis 7
- Architecture: Clean Architecture
- Documentation: OpenAPI 3 (Swagger)
🚀 실행 방법
1. Prerequisites
- Java 21+
- Docker & Docker Compose
- Claude API Key (선택사항)
2. Docker Compose로 실행
# 환경변수 설정 (선택사항)
export CLAUDE_API_KEY=your_claude_api_key
# 서비스 시작
docker-compose up -d
# 로그 확인
docker-compose logs -f
3. 개발 환경에서 실행
# 의존성 데이터베이스 시작
docker-compose up postgres redis -d
# 각 서비스 개별 실행
./gradlew :api-gateway:bootRun
./gradlew :user-service:bootRun
./gradlew :health-service:bootRun
./gradlew :intelligence-service:bootRun
./gradlew :goal-service:bootRun
./gradlew :motivator-service:bootRun
📡 API 엔드포인트
API Gateway (http://localhost:8080)
모든 서비스의 통합 진입점
주요 API 경로
POST /api/auth/login- Google SSO 로그인POST /api/users/register- 회원가입POST /api/health/checkup/sync- 건강검진 연동GET /api/intelligence/health/diagnosis- AI 건강 진단POST /api/intelligence/missions/recommend- AI 미션 추천POST /api/goals/missions/select- 미션 선택GET /api/goals/missions/active- 활성 미션 조회POST /api/motivator/notifications/encouragement- 독려 메시지
API 문서
각 서비스의 Swagger UI에서 상세 API 문서를 확인할 수 있습니다:
- API Gateway: http://localhost:8080/swagger-ui.html
- User Service: http://localhost:8081/swagger-ui.html
- Health Service: http://localhost:8082/swagger-ui.html
- Intelligence Service: http://localhost:8083/swagger-ui.html
- Goal Service: http://localhost:8084/swagger-ui.html
- Motivator Service: http://localhost:8085/swagger-ui.html
🧪 테스트
# 전체 테스트 실행
./gradlew test
# 특정 서비스 테스트
./gradlew :user-service:test
📊 모니터링
Health Check
- API Gateway: http://localhost:8080/actuator/health
- 각 서비스: http://localhost:808x/actuator/health
Metrics
- Prometheus metrics: http://localhost:808x/actuator/prometheus
🛠️ 개발 가이드
Clean Architecture 패턴
각 서비스는 Clean Architecture 패턴을 따릅니다:
interface-adapters/controllers- API 컨트롤러application-services- 유스케이스domain/services- 도메인 서비스domain/repositories- 리포지토리 인터페이스infrastructure- 외부 의존성 구현
코딩 컨벤션
- Java 21 문법 활용
- Lombok 사용으로 boilerplate 코드 최소화
- 모든 클래스에 JavaDoc 작성
- 로깅을 통한 추적성 확보
🔒 보안
- JWT 기반 인증
- CORS 설정
- Input validation
- SQL injection 방지
📝 프로젝트 구조
healthsync-backend/
├── api-gateway/ # API Gateway
├── user-service/ # 사용자 서비스
├── health-service/ # 건강 서비스
├── intelligence-service/ # AI 서비스
├── goal-service/ # 목표 서비스
├── motivator-service/ # 동기부여 서비스
├── common/ # 공통 라이브러리
├── docker-compose.yml # Docker 구성
└── scripts/ # 초기화 스크립트
🤝 기여 방법
- 이슈 등록
- 브랜치 생성 (
git checkout -b feature/amazing-feature) - 커밋 (
git commit -m 'Add amazing feature') - 푸시 (
git push origin feature/amazing-feature) - Pull Request 생성
📄 라이선스
이 프로젝트는 MIT 라이선스를 따릅니다.
Description
Languages
Java
99.9%
Dockerfile
0.1%