Skip to content

Latest commit

Β 

History

104 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎡 Humix - Main API Server (Backend)

Humix ν”„λ‘œμ νŠΈμ˜ 메인 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 데이터 흐름을 μ΄κ΄„ν•˜λŠ” 컨트둀 νƒ€μ›Œ(Main API Server)μž…λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ²˜λ¦¬ν•˜κ³ , 무거운 AI μŒμ•… 생성 μž‘μ—…μ„ λ…λ¦½λœ μ›Œμ»€ λ…Έλ“œλ‘œ μ•ˆμ „ν•˜κ²Œ μœ„μž„ν•˜λ©° μƒνƒœλ₯Ό λ™κΈ°ν™”ν•©λ‹ˆλ‹€.

πŸ›  Tech Stack

  • Framework: Java 21, Spring Boot 3.x
  • Database: MariaDB (Self-hosted on Docker)
  • Infrastructure: AWS EC2 (t4g.small, ARM64), Nginx, Docker
  • Storage: AWS S3 (Object Storage)

πŸ— Architecture & Core Features

1. 3-Tier μ•„ν‚€ν…μ²˜ 및 MSA 기반 μ›Œμ»€ 뢄리

  • Controller - Service - Repository κ³„μΈ΅μœΌλ‘œ μ„€κ³„λ˜μ–΄ λͺ…ν™•ν•œ 관심사 뢄리λ₯Ό λ‹¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.
  • Nginx λ¦¬λ²„μŠ€ ν”„λ‘μ‹œλ₯Ό 톡해 μ•ˆμ „ν•˜κ²Œ API μš”μ²­μ„ λΌμš°νŒ…ν•©λ‹ˆλ‹€.
  • κ³ λΆ€ν•˜ μƒμ„±ν˜• AI λͺ¨λΈ ꡬ동 ν™˜κ²½μ„ 메인 μ„œλ²„μ—μ„œ λΆ„λ¦¬ν•˜μ—¬, 비동기 Job Queue 기반의 마이크둜 μ„œλΉ„μŠ€(MSA) ν˜•νƒœλ‘œ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.

2. 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ 데이터 ν”Œλ‘œμš°

  1. 데이터 μž…λ ₯: ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° ν—ˆλ° μ˜€λ””μ˜€(.wav) 및 곑 λΆ„μœ„κΈ° 메타데이터 μˆ˜μ‹ . 원본 νŒŒμΌμ€ AWS S3에 μ¦‰μ‹œ μ €μž₯.
  2. 비동기 μž‘μ—… 등둝 (Job Queue): DB에 μƒνƒœλ₯Ό Pending으둜 κΈ°λ‘ν•˜κ³  AI μ›Œμ»€μ— μž‘μ—… μœ„μž„.
  3. μ‹€μ‹œκ°„ μƒνƒœ μ•Œλ¦Ό (SSE): AI μ—°μ‚° 쀑 λ°œμƒν•˜λŠ” μ§€μ—° μ‹œκ°„ λ™μ•ˆ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ Server-Sent Events(SSE)둜 μ‹€μ‹œκ°„ μ§„ν–‰λ₯  및 ν”Όλ“œλ°± 전솑.
  4. κ²°κ³Ό 동기화 (Callback): AI μ›Œμ»€ μ—°μ‚° μ™„λ£Œ ν›„ Webhook μ½œλ°±μ„ μˆ˜μ‹ ν•˜μ—¬ DB μƒνƒœλ₯Ό Completed둜 μ—…λ°μ΄νŠΈν•˜κ³  μ΅œμ’… S3 μŒμ› URL을 ν΄λΌμ΄μ–ΈνŠΈμ— 제곡.

πŸ—„ Database Schema (Core Tables)

μ‹œμŠ€ν…œ 관리λ₯Ό μœ„ν•œ 핡심 도메인 ν…Œμ΄λΈ” κ΅¬μ‘°μž…λ‹ˆλ‹€.

Table Description Key Columns
Member λΈŒλΌμš°μ € μ„Έμ…˜μ„ λ…λ¦½λœ μ‚¬μš©μžλ‘œ 식별 uuid(PK), created_at
Humming μ‚¬μš©μžκ°€ λ…ΉμŒν•œ 원본 μŒμ„± μ˜€λ””μ˜€ 관리 humming_id(PK), uuid(FK), s3_file_url, duration_seconds
MelodyScore ν—ˆλ°μ—μ„œ νŒŒμ‹±λœ 초기 데이터 및 μˆ˜μ •λœ 악보 데이터 melody_id(PK), humming_id(FK), notes_data(LONGTEXT)
MusicGeneration 비동기 AI 편곑 μž‘μ—… μƒνƒœ 및 μ΅œμ’… 완성곑 메타데이터 generation_id(PK), parent_generation_id(Self FK), status(PROCESSING/COMPLETED/FAILED), result_s3_url

About

🎡 [Humix] λ°±μ—”λ“œ μ„œλ²„ | 비동기 Job Queue와 SSE둜 AI μŒμ•… 생성을 μ²˜λ¦¬ν•˜λŠ” ν—ˆλ° μž‘κ³‘ μ„œλΉ„μŠ€ (μ›” μš΄μ˜λΉ„ 2λ§Œμ› μ΄ν•˜)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages