SSAFY 8기 2학기 특화 프로젝트(빅데이터 추천)
2023.02.20 ~ 2023.04.07 (7주)
2030, MZ세대, 위스키 최근 뉴스에 함께 등장하는 키워드이다. 흔히 "아재술"로 불리는 위스키를 찾는 2030 세대가 늘어났다는 뉴스이다. 위스키를 사기 위해 편의점으로 오픈런을 하기도 한다. 젊은 세대의 주류 소비 트렌드 변화와 증가하는 홈술족을 위한 서비스를 기획해 보았다. 술을 좋아하는 사람들과 술을 잘 모르지만 알고 싶은 사람들을 위한 사용자 취향 기반 주류 추천 플랫폼 "주상낙원"이다.
- 와인 : WINE21 크롤링
- 위스키 : Kaggle Whisky Dataset
- 전통주 : 네이버 전통주 지식백과 크롤링
- 칵테일 : Cocktail Wheel Dataset
- 맥주 : BeerRate
- 커스텀 칵테일 : 만개의 레시피 무료 레시피 Dataset
- Data에서 필요한 feature를 추출 진행
- 기존 Dataset에 없는 사진이나 가격 정보 등을 추가로 Python을 이용해 크롤링 하여 수집
- 추천 시스템을 위해 맛 별 데이터를 수집
- 추천 시스템 구축
- 주종별 다양한 맛 column을 기준으로 Contents Based Filtering을 위해 Python으로 코사인 유사도를 계산하여 가장 맛이 비슷한 상위 5개의 술을 저장
- 유저가 높은 평점을 매긴 술을 기준으로 맛의 유사도가 높은 술들을 모아서 제공
- 평점을 매긴 적이 없는 유저라면 회원가입 시 진행되는 취향 설문을 통해 선호하는 맛에 따른 주류를 추천하여 cold start 문제를 해결
- 술 추천
- 다양한 주종별(와인,맥주,위스키,칵테일,전통주) 술 정보, 인기 순위 제공
- 사용자 취향을 기반으로 Contents Based Filtering 을 이용한 술 추천 시스템
- 사용자 커스텀 칵테일 신규 등록 및 추천 기능
- 기상청 공공 API를 이용한 재미있는 날씨별 술 추천
- 커뮤니티
- 게시글, 댓글을 이용한 다른 사용자들과의 소통
- 주류 정보 제공
- 주종별 입문자 가이드로 유저가 낯선 주종에도 쉽게 유입될 수 있도록 함
- 유저 기능
- 카카오, 구글 간편 소셜로그인 기능
- 캘린더에서 유저의 리뷰를 분석해 날짜마다 마신 술을 달력에 이모지로 보여줌
이름 | 포지션 | 역할 |
---|---|---|
김호정 | FE | UI/UX 개발 마이페이지 |
이예진 | FE | UI/UX 개발 홈 칵테일 페이지 |
조한이 | FE | UI/UX 개발 메인 페이지 |
남이랑 | BE | 추천 시스템 술 추천(날씨/취향) API 개발 사용자 인증/인가 |
양주연 | BE | 추천 시스템 피드 및 마이페이지 API 개발 |
이상원 | BE INFRA |
팀장 CI/CD 자동화 비로그인 술 추천 및 술 관련 API 개발 |
POSITION | STACK | VERSION |
---|---|---|
CLIENT | React | 18.2.0 |
Typescript | 4.9.3 | |
Vite | 4.1.0 | |
Axios | 1.3.4 | |
SERVER | Spring Boot | 2.7.9 |
OpenJDK | 11.0 | |
Spring Security | 2.7.9 | |
Spring Data JPA | 2.7.9 | |
QueryDSL | 1.0.10 | |
DATABASE | MYSQL | 8.0 |
REDIS | 7.0 | |
INFRA | AWS | |
GCP | ||
Docker | 20.10.23 | |
Docker Compose | 2.17.2 | |
Jenkins | 2.387.1 | |
Nginx | 1.18.0 | |
GENERAL | Git | |
Notion | ||
Jira | ||
Mattermost |
- 개발자가 develop 브랜치에 MR 요청 후 승인하게 되면 develop 브랜치 담당 Jenkins job 실행
- develop jenkins job은 develop 브랜치 clone, 프론트, 백 폴더의 dockerfile을 사용해 이미지 빌드
- 빌드된 이미지를 dockerhub로 올리고 docker 내 사용하지 않는 모든 이미지 삭제
- docker compose file로 docker hub에 올린 이미지 pull 하여 개발 서버 실행
- develop jenkins job의 빌드 마지막 단계에서 main 브랜치로 MR 생성
- 개발 서버 테스트 후 발생하는 오류 수정 후 main 브랜치로 요청 된 MR 승인
- main 브랜치로 MR 승인 시 production jenkins job 실행
- develop jenkins job과 동일하게 동작 (프론트 프로젝트 빌드 같이 진행)