Skip to content

Commit

Permalink
docs: 핵심 기능 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
yooookm committed Nov 14, 2024
1 parent 186a501 commit 3903558
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,21 @@
- 유효성 검사 및 중복 검사: 서버에서 업로드된 파일을 읽어 각 행의 데이터를 유효성 및 중복 검사합니다. 휴대폰 번호나 장기요양인정번호가 중복되거나 입력 데이터의 형식이 맞지 않으면 해당 데이터는 저장되지 않습니다.
- 데이터 저장: 검사를 통과한 데이터만 successList로 데이터베이스에 저장됩니다. 오류가 있는 데이터는 failedList로 반환되고, 이를 통해 오류가 있는 데이터는 데이터베이스에 저장되지 않고, 오류가 없는 정상적인 데이터만 안전하게 저장됩니다.

### AI 요약 기능 - 파인 튜닝
보호자들이 차트 정보를 전부 보게 되면 너무 많은 정보로 인해 돌봄 대상자의 상태를 이해하기 어렵습니다. 이를 해결하기 위해 차트 정보를 요약하여 보여주는 AI 기능을 구현하였습니다.

ChatGPT를 바로 사용하면 원하는 형식으로 결과가 나오지 않거나 불필요한 정보가 포함되는 경우가 있어, 파인튜닝을 선택했습니다. 차트 관련 요약 데이터셋이 존재하지 않아 AI-Hub의 한국어 대화 요약 데이터셋을 가져와 파인튜닝을 진행했습니다.

conditionDisease, bodyManagement, nursingManagement, recoveryTraining, cognitiveManagement와 같이 값을 나누어 요약하도록 만들었습니다. 파인튜닝을 하지 않았다면 매번 JSON 형식으로 특정 방식의 값을 달라고 명령해야 했겠지만, 파인튜닝을 통해 차트 값만 JSON 형식으로 주면 원하는 형식으로 바로 받아올 수 있게 되었습니다.

또한, 프론트에서 사용할 세 가지 태그를 요약하도록 파인튜닝을 추가로 진행했습니다. 프론트와의 연동 과정에서 태그를 추가하는 것이 좋겠다는 의견이 나와 이를 반영하게 되었습니다. 차트 데이터를 만드는 과정이 생각보다 오래 걸려 태그까지 추가하여 다시 파인튜닝을 진행하는 것은 어렵다고 판단하였고, 그에 따라 태그는 따로 파인튜닝을 하는 것으로 결정하게 되었습니다.

AI가 가끔 null 값을 반환하는 문제가 있었지만, 대부분 한 번 더 시도하면 정상적으로 동작했습니다. 이에 따라 백엔드 서비스에서 첫 번째 시도에 성공하지 않을 경우 최대 세 번까지 재시도하도록 수정하였으며, 세 번 시도 후에도 응답이 없으면 그때 프론트에 에러 메시지를 보내도록 변경하였습니다

### 리프레시 토큰
우리 서비스는 민감한 의료 데이터를 다루는 만큼, 토큰 보안에 각별한 주의를 기울였습니다. 로그인 시 액세스 토큰과 리프레시 토큰을 발급하며, 리프레시 토큰을 통해 재발급이 이루어질 때는 보안을 강화하기 위해 RTR(Refresh Token Rotation) 방식을 사용해 두 토큰을 모두 새로 발급했습니다. 이렇게 함으로써, 토큰 재사용에 따른 보안 취약점을 최소화했습니다.

또한, 로그아웃 시 토큰을 즉시 만료시키기 위해 Redis를 활용했습니다. 리프레시 토큰을 Redis에 저장하고, 오직 저장된 토큰만 유효하도록 설정함으로써 로그아웃 시 Redis에서 해당 토큰을 삭제해 만료 처리를 간편하게 관리했습니다. 이와 함께 액세스 토큰은 로그아웃 시 Redis 블랙리스트에 추가해 로그아웃 이후에는 유효하지 않도록 조치했습니다.
## 🧩 ERD
<p align='center'>
<img width="700" alt="caregiver_difficulty" src="docs/source/erd.png">
Expand Down
Binary file added img.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3903558

Please sign in to comment.