여행 서비스를 위한 OPEN API
바로가기 : https://api4u.site/
개발에 갓 진입한 주니어 개발자들이 진행하는 서비스 개발을 위한 여행관련 open API를 제공.
기존 여행 관련 사이트를 제작하려면 공공데이터 API를 주로 사용하지만, 이에 대한 정보와 결과는 한정되어 있다.
이러한 단점을 극복하고자 해당 공공데이터 데이터베이스를 활용하여 이와 관련된 숙소, 음식점, 전자사전 검색 데이터를 추가로 수집하고, 유사한 검색 결과를 보정하는 API 기능을 만들어 제공하고자 하였다.
- 여행지 이름 기준으로 주변 숙소 정보를 얻는다.
- 위경도 기준으로 주변 숙소 정보를 얻는다.
- 여행지 이름 기준으로 주변 음식점 정보를 얻는다.
- 위경도 기준으로 주변 숙소 정보를 얻는다.
- [제목 검색] 제목의 오탈자를 보정하여 유사한 보정 결과를 반환한다.
- [전문 검색] 입력 문장을 기준으로 데이터의 모든 필드를 환산하여 가장 유사한 내용을 가진 결과값을 스코어 순대로 반환한다.
- 입력 문장과 거리, 점수, 입력 파라미터의 조건을 기준으로 가장 높은 검색 결과를 반환한다.
- 수집하여 저장된 데이터의 내용 유사도를 판단하여 신뢰성 있는 결과를 제공한다.
- 수집된 인덱스의 도큐먼트 중, 가장 많은 검색 결과를 Kibana를 활용하여 차트의 형태로 제공한다.
- logstash를 사용하여 API 요청 회수와 사용자 요청 로그를 데이터로 수집하고, 차트의 형태로 제공한다.
- python, Selenium을 사용한 스크래핑 코드 작성, robots.txt 를 통한 스크래핑 허가 유무를 확인하였다.
- '나무위키', '여기어때', '다이닝코드' 사이트에서 숙소정보와 음식점정보를 서버에 부하를 주지 않는 선에서 수집하였다.
23.10.10 ~ 23.11.16 (6주)
이름 | 직위 | 역할 | 내용 |
---|---|---|---|
신창학 | 팀장 | Leader & Backend | BE: Spring Data Elasticsearch API 서버 구축(유사도 검색, 전문 검색, 비즈니스 로직) Kibana 데이터시각화, Logstash 로그 데이터 수집, 수집 데이터 신뢰성 처리, Infra : Sub server Infra 구축(EC2, Nginx) |
강현곤 | 팀원 | Fullstack | BE: 숙소 데이터 스크래핑 및 API 구축 FE: Docs Site 구축 |
이지현 | 팀원 | Fullstack | BE: 음식점 데이터 스크래핑 및 API 구축 FE: Docs Site 구축 |
이진호 | 팀원 | Infra | Main server EC2, nginx, docker, jenkins 세팅 |
정형준 | 팀원 | Backend | 데이터 스크래핑 보조 및 숙소 데이터 API 구축, 토큰 발급 처리(처리율 제한) 및 부하테스트 |
홍유빈 | 팀원 | Backend | 전자사전 스크래핑 및 전처리, Docs API 구축, 토큰 발급 처리(처리율 제한) 및 부하테스트 |
- GitLab
- Jira
- Notion
- Mattermost
🖱Backend
- Java 11
- spring boot 2.7.17
- spring-boot-jpa
- Spring Security
- Spring Data Elasticsearch
- Logback
- Logstash
- Kibana
🖱DB
- mysql 8.0.23
- Redis 7.2.1
- MongoDB Cloud
- Elasticsearch 7.11.2
🖱Frontend
- React.js 18.2.0
- node.js 18.16.1
- axios 1.4.0
- styled-components 6.0.4
🖱Infra
- AWS EC2
- docker
- nginx
- jenkins
[명세서 링크](https://safe-bagpipe-21e.notion.site/53032bd640bf4ac2af297b882635c6e9?v=076fc8f6b75d4bd5a47a6c27a1901f28&pvs=4)
Type 키워드 | 사용 시점 |
---|---|
첫 커밋 | CREATE: start project |
Add | 새로운 파일 추가 |
Delete | 파일 삭제 |
Feat | 새로운 기능 추가, 기존의 기능을 요구 사항에 맞추어 수정 |
Fix | 기능에 대한 버그 수정 |
Build | 빌드 관련 수정 |
Chore | 패키지 매니저 수정, 그 외 기타 수정 ex) .gitignore |
Ci | CI 관련 설정 수정 |
Docs | 문서(주석) 수정 |
Style | 코드 스타일, 포맷팅에 대한 수정 |
Refactor | 기능의 변화가 아닌 코드 리팩터링 ex) 변수 이름 변경 |
Test | 테스트 코드 추가/수정 |
Release | 버전 릴리즈 |
Rename | 파일 혹은 폴더명을 수정만 한 경우 |
Readme | README |
Comment | 주석관련 |
commit message
- commit은 최대한 자세히
키워드(대문자) : (영어로 위치/함수/기능) + 설명
서비스 | 포트 |
---|---|
Spring Boot - Main API Server | 8080 |
Spring Boot - ElasticSearch API Server | 8081 |
React | 3000 |
MySQL | 4000 |
Jenkins | 9090 |
Elasticsearch | 9091 |
Kibana | 5601 |