FoodieFinder는 공공데이터를 활용하여, 지역 음식점 목록을 자동으로 업데이트 하고 이를 활용합니다. 사용자 위치
에맞게 맛집 및 메뉴를 추천하여 더 나은 다양한 음식 경험
을 제공하고, 음식을 좋아하는
사람들 간의 소통과
공유를 촉진하려 합니다.
김서윤 | 방성원 | 장혜리 | 정지원 |
---|---|---|---|
@seoyoon047 | @O0oO0Oo | @hyerijang | @cjw9506 |
2023.10.31 ~ 2023.11.08 (9 days)
- 유저는 본 사이트에 들어와 회원가입 및 내 위치를 지정한다.
- A. 내 위치 기반 맛집추천 = (
내 주변보기
)도보
기준1km
이내의 맛집을 추천한다.교통수단
기준5km
이내의 맛집을 추천한다.
- B. 지역명 기준 맛집추천(
특정 지역 보기
)- 지정한
지명(시군구)
중심위치 기준10km
이내의 맛집을 추천한다.
- 지정한
- C. 점심 추천 서비스
- 점심 추천 서비스 이용을 승락한 대상에게 매일 정오, 대상의 위치를 기준으로 원하는 유형(일식, 중식 등)의 가게를 3개씩 추천 해준다.
- A, B는 다양한 검색기준 (정렬, 필터링 등)으로 조회 가능하며 (
거리순
,평점순
,양식
,중식
) - 해당 맛집의 상세정보를 확인할 수 있다.
김서윤 | 시군구, 맛집 목록, 맛집 상세정보, 평가 API 구현 |
방성원 | 데이터 수집, 데이터 전처리, 자동화 구현 및 Redis 캐싱 |
장혜리 | 데이터 전처리, 데이터 저장, 점심 추천 서비스 구현 |
정지원 | 사용자 관련 서비스 및 인증, 인가 구현 |
자세히
├─main
│ ├─java
│ │ └─com
│ │ └─foodiefinder
│ │ ├─auth
│ │ │ ├─config
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─filter
│ │ │ ├─jwt
│ │ │ └─service
│ │ ├─cities
│ │ │ ├─controller
│ │ │ │ └─response
│ │ │ ├─domain
│ │ │ ├─factory
│ │ │ └─service
│ │ ├─common
| | | ├─cache
│ │ │ ├─config
│ │ │ ├─dto
│ │ │ ├─entity
| | | ├─enums
│ │ │ └─exception
│ │ ├─datapipeline
| | | ├─cache
│ │ │ ├─config
│ │ │ ├─enums
│ │ │ ├─job
│ │ │ ├─processor
│ │ │ │ └─dto
│ │ │ ├─reader
│ │ │ ├─step
│ │ │ ├─util
| | | | ├─hash
| | | | └─request
│ │ │ └─writer
│ │ │ ├─entity
│ │ │ └─repository
│ │ ├─notification
│ │ │ ├─dto
│ │ │ ├─scheduler
│ │ │ └─service
| | ├─restaurants
| | | ├─cache
| | | ├─controller
| | | ├─dto
| | | ├─entity
| | | ├─enums
| | | └─service
│ │ ├─settings
│ │ │ ├─controller
│ │ │ ├─dto
│ │ │ ├─entity
│ │ │ ├─repository
│ │ │ ├─service
│ │ │ └─valid
│ │ └─user
│ │ ├─controller
│ │ ├─crypto
│ │ ├─dto
│ │ ├─entity
│ │ ├─repository
│ │ └─service
│ └─resources
│─test
├─java
│ └─com
│ └─foodiefinder
│ ├─auth
│ │ ├─controller
│ │ └─service
│ ├─cities
│ ├─config
│ ├─datapipeline
│ │ ├─processor
│ │ ├─reader
│ │ ├─step
│ │ └─writer
│ │ └─repository
│ ├─notification
│ │ └─service
│ ├─settings
│ │ ├─controller
│ │ ├─service
│ │ └─valid
│ └─user
│ ├─controller
│ └─service
└─resources
![](https://private-user-images.githubusercontent.com/46921979/282978700-78288c73-15cc-4b73-adfe-e31bafb62708.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA4Mjg3ODcsIm5iZiI6MTcyMDgyODQ4NywicGF0aCI6Ii80NjkyMTk3OS8yODI5Nzg3MDAtNzgyODhjNzMtMTVjYy00YjczLWFkZmUtZTMxYmFmYjYyNzA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDIzNTQ0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4OTMzZGNhNTE3YTBjYWQ2MmFlZGQyOGNmODc4OGIyMjc0MGM1ZWQyY2M1MjA4NDI2Y2Q1MTBkNWJjOThiZjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qT87V5q92sUMU2pSroQfo3LIdotmLdvPD6q5Cho8-x4)
![](https://private-user-images.githubusercontent.com/46921979/282980119-98e8fcb9-8abb-41c6-987d-ceba9676dbc3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA4Mjg3ODcsIm5iZiI6MTcyMDgyODQ4NywicGF0aCI6Ii80NjkyMTk3OS8yODI5ODAxMTktOThlOGZjYjktOGFiYi00MWM2LTk4N2QtY2ViYTk2NzZkYmMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDIzNTQ0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU0OTQ0ODFhOGIyZDg4MDFkYmM0MDMxOTIzOTMyMjYxNmNkNWU5ZmZjMjY5NzhmMGFjOTljMzUxMmM5OGJkNzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.TOphV544mML9cc1IETl__LUr1QtJqtuLtZ6hIWOH_qc)
![](https://private-user-images.githubusercontent.com/46921979/281625913-b468a807-76fb-4957-a647-6f23ae79ea0a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA4Mjg3ODcsIm5iZiI6MTcyMDgyODQ4NywicGF0aCI6Ii80NjkyMTk3OS8yODE2MjU5MTMtYjQ2OGE4MDctNzZmYi00OTU3LWE2NDctNmYyM2FlNzllYTBhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDIzNTQ0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlmMTA5ZTFmNzQxNDJjODIxODdhYWQ5MzM0Mzk4ZjAxMzVmYzBlNmU1ODJmZDkxMWE2ZTU2NGU0YmZiY2UyZTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BhmExmHYGn2EgV0gTIyRvz6dpy9oRvLD6pHffTZfjew)
최신 문서는 FoodieFinder API Document를 참조해 주세요.
main
,develop
,feature
로 나누어서 진행feature
는이슈번호-기능_이름
으로 명명
# 타입 : 제목 형식으로 작성하며 제목은 최대 50글자 정도로만 입력
# 제목을 아랫줄에 작성, 제목 끝에 마침표 금지, 무엇을 했는지 명확하게 작성
################
# 본문(추가 설명)을 아랫줄에 작성
################
# 꼬릿말(footer)을 아랫줄에 작성 (관련된 이슈 번호 등 추가)
################
# feat : 기능 추가
# fix : 버그 수정
# docs : 문서 수정
# test : 테스트 코드 추가
# refactor : 코드 리팩토링
# style : 코드 의미에 영향을 주지 않는 변경사항
# chore : 빌드 부분 혹은 패키지 매니저 수정사항
# cicd : CI/CD 관련 설정
################
기타 규칙은 Team Q Notion - 팀 규칙 및 컨벤션을 참조해 주세요.