Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#️⃣ 연관된 이슈
Resolves #125
📝 작업 내용
네이버 클라우드 CLOVA Sentiment를 추가했습니다.
해당 API를 통해 사용자가 행복 기록 시, 메모를 입력했다면 메모를 기반으로 감정어 분석 기능을 추가했습니다.
감정어 분석을 한 문장마다 진행되며, 긍정 또는 부정으로 판단된 문장만 저장되고 중립으로 판단된 문장은 저장되지 않습니다. 메모가 비어있다면 분석은 진행되지 않습니다.
Analysis는 감정어 분석 결과를 저장하는 엔티티입니다. 이때 감정어 분석의 결과로 나온 긍정문/부정문은 각각 여러개의 문장이 저장되어야 하는 경우가 생깁니다. 즉, String(값 타입)을 컬렉션에 담아서 저장해야 합니다.
하지만 기본적으로 관계형 데이터베이스에는 컬렉션을 저장할 수 없습니다. 따라서 컬렉션을 저장하기 위해서는 별도의 테이블을 만들어야 합니다.
따라서 @ElementCollection을 사용했습니다.
@ElementCollection은 컬렉션 객체임을 JPA가 알 수 있게 해주며, 엔티티가 아닌 값 타입에 대한 테이블을 생성하고 1대다 관계로 다룹니다.
@ElementCollection을 추가한 칼럼(positiveSentiments, negativeSentiments)은 주키로 Analysis 테이블의 주키(analysis_id) 값들을 가지는 테이블로 새로 생성됩니다. 이 테이블은 오직 부모 테이블(analysis)을 통해서만 접근이 가능합니다.
참고)
스크린샷 (선택)
💬 리뷰 요구사항(선택)
✅ Check List