NOGOROK은 본 프로젝트는 갤럭시 워치의 실시간 심박 기반 스트레스 지수와 구글 캘린더 일정을 통합 분석하여, 사용자 상태에 맞는 휴식 콘텐츠를 자동 추천하는 AI 웰빙 서비스이다.
"버튼 한 번으로 개인 맞춤형 시나리오형 휴식 루틴을 제안한다."
| 구분 | 기술 스택 | 버전 | 역할 및 사용 목적 |
|---|---|---|---|
| 백엔드 코어 | Spring Boot | 3.4.3 (Java 17) | REST API 개발 및 애플리케이션 프레임워크 제공 |
| Spring Data JPA | 3.4.3 | 데이터베이스(MySQL)와의 객체-관계 매핑(ORM) 및 데이터 접근 관리 | |
| Spring Security | 3.4.3 | 인증 및 인가 처리, OAuth2 클라이언트 기능 지원 | |
| 인증/보안 | OAuth2 Client | 3.4.3 | Google 캘린더 등 외부 서비스 연동 및 사용자 인증 처리 |
| JWT (jjwt) | 0.11.5 | 토큰 기반 인증 구현 (로그인 상태 유지 및 API 접근 제어) | |
| Firebase Admin | 9.2.0 | 푸시 알림 (FCM) 전송 및 사용자 관리 지원 | |
| 데이터베이스 | MySQL | 8.0 | 사용자, 일정, 콘텐츠, 스트레스 지수 등 데이터 저장 |
| 외부 API 연동 | Google Calendar API | v3-rev20220715 | 사용자 캘린더 일정 동기화 및 분석 |
| Google Maps Services | 0.18.0 | 위치 기반 서비스(LBS) 또는 일정의 지리 정보 처리 | |
| Selenium HQ + Jsoup | 4.10.0 / 1.17.2 | 웹 스크래핑 자동화 및 HTML 파싱 | |
| 개발 도구 | Lombok | - | 반복적인 자바 코드(Getter, Setter 등) 자동 생성 |
| Springdoc OpenAPI | 2.7.0 | API 명세 자동화 (Swagger UI) | |
| 인프라 | AWS EC2, Docker, Nginx | - | 서버 호스팅, 컨테이너 환경 구축, 리버스 프록시 |
| 항목 | 명명 규칙 | 예시 |
|---|---|---|
| 클래스/인터페이스 | 파스칼 케이스 (PascalCase) | UserService, ContentRecommender, StressData |
| 메서드/변수 | 카멜 케이스 (camelCase) | calculateStressIndex, getUserSchedule |
| 상수 (Constants) | 대문자 스네이크 케이스 (UPPER_SNAKE_CASE) | ALWAYS, NEVER, MODERATE |
src/main/java/com/example/Easeplan
├── api # [도메인 모듈] 기능 단위 서비스
│ ├── Calendar # Google Calendar 연동 및 OAuth
│ │ ├── config
│ │ ├── controller
│ │ ├── domain
│ │ ├── dto
│ │ ├── repository
│ │ └── service
│ ├── Emergency # 긴급 스트레스 감지 / 휴식 추천
│ ├── Fcm # Firebase Cloud Messaging 기반 알림 시스템
│ ├── HaruRecord # 하루 평가 기록 (감정/날씨/피로도)
│ ├── MainPage # 메인 홈 / 퀴즈 / 크롤링
│ ├── Mypage # 사용자 정보 페이지
│ ├── Recommend # 휴식/공연 추천 엔진
│ │ ├── Event # 외부 문화 행사 API 조회
│ │ └── Long # 장기 일정 기반 맞춤 추천
│ ├── Report # 사용자 리포트 생성
│ ├── ShortFlask # Flask 기반 단기 추천 엔진
│ ├── SmartWatch # 웨어러블 데이터 수집
│ ├── Survey # 설문조사
│ └── test # 테스트용 컨트롤러
│
├── global # 전역 설정 / 보안 / JWT / 예외 처리
│ ├── config
│ ├── exception
│ ├── jwt
│ ├── util
│ └── ...
│
├── resources # 설정 & 템플릿
│ ├── application.yml
│ ├── templates
│ └── static
│
└── EaseplanApplication.java # Spring Boot 시작점