- [1] About the Project
- [2] Getting Started
- [3] Usage
- [4] Contribution
- [5] Acknowledgement
- [6] Contact
우리는 여행 코스를 계획할때 많은 고민을 하게 됩니다.
어디 지역으로 여행을 가겠다고 정하면 숙소부터 시작해서 근처에는 어떤 관광명소가 있는지,어떤 먹을거리가 있는지 열심히 조사를 하게 됩니다.
저희는 이런 고민거리를 타파하고자 여가를 만들어 숙소 추천을 받거나 숙소만 정했다면 그 근처에 무엇이 있는지 추천을 해주는 사이트를 만들었습니다.
여가는 한국관광공사API를 활용하여 숙소와 여행지 코스, 날씨등의 데이터를 받아와 활용하였습니다.
또한 카카오지도API도 사용하여 코스를 추천 받았을 경우, 코스에 대한 이동경로를 지도에 표시하여 사용자가 코스이동을 어떻게 이동할지에 대해 도움을 주도록 노력하였습니다.
![image](https://private-user-images.githubusercontent.com/154016341/408926963-6cb20d4b-8fd0-44af-aa6a-518cbe027db0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTUwMjksIm5iZiI6MTczOTI5NDcyOSwicGF0aCI6Ii8xNTQwMTYzNDEvNDA4OTI2OTYzLTZjYjIwZDRiLThmZDAtNDRhZi1hYTZhLTUxOGNiZTAyN2RiMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxNzI1MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNjBjOWVlODk2ZDI1ZjdkMzYxOTdjZjU0MjViMTYzM2I5OTEwMWE0MWJmMTIwOGExNGY2NTQ5ZmYzYWFjYzU1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.tl63GT06YmZ1N0CPu3exYTxy4me7Of5WskrUPft4JYE)
백엔드 기준 설명입니다.
- Repository 클론
git clone https://github.com/TravelMaker-DMU/YeoGa_BackEnd.git
- 각자 ide 실행
application.properties
에 각자 API키를 입력
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://${MYSQL_HOST}:${MYSQL_PORT}/${DATA_BASE_NAME}?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true
spring.datasource.username=${DB_username}
spring.datasource.password=${DB_password}
spring.jwt.secret=${JWT_secret}
spring.profiles.active=${profile}
tour.api.key=${TOUR_API_KEY}
tour.api.base-url=${TOUR_API_BASE_URL}
tour_course.api.key=${TOUR_COURSE_API_KEY}
tour_course.api.base-url=${TOUR_COURSE_API_BASE_URL}
trip_news.api.key=${TRIP_NEWS_API_KEY}
trip_news.api.base-url=${TRIP_NEWS_API_BASE_URL}
vworld.api.key=${VWORLD_API_KEY}
vworld.api.base-url=${VWORLD_API_BASE_URL}
kakao.api.key=${KAKAO_API_KEY}
kakao.api.base-url=${KAKAO_API_BASE_URL}
google.api.key=${GOOGLE_API_KEY}
google.api.base-url=${GOOGLE_API_BASE_URL}
#registration
spring.security.oauth2.client.registration.naver.client-name=naver
spring.security.oauth2.client.registration.naver.client-id=${NAVER_CLIENT_ID}
spring.security.oauth2.client.registration.naver.client-secret=${NAVER_CLIENT_SECRET}
spring.security.oauth2.client.registration.naver.redirect-uri=${NAVER_REDIRECT_URI}
spring.security.oauth2.client.registration.naver.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.naver.scope=name,email
#provider
spring.security.oauth2.client.provider.naver.authorization-uri=https://nid.naver.com/oauth2.0/authorize
spring.security.oauth2.client.provider.naver.token-uri=https://nid.naver.com/oauth2.0/token
spring.security.oauth2.client.provider.naver.user-info-uri=https://openapi.naver.com/v1/nid/me
spring.security.oauth2.client.provider.naver.user-name-attribute=response
#registration
spring.security.oauth2.client.registration.google.client-name=google
spring.security.oauth2.client.registration.google.client-id=${GOOGLE_CLIENT_ID}
spring.security.oauth2.client.registration.google.client-secret=${GOOGLE_CLIENT_SECRET}
spring.security.oauth2.client.registration.google.redirect-uri=${GOOGLE_REDIRECT_URI}
spring.security.oauth2.client.registration.google.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.google.scope=profile,email
![그림1](https://private-user-images.githubusercontent.com/154016341/408928309-a94c7466-6ac7-4165-8e15-3dd5791bfce5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyOTUwMjksIm5iZiI6MTczOTI5NDcyOSwicGF0aCI6Ii8xNTQwMTYzNDEvNDA4OTI4MzA5LWE5NGM3NDY2LTZhYzctNDE2NS04ZTE1LTNkZDU3OTFiZmNlNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxNzI1MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yM2Q2MzBmNTBlZWJjMWQ3NjVhYjg4YTc4NGI0YWE2MDIxZDRlYjdmODAxNjI2ODBjYzA1ZjkzYjg3ZDdkMmFkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.3CcccgEvHttZh4zzehj1DgiisQU2GixW-MWEPEMBCNk)
스프링으로 뭔가를 만들어본 첫 프로젝트이기도 하고 한국관광공사 API에서 모든걸 제공해주는줄 알고 비즈니스 로직은 외부 API로 받고 나머지 기능을 만드는 방향으로 프로젝트를 진행했습니다. 하지만 외부API는 저희가 원하는대로 데이터 가공도 안되어있고 문서도 제대로 작성이 안되어있어 불편한점이 많았습니다. 기회가 된다면 한국관광공사가 제공해주는 데이터만으로 비즈니스로직 API를 다시만들어 리펙토링해보고 싶습니다.