URLλ‘ μ μ₯ν νμ΅ μλ£(λΈλ‘κ·Έ, μ νλΈ λ±)λ₯Ό AIκ° μλ λΆμΒ·μμ½νκ³ ,
RAG κΈ°λ° μ±λ΄κ³Ό κ°μΈ λ§μΆ€ν νμ΅ κ²½λ‘ 'ν°μΉλ§΅'μ ν΅ν΄
λ¨κ³λ³λ‘ νμ΅μ μ΄λμ΄μ£Όλ AI νμ΅ κ΄λ¦¬ μλΉμ€μ
λλ€.
TeachINGμ ν©μ΄μ§ μ¨λΌμΈ νμ΅ μλ£λ₯Ό νκ³³μ λͺ¨μΌκ³ , AIκ° νν°μ²λΌ ν¨κ» νμ΅μ μ΄λμ΄μ£Όλ κ°μΈ νμ΅ κ΄λ¦¬ μλΉμ€μ λλ€.
λΈλ‘κ·Έ, μ νλΈ λ±μμ λ°κ²¬ν μλ£μ URLμ μ μ₯νλ©΄ AIκ° μλμΌλ‘ λ³Έλ¬Έ(λλ μμ μ€ν¬λ¦½νΈ)μ λΆμν΄ μμ½κ³Ό μμΈ ν΄μ€μ μμ±νκ³ , λ²‘ν° κ²μ(RAG) κΈ°λ°μΌλ‘ μμΈν©λλ€. μ¬μ©μλ μ μ₯λ μλ£λ€μ ν΄λμ νκ·Έλ‘ μμ λ‘κ² μ 리ν μ μκ³ , κΆκΈν μ μ μ±ν μΌλ‘ μ§λ¬Ένλ©΄ AIκ° λ΄κ° μ μ₯ν μλ£λ₯Ό κ·Όκ±°λ‘ λ΅λ³νλ©° β κ΄λ ¨ μλ£κ° μμ λλ μΌλ° μ§μμΌλ‘ 보μν΄ λ΅ν©λλ€.
κ°μ₯ ν° νΉμ§μ ν°μΉλ§΅μ λλ€. ν΄λ μμ μλ£λ€μ μμκ° μλ νμ΅ λ¨κ³λ‘ μ¬κ΅¬μ±ν΄, λ§μΉ 컀리νλΌμ²λΌ νλμ© λ°λΌκ°λ©° νμ΅ν μ μμ΅λλ€. κ° λ¨κ³μμ μ€μν λΆλΆμ νμ΄λΌμ΄νΈνλ©΄ μ¬μ©μκ° μ€μ ν μ±ν₯(λ€μ ν/μ격ν/μμνλ)μ 'AI μ μλ'μ΄ κ·Έ λΆλΆμ μ§μ΄ μ€λͺ ν΄μ£Όκ³ , νμ΅ μ§νλ₯ λ ν¨κ» μΆμ λ©λλ€.
μΉ΄μΉ΄μ€Β·κ΅¬κΈ μμ λ‘κ·ΈμΈμΌλ‘ κ°νΈνκ² μμν μ μμΌλ©°, 무λ£/ν리미μ λ©€λ²μμ ν΅ν΄ λ λ§μ μλ£ μ μ₯κ³Ό ν΄λ μμ±μ΄ κ°λ₯ν©λλ€.
|
|
|
|
| κ΅¬λΆ | λ΄μ© |
|---|---|
| πΏ λΈλμΉ | type/#μ΄μλ²νΈ/μ€λͺ
(μ: feat/#69/material-url) β main μΌλ‘ PR |
| π μ»€λ° | Type: μ€λͺ
(Feat Fix Docs Test Refactor Chore λ±) |
| π PR | GitHub Actions CI(Gradle λΉλ) ν΅κ³Ό ν λ¨Έμ§ |
| π λ°°ν¬ | main push μ ECR μ΄λ―Έμ§ λΉλ β EC2 Docker Compose μλ λ°°ν¬ |
![]() @hwiyoon20010309 λ°±μλ π μλ£ Β· URL λΆμ π¬ μ±λ΄(RAG) |
![]() @Mymyseoyoung λ°±μλ πΊοΈ ν°μΉλ§΅ π μΈμ¦ Β· μ½κ΄ |
![]() @m00nsh λ°±μλ π μλ£ Β· ν΄λ π μλ¦Ό Β· ν |
![]() @EH-OI λ°±μλ ποΈ ν΄μ§ν΅ π³ κ²°μ |
backend/
βββ src/main/java/com/teaching/backend/
β βββ domain/ λλ©μΈλ³ ν¨ν€μ§ (controller Β· service Β· entity Β· repository Β· dto)
β β βββ auth Β· user Β· material Β· folder Β· chat
β β βββ teachingmap Β· trash Β· tag Β· notification
β β βββ payment Β· term Β· home Β· support
β βββ global/ κ³΅ν΅ μ€μ (security Β· config Β· ai Β· storage Β· exception Β· response)
βββ docker-compose.yml app(Spring Boot) + qdrant 컨ν
μ΄λ ꡬμ±
βββ .github/workflows/ CI(λΉλ κ²μ¦) Β· CD(ECR/EC2 λ°°ν¬) μν¬νλ‘
POST /reissueβ AccessToken μ¬λ°κΈPOST /signupβ νμκ°μ (λλ€μ νμ Β· μ½κ΄ λμ λ±λ‘)POST /logoutβ λ‘κ·ΈμμGET /check-nicknameβ λλ€μ μ€λ³΅ νμΈGET /oauth2/authorization/{kakao|google}β μμ λ‘κ·ΈμΈ μ§μ μ
GET /meβ λ΄ μ 보 μ‘°νPATCH /meβ νλ‘ν μμ (multipart)PATCH /me/notificationsβ μλ¦Ό μ€μ λ³κ²½DELETE /meβ νμ νν΄PATCH /me/teacher-personaβ AI μ μλ νλ₯΄μλ λ³κ²½
GET /materialsβ μλ£ λͺ©λ‘ μ‘°νPOST /materials/{materialId}/indexβ μλ£ μμΈ(Qdrant)POST /api/v1/materials/analyzeβ URL κΈ°λ° AI λΆμ μμ²PATCH /api/v1/materials/{materialId}/finalizeβ λΆμ κ²°κ³Ό μ μ₯ νμ
GET /Β·POST /β ν΄λ λͺ©λ‘ μ‘°ν Β· μμ±GET /{folderId}Β·PATCH /{folderId}β ν΄λ μμΈ μ‘°ν Β· μ΄λ¦ μμ GET /{folderId}/materialsβ ν΄λ λ΄ μλ£ λͺ©λ‘PATCH /{folderId}/trashΒ·PATCH /{folderId}/restoreβ ν΄λ ν΄μ§ν΅ μ΄λ Β· 볡ꡬGET/PATCH /{folderId}/materials/{materialId}/analysis(/summary|/detail)β AI λΆμ μ‘°ν Β· μμ GET /{folderId}/materials/{materialId}/tagsβ νκ·Έ μ‘°νGET /{folderId}/materials/{materialId}/origin-urlβ μλ³Έ URL μ‘°νPATCH /{folderId}/materials/move|trash|restoreβ μλ£ μ΄λ Β· ν΄μ§ν΅ μ΄λ Β· 볡ꡬ
GET /Β·POST /β μ±ν λ°© λͺ©λ‘ μ‘°ν(컀μ νμ΄μ§λ€μ΄μ ) Β· μμ±GET /{chatRoomId}/messagesβ λ©μμ§ νμ€ν 리 μ‘°ν(μΆμ² ν¬ν¨)POST /{chatRoomId}/messagesβ μ§λ¬ΈνκΈ°(RAG κΈ°λ° λ΅λ³ μμ±)
GET /Β·POST /β ν°μΉλ§΅ λͺ©λ‘ μ‘°ν Β· μμ±(ν΄λ κΈ°λ°)GET /{teachingMapId}Β·PATCH /{teachingMapId}β λ¨κ±΄ μ‘°ν Β· μ λͺ©/μ€λͺ μμ GET /{teachingMapId}/steps/{stepId}β μ€ν μμΈ μ‘°νPATCH /{teachingMapId}/steps/{stepId}/toggleβ μ€ν μλ£ ν κΈGET /materials/{materialId}/highlights/{highlightId}/analysisβ νμ΄λΌμ΄νΈ AI μ μλ ν΄μ€ μ‘°ν/μμ±PATCH /trashβ ν°μΉλ§΅ λ€μ€ ν΄μ§ν΅ μ΄λPOST /tempβ μμμ μ₯
GET /folders|materials|teaching-mapsβ ν΄μ§ν΅ λͺ©λ‘ μ‘°νGET /folders/{folderId}/materialsβ ν΄μ§ν΅ ν΄λ μμΈ(λ΄λΆ μλ£) μ‘°νPATCH /folders|materials|teaching-maps/restoreβ λ€μ€ 볡ꡬ
GET /Β·GET /summaryβ μλ¦Ό λͺ©λ‘ Β· μμ½ μ‘°νPATCH /{notificationId}/readβ μ½μ μ²λ¦¬
POST /readyβ ꡬλ κ²°μ μ€λΉ(μΉ΄μΉ΄μ€νμ΄)GET /success|cancel|failβ κ²°μ κ²°κ³Ό μ½λ°±
GET /β μ½κ΄ λͺ©λ‘ μ‘°ν
GET /β ν λμ보λ μ‘°ν
π§βπ« TeachING Β· Made with care by the TeachING-Dev team
2026. 08. 13. ver.




