구현 계기
- 실무에서 사용되는 기술들을 공부하며, 직접 프로젝트에 적용해 더 효율적으로 체화시키기 위해 StyleCast 프로젝트를 시작했습니다.
- 여러 주제들을 생각하던 중 기존에 사용하고 있던 Weather Fit이라는 앱의 기능인 날씨에 기반한 간단한 옷 추천에 아쉬움을 느꼈습니다.
- 날씨를 기반으로 간단한 옷 추천에서 나아가 사용자에게 조금 더 특화된 날씨 기반 옷 추천 기능을 담고 있는 앱이 있으면 좋겠다고 생각해 주제를 정하게 되었습니다.
구현 목표
- 가장 기반이 되는 날씨 정보 제공
- 사용자 별로 직접 옷과 코디를 저장(업로드)하고, 날씨에 맞춘 코디 추천
- 날씨 기반 추천만이 아닌 사용자가 입력한 Profile과 추가적으로 입력하는 조건에 맞춘 코디 추천
- 코디를 여러 사용자들과 함께 공유할 수 있도록 하며, 다른 사용자의 코디에 좋아요 기능 추가 -> 추천 수를 코디 추천에 사용
기대 효과
- 오늘 뭐입지?에 대한 고민 해소
- 다양한 룩들을 둘러보고 싶을 때 사용자의 체형과 비슷한 사람들의 코디 및 원하는 스타일에 따른 룩들을 보며 참고할 수 있음
아쉬운 점
- 프로젝트의 목적은 백엔드 실무에서 사용되는 기술들을 공부하고, 체화시키는 것이였기 때문에 프론트 개발이 완벽하지 않았던 점
- 추후에 백엔드 코드 리펙토링과, 프론트 제작 후 "오늘 뭐입지?"라는 고민을 해결해 줄 수 있는 앱을 정식적으로 개발, 배포 계획
##개발환경
| 도구 | 버전 |
|---|---|
| Framework | Spring Boot 2.7.12 |
| OS | macOs sonoma14.0 |
| IDE | IntelliJ IDEA |
| DataBase | H2 , MySql |
| Build Tool | Gradle 7.6.1 |
전체적인 흐름
회원가입 및 로그인
- 회원가입 진행시 이메일 인증을 받으며 가입 성공시 로그인 페이지로 이동
- 회원가입 이후 프로필 설정
- 코디가 있을 때 로그인 예시
- 로그인 성공시 메인 페이지로 이동
- 메인 페이지에서는 사용자의 정보에 있는 지역의 날씨와 기본적인 코디 추천
- GeocodingApi와 openWeatherMap api를 통해 위치 기반 날씨 정보 제공
- 내 코디가 있을 시 날씨를 기반으로 코디 추천
- 코디가 없을 때 로그인 예시
- 로그인 실패시 콘솔에 에러표시
- 메인 페이지에서는 사용자의 정보에 있는 지역의 날씨와 기본적인 코디 추천 동일
- GeocodingApi와 openWeatherMap api를 통해 위치 기반 날씨 정보 제공
- 내 코디가 없다면 메시지 출력
옷 및 코디 등록
데일리룩 기능
코디 추천 기능
- 남성 유저
- 일반 코디 추천의 경우 날씨와 기온에 따른 추천기능
- 스타일별 추천 기능
- 다른 사용자들의 좋아요 즉, likes 수가 최소 2개 이상인 코디 추천
- 사용자가 원하는 Style 지정시 해당 Style 코디들만 추천
- 사용자의 Profile이 추천시 사용되기 때문에 사용자에 맞춤형 서비스 제공 가능
- 여성 유저
- 일반 코디 추천의 경우 날씨와 기온에 따른 추천기능
- 스타일별 추천 기능
- 다른 사용자들의 좋아요 즉, likes 수가 최소 2개 이상인 코디 추천
- 사용자가 원하는 Style 지정시 해당 Style 코디들만 추천
- 사용자의 Profile이 추천시 사용되기 때문에 사용자에 맞춤형 서비스 제공 가능
- H2 Database
- MySql
- Spring Boot
- Hibernate
- Spring Data JPA
- QueryDsl
- Spring Security
- JWT
참고 블로그
https://openweathermap.org/current#multi OpenWeathermap 공식 사이트
https://velog.io/@kjh950330/%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85-%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%9D%B8%EC%A6%9D-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84 이메일 인증 구현 블로그 참고
https://velog.io/@jkijki12/Jwt-Refresh-Token-%EC%A0%81%EC%9A%A9%EA%B8%B0 jwt 적용 블로그 참고












