음식 추천 FoodChatbot

● 주제

- 채팅 형식의 질의응답을 통하여 데이터들을 학습하고 음식메뉴를 추천하는 채팅봇

● 학습 목표

-AI에 대한 학습과 이해
- DB 알고리즘 구성에 대한 연습
- 웹 서버 시스템에 대한 학습
- HTML/CSS JS JSP 연습
- API 활용 연습
- 팀 프로젝트 경험

● 개발 중점 사항

- 사람과 대화하듯이 자연스럽게 질의응답을 하여 메뉴 추천
- 사용자의 직접적 피드백을 받아 단어를 학습
- 메뉴 추천의 신뢰도 향상을 위한 내부 점수 조정 알고리즘 구현
- 단위 테스트 수행 및 WEB API 테스트 (JUnit4, PostMan 등 도구 활용)
- DB 알고리즘 구성에 대한 연습
- 음식 이미지 출력을 위한 카카오 이미지 검색 API 활용

● 담당 업무

- 카카오 이미지 검색 API를 활용하여 음식 사진 이미지 가져오기
- 프로토타입 DB 구조를 학습이 가능한 구조로 변경
- 자연어 처리 오류 수정 및 토의

● 개발 도중 생긴 이슈

- 서버 API 구현 및 클라이언트 사이드 렌더링 구현
 > HTTP 이해. RESTful API 이해
 > 비동기 요청처리 흐름 이해
 > 공용 포맷 JSON 사용
 > 내부 API 구현 시, 요청 파라미터 및 응답 구조가 팀원간 서로 요구하는 바가 다름
  -> 회의를 통한 내부 API 인터페이스 정의 문서화
  -> 구현 후 사용법 문서화

- 카카오 검색 이미지 API를 사용하여 음식 이미지 렌더링
  > 하위 리소스 요청시 리퍼러 정책 위반 발생
   -> HTTP 헤더 설정 / HTML 내 속성 설정 사용

- 챗봇 학습용 데이터베이스 아이디어 구상
  > 프로토타입 구현 후 학습을 시도하였으나 구조 상 사용자의 피드백에 대해 학습이 불가능한 구조
   -> 해당 키워드가 모든 음식의 이름과 각각의 점수를 가지는 구조로 변경
   -> 사용자의 선택에 따라 점수들이 유동적으로 변하며 신뢰성을 가지는 구조 선택