Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[#125] 감정어 분석 API 추가 #126

Merged
merged 4 commits into from
Jul 13, 2024
Merged

[#125] 감정어 분석 API 추가 #126

merged 4 commits into from
Jul 13, 2024

Conversation

KkomSang
Copy link
Collaborator

#️⃣ 연관된 이슈

Resolves #125

📝 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요 (이미지 첨부 가능)

네이버 클라우드 CLOVA Sentiment를 추가했습니다.
해당 API를 통해 사용자가 행복 기록 시, 메모를 입력했다면 메모를 기반으로 감정어 분석 기능을 추가했습니다.
감정어 분석을 한 문장마다 진행되며, 긍정 또는 부정으로 판단된 문장만 저장되고 중립으로 판단된 문장은 저장되지 않습니다. 메모가 비어있다면 분석은 진행되지 않습니다.

Analysis는 감정어 분석 결과를 저장하는 엔티티입니다. 이때 감정어 분석의 결과로 나온 긍정문/부정문은 각각 여러개의 문장이 저장되어야 하는 경우가 생깁니다. 즉, String(값 타입)을 컬렉션에 담아서 저장해야 합니다.
하지만 기본적으로 관계형 데이터베이스에는 컬렉션을 저장할 수 없습니다. 따라서 컬렉션을 저장하기 위해서는 별도의 테이블을 만들어야 합니다.
따라서 @ElementCollection을 사용했습니다.
@ElementCollection은 컬렉션 객체임을 JPA가 알 수 있게 해주며, 엔티티가 아닌 값 타입에 대한 테이블을 생성하고 1대다 관계로 다룹니다.
@ElementCollection을 추가한 칼럼(positiveSentiments, negativeSentiments)은 주키로 Analysis 테이블의 주키(analysis_id) 값들을 가지는 테이블로 새로 생성됩니다. 이 테이블은 오직 부모 테이블(analysis)을 통해서만 접근이 가능합니다.

참고)

  • analysis
image
  • negative_sentiments
image

스크린샷 (선택)

💬 리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

✅ Check List

  • PR 제목을 커밋 규칙에 맞게 작성했는가?
  • PR에 해당되는 Issue를 연결했는가?
  • 적절한 라벨을 설정했는가?
  • 작업한 사람을 모두 Assign했는가?

@KkomSang KkomSang added feat 새로운 기능을 추가합니다 fix 기능 및 버그를 수정합니다 labels Jul 12, 2024
@KkomSang KkomSang self-assigned this Jul 12, 2024
@yel-m yel-m self-requested a review July 13, 2024 04:28
@yel-m yel-m merged commit f784d3a into develop Jul 13, 2024
1 check passed
@yel-m yel-m deleted the feat/#125 branch July 13, 2024 05:07
@yel-m
Copy link
Member

yel-m commented Jul 13, 2024

눈물이 흐르는 코드.....
너무너무 수고하셨습니다!! 💪💛

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
feat 새로운 기능을 추가합니다 fix 기능 및 버그를 수정합니다
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] 감정어 분석 API 추가
2 participants