2023.04.29 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 1. 설계하기
2023.05.02 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 2. Open AI API 연동하기
2023.05.02 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 3. Open AI API 연동하기 ver2.
2023.05.04 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 4. 데이터 저장하기
2023.05.05 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 5. 메일로 전송하기
2023.05.06 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 6. 스케쥴러
2023.05.06 - [프로젝트] - Chat GPT 활용 서비스 구현하기 - 7. 회고
서비스 설명
Chat GPT를 활용해 프로젝트를 진행해보려 한다.
아이디어는 면접 질문을 매일 일정 개수만큼 '메일'로 전달받는 서비스이다.
서비스 요구사항 및 구성도
서비스의 요구사항은 아래와 같다.
- 카테고리는 DB, OS, 네트워크, 자료구조 등으로 구성되며 사용자가 선택할 수 있다.
- 이메일을 입력받아 사용자의 메일로 하루에 3개씩 발송할 수 있다.
- 이메일 발송 시간을 사용자가 정할 수 있다.
- 질문 시 답은 발송하지 않는다.
- 중복되는 질문 내용은 제거한다.
서비스의 흐름 구성은 아래와 같다.
- 사용자에게 메일과 메일 발송 시간과 원하는 면접 카테고리를 받는다.
- 주기적으로 면접 질문을 가져온다
- 면접 질문을 open ai 를 통해 가져온다.
- 카카오 키워드 분석 api 를 통해 키워드를 추출한다.
- 질문과 키워드를 저장한다.
- 주기적으로 유저에게 메일을 보낸다.
설계 시 중시한 내용
속도 불일치
- OpenAI API 사용 시 데이터의 로딩 속도 저하가 있기 때문에 DB에 미리 적재 해두고 랜덤하게 사용자에게 서빙하는 방식으로 설계
- 비동기적으로 데이터를 저장하는 방법 알아봐야 한다.
유지 보수
- 최대한 변할 수 있는 것들을 인터페이스로 분리
단순한 호출 구조
- QuestionLoader에서 Question 생성, Keyword 추출, Question 및 Keyword 저장로직 수행
- 저장 로직 시 다수의 Repository를 의존하기 때문에 FacadeService로 관리
중복 관련 생각
- 같은 사용자가 전에 받은 적 있던 질문을 다시 받는 것은 가급적 지양하지만 있어도 상관없다고 생각
- 같은 내용의 질문은 저장하지 않아야 하기 때문에 키워드 추출을 통해 동일한 내용 여부를 판단
클래스 구성도
Github
'프로젝트' 카테고리의 다른 글
Chat GPT 활용 서비스 구현하기 - 5. 메일로 전송하기 (2) | 2023.05.05 |
---|---|
Chat GPT 활용 서비스 구현하기 - 4. 데이터 저장하기 (0) | 2023.05.04 |
Chat GPT 활용 서비스 구현하기 - 3. Open AI API 연동하기 ver2. (0) | 2023.05.02 |
Chat GPT 활용 서비스 구현하기 - 2. Open AI API 연동하기 (0) | 2023.05.02 |
당근마켓 클론코딩 - 1. 인접 동 조회 기능 구현하기 (0) | 2023.02.08 |