매일 챙기기 어려운 부모님의 건강, AI가 전화로 대신 확인해주는 돌봄 서비스, 메디케어콜
- 간편 로그인: 복잡한 과정 없이 문자 인증을 이용하여 간편하게 로그인하여 서비스를 이용할 수 있습니다.
- AI 케어콜: 설정된 시간에 AI가 자동으로 어르신께 전화를 걸어 안부를 묻고, 자연스러운 대화를 통해 건강 상태를 확인합니다.
- 건강 데이터 자동 추출 및 분석: 통화 내용에서 식사, 복약, 수면, 혈당 등 주요 건강 데이터를 자동으로 추출하고 AI가 분석하여 이상 징후를 감지합니다.
- 건강 리포트: 데이터를 시각화된 리포트로 제공하여, 어르신의 건강 변화를 쉽고 빠르게 파악할 수 있도록 돕습니다.
- 간편 결제: 네이버페이를 연동하여 복잡한 과정 없이 손쉽게 서비스 구독 및 결제가 가능합니다.
- Framework: Spring Boot 3.2.4
- Language: Java 17
- Database: MySQL, Flyway, Spring Data JPA
- Security: Spring Security, JWT
- API Documentation: Springdoc OpenAPI (Swagger UI)
jjwt: JWT 토큰 생성 및 검증flyway-mysql: DB 마이그레이션 관리coolsms-sdk: SMS 발송, 인증springdoc-openapi-starter-webmvc-ui: API 문서 자동화Thymeleaf: 서버 사이드 렌더링 (결제 WebView 페이지)Naver Pay SDK: 네이버페이 결제 연동OpenAI API: AI 기반 건강 데이터 분석 및 요약, 케어콜 음성 데이터 실시간 처리Twilio SDK: 케어콜 전화 발신, 웹소켓 기반 음성 데이터 실시간 처리
본 프로젝트는 GitHub Actions를 활용하여 CI/CD 파이프라인을 자동화했습니다.
- 트리거: 모든 브랜치에
push또는pull_request이벤트가 발생할 때 워크플로우가 실행됩니다. - 주요 작업:
- JDK 17 환경을 설정합니다.
./gradlew clean build명령어를 통해 프로젝트를 빌드하고 모든 테스트 코드를 실행합니다.- 이를 통해 코드 변경 사항이 기존 기능에 영향을 주지 않는지 지속적으로 검증합니다.
- 트리거:
dev또는main브랜치에push이벤트가 발생할 때 워크플로우가 실행됩니다. - 주요 작업:
- 프로젝트를 빌드하고 Docker 이미지를 생성합니다.
- 생성된 이미지를 Docker Hub에 푸시합니다.
- AWS EC2 서버에 SSH로 접속하여 최신 Docker 이미지를 pull 받고, 기존 컨테이너를 중지한 후 새로운 컨테이너를 실행하여 애플리케이션을 배포합니다.
- 모든 핵심 비즈니스 로직에 대해 단위 테스트와 통합 테스트 코드를 작성하여 코드의 안정성과 신뢰성을 확보합니다.
- CI 파이프라인을 통해 모든 Push 및 PR에 대해 전체 테스트가 자동으로 실행되어, 변경 사항으로 인한 잠재적인 버그를 사전에 방지합니다.
- 브랜치 컨벤션:
feat,fix,refactor,test등 브랜치 목적에 맞는 prefix를 사용하여 브랜치를 생성합니다. - 자동 라벨링: Pull Request가 생성되면, GitHub Actions가 브랜치 이름의 prefix를 분석하여
enhancement,bug,refactoring등 연관된 라벨을 자동으로 부여합니다. 이를 통해 PR의 목적을 직관적으로 파악하고 체계적으로 관리할 수 있습니다.
전체 API 명세는 Notion에서 확인하실 수 있습니다.
- Java 17
- Gradle 8.8
- MySQL 8.0
- Redis
-
저장소 복제:
git clone https://github.com/your-username/Medicare-Call-Backend.git cd Medicare-Call-Backend -
application.yml설정:src/main/resources/경로에application.yml파일을 생성하고 데이터베이스, Redis, JWT, 외부 API 키 등의 설정을 추가합니다. -
애플리케이션 실행:
./gradlew bootRun



