AI κΈ°λ° μμ± λ©λͺ¨ μ 리 μλΉμ€ **'차곑(ChaGok)'**μ λ°μ΄ν°λ² μ΄μ€ μ€κ³λ₯Ό μν ERD μ μ₯μμ λλ€.
'차곑'μ μ¬μ©μμ μμ± λ Ήμμ 체κ³μ μΌλ‘ κ΄λ¦¬νκ³ , AIλ₯Ό νμ©νμ¬ μ μ¬(Transcript), μμ½(Summary), ν€μλ μΆμΆ(Keyword) κΈ°λ₯μ μ 곡νλ μλΉμ€μ λλ€. λ³Έ μ μ₯μλ μ΄ μλΉμ€μ ν΅μ¬ λ°μ΄ν° ꡬ쑰λ₯Ό μ€κ³ν ERD νμΌμ ν¬ν¨νκ³ μμ΅λλ€.
- ERD Editor (VS Code Extension λλ μΉ λ²μ μ¬μ© κ°λ₯)
- νμΌ νμ:
.erd(JSON κΈ°λ°)
erDiagram
FOLDER ||--o{ VOICE_NOTE : "contains"
VOICE_NOTE ||--|{ VOICE_RECORD : "has"
VOICE_NOTE ||--o{ KEYWORD : "extracts"
VOICE_NOTE ||--|{ SUMMARY : "summarizes"
VOICE_NOTE ||--|{ TRANSCRIPT : "transcribes"
FOLDER {
uuid id PK
text name "ν΄λ μ λͺ©"
text path "Root κ²½λ‘"
datetime updatedAt
datetime createdAt
bool isDeletable
datetime deletedAt
}
VOICE_NOTE {
text id PK
text title "νμΌ μ λͺ©"
datetime createdAt
datetime updatedAt
datetime deletedAt
text folderId FK
}
VOICE_RECORD {
text id PK
url audioFilePath "μ€λμ€ κ²½λ‘"
double duration "μ€λμ€ κΈΈμ΄"
datetime createdAt
text voiceNoteId FK
}
KEYWORD {
text id PK
text word "ν€μλ"
text voiceNoteId FK
}
SUMMARY {
text id PK
text text "AI μμ½ λ΄μ©"
datetime createdAt
text voiceNoteId FK
}
TRANSCRIPT {
text id PK
text text "μ μ¬λ³Έ"
datetime createdAt
text voiceNoteId FK
}
- Folder: λ©λͺ¨λ₯Ό λΆλ₯νκΈ° μν λλ ν 리 ꡬ쑰μ λλ€. 'κΈ°λ³Έ ν΄λ'λ₯Ό ν¬ν¨νλ©° μμ κ°λ₯ μ¬λΆλ₯Ό κ΄λ¦¬ν©λλ€.
- VoiceNote: μμ± λ©λͺ¨μ λ©νλ°μ΄ν°λ₯Ό κ΄λ¦¬νλ μ€μ¬ μν°ν°μ λλ€.
- VoiceRecord: μ€μ λ Ήμλ μ€λμ€ νμΌμ κ²½λ‘μ κΈΈμ΄λ₯Ό μ μ₯ν©λλ€.
- Keyword: AIκ° λΆμνμ¬ μΆμΆν ν΅μ¬ ν€μλ λͺ©λ‘μ λλ€.
- Summary: AIκ° μμ±ν λ Ήμ λ΄μ©μ μμ½λ³Έμ λλ€.
- Transcript: μμ±μ ν μ€νΈλ‘ λ³νν μ 체 μ μ¬λ³Έ λ΄μ©μ λλ€.
ChaGok.erdνμΌμ λ€μ΄λ‘λν©λλ€.- ERD Editor λλ VS Codeμμ ERD Editor νμ₯μ μ¬μ©νμ¬ νμΌμ μ½λλ€.
- μκ°νλ λ°μ΄ν° ꡬ쑰λ₯Ό νμΈνκ³ νμμ λ°λΌ SQL μ€ν¬λ¦½νΈλ‘ λ΄λ³΄λΌ μ μμ΅λλ€.