ABOUT THE PROJECT
프로젝트 소개
Weatify는 실시간 날씨 데이터를 기반으로 사용자의 상황에 맞는 활동을 추천하고, 이어서 음악까지 자동으로 연결해주는 개인 맞춤형 추천 웹 플랫폼입니다.
사용자는 현재 날씨 정보를 바탕으로 활동 추천을 받을 수 있으며, 추천 결과와 어울리는 음악을 Spotify API를 통해 함께 확인할 수 있습니다. 또한 게시판, 댓글·대댓글, 1:1 채팅, 알림, 추천 히스토리 기능을 통해 단순 추천 서비스에서 끝나지 않고 사용자 간 소통과 서비스 재사용성을 강화했습니다.
본 프로젝트는 Spring Boot 기반으로 백엔드를 구성하고, MongoDB와 MariaDB를 함께 사용하여 기능별 데이터 저장 구조를 분리했습니다. MongoDB는 회원, 게시글, 댓글, 채팅, 추천 히스토리 등 유연한 문서 구조가 필요한 데이터 관리에 활용했으며, MariaDB는 관계형 데이터 처리가 필요한 영역에 사용했습니다. Redis는 실시간성 기능과 상태 관리 보조 용도로 활용했습니다.
배포 환경은 AWS EC2에 Spring Boot WAR 파일을 배포하고, Nginx를 리버스 프록시로 구성하여 외부 도메인과 내부 애플리케이션 서버를 연결했습니다. 또한 Certbot과 Let's Encrypt를 통해 HTTPS 인증서를 적용하고 자동 갱신까지 설정했습니다. 프로필 및 게시글 이미지 업로드는 Amazon S3를 활용하여 서버 로컬 저장소에 의존하지 않도록 구성했습니다.
주요 기능
- 회원가입, 로그인, 이메일 인증, 마이페이지
- 실시간 날씨 기반 활동 추천
- OpenAI API를 활용한 추천 문장 생성
- Spotify API를 활용한 음악 추천 및 연결
- 게시판 CRUD 및 이미지 업로드
- 댓글·대댓글 기능
- 1:1 관리자 채팅
- 알림 기능
- 추천 히스토리 저장 및 조회
- 관리자 회원 관리
- AWS EC2, Nginx, HTTPS 기반 배포
사용 기술
Spring BootOpenAIJavaJavaScriptMariaDBMongoDBRedisAWSNginxMyBatisWebSocket
YouTube 원본 프로젝트 설명
❍ 개발자 : 권오근
❍ 제목 : Weatify
❍ Weatify는 실시간 날씨 데이터를 기반으로 사용자의 상황에 맞는 활동을 추천하고, 이어서 음악까지 자동으로 연결해주는 개인 맞춤형 추천 웹 플랫폼입니다.
사용자는 현재 날씨 정보를 바탕으로 활동 추천을 받을 수 있으며, 추천 결과와 어울리는 음악을 Spotify API를 통해 함께 확인할 수 있습니다. 또한 게시판, 댓글·대댓글, 1:1 채팅, 알림, 추천 히스토리 기능을 통해 단순 추천 서비스에서 끝나지 않고 사용자 간 소통과 서비스 재사용성을 강화했습니다.
본 프로젝트는 Spring Boot 기반으로 백엔드를 구성하고, MongoDB와 MariaDB를 함께 사용하여 기능별 데이터 저장 구조를 분리했습니다. MongoDB는 회원, 게시글, 댓글, 채팅, 추천 히스토리 등 유연한 문서 구조가 필요한 데이터 관리에 활용했으며, MariaDB는 관계형 데이터 처리가 필요한 영역에 사용했습니다. Redis는 실시간성 기능과 상태 관리 보조 용도로 활용했습니다.
배포 환경은 AWS EC2에 Spring Boot WAR 파일을 배포하고, Nginx를 리버스 프록시로 구성하여 외부 도메인과 내부 애플리케이션 서버를 연결했습니다. 또한 Certbot과 Let's Encrypt를 통해 HTTPS 인증서를 적용하고 자동 갱신까지 설정했습니다. 프로필 및 게시글 이미지 업로드는 Amazon S3를 활용하여 서버 로컬 저장소에 의존하지 않도록 구성했습니다.
❍ 주요 구현 기능
- 회원가입, 로그인, 이메일 인증, 마이페이지
- 실시간 날씨 기반 활동 추천
- OpenAI API를 활용한 추천 문장 생성
- Spotify API를 활용한 음악 추천 및 연결
- 게시판 CRUD 및 이미지 업로드
- 댓글·대댓글 기능
- 1:1 관리자 채팅
- 알림 기능
- 추천 히스토리 저장 및 조회
- 관리자 회원 관리
- AWS EC2, Nginx, HTTPS 기반 배포
❍ 적용 기술
- Backend: Java 17, Spring Boot, JSP, JSTL, MyBatis
- Database: MongoDB, MariaDB
- Cache / Realtime: Redis, WebSocket
- Frontend: HTML, CSS, JavaScript, jQuery, AJAX
- Cloud / Infra: AWS EC2, Amazon S3, Nginx, Certbot, Let's Encrypt
- External API: OpenWeather API, OpenAI API, Spotify API, SMTP
- Build / Deploy: Maven, WAR 배포, Linux 서버 환경 구성
❍ 프로젝트를 통해 단순 기능 구현뿐 아니라 외부 API 연동, 비동기 이메일 처리, 이미지 업로드, 실시간 채팅, 알림, 데이터 저장 구조 설계, 클라우드 배포, HTTPS 적용까지 웹 서비스 운영에 필요한 전반적인 흐름을 직접 경험했습니다.
배포 주소:
https://weatify.kr
공개된 YouTube 설명에 근거한 소개입니다. 설명에 없는 학생 정보나 기능은 추가하지 않습니다.