전체 글

전체 글

    Chat GPT 활용 서비스 구현하기 - 7. 회고

    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. 스케쥴러 Chat GPT 활용 면접 질문 메일링 서비스 포스팅을 마치면서 프로젝트 회..

    Chat GPT 활용 서비스 구현하기 - 6. 스케쥴러

    주기적으로 유저에게 메일을 보내보자 지난 시간동안 면접 질문을 chatGPT에 요청에 만들어 저장하고 이를 사용자에게 메일로 전송하는 로직을 완성했다. 이제 이 로직들을 호출하는 주체가 필요한데 추가적인 요구사항으로 주기적으로 작업을 수행해야한다. 이를 위해, Scheduler를 사용하자. Spring은 Spring Scheduler와 Spring Quartz를 지원한다. 둘다 스케쥴링할 수 있게 도와주는데 그 차이를 먼저 알아보자. Spring Scheduler Spring-boot-starter 에 기본으로 있기 때문에 추가적인 의존성이 필요 없음 스케쥴링할 메서드는 void type이어야 하고 파라미터를 가질 수 없음 1개의 스레드에서 수행되므로 1개의 작업이 끝나지 않으면 다음 작업은 수행되지 않..

    Chat GPT 활용 서비스 구현하기 - 5. 메일로 전송하기

    오늘은 지난 시간에 저장한 질문들을 메일로 전송해보자. Spring Boot의 메일 전송 라이브러리는 여러 가지가 있지만 spring-boot-starter-mail 의존성을 설치하고 JavaMailSender 인터페이스를 사용해 빠르게 개발하자. 서드 파티 라이브러리들이 있지만 메일 전송에 있어서 큰 차이가 없는 것 같고 JavaMailSender는 Spring에서 제공하는 API이기 때문에 서드 파티 라이브러리를 사용할 필요가 없다. JavaMailSender MIME 메시지를 전송할 수도 있고 SimpleMail을 전송할 수도 있다. 이 프로젝트에서는 MIME을 사용해 첨부파일을 사용하거나 HTML을 전송하지는 않을 것이기 때문에 SimpleMail을 사용하자. 메일 SMTP 서버는 Gmail의 S..

    Chat GPT 활용 서비스 구현하기 - 4. 데이터 저장하기

    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. 분석된 키워드를 기반으로 데이터베이스에 저장하기 지난 시간에 개발한 키워드 분석을 통해 추출한 질문과 키워드를 MySQL에 저장해보자. ERD는 다음과 같이 설계했다. Open AI API의 반환 결과는 저번 시간에 본 것처럼 카테고리 별, 질문 별 키워드로 구성되어 있다. [ { "category": "DB", "questions": [ { "question": "Dat..

    Chat GPT 활용 서비스 구현하기 - 3. Open AI API 연동하기 ver2.

    지난 시간에 이어서 이제는 chatGPT로 부터 가져온 데이터에 대해 키워드 분석을 진행해보자 코드를 작성하고 좀 알아보다 보니 카카오 키워드 분석 API가 유료라는 사실을 알게됐다. 나는 돈이 없으니 가능한 다른 방법을 찾아보자. 그리고 좀 생각해보니까 chatGPT도 키워드 분석을 해준다!! 하는 수 없이 개발 편의성을 위해 변경에 용이하지 않더라도 Keyword Extractor를 제거하고 Question Generator에서 키워드 분석까지 진행하도록 변경했다. 아래의 이미지는 기존에 내가 설계했던 클래스 다이어그램이다. 비록, Keyword Extractor가 Question Generator와 합쳐져 변경이 어려운 객체지향적이지 않은 코드가 되겠지만 일단 빠르게 개발을 하기 위해 이렇게 진행하..

    Chat GPT 활용 서비스 구현하기 - 2. Open AI API 연동하기

    지난 시간에 이어서 면접 질문을 메일로 전달해주는 서비스를 만들어본다. 면접 질문 목록으로는 인터넷에 떠돌아 다니는 것을 크롤링하는 것보다 요즘 핫한 Chat GPT를 활용하면 더 재밌을 것 같아 이를 활용한다. 지난 시간에 소개한 프로젝트 진행 흐름이다. 이 중에서 오늘은 2-1 을 진행한다. 면접 질문을 Chat GPT(Open AI)로부터 가져와야 한다. 이를 위해 Open AI API를 사용한다. 1. Open AI API 키 발급 받기 API 키 발급 링크를 통해 API 키를 발급 받을 수 있다. 발급 받은 API 키를 yaml 파일에 적용시킨다. yaml 파일 예시 openai: api-key: ***********OPEN-AI-API-KEY*********** 2. API 호출하기 API 호..

    Chat GPT 활용 서비스 구현하기 - 1. 설계하기

    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 활용 서비스 구현하기..

    CS 공부 - 정규화

    CS 스터디를 진행하며 DB의 정규화 파트를 공부했다. 과거에 공부했던 내용들을 다시 정리하는 시간이 되었다. 노트 형식으로 작성하여 게시한다. 정규화 이상현상 데이터가 정규화되지 않아 중복이 많기 때문에 발생하는 수정, 삭제, 삽입에 대한 이상현상 삽입 이상 튜플 삽입 시 특정 속성에 부합하는 값이 없어 NULL을 입력해야하는 현상 수정 이상 수정 시 중복된 데이터의 일부만 수정되어 일어나는 불일치 현상 삭제 이상 튜플 삭제 시 같이 저장된 다른 정보들까지 연쇄적으로 삭제되는 현상 정규형 데이터베이스 이상현상을 해결하기 위해 테이블을 기준에 따라 분리하거나 변형을 가하는 것 제 1 정규형 튜플의 모든 속성이 원자값을 갖도록 함 제 2 정규형 제 1정규형을 만족하고 기본키가 아닌 속성이 완전 함수적 종속..