Skip to content
TeachING-DevPublic

About

[UMC 10th DemoDay μ΅œμš°μˆ˜μƒπŸ†] 흩어진 정보λ₯Ό μ—°κ²°ν•΄ λ‚˜λ§Œμ˜ μ§€μ‹μœΌλ‘œ λ§Œλ“œλŠ” AI ν•™μŠ΅ μ„œλΉ„μŠ€ "TeachING" λ°±μ—”λ“œ λ ˆν¬μ§€ν† λ¦¬

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

386 Commits

Folders and files

Repository files navigation

πŸ§‘β€πŸ« TeachING

TeachING overview

흩어진 정보λ₯Ό μ—°κ²°ν•΄ λ‚˜λ§Œμ˜ μ§€μ‹μœΌλ‘œ λ§Œλ“œλŠ” AI ν•™μŠ΅ μ„œλΉ„μŠ€

URL둜 μ €μž₯ν•œ ν•™μŠ΅ 자료(λΈ”λ‘œκ·Έ, 유튜브 λ“±)λ₯Ό AIκ°€ μžλ™ λΆ„μ„Β·μš”μ•½ν•˜κ³ ,
RAG 기반 챗봇과 개인 λ§žμΆ€ν˜• ν•™μŠ΅ 경둜 'ν‹°μΉ­λ§΅'을 톡해
λ‹¨κ³„λ³„λ‘œ ν•™μŠ΅μ„ μ΄λŒμ–΄μ£ΌλŠ” AI ν•™μŠ΅ 관리 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.


μ„œλΉ„μŠ€ λ°”λ‘œκ°€κΈ°



Stars Closed PRs Commits

πŸ“– μ„œλΉ„μŠ€ μ†Œκ°œ

TeachING은 흩어진 온라인 ν•™μŠ΅ 자료λ₯Ό ν•œκ³³μ— λͺ¨μœΌκ³ , AIκ°€ νŠœν„°μ²˜λŸΌ ν•¨κ»˜ ν•™μŠ΅μ„ μ΄λŒμ–΄μ£ΌλŠ” 개인 ν•™μŠ΅ 관리 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

λΈ”λ‘œκ·Έ, 유튜브 λ“±μ—μ„œ λ°œκ²¬ν•œ 자료의 URL을 μ €μž₯ν•˜λ©΄ AIκ°€ μžλ™μœΌλ‘œ λ³Έλ¬Έ(λ˜λŠ” μ˜μƒ 슀크립트)을 뢄석해 μš”μ•½κ³Ό 상세 해섀을 μƒμ„±ν•˜κ³ , 벑터 검색(RAG) 기반으둜 μƒ‰μΈν•©λ‹ˆλ‹€. μ‚¬μš©μžλŠ” μ €μž₯된 μžλ£Œλ“€μ„ 폴더와 νƒœκ·Έλ‘œ 자유둭게 정리할 수 있고, κΆκΈˆν•œ 점은 μ±„νŒ…μœΌλ‘œ μ§ˆλ¬Έν•˜λ©΄ AIκ°€ λ‚΄κ°€ μ €μž₯ν•œ 자료λ₯Ό 근거둜 λ‹΅λ³€ν•˜λ©° β€” κ΄€λ ¨ μžλ£Œκ°€ 없을 λ•ŒλŠ” 일반 μ§€μ‹μœΌλ‘œ 보완해 λ‹΅ν•©λ‹ˆλ‹€.

κ°€μž₯ 큰 νŠΉμ§•μ€ ν‹°μΉ­λ§΅μž…λ‹ˆλ‹€. 폴더 μ•ˆμ˜ μžλ£Œλ“€μ„ μˆœμ„œκ°€ μžˆλŠ” ν•™μŠ΅ λ‹¨κ³„λ‘œ μž¬κ΅¬μ„±ν•΄, 마치 컀리큘럼처럼 ν•˜λ‚˜μ”© 따라가며 ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 각 λ‹¨κ³„μ—μ„œ μ€‘μš”ν•œ 뢀뢄을 ν•˜μ΄λΌμ΄νŠΈν•˜λ©΄ μ‚¬μš©μžκ°€ μ„€μ •ν•œ μ„±ν–₯(λ‹€μ •ν•œ/μ—„κ²©ν•œ/μ‘μ›ν•˜λŠ”)의 'AI μ„ μƒλ‹˜'이 κ·Έ 뢀뢄을 μ§šμ–΄ μ„€λͺ…ν•΄μ£Όκ³ , ν•™μŠ΅ μ§„ν–‰λ₯ λ„ ν•¨κ»˜ μΆ”μ λ©λ‹ˆλ‹€.

μΉ΄μΉ΄μ˜€Β·κ΅¬κΈ€ μ†Œμ…œ 둜그인으둜 κ°„νŽΈν•˜κ²Œ μ‹œμž‘ν•  수 있으며, 무료/프리미엄 멀버십을 톡해 더 λ§Žμ€ 자료 μ €μž₯κ³Ό 폴더 생성이 κ°€λŠ₯ν•©λ‹ˆλ‹€.


✨ μ£Όμš” κΈ°λŠ₯

πŸ“„ 자료 관리

  • λΈ”λ‘œκ·Έ, 유튜브 λ“± 온라인 자료의 URL을 μ €μž₯ν•˜λ©΄ AIκ°€ λ³Έλ¬Έ/슀크립트λ₯Ό μΆ”μΆœν•΄ μš”μ•½Β·μƒμ„Έ 뢄석 생성
  • 뢄석 κ²°κ³ΌλŠ” chunk둜 λ‚˜λˆ  Qdrant에 벑터 색인
  • AI μš”μ•½/상세 뢄석은 직접 μˆ˜μ • κ°€λŠ₯
  • 폴더 μƒμ„±Β·μžλ£Œ μ΄λ™Β·νƒœκ·ΈΒ·νœ΄μ§€ν†΅μœΌλ‘œ 자료 정리

πŸ’¬ 챗봇 (RAG)

  • μ±„νŒ…λ°©μ„ λ§Œλ“€κ³  λ‚΄κ°€ μ €μž₯ν•œ μžλ£Œμ— λŒ€ν•΄ 자유둭게 질문
  • μ§ˆλ¬Έμ„ 벑터 κ²€μƒ‰μœΌλ‘œ κ΄€λ ¨ 자료λ₯Ό μ°Ύμ•„ 근거둜 λ‹΅λ³€ 생성
  • κ΄€λ ¨ μžλ£Œκ°€ μ—†μœΌλ©΄ 일반 지식 기반 fallback 응닡
  • 닡변에 인용된 좜처 자료 ν•¨κ»˜ ν‘œμ‹œ

πŸ—ΊοΈ ν‹°μΉ­λ§΅

  • 폴더 속 μžλ£Œλ“€μ„ μˆœμ„œκ°€ μžˆλŠ” ν•™μŠ΅ μŠ€ν…μœΌλ‘œ μž¬κ΅¬μ„±
  • ν•˜μ΄λΌμ΄νŠΈν•œ 뢀뢄에 AI μ„ μƒλ‹˜ ν•΄μ„€ 제곡
  • λ§νˆ¬λŠ” λ‹€μ •ν•œ / μ—„κ²©ν•œ / μ‘μ›ν•˜λŠ” 페λ₯΄μ†Œλ‚˜ 쀑 선택
  • μŠ€ν… μ™„λ£Œ ν† κΈ€λ‘œ μ§„ν–‰λ₯  μžλ™ κ°±μ‹ , μž„μ‹œμ €μž₯ 지원

πŸ” 인증 & 멀버십

  • 카카였 Β· ꡬ글 OAuth2 μ†Œμ…œ 둜그인, JWT 기반 인증
  • 카카였페이 연동 TeachING Plus ꡬ독 결제
  • FREE / PREMIUM 멀버십 λ“±κΈ‰ ꡬ뢄
  • λ§ˆμ΄νŽ˜μ΄μ§€μ—μ„œ ν”„λ‘œν•„ Β· μ•Œλ¦Ό Β· AI μ„ μƒλ‹˜ μ„€μ • 관리

πŸ›  기술 μŠ€νƒ

Backend

Java Spring Boot Spring Security Spring Data JPA JWT OAuth2 Gradle

Database

MySQL Qdrant

AI Β· 자료 μˆ˜μ§‘

OpenAI Jsoup Selenium YouTube

결제 · Infra · CI/CD

KakaoPay AWS EC2 AWS RDS AWS ECR AWS S3 Nginx Let's Encrypt Docker GitHub Actions

Docs

Swagger


πŸ— μ•„ν‚€ν…μ²˜

TeachING μ•„ν‚€ν…μ²˜

🌿 ν˜‘μ—… κ·œμΉ™

ꡬ뢄 λ‚΄μš©
🌿 브랜치 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 배포) μ›Œν¬ν”Œλ‘œ

πŸ“– 도메인별 상세 API λͺ…μ„Έ (펼쳐보기)

Auth (/api/v1/auth)

  • POST /reissue β€” AccessToken μž¬λ°œκΈ‰
  • POST /signup β€” νšŒμ›κ°€μž…(λ‹‰λ„€μž„ ν™•μ • Β· μ•½κ΄€ λ™μ˜ 등둝)
  • POST /logout β€” λ‘œκ·Έμ•„μ›ƒ
  • GET /check-nickname β€” λ‹‰λ„€μž„ 쀑볡 확인
  • GET /oauth2/authorization/{kakao|google} β€” μ†Œμ…œ 둜그인 μ§„μž…μ 

User (/users)

  • GET /me β€” λ‚΄ 정보 쑰회
  • PATCH /me β€” ν”„λ‘œν•„ μˆ˜μ • (multipart)
  • PATCH /me/notifications β€” μ•Œλ¦Ό μ„€μ • λ³€κ²½
  • DELETE /me β€” νšŒμ› νƒˆν‡΄
  • PATCH /me/teacher-persona β€” AI μ„ μƒλ‹˜ 페λ₯΄μ†Œλ‚˜ λ³€κ²½

Material (/materials, /api/v1/materials)

  • GET /materials β€” 자료 λͺ©λ‘ 쑰회
  • POST /materials/{materialId}/index β€” 자료 색인(Qdrant)
  • POST /api/v1/materials/analyze β€” URL 기반 AI 뢄석 μš”μ²­
  • PATCH /api/v1/materials/{materialId}/finalize β€” 뢄석 κ²°κ³Ό μ €μž₯ ν™•μ •

Folder (/api/folders)

  • 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 β€” 자료 이동 Β· νœ΄μ§€ν†΅ 이동 Β· 볡ꡬ

ChatRoom / ChatMessage (/chatrooms)

  • GET / Β· POST / β€” μ±„νŒ…λ°© λͺ©λ‘ 쑰회(μ»€μ„œ νŽ˜μ΄μ§€λ„€μ΄μ…˜) Β· 생성
  • GET /{chatRoomId}/messages β€” λ©”μ‹œμ§€ νžˆμŠ€ν† λ¦¬ 쑰회(좜처 포함)
  • POST /{chatRoomId}/messages β€” μ§ˆλ¬Έν•˜κΈ°(RAG 기반 λ‹΅λ³€ 생성)

TeachingMap (/api/v1/teaching-maps)

  • 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 β€” μž„μ‹œμ €μž₯

Trash (/api/v1/trash)

  • GET /folders|materials|teaching-maps β€” νœ΄μ§€ν†΅ λͺ©λ‘ 쑰회
  • GET /folders/{folderId}/materials β€” νœ΄μ§€ν†΅ 폴더 상세(λ‚΄λΆ€ 자료) 쑰회
  • PATCH /folders|materials|teaching-maps/restore β€” 닀쀑 볡ꡬ

Notification (/api/v1/notifications)

  • GET / Β· GET /summary β€” μ•Œλ¦Ό λͺ©λ‘ Β· μš”μ•½ 쑰회
  • PATCH /{notificationId}/read β€” 읽음 처리

Payment (/api/v1/payments)

  • POST /ready β€” ꡬ독 결제 μ€€λΉ„(카카였페이)
  • GET /success|cancel|fail β€” 결제 κ²°κ³Ό 콜백

Term (/api/v1/terms)

  • GET / β€” μ•½κ΄€ λͺ©λ‘ 쑰회

Home (/api/v1/home)

  • GET / β€” ν™ˆ λŒ€μ‹œλ³΄λ“œ 쑰회

πŸ§‘β€πŸ« TeachING Β· Made with care by the TeachING-Dev team

2026. 08. 13. ver.

About

[UMC 10th DemoDay μ΅œμš°μˆ˜μƒπŸ†] 흩어진 정보λ₯Ό μ—°κ²°ν•΄ λ‚˜λ§Œμ˜ μ§€μ‹μœΌλ‘œ λ§Œλ“œλŠ” AI ν•™μŠ΅ μ„œλΉ„μŠ€ "TeachING" λ°±μ—”λ“œ λ ˆν¬μ§€ν† λ¦¬

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages