Mac(Apple Silicon)๊ณผ Windows x64์์ ํ์๋ฅผ ๋
น์ํ๊ณ , ํ์๋ฅผ ๊ตฌ๋ถํด ์ ์ฌํ๊ณ ,
ํ์ํ ๊ฒฝ์ฐ AI๋ก ํ์๋ก๊น์ง ์ ๋ฆฌํ๋ ๋ก์ปฌ ์ฐ์ ๋ฐ์คํฌํฑ ์ฑ
Important
Galpi 0.1.0์ macOS 14 ์ด์ Apple Silicon(M1 ์ด์) ๊ณผ Windows 10/11 x64 ๋ฅผ ์ง์ํ๋ ๊ฐ๋ฐ ๋น๋์ ๋๋ค. ๋ฐฐํฌ์ฉ ๋ฐ์ด๋๋ฆฌ๋ ์ ๊ณตํ์ง ์์ต๋๋ค. ์ฌ์ฉํ ์ปดํจํฐ์์ ์์ค๋ก ์ง์ ๋น๋ํด ์ค์นํฉ๋๋ค(์๋ '1. ์ค์น'). Intel Mac๊ณผ Linux๋ ์ง์ํ์ง ์์ต๋๋ค.
Galpi๋ ํ์ ์์ฑ์ ์ฑ ์์์ ๋
น์ํ๊ฑฐ๋ ๊ธฐ์กด ํ์ผ๋ก ๊ฐ์ ธ์, ํ๊ตญ์ด ์ ์ฌ์ ํ์๋ถ๋ฆฌ๋ฅผ ๋ก์ปฌ์์ ์ํํฉ๋๋ค. ์ ์ฌ ์์ง์ ์ค์ ์ ์ ์ฌ ์์ง์์ ์ ํํ๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ Qwen3(Qwen3-ASR-1.7B + Qwen3-ForcedAligner-0.6B)์ด๊ณ ์ด์ ์์ง WhisperX(faster-whisper large-v3-turbo)๋ฅผ ๊ทธ๋๋ก ๊ณ ๋ฅผ ์ ์์ต๋๋ค. ํ์๋ถ๋ฆฌ๋ ๋ ํ๋ฆฌ์
์ด pyannote community-1์ ๊ณต์ฉํฉ๋๋ค. ์ ์ฌ ๊ฒฐ๊ณผ๋ ์ฌ์ฉ์๊ฐ ๊ณ ๋ฅธ ํด๋์ ์ ์ฅ๋๋ฉฐ, ์ ํ์ ์ผ๋ก OpenAI ํธํ API๋ฅผ ์ฌ์ฉํด ํ๊ตญ์ด ํ์๋ก Markdown์ ๋ง๋ค ์ ์์ต๋๋ค.
| ๊ธฐ๋ฅ | ๋ด์ฉ |
|---|---|
| ๋ฐ๋ก ๋ น์ | ๋ง์ดํฌ ์ ๋ ฅ(CPAL: CoreAudio/WASAPI)์ 16-bit PCM WAV๋ก ์ ์ฅ |
| ํ์ผ ๊ฐ์ ธ์ค๊ธฐ | m4a, mp3, wav, mp4, mov, aac, flac, ogg |
| ๋ก์ปฌ ์ ์ฌ | Qwen3(๊ธฐ๋ณธ) ๋๋ WhisperX ํ๋ฆฌ์
ํ๊ตญ์ด ASR |
| ํ์๋ถ๋ฆฌ | pyannote ๊ธฐ๋ฐ ๋ถ๋ฆฌ, ์๋ยท์ ํํยท์ต์/์ต๋ ํ์ ์ ํํธ |
| ๋ฌธ์ฅ ์ ๋ ฌ | ํ๊ตญ์ด ๋ฌธ์ฅ ์ ๋ ฌ๊ณผ ์ฅ๊ธฐ ๋ฌด์ ํ๊ฐ ํํฐ๋ง |
| ์ฐธ์์ ๋ช ๋ถ | ์ด๋ฆยทํยท์ญํ ยท๋ณ์นญยท์ค๋ช ์ ํ์๋ง๋ค ์ฌ์ฌ์ฉ |
| ๋จ์ด์ง | ๊ณ ์ ๋ช ์ฌ์ ์ ๋ฌธ ์ฉ์ด๋ฅผ ํ์๋ก ๊ฐ๊ณต์ ๋ฐ์ |
| AI ํ์๋ก | OpenAI ํธํ API๋ก ๊ฒฐ์ ยท๋ด๋นยท๊ธฐํ ์ค์ฌ Markdown ์์ฑ |
| ์์ ์ ์ด | ์ค๋นยท์ ์ฌ ์ทจ์์ ์์ธ ๋ก๊ทธ, AI ์ฆ๊ฐยทDrive ๊ฐ์ ธ์ค๊ธฐ ์งํ๋ฅ ๊ณผ ์ค๋ฅ ํ์ |
Galpi๋ ์ฌ์ฉํ ์ปดํจํฐ์์ ์ง์ ๋น๋ํด ์ค์นํฉ๋๋ค. ๊ฐ์ ์ปดํจํฐ์์ ๋ง๋ ์ฑ์๋ ์ธํฐ๋ท์์ ๋ฐ์ ํ์ผ์ด๋ผ๋ ํ์(macOS ๊ฒฉ๋ฆฌ ์์ฑ, Windows Mark of the Web)๊ฐ ๋ถ์ง ์์ต๋๋ค. ๊ทธ๋์ ์๋ช ๋์ง ์์ ๋น๋๋ฅผ ๋ด๋ ค๋ฐ์์ ๋ ๋์ค๋ Gatekeeper ๊ฒฝ๊ณ ์์ด ์ด๋ฆฌ๋ฉฐ(macOS 27์์ ํ์ธ), Windows์์๋ SmartScreen ๊ฒฝ๊ณ ๊ฐ ๋ณดํต ๋์ค์ง ์์ต๋๋ค.
์ฝ๋ฉ ์์ด์ ํธ(Claude Code, Codex ๋ฑ)์๊ฒ ๋ค์๊ณผ ๊ฐ์ด ์์ฒญํ๋ฉด ๋ฉ๋๋ค.
https://github.com/m16khb-org/galpi ์ ์ฅ์๋ฅผ ๋ฐ์์, INSTALL.md๋ฅผ ๋ฐ๋ผ ์ด ์ปดํจํฐ์ Galpi๋ฅผ ๋น๋ํ๊ณ ์ค์นํด ์ค.
์์ด์ ํธ๋ INSTALL.md์ ๋ฐ๋ผ ํ๋ซํผ์ ํ์ธํ๊ณ , ๋น ์ง ๋๊ตฌ(Xcode Command Line Tools ๋๋ Visual Studio Build Tools, Rust, Bun, Tauri CLI)๋ฅผ ์ค์นํด๋ ๋๋์ง ๋ฌผ์ ๋ค ๋น๋ยท์ค์นํฉ๋๋ค. ์ง์ ์งํํ ๋๋ ๊ฐ์ ๋ฌธ์๋ฅผ ๋ฐ๋ฅด๋ฉด ๋ฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์ ๋น๋ํฉ๋๋ค.
๊ฐ๋ฐ ๋ชจ๋๋ก ์คํํ๊ธฐ
ํ์ ํ๊ฒฝ:
- macOS 14 ์ด์ Apple Silicon ๋๋ Windows 10/11 x64
- Windows: Microsoft Visual C++ 2015โ2022 x64 ์ฌ๋ฐฐํฌ ํจํค์ง(์ฑ์ ํฌํจ๋์ง ์์)
- Rust 1.88 ์ด์
- Bun 1.3 ์ด์
- Tauri CLI 2.11.4
cargo install tauri-cli --version 2.11.4 --locked
bun install
bun run devbun run dev๋ ํด๋น ํ๋ซํผ์ ๊ฒ์ฆ๋ uv, Python worker, ํ๋ก ํธ์๋, Tauri ์ฑ์ ์ค๋นํด ์คํํฉ๋๋ค. Python, ffmpeg, WhisperX๋ฅผ ์ ์ญ์ผ๋ก ๋ฏธ๋ฆฌ ์ค์นํ ํ์๋ ์์ต๋๋ค. Windows์์๋ PowerShell์์ ๊ฐ์ ๋ช
๋ น์ ์ฌ์ฉํฉ๋๋ค.
- Microsoft Visual C++ 2015โ2022 x64 ์ฌ๋ฐฐํฌ ํจํค์ง๊ฐ ํ์ํฉ๋๋ค. ์ฑ์ ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ, INSTALL.md ์ ์ฐจ๊ฐ ํจ๊ป ์ค์นํฉ๋๋ค.
- ๋น๋ํ NSIS ์ค์น ํ๋ก๊ทธ๋จ(
Galpi_<๋ฒ์ >_x64-setup.exe)์ ํ์ฌ ์ฌ์ฉ์์ฉ์ผ๋ก ์ค์น๋๋ฏ๋ก ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ ์์ต๋๋ค. - ์๋ '์ต์ด ์์ง ์ค๋น'๋ฅผ ์งํํฉ๋๋ค.
Windows์์๋ ์ ์ฌ ์์ง์ผ๋ก WhisperX๋ง ์ ํํ ์ ์์ต๋๋ค(Qwen3/MLX๋ Apple Silicon ์ ์ฉ). ๊ธฐ๋ณธ์ CPU์ด๋ฉฐ, ์ค์ ์์ CUDA๋ฅผ ๊ณ ๋ฅผ ์ ์์ต๋๋ค. CUDA๋ PyTorch cu128 ๋น๋๋ฅผ ์ถ๊ฐ๋ก ์ฝ 3.5 GB ๋ด๋ ค๋ฐ๊ณ NVIDIA ๋๋ผ์ด๋ฒ๊ฐ ํ์ํฉ๋๋ค. CUDA๋ฅผ ๊ณ ๋ฅด๋ฉด ์์ฑ ์ธ์(CTranslate2 float16)๊ณผ ์ ๋ ฌยทํ์๋ถ๋ฆฌ๊ฐ ๋ชจ๋ GPU์์ ๋๊ณ , GPU ์์ฑ ์ธ์์ด ์คํจํ๋ฉด CPU int8๋ก ํ ๋ฒ ๋ค์ ์๋ํฉ๋๋ค.
- ์ฑ ์ฐ์ธก ์๋จ์ ์ค์ ์ ์ฝ๋๋ค.
- ์ ์ปดํจํฐ์์ ํ์๋ถ๋ฆฌ ๋ชจ๋ธ์ ์ฒ์ ๋ฐ๋๋ค๋ฉด Hugging Face ํ ํฐ์ ์ ์ฅํฉ๋๋ค.
- ๋ก์ปฌ ์์ง ์ค๋น๋ฅผ ๋๋ฆ ๋๋ค.
- ์ ํํ ์์ง์ ์์ง, ์ ์ฌ ๋ชจ๋ธ, ffmpeg๊ฐ ๋ชจ๋
์ค๋น๋จ์ด ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.์ ์ฌ ์์ง์ ํ์ง ์๋์๋ ๊ฐ ํ๋ฆฌ์ ์ ์ค๋น ์ํ๊ฐ ํจ๊ป ํ์๋ฉ๋๋ค.
์ต์ด ์ค๋น์์๋ ์ฑ ์ ์ฉ Python 3.12 ํ๊ฒฝ๊ณผ ์ GB์ ๋ชจ๋ธ์ ๋ด๋ ค๋ฐ์ ์ ์์ต๋๋ค. ์ดํ์๋ ๊ฐ์ ์ฑ ๋ฐ์ดํฐ ํด๋์ ๋ชจ๋ธ ์บ์๋ฅผ ์ฌ์ฌ์ฉํฉ๋๋ค. ๋ ํ๋ฆฌ์
์ ์๋ก ๋ค๋ฅธ ๊ฐ์ํ๊ฒฝ(engine/, engine/qwen3/)์ ์ค์น๋๋ฏ๋ก ํ์ชฝ์ ์ค๋นํด๋ ๋ค๋ฅธ์ชฝ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
ํ์๋ถ๋ฆฌ ๋ชจ๋ธ์ ์ฒ์ ๋ด๋ ค๋ฐ์ ๋๋ง ํ์ํฉ๋๋ค.
pyannote/speaker-diarization-community-1์ ์ด์ฉ ์กฐ๊ฑด์ ๋์ํฉ๋๋ค.- Hugging Face Access Tokens์์ Fine-grained ํ ํฐ์ ๋ง๋ญ๋๋ค.
- ํด๋น ์ ์ฅ์์ Read ๊ถํ๋ง ํ์ฉํฉ๋๋ค.
hf_๋ก ์์ํ๋ ๊ฐ์ Galpi ์ค์ ์ ์ ์ฅํฉ๋๋ค.
์ฐ๊ธฐ ๊ถํ๊ณผ Inference Providers ๊ถํ์ ํ์ํ์ง ์์ต๋๋ค.
์ฑ์์ ๋ น์
- ์ถ๋ ฅ ํด๋๋ฅผ ํ์ธํฉ๋๋ค.
- ๋ น์ ์์ค๋ฅผ ๊ณ ๋ฆ ๋๋ค. ๊ธฐ๋ณธ๊ฐ ๋ง์ดํฌ๋ง์ ๋ง์ดํฌ ์ ๋ ฅ๋ง, ๋ง์ดํฌ + ํ์ ์๋ฆฌ๋ ๋ง์ดํฌ์ ์ปดํจํฐ์์ ์ฌ์๋๋ ์๋ฆฌ(Slack ํ๋ค, Zoom, Google Meet ๋ฑ ์๋๋ฐฉ ๋ชฉ์๋ฆฌ)๋ฅผ ํจ๊ป ๋ น์ํฉ๋๋ค. ์ ํ์ ๋ฐ๋ก ์ ์ฅ๋๋ฉฐ ๋ น์ ์ค์๋ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- ๋ฐ๋ก ๋ น์์ ๋๋ฅด๊ณ ๋ง์ดํฌ ๊ถํ์ ํ์ฉํฉ๋๋ค. Windows์์๋ ์ค์ โ ๊ฐ์ธ ์ ๋ณด โ ๋ง์ดํฌ์์ ๋ง์ดํฌ ์ ๊ทผ๊ณผ '๋ฐ์คํฌํฑ ์ฑ์ด ๋ง์ดํฌ์ ์ก์ธ์คํ๋๋ก ํ์ฉ'์ด ์ผ์ ธ ์์ด์ผ ํฉ๋๋ค.
- ํ์๊ฐ ๋๋๋ฉด ์ ์ง๋ฅผ ๋๋ฆ
๋๋ค.
๋ง์ดํฌ + ํ์ ์๋ฆฌ๋ ์ ์ง ๋ค ๋ ํธ๋์ ํ๋์ WAV๋ก ํฉ์น๋ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฝ๋๋ค. - ์์ฑ๋ WAV๊ฐ ์๋์ผ๋ก ์ ์ฌ ์ ๋ ฅ์ ์ ํ๋ฉ๋๋ค.
๋ น์์ bounded queue์ ์ ์ฉ WAV writer๋ฅผ ์ฌ์ฉํด ์ ์ง์ ์ผ๋ก ์ ์ฅํฉ๋๋ค. ๋ฒ๋ฆฌ๊ธฐ๋ฅผ ์ ํํ๋ฉด ๋ถ๋ถ ํ์ผ์ ์ ๊ฑฐํฉ๋๋ค.
Note
๋ง์ดํฌ + ํ์ ์๋ฆฌ๋ Windows์์ ๊ธฐ๋ณธ ์ถ๋ ฅ ์ฅ์น์ ์๋ฆฌ๋ฅผ WASAPI ๋ฃจํ๋ฐฑ์ผ๋ก, macOS 14.6 ์ด์์์๋ Core Audio ํ๋ก์ธ์ค ํญ์ผ๋ก ๋ น์ํฉ๋๋ค. macOS์์๋ ์์คํ ์ค๋์ค ๋ น์ ๊ถํ์ด ํ์ํ๋ฉฐ, ๊ฐ๋ฐ PC์์๋ macOS ๋์์ ๊ฒ์ฆํ์ง ๋ชปํ์ต๋๋ค. ์คํผ์ปค ๋์ ๋ง์ดํฌ๊ฐ ์๋ ํค๋ํฐ์ ์ฐ์ธ์. ์์ฝ ์ ๊ฑฐ๊ฐ ์์ด ์คํผ์ปค๋ก ๋์จ ์๋ ๋ชฉ์๋ฆฌ๋ฅผ ๋ง์ดํฌ๊ฐ ๋ค์ ๋ น์ํ๋ฉด ๋ ๋ฒ ๋ค์ด๊ฐ๋๋ค. macOS์์๋ ๋ง์ดํฌ๊ฐ ๋ฌ๋ฆฐ ํค๋์ ์ด๋ ์์ดํ์ด ๊ธฐ๋ณธ ์ถ๋ ฅ์ด๋ฉด ์ปดํจํฐ ์๋ฆฌ๋ฅผ ๋ฐ๋ก ๋ฐ์ ์ ์์ด ๋ น์์ด ์์๋์ง ์์ต๋๋ค. ์ปดํจํฐ ์๋ฆฌ๋ ๊ธฐ๋ณธ ์ถ๋ ฅ ์ฅ์น์์๋ง ๊ฐ์ ธ์ต๋๋ค. ์ฑ๋ณ ๋ น์๊ณผ ์ฅ์น ์ ํ์ ์ง์ํ์ง ์์ผ๋ฉฐ, ํ์ ์ฑ์ ์๋ฆผ์ ๋ฑ ์ปดํจํฐ ์๋ฆฌ๋ ํจ๊ป ๋ น์๋ฉ๋๋ค.
๊ธฐ์กด ๋ น์ ๊ฐ์ ธ์ค๊ธฐ
- ์ค๋์ค ํ์ผ ์ ํ์์ ํ์ ํ์ผ์ ๊ณ ๋ฆ ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ์ถ๋ ฅ ํด๋๋ฅผ ํ์ธํฉ๋๋ค.
- ํ์ ์๋ฅผ ๋ชจ๋ฅด๋ฉด
์๋, ์ ํํ ์๋ฉด์ ํํ, ๋ฒ์๋ง ์๋ฉด๋ฒ์๋ฅผ ๊ณ ๋ฆ ๋๋ค. ์ด๋ฒ ํ์ ์ฐธ์์๋ฅผ ๊ณ ๋ฅด๋ฉด ์ฐธ์ ์ธ์ ์๋ค๋ก ํ ๋ช ์ฉ ๋ฒ์๊ฐ ์๋์ผ๋ก ์ฑ์์ง๋๋ค. ๋งํ์ง ์์ ์ฐธ์์๊ฐ ์์ผ๋ฉด์ ํํ๋ ํ ์ฌ๋์ ๋ชฉ์๋ฆฌ๋ฅผ ๋๋ก ๋๋ ์ ์์ต๋๋ค. - ์ ์ฌ ์์์ ๋๋ฆ ๋๋ค.
์ค์ ์์ ๋ค์ ์ ๋ณด๋ฅผ ์ ์ฅํด ์ฌ๋ฌ ํ์์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ฐธ์์: ์ด๋ฆ, ํ, ์ญํ , ๋ณ์นญ, ์ค๋ช
- ๋จ์ด์ง: ์ฉ์ด์ ์ ํ์ ์ค๋ช
- ํ์ ๋ฐฐ๊ฒฝ: ๋ชฉ์ , ๋งฅ๋ฝ, ์ํ๋ ์ ๋ฆฌ ๋ฐฉ์
์ด ์ ๋ณด๋ ํ์ ์ด๋ฆ๊ณผ ์ฉ์ด ํ๊ธฐ๋ฅผ ์์ ์ ์ผ๋ก ์ ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ ์ฌ๊ฐ ๋๋ ๋ค AI ์ฆ๊ฐ ์คํ์ ๋๋ฅด๋ฉด OpenAI ํธํ API๋ก Markdown ํ์๋ก์ ์์ฑํฉ๋๋ค. ์ ๋
น์ยท์ ์ฌ ์์ด ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ์ ์ฌ๋ฌธ๋ 03 ์ ์ฌ ๊ฒฐ๊ณผ AI ์ฆ๊ฐ ํจ๋์ ์ ์ฌ๋ฌธ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ๋ก ๋ฐ๋ก ์ฆ๊ฐํ ์ ์์ต๋๋ค(txtยทmd). Google Drive๋ฅผ ์ฐ๊ฒฐํ๋ค๋ฉด ๊ฐ์ ํจ๋์ Drive์์ ์ ์ฌ๋ฌธ ๊ฐ์ ธ์ค๊ธฐ๋ก Drive์ ์๋ ์ ์ฌ๋ฌธ(๋ณดํต Galpi๊ฐ ์ฌ๋ฆฐ _ํ์๋ณ.txt)์ ๊ณจ๋ผ ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ๋ชจ๋ธ:
glm-5.3-flash - ๊ธฐ๋ณธ API:
https://api.z.ai/api/coding/paas/v4 - ๋ชจ๋ธ, Base URL, ์ถ๋ก ๊ฐ๋๋ ์ค์ ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
์ค๋น ์์:
์ค์ ์ AI ์ฆ๊ฐ ์น์ ์ ์ฌ์ฉํ ์๋น์ค์ API Key๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ ์ฅํ ํค๋ ๋ง์คํน๋์ด ๋ค์ ํ์๋์ง ์์ต๋๋ค. ํค๋ฅผ ๋ฐ๊พธ๋ ค๋ฉดAI ์ฆ๊ฐ API ํค ์ง์ฐ๊ธฐ๋ก ์ง์ด ๋ค ์ ํค๋ฅผ ์ ๋ ฅํ์ธ์.- z.ai๊ฐ ์๋๋ผ๋ฉด ์ ๊ณต์์ ๋ชจ๋ธ ์ด๋ฆ๊ณผ OpenAI ํธํ Base URL์ ์ ๋ ฅํฉ๋๋ค.
- ํ์ํ ์ฐธ์์๋ฅผ ์ ํํ๊ณ ๋จ์ด์งยท์ฌ์ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
- ์ ์ฌ๋ฅผ ์๋ฃํ ๋ค
AI ์ฆ๊ฐ ์คํ์ ๋๋ฆ ๋๋ค.
API Key ๋์ ChatGPT ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํด ํ์๋ก ์ ์ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์ โ AI ์ฆ๊ฐ์์ ChatGPT๋ฅผ ์ ํํ๊ณChatGPT๋ก ๊ณ์ํ๊ธฐ๋ฅผ ๋๋ฆ ๋๋ค.- ์์คํ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฆฌ๋ฉด ๋ก๊ทธ์ธ ํ ์ ๊ทผ์ ์น์ธํฉ๋๋ค. ์น์ธ์ด ๋๋๋ฉด ์ฑ์ผ๋ก ๋์์ต๋๋ค.
- ๋ชจ๋ธ์ ๋ก๊ทธ์ธํ ๊ณ์ ์
/v1/models๋ชฉ๋ก์์ ๊ณ ๋ฆ ๋๋ค. ์ถ๋ก ๊ฐ๋๋ ๊ณ ๋ฅธ ๋ชจ๋ธ์ด ์ง์ํ๋ ๋จ๊ณ ์ค์์ ๊ณ ๋ฆ ๋๋ค.๋ชจ๋ธ ๊ธฐ๋ณธ๊ฐ์ด๋ฉด ๋ชจ๋ธ์ด ์ ํ ๊ฐ๋๋ฅผ ๊ทธ๋๋ก ์๋๋ค. ๋์์๋ก ์ค๋ ๊ฑธ๋ฆฌ๊ณ ์๊ธ์ ์ฌ์ฉ๋์ ๋ ์๋๋ค.
- ์ฌ์ฉ๋ ํ๋๋ ChatGPT ์๊ธ์ ์ ๊ณต์ ๋๋ฉฐ, ํ๋์ ๊ฑธ๋ ค๋ ์ฑ์ ์์ฒญ์ ์๋์ผ๋ก ๋ค์ ๋ณด๋ด์ง ์์ต๋๋ค.
- ChatGPT ๋ํ ๋ด์ฉ๊ณผ ๊ณ์ ์ ๋ณด์๋ ์ ๊ทผํ์ง ์์ต๋๋ค.
- ๋ก๊ทธ์์ํ๋ฉด ์๋ฒ์ ํ ํฐ ํ๊ธฐ๋ฅผ ์๋ํ๊ณ ๋ก์ปฌ ํ ํฐ์ ์ญ์ ํฉ๋๋ค. ChatGPT ์ค์ ์ ์ฐ๊ฒฐ๋ ์ฑ์์๋ ํด์ ํ ์ ์์ต๋๋ค.
- ํ ํฐ์ ํ์ฌ
0600๊ถํ์settings.json์ ์ ์ฅ๋ฉ๋๋ค(์๋ "๋ก์ปฌ ๋ฐ์ดํฐ์ ๊ฐ์ธ์ ๋ณด" ์ฐธ๊ณ ). refresh token์ 30์ผ ์ ํจํ๋ฉฐ ๊ฐฑ์ ๋๋ง๋ค ํ์ ๋ฉ๋๋ค.
Warning
์์ฑ ๋
น์๊ณผ ์ ์ฌ(Qwen3ยทWhisperX ๋ชจ๋)๋ ๋ก์ปฌ์์ ์ฒ๋ฆฌ๋ฉ๋๋ค. AI ์ฆ๊ฐ ์คํ์ ๋๋ฅด๋ฉด ์ ์ฌ๋ฌธ, ์ด๋ฒ ํ์์์ ์ ํํ ์ฐธ์์, ๋จ์ด์ง, ์ฌ์ ์ ๋ณด๊ฐ ์ค์ ํ ์ธ๋ถ API(ChatGPT ๋ก๊ทธ์ธ ์ฌ์ฉ ์ OpenAI API)๋ก ์ ์ก๋ฉ๋๋ค. ๋ฏผ๊ฐํ ํ์์์๋ ์ฌ์ฉ ์ค์ธ API ์ ๊ณต์์ ๋ณด์ยท๋ณด์กด ์ ์ฑ
์ ๋จผ์ ํ์ธํ์ธ์.
Drive์ ์ฌ๋ ค ๋ ๋
น์์ ๊ฐ์ ธ์ ์ ์ฌํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ด Drive์ Galpi ํด๋์ ์๋์ผ๋ก ์ฌ๋ฆด ์ ์์ต๋๋ค. Drive๋ฅผ ์ฐ๊ฒฐํ์ง ์์๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ์ธ ์ ์์ต๋๋ค.
Galpi์๋ Google OAuth ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ด ์์ง ์์ต๋๋ค. Drive๋ ๋ด Google Cloud ํ๋ก์ ํธ์์ ๋ง๋ ํด๋ผ์ด์ธํธ๋ฅผ ํ ๋ฒ ์ ์ฅํ ๋ค์๋ง ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ค๋น ์ ์ฐจ๋ ์ด ์ ๋์ Google Drive ์ฌ์ฉ ์ค๋น์ ์์ผ๋ ๋จผ์ ์ฝ์ด ์ฃผ์ธ์.
- ์ฑ์ ์ด๋ฉด ๋ํ๋๋ Google Drive ์ฐ๊ฒฐ ์นด๋์์
Drive ์ฐ๊ฒฐ์ ๋๋ฆ ๋๋ค. ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ฅํ๊ธฐ ์ ์๋ ์ด ์๋ฆฌ์Google ํด๋ผ์ด์ธํธ ์ค์ ๋ฒํผ์ด ๋ณด์ด๋ฉฐ, ์ ์ฅํ๋ฉดDrive ์ฐ๊ฒฐ๋ก ๋ฐ๋๋๋ค. ์นด๋๋ฅผ ๋ซ์๋ค๋ฉด์ค์ ์ Google Drive์์ ์ฐ๊ฒฐํฉ๋๋ค. - ์์คํ
๋ธ๋ผ์ฐ์ ์์ Drive ๊ถํ์ ํ์ฉํฉ๋๋ค. ์ฐ๊ฒฐ์ด ๋๋๋ฉด ๋ด Drive์
Galpiํด๋๊ฐ ์๊ธฐ๊ณ (์ด๋ฏธ ์์ผ๋ฉด ๊ทธ ํด๋๋ฅผ ์๋๋ค), ์๋จ์ ์ฐ๊ฒฐํ ๊ณ์ ์ด ํ์๋ฉ๋๋ค. Drive์์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๋๋ฅด๋ฉด ๋ธ๋ผ์ฐ์ ์์ Google Picker๊ฐ ์ด๋ฆฝ๋๋ค. ๋ น์ ํ์ผ์ ํ๋ ๊ณ ๋ฅด๋ฉด ์ด ์ปดํจํฐ๋ก ๋ด๋ ค๋ฐ๊ณ ,์ ์ฌ ์์์ผ๋ก ์ ์ฌํ ์ ์์ต๋๋ค. ๋ด๋ ค๋ฐ๋ ๋์์๋ ์งํ ์นด๋์ ๋ฐ์ ํฌ๊ธฐ์ ์ ์ฒด ํฌ๊ธฐ, ์งํ๋ฅ ์ด ํ์๋ฉ๋๋ค. Drive์ ์ฐ๊ฒฐํ ๊ณ์ ๊ณผ ๋ค๋ฅธ ๊ณ์ ์์ ๊ณ ๋ฅธ ํ์ผ์ ๊ฐ์ ธ์ค์ง ์์ต๋๋ค. AI ์ฆ๊ฐ ํจ๋์Drive์์ ์ ์ฌ๋ฌธ ๊ฐ์ ธ์ค๊ธฐ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก Picker๋ฅผ ์ด๋ฉฐ, txtยทmd ์ ์ฌ๋ฌธ ํ๋๋ฅผ ๊ณจ๋ผ ์ด ์ปดํจํฐ๋ก ๋ด๋ ค๋ฐ์ ์ฆ๊ฐ ๋์์ผ๋ก ์๋๋ค.- Drive๊ฐ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด ์ ์ฌ, ์ ์ฌ๋ฌธ ๊ฐ์ ธ์ค๊ธฐ, AI ์ฆ๊ฐ์ด ๋๋ ๋๋ง๋ค ๊ฒฐ๊ณผ(
.srt,_ํ์๋ณ.txt,_ํ์๋ก.md)๊ฐGalpi/<ํ์ ์ด๋ฆ>ํด๋์ ์ฌ๋ผ๊ฐ๋๋ค. ๊ฐ์ ํ์๋ฅผ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ์ ํ์ผ์ ๋ง๋ค์ง ์๊ณ ๊ฐ์ ํ์ผ์ ๊ฐฑ์ ํฉ๋๋ค. ํ์ ์ด๋ฆ์ ๋ น์ ํ์ผ ์ด๋ฆ์ด๋ฉฐ,์๋ก์ด ๋ ธํธ_ํ์๋ณ.txt๊ฐ์ ํ์๋ณ ์ ์ฌ๋ฌธ์_ํ์๋ณ์ ๋์๋ก์ด ๋ ธํธ๊ฐ ํ์ ์ด๋ฆ์ ๋๋ค(์ด ์ปดํจํฐ์ ํ์ ํด๋๋ ๊ฐ์ต๋๋ค). Galpi๊ฐ ์ฌ๋ฆฐ ์ ์ฌ๋ฌธ์ Drive์์ ๊ณจ๋ผ ์ฆ๊ฐํ๋ฉด ํ์๋ก์ ์๋ ๊ทธ ํ์์ Drive ํด๋์ ์ฌ๋ผ๊ฐ๋๋ค. ์ค์ โ Google Drive์์ ๋ น์์ ๋ง์น๋ฉด Drive์ ๋ฐ๋ก ์ ์ฅ์ ์ผ๋ฉด, ๋ง์ดํฌ๋ก ๋ น์ํ ํ์ผ์ ์ ์งํ๋ ์ฆ์Galpi/<๋ น์ ์ด๋ฆ>ํด๋์ ์ฌ๋ฆฝ๋๋ค. ์ฌ๋ฆฌ๋ ๋์์๋ ์ ์ฌ๋ฅผ ์์ํ ์ ์๊ณ , ๊ฐ์ ๋ น์์ ์ ์ฌ ๊ฒฐ๊ณผ๋ ๊ฐ์ ํด๋์ ์ฌ๋ผ๊ฐ๋๋ค. ์ด ์ค์์น๋ Drive์ ์ฐ๊ฒฐํด์ผ ์ผค ์ ์์ผ๋ฉฐ ์ฐ๊ฒฐ์ ํด์ ํ๋ฉด ๊บผ์ง๋๋ค.
- ๊ถํ ๋ฒ์๋
drive.fileํ๋์ ๋๋ค. Galpi๋ ์ง์ ๋ง๋ ํ์ผ๊ณผ Picker์์ ์ง์ ๊ณ ๋ฅธ ํ์ผ์๋ง ์ ๊ทผํ๋ฉฐ, Drive์ ๋ค๋ฅธ ํ์ผ์ ๋ณผ ์ ์์ต๋๋ค. - ๋ง์ง๋ง์ผ๋ก ์ฌ๋ฆฐ ๋ค Drive์์ ํ์ผ์ด ๋ฐ๋์์ผ๋ฉด ๋ฎ์ด์ฐ์ง ์๊ณ ์ถฉ๋๋ก ์๋ฆฝ๋๋ค. ๊ฒฐ๊ณผ ์์ญ์
Drive ๋ฒ์ ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ๋๋ฌ์ผ ๋ฎ์ด์๋๋ค. - ์ ๋ก๋๊ฐ ์คํจํด๋ ๋ก์ปฌ ๊ฒฐ๊ณผ๋ ๊ทธ๋๋ก ๋จ๊ณ , ์คํจ๋ ๊ฒฐ๊ณผ ์์ญ์ ๋ฐ๋ก ํ์๋ฉ๋๋ค. ์ฑ์ ์คํจํ ์ ๋ก๋๋ฅผ ์๋์ผ๋ก ๋ค์ ๋ณด๋ด์ง ์์ต๋๋ค.
- ๋
น์ ์
๋ก๋๊ฐ ์คํจํ๋ฉด ๋
น์ ์์ญ์ ์ด์ ์
๋ค์ ์ฌ๋ฆฌ๊ธฐ๋ฒํผ์ด ๋ํ๋๋ฉฐ, ๋ก์ปฌ ๋ น์ ํ์ผ์ ๊ทธ๋๋ก ๋จ์ต๋๋ค. ์ด๋ฏธ ์ฌ๋ฆฐ ๋ น์์ ๋ค์ ์ฌ๋ฆฌ์ง ์๊ณ , ๊ทธ ์ฌ์ด Drive์ ์ฌ๋ณธ์ด ๋ฐ๋์์ผ๋ฉด ๋ฎ์ด์ฐ์ง ์์ต๋๋ค. ๊ธด ๋ น์๋ ๋์คํฌ์์ 4MB์ฉ ์ฝ์ด ์ด์ด ์ฌ๋ฆฌ๋ฏ๋ก ํ์ผ ์ ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ์ง ์์ต๋๋ค. - Drive์์ ๊ณ ๋ฅธ ์๋ณธ์ ์ฝ๊ธฐ๋ง ํ๊ณ ์ฎ๊ธฐ๊ฑฐ๋ ์ง์ฐ์ง ์์ต๋๋ค. ๋ด๋ ค๋ฐ์ ์ฌ๋ณธ์ ์ฑ ์บ์์
drive-importsํด๋์ ๋๋ฉฐ, ์ฑ์ ๋ค์ ์คํํ๋ฉด ์ง์๋๋ค. ์ค์ โ Google Drive โ์ฐ๊ฒฐ ํด์ ๋ฅผ ๋๋ฅด๋ฉด Google์ ํ ํฐ ํ๊ธฐ๋ฅผ ์์ฒญํ๊ณ ๋ก์ปฌ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ์ง์๋๋ค. Drive์ ์ฌ๋ฆฐ ํ์ผ์ ์ง์ฐ์ง ์์ต๋๋ค.- ์ฝ๋ ๊ตํ๊ณผ ํ ํฐ ๊ฐฑ์ ์ ์ฑ์ด Google ํ ํฐ ์๋ํฌ์ธํธ(
oauth2.googleapis.com)์ ์ง์ ๋ณด๋ ๋๋ค. ์ฑ ์์ค์๋ OAuth ํด๋ผ์ด์ธํธ ID๋ ๋ณด์ ๋น๋ฐ๋ฒํธ๋ ๋ค์ด ์์ง ์์ผ๋ฉฐ, ๋ด๊ฐ ์ ์ฅํ ํด๋ผ์ด์ธํธ๋ง ์ฐ๊ณ ์ธ๊ฐ ์ฝ๋๋ PKCE๊ฐ ์งํต๋๋ค. - ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ: https://m16khb.dev/galpi/privacy/
Drive๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด ๋ด Google Cloud ํ๋ก์ ํธ์ OAuth ํด๋ผ์ด์ธํธ(ํด๋ผ์ด์ธํธ ID์ ๋ณด์ ๋น๋ฐ๋ฒํธ)๊ฐ ํ์ํฉ๋๋ค. ์๋ ์์๋ก ํ ๋ฒ๋ง ๋ง๋ค์ด ์ ์ฅํ๋ฉด ๋ฉ๋๋ค.
- Google Cloud ์ฝ์์์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ญ๋๋ค.
API ๋ฐ ์๋น์ค์์ Google Drive API์ Google Picker API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.Google ์ธ์ฆ ํ๋ซํผ์์ ์ฑ ์ ๋ณด์ ๋์(์ธ๋ถ)์ ์ค์ ํฉ๋๋ค. ๊ฒ์ ์ํ๊ฐํ ์คํธ์ด๋ฉด Drive ์ฐ๊ฒฐ์ด 7์ผ ๋ค ๋๊ธฐ๋ฏ๋ก, ์ฑ์ํ๋ก๋์ ์ผ๋ก ๊ฒ์ํฉ๋๋ค.drive.file์ ๋ฏผ๊ฐํ์ง ์์ ๋ฒ์์ ๋๋ค.ํด๋ผ์ด์ธํธ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ฐ์คํฌํฑ ์ฑ์ผ๋ก ํด๋ผ์ด์ธํธ๋ฅผ ๋ง๋ค๊ณ , ๋ณด์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฐ๋ก ๋ณต์ฌํฉ๋๋ค. ์ฝ์์ ๋ง๋ ์งํ์๋ง ๋ณด์ฌ ์ค๋๋ค.- ๋ง๋ ํด๋ผ์ด์ธํธ ID์ ๋ณด์ ๋น๋ฐ๋ฒํธ๋ฅผ
์ค์ โGoogle DriveโGoogle ํด๋ผ์ด์ธํธ์ ๋ถ์ฌ ๋ฃ๊ณ์ ์ฅํฉ๋๋ค. Drive๊ฐ ์ฐ๊ฒฐ๋ผ ์์ผ๋ฉด ๋จผ์ ์ฐ๊ฒฐ ํด์ ํฉ๋๋ค. Drive ์ฐ๊ฒฐ์ ๋๋ฌ ๋์ํฉ๋๋ค. ๋ฒ์๋drive.fileํ๋์ ๋๋ค. ๋ฐฉ๊ธ ๋ง๋ ํด๋ผ์ด์ธํธ๋ Google์ ๋ฐ์๋๊ธฐ๊น์ง ๋ช ๋ถ ๊ฑธ๋ฆด ์ ์๊ณ , ๊ทธ ์ฌ์ด ๋์ ํ๋ฉด์์ 400 ์ค๋ฅ๊ฐ ๋๋ฉด ์ ์ ๋ค ๋ค์ ์๋ํฉ๋๋ค.- ์ ์ฅํ ํด๋ผ์ด์ธํธ๋ฅผ ์์ ๋ ค๋ฉด
ํด๋ผ์ด์ธํธ ์ญ์ ๋ฅผ ๋๋ฆ ๋๋ค(์ฐ๊ฒฐ ํด์ ํ์). ์ญ์ ํ๋ฉด ํด๋ผ์ด์ธํธ๋ฅผ ๋ค์ ์ ์ฅํ๊ธฐ ์ ๊น์ง Drive์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๋ฅผ ๋ฐ๊พธ๋ฉด Drive์ ์ Galpi ํด๋๊ฐ ์๊น๋๋ค. drive.file์ ๊ทธ ํด๋ผ์ด์ธํธ(ํ๋ก์ ํธ)๊ฐ ๋ง๋ค๊ฑฐ๋ ์ฐ ํ์ผ์๋ง ์ ๊ทผํ๋ฏ๋ก, ์ด์ ํด๋ผ์ด์ธํธ๋ก ์ฌ๋ฆฐ ํ์ผ์ ์ด์ด์ง์ง ์์ต๋๋ค. ํ์ ํด๋์ ๋
น์์ ์ ํด๋์ ๋ค์ ์ฌ๋ผ๊ฐ๊ณ , ์ถฉ๋๊ณผ ์ต์ ์ฌ๋ถ ํ์ ๋ ์๋ก ์์ํฉ๋๋ค. ์ด์ ํด๋ผ์ด์ธํธ๋ก ์ฌ๋ฆฐ ํ์ผ์ ๋ณด์ด์ง ์์ ๋ฟ Drive์์ ์ง์์ง์ง๋ ์์ต๋๋ค.
- ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ญ์ ํ๋ ์ผ์ Drive ์ฐ๊ฒฐ์ ํด์ ํ ์ํ์์๋ง ํ ์ ์์ต๋๋ค. refresh token์ ๋ฐ๊ธํ ํด๋ผ์ด์ธํธ์์๋ง ๊ฐฑ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๊ฒฐ ํด์ ๋ ์ ์ฅํ ํด๋ผ์ด์ธํธ๋ฅผ ์ง์ฐ์ง ์์ต๋๋ค.
- ๋ณด์ ๋น๋ฐ๋ฒํธ๋ ์ ์ฅํ ๋ค ํ๋ฉด์ ๋ค์ ๋ณด์ฌ ์ฃผ์ง ์์ต๋๋ค. ์ ์ฅ๋ ๋์์๋ ์
๋ ฅ์นธ ๋์ ์ฌ์ฉ ์ค์ธ ํด๋ผ์ด์ธํธ ID์
ํด๋ผ์ด์ธํธ ์ญ์ ๋ง ๋ณด์ ๋๋ค. - ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ฅํ ์ฑ ํด๋ผ์ด์ธํธ ์ค์ ์ด ์๋ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆฌ๋ฉด, ์ด์ ๋ฒ์ ์ ์ ์ฅํ ํด๋ผ์ด์ธํธ๋ฅผ ๋ชจ๋ฅด๋ฏ๋ก ํ ํฐ์ ๊ฐฑ์ ํ์ง ๋ชปํ๊ณ
DRIVE_UNAVAILABLE๋ก ์คํจํฉ๋๋ค. ์ด๋๋์ฐ๊ฒฐ ํด์ ํ ๋ค ๋ค์ ์ฐ๊ฒฐํ์ธ์. - ์ด์ ๋น๋๋ ์ฑ์ ๋ค์ด ์๋ ํด๋ผ์ด์ธํธ๋ก Drive์ ์ฐ๊ฒฐํ์ต๋๋ค. ๊ทธ ํด๋ผ์ด์ธํธ๋ ๋ ์ด์ ์์ผ๋ฏ๋ก, ์ด์ ๋น๋์์ ๋ง๋ Drive ์ฐ๊ฒฐ์ ๊ฐฑ์ ํ ์ ์์ต๋๋ค. ์ฑ์ ์ฒ์ ์คํํ๋ฉด ๊ทธ ์ฐ๊ฒฐ์ด ํด์ ๋๋ฉฐ, ์ ์์๋๋ก ๋ด ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ฅํ๊ณ
Drive ์ฐ๊ฒฐ์ ๋ค์ ๋๋ฌ์ผ ํฉ๋๋ค.
๋
น์๋ถํฐ ์ ์ฌ๊น์ง๋ ๋ชจ๋ ๋ก์ปฌ์์ ์ฒ๋ฆฌํ๊ณ , AI ์ฆ๊ฐ ์คํ์ ๋๋ ์ ๋๋ง ์ ์ฌ๋ฌธ์ ์ธ๋ถ API๋ก ๋ณด๋
๋๋ค. ๋จ๊ณ ์์๋ OS์ ๊ด๊ณ์์ด ๊ฐ์ผ๋ฉฐ, OS์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฒ์ ์์ฑ ์ธ์ ์์ง๊ณผ ์ฐ์ฐ ์ฅ์น์
๋๋ค. Linux์ฉ ๋น๋๋ ์ ๊ณตํ์ง ์์ต๋๋ค.
| ๋จ๊ณ | macOS (Apple Silicon) | Windows 10/11 x64 |
|---|---|---|
| 1. ์ ๋ ฅ | ๋ง์ดํฌ ๋ น์(WAV) ๋๋ ์ค๋์ค ํ์ผ ๊ฐ์ ธ์ค๊ธฐ | ๊ฐ์ |
| 2. ๋์ฝ๋ฉ | ์ฑ์ ํฌํจ๋ ffmpeg๋ก 16 kHz ๋ชจ๋ ธ WAV ๋ณํ | ๊ฐ์ |
| 3. ์์ฑ ์ธ์ | Qwen3(๊ธฐ๋ณธ): Qwen/Qwen3-ASR-1.7B๋ฅผ MLX 8๋นํธ ๊ฐ์ค์น๋ก ๋ณํํด Metal GPU์์ ์คํWhisperX: faster-whisper-large-v3-turbo, CTranslate2 CPU int8 |
WhisperX๋ง ์ ๊ณต: faster-whisper-large-v3-turbo, CTranslate2 CPU int8 ๋๋ CUDA float16 |
| 4. ๋จ์ด ์๊ฐ ์ ๋ ฌ | Qwen3: Qwen/Qwen3-ForcedAligner-0.6B(MLX, ์์ฑ ์ธ์๊ณผ ๊ฐ์ ๋จ๊ณ์์ ์คํ)WhisperX: kresnik/wav2vec2-large-xlsr-korean(MPS) |
kresnik/wav2vec2-large-xlsr-korean(CPU ๋๋ CUDA) |
| 5. ํ์๋ถ๋ฆฌ | pyannote/speaker-diarization-community-1(MPS) |
pyannote/speaker-diarization-community-1(CPU ๋๋ CUDA) |
| 6. ํ์ฒ๋ฆฌ | ๋ฌธ์ฅ ๋ณํฉ๊ณผ ํ๊ฐ ๊ตฌ๊ฐ ์ ๊ฑฐ(๊ท์น ๊ธฐ๋ฐ, ๋ชจ๋ธ ์์) | ๊ฐ์ |
| 7. AI ์ฆ๊ฐ | ์ธ๋ถ LLM API(์๋ ์ค๋ช ์ฐธ๊ณ ) | ๊ฐ์ |
- macOS์๋ ์ฐ์ฐ ์ฅ์น ์ ํ ๋ฉ๋ด๊ฐ ์๊ณ , ์ค์น๋ PyTorch์์ MPS๋ฅผ ์ธ ์ ์์ผ๋ฉด ์๋์ผ๋ก ์ฌ์ฉํฉ๋๋ค(CTranslate2์๋ MPS๊ฐ ์์ด WhisperX ์์ฑ ์ธ์์ CPU int8์ ๋๋ค). Windows์์ CUDA๋ฅผ ๊ณ ๋ฅด๋ฉด ์์ฑ ์ธ์ยท์ ๋ ฌยทํ์๋ถ๋ฆฌ๋ฅผ ๋ชจ๋ ๊ฐ์ํฉ๋๋ค.
- WhisperX ํ๋ฆฌ์ ์ MPS๋ CUDA์์ ์ ๋ ฌยทํ์๋ถ๋ฆฌ๊ฐ ์คํจํ๋ฉด CPU๋ก ํ ๋ฒ ๋ค์ ์๋ํฉ๋๋ค.
- Qwen3 ํ๋ฆฌ์ ์ ์ค๋์ค๋ฅผ ๋ฌด์ ์์น ๊ธฐ์ค์ผ๋ก 30์ด ์ดํ ๊ตฌ๊ฐ์ผ๋ก ๋๋ ์ธ์ํฉ๋๋ค.
- ์ฐธ์์ ์ด๋ฆ๊ณผ ๋จ์ด์ง์ ์์ฑ ์ธ์ ๋จ๊ณ์๋ ๋ฐ์๋ฉ๋๋ค. WhisperX๋
hotwords์ต์ ์ผ๋ก, Qwen3๋ ๋ฌธ๋งฅ ํํธ๋ก ๋ฃ์ต๋๋ค. - AI ์ฆ๊ฐ์ API ํค ๋ฐฉ์์ด๋ฉด OpenAI ํธํ Chat Completions API(๊ธฐ๋ณธ ๋ชจ๋ธ
glm-5.3-flash)๋ฅผ, ChatGPT ๋ก๊ทธ์ธ ๋ฐฉ์์ด๋ฉด OpenAI Responses API์ ๊ณ์ ๋ชจ๋ธ ๋ชฉ๋ก์์ ๊ณ ๋ฅธ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. - ์ ์ฌ๋ฌธ์ด 48,000์๋ฅผ ๋์ผ๋ฉด 16,000์ ๋จ์ ๊ตฌ๊ฐ์ผ๋ก ๋๋ ๊ตฌ๊ฐ๋ณ ํต์ฌ ์ฌ์ค์ ๋จผ์ ์ถ์ถํ๊ณ (๋์ ์์ฒญ ์ต๋ 3๊ฐ), ์ด๋ฅผ ์ข ํฉํด ์ต์ข ํ์๋ก์ ์๋๋ค. ๊ทธ ์ดํ๋ ์์ฒญ ํ ๋ฒ์ผ๋ก ํ์๋ก์ ๋ง๋ญ๋๋ค.
๊ธฐ๋ณธ ์ ์ฅ ์์น๋ ~/Documents/Galpi์
๋๋ค(์ถ๋ ฅ ํด๋์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค). ํ์ ํ๋์ ํด๋ ํ๋๊ฐ ๋์๋ฉ๋๋ค. ๋ง์ดํฌ ๋
น์์ ์์ ์๊ฐ์ผ๋ก ํด๋๋ฅผ ๋ง๋ค๊ณ (YYYY-MM-DD HHMMSS ๋
น์), ์ ์ฌ ๊ฒฐ๊ณผ๋ ์ค๋์ค ํ์ผ ์ด๋ฆ๊ณผ ๊ฐ์ ํด๋์ ์ ์ฅ๋ฉ๋๋ค. ๊ฐ์ ธ์จ ํ์๋ณ ์ ์ฌ๋ฌธ์ ๋
น์ ์ด๋ฆ์ ํด๋์ ๋ค์ด๊ฐ๋๋ค(์๋ก์ด ๋
ธํธ_ํ์๋ณ.txt โ ์๋ก์ด ๋
ธํธ). ํด๋ ์์ ๋ชจ๋ ํ์ผ์ ํด๋์ ๊ฐ์ ์ด๋ฆ์ ๊ณต์ ํฉ๋๋ค.
~/Documents/Galpi/
โโโ 2026-08-24 143052 ๋
น์/ # ๋ง์ดํฌ ๋
น์ (์์ ์๊ฐ์ผ๋ก ์๋ ์ด๋ฆ)
โ โโโ 2026-08-24 143052 ๋
น์.wav
โ โโโ 2026-08-24 143052 ๋
น์.srt
โ โโโ 2026-08-24 143052 ๋
น์_ํ์๋ณ.txt
โ โโโ 2026-08-24 143052 ๋
น์.aligned.v2.json
โ โโโ 2026-08-24 143052 ๋
น์_ํ์๋ก.md # AI ์ฆ๊ฐ ์คํ ์
โโโ ํ๋ฏธํ
/ # ๊ฐ์ ธ์จ ์ค๋์คยท์ ์ฌ๋ฌธ (๋
น์ ์ด๋ฆ, `_ํ์๋ณ` ์ ์ธ)
โโโ ํ๋ฏธํ
.srt
โโโ ํ๋ฏธํ
_ํ์๋ณ.txt
โโโ ํ๋ฏธํ
.aligned.v2.json
โโโ ํ๋ฏธํ
_ํ์๋ก.md
๊ฐ์ ์ด๋ฆ์ ํ์๊ฐ ์ด๋ฏธ ์์ผ๋ฉด ํ๋ฏธํ
2์ฒ๋ผ ๋ฒํธ๋ฅผ ๋ถ์
๋๋ค. ์ฒดํฌํฌ์ธํธ(.aligned.v2.json)๋ ๋ ํ๋ฆฌ์
๋ชจ๋ ๋ง๋ค๋ฉฐ, ๊ฐ์ ์ค๋์ค๋ฅผ ๋ค์ ์ ์ฌํ ๋ ์ ์ฌยท์ ๋ ฌ ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ ํ์๋ถ๋ฆฌ๋ถํฐ ๋ค์ ์คํํฉ๋๋ค. ์ฒดํฌํฌ์ธํธ์๋ ๋ง๋ ์์ง์ด ๊ธฐ๋ก๋๋ฏ๋ก ๋ค๋ฅธ ํ๋ฆฌ์
์ด ๋ง๋ ์ฒดํฌํฌ์ธํธ๋ ์ฌ์ฌ์ฉํ์ง ์์ต๋๋ค.
| ํ์ผ | ์ฉ๋ |
|---|---|
.srt |
์๋ง๊ณผ ํ์์ฝ๋ |
_ํ์๋ณ.txt |
ํ์ ๋จ์ ์ฝ๊ธฐ ์ฌ์ด ์ ์ฌ๋ฌธ |
.aligned.v2.json |
์ ์ฌยท์ ๋ ฌ ์ฒดํฌํฌ์ธํธ์ ์ฌ์ฒ๋ฆฌ ๊ธฐ๋ฐ |
_ํ์๋ก.md |
๊ฒฐ์ , ๋ด๋น, ๊ธฐํ, ๋ ผ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๋ฌธ์ |
์๋ฃ ํ๋ฉด์์ ํ์ผ์ ์ด๊ฑฐ๋ ์ถ๋ ฅ ํด๋๋ฅผ Finder(macOS) ๋๋ ํ์ผ ํ์๊ธฐ(Windows)๋ก ์ด ์ ์์ต๋๋ค.
- ์์ฑ๊ณผ ์ ์ฌ ์ฐ์ถ๋ฌผ์ ์ฌ์ฉ์๊ฐ ์ ํํ ๋ก์ปฌ ํด๋์ ์ ์ฅ๋ฉ๋๋ค.
- ์ ์ฌยท์ ๋ ฌยทํ์๋ถ๋ฆฌ ๋ชจ๋ธ(Qwen3, WhisperX, pyannote)์ Galpi์ ์ฑ ์ ์ฉ Hugging Face ์บ์์ ์ ์ฅ๋ฉ๋๋ค.
- Hugging Face ํ ํฐ, AI ์ฆ๊ฐ API ํค, ChatGPT ๋ก๊ทธ์ธ ํ ํฐ์ ํ๋ซํผ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ ์ฅ๋ฉ๋๋ค. Windows์์๋ Windows Credential Manager์
com.m16khb.galpi:hugging-face-token,com.m16khb.galpi:assistant-api-key,com.m16khb.galpi:chatgpt-tokensํญ๋ชฉ์ ์ ์ฅ๋๋ฉฐ, ๊ธด ๊ฐ์ ์ฌ๋ฌ ํญ๋ชฉ์ ๋๋์ด ์ ์ฅ๋ฉ๋๋ค. macOS์์๋ Application Support ์๋ ์ค์ ํ์ผ(settings.json)์0600๊ถํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ChatGPT ํ ํฐ(accessยทrefresh)๋ ์ด ํ์ผ์ ํ๋ฌธ์ผ๋ก ๋ค์ด๊ฐ๋ฏ๋ก, ํ์ผ์ด ์ ์ถ๋๋ฉด ๊ณ์ ์ API ์ ๊ทผ์ด ๋ ธ์ถ๋ ์ ์์ต๋๋ค. - ์ด์ ๋ฒ์ ์ด ๋จ๊ธด Credential Manager์ ๋ก๊ทธ์ธ ์ธ์
ํญ๋ชฉ
com.m16khb.galpi:gateway-session๊ณผ ์ค์ ํ์ผ์gateway*ํค๋ ๋ ์ฐ์ง ์์ผ๋ฉฐ ์ง์๋ ๋ฉ๋๋ค. - Google Drive ํ ํฐ๋ ๊ฐ์ ๊ฒฝ๋ก๋ก ์ ์ฅ๋ฉ๋๋ค. Windows์์๋
com.m16khb.galpi:drive-sessionํญ๋ชฉ์, macOS์์๋settings.json์ ํ๋ฌธ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ฐ๊ฒฐํ Drive ๊ณ์ ์ ์ด๋ฉ์ผ๊ณผGalpiํด๋ ID๋ ๋ ํ๋ซํผ ๋ชจ๋settings.json์ ์ ์ฅ๋ฉ๋๋ค. ๋ น์์ ๋ง์น๋ฉด Drive์ ๋ฐ๋ก ์ ์ฅํ๋ ์ ํ(driveSaveRecordings)๋settings.json์ ์์ผ๋ฉฐ, ์ฐ๊ฒฐ์ ํด์ ํ๋ฉด ๊บผ์ง๋๋ค. - ๋ด Google ํด๋ผ์ด์ธํธ์ ๋ณด์ ๋น๋ฐ๋ฒํธ๋ Windows์์
com.m16khb.galpi:drive-client-secretํญ๋ชฉ์, macOS์์๋settings.json์ ํ๋ฌธ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ ID(driveClientId)๋ ๋ ํ๋ซํผ ๋ชจ๋settings.json์ ์์ผ๋ฉฐ, Drive ์ฐ๊ฒฐ์ ํด์ ํด๋ ๋จ์ต๋๋ค.ํด๋ผ์ด์ธํธ ์ญ์ ๋ฅผ ๋๋ฅด๋ฉด ๋ ๋ค ์ง์๋๋ค. - macOS์์๋ ์๊ฒฉ ์ฆ๋ช ์ ์์ง Keychain์ผ๋ก ์ํธํํ์ง ์์ต๋๋ค. Keychain์ ํญ๋ชฉ ์ ๊ทผ ๊ถํ์ ์ฑ์ ์ฝ๋ ์๋ช ์ ๋ฌถ๋๋ฐ, ํ์ฌ ๋น๋๋ ad-hoc ์๋ช ์ด๋ผ ๋น๋๋ง๋ค ์๋ช ์ด ๋ฌ๋ผ์ ธ ์ฌ์ฉ์๊ฐ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ์ ๊ทผ ํ์ฉ ์ฐฝ์ ๋ค์ ๋ณด๊ฒ ๋ฉ๋๋ค. macOS์ Keychain ์ ํ์ Developer ID ์๋ช ๊ณผ ํจ๊ป ์ ์ฉํ ์์ ์ ๋๋ค.
- AI ํ์๋ก์ ์คํํ์ง ์์ผ๋ฉด ์ ์ฌ๋ฌธ์ ์ธ๋ถ LLM API๋ก ์ ์ก๋์ง ์์ต๋๋ค.
- worker๋ ๊ณ ์ ๋ ํ๋ก๊ทธ๋จ๊ณผ argv๋ก ์คํ๋๋ฉฐ ์ ธ ๋ฌธ์์ด์ ์คํํ์ง ์์ต๋๋ค.
TypeScript UI
โ Tauri IPC + validated events
โผ
Rust application
โ ports
โโโ ๋ง์ดํฌ ๋
น์๊ธฐ (CPAL: CoreAudio/WASAPI)
โโโ filesystem / opener
โโโ supervised Python worker
โ versioned JSONL
โผ
Qwen3ยทWhisperX / pyannote / assistant
| ๊ฒฝ๋ก | ์ญํ |
|---|---|
src/ |
๋๋ฉ์ธ ๊ณ์ฝ(์์ ยทํ์ยท๋ฐฑ์๋ ํฌํธ)๊ณผ ๊ฒ์ฆ, ์ํ ๋จธ์ , Zod ๊ฒฝ๊ณ, DOM UI |
src-tauri/ |
Tauri ๋ช ๋ น, Rust use caseยท๋๋ฉ์ธ ๊ฐ ๊ฐ์ฒด, ๋ น์ยทํ๋ก์ธ์ค ์ด๋ํฐ |
worker/ |
Qwen3ยทWhisperX ํ๋ฆฌ์ ์ ์ฌ, ์ ๋ ฌ, ํ์๋ถ๋ฆฌ, ํ์๋ก ๊ฐ๊ณต |
scripts/ |
์ํคํ ์ฒ ๊ฒ์ฌ, sidecar staging, DMG ํจํค์ง |
DESIGN.md |
UI, ์ ๊ทผ์ฑ, ์ปดํฌ๋ํธ ์ํ์ ๊ท๋ฒ |
docs/ARCHITECTURE.md |
๋ ์ด์ด ๊ตฌ์กฐ์ ํฌํธ ์์ ๊ถ์ ๊ท๋ฒ |
docs/ROADMAP.md |
ํ์ฌ ์ํ์ ๋ค์ ์ ํ ๋จ๊ณ |
bun run check
bun testPython ๊ฒ์ฆ์๋ uv/uvx๊ฐ PATH์ ์์ด์ผ ํฉ๋๋ค. Homebrew๋ฅผ ์ฌ์ฉํ๋ค๋ฉด brew install uv๋ก ์ค์นํ ์ ์์ต๋๋ค. <WhisperX Python ๊ฒฝ๋ก>์๋ WhisperX๊ฐ ์ค์น๋ Python ์คํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ๋ฃ์ต๋๋ค.
cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml --all-targets
uvx ruff check worker
uvx ruff format --check worker
uvx basedpyright --pythonpath <WhisperX Python ๊ฒฝ๋ก>
PYTHONPATH=. python3 -m unittest discover -s worker/tests -t . -v # macOS
# Windows PowerShell
$env:PYTHONPATH='.'; python3 -m unittest discover -s worker/tests -t . -vbun run build๊ฒฐ๊ณผ:
src-tauri/target/release/bundle/macos/Galpi.app
src-tauri/target/release/bundle/dmg/Galpi_0.1.0_aarch64.dmg
macOS์์๋ ์ ๋ ํ์ผ์, Windows x64์์๋ NSIS ์ค์น ํ๋ก๊ทธ๋จ์ ๋ง๋ญ๋๋ค.
src-tauri/target/release/bundle/nsis/*.exe
macOS ๋น๋๋ .app์ ๋ง๋ ๋ค hdiutil๋ก DMG๋ฅผ ์์ฑํฉ๋๋ค. Windows ๋น๋๋ ์๋ช
๋์ง ์์ NSIS .exe๋ฅผ ๋ง๋ญ๋๋ค. CI๋ ๋ ํ๋ซํผ์ ๋ชจ๋ ๊ฒ์ฆํฉ๋๋ค.
์ง๊ธ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ์ง ์๊ณ ๊ฐ์ INSTALL.md๋ก ๋น๋ํฉ๋๋ค. ์ด ์ ์ ๋์ค์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ ๋๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ์๋ช ยท๊ณต์ฆ๋์ง ์์ DMG๋ฅผ ๋ฐ์ Mac์ Gatekeeper๊ฐ ์คํ์ ๋ง์ผ๋ฏ๋ก, ๋ฐฐํฌ ์ ์ Apple Developer ์ธ์ฆ์๋ก ์๋ช ํ๊ณ ๊ณต์ฆํ์ธ์.
์๋ช ์ด ๋ถ์ผ๋ฉด ์๊ฒฉ ์ฆ๋ช ๋ Keychain์ผ๋ก ์ฎ๊ธธ ์ ์์ต๋๋ค. macOS๋ Keychain ํญ๋ชฉ์ ์ ๊ทผ ๊ถํ์ ์ฑ์ ์ฝ๋ ์๋ช ์ ๋ฌถ์ด ๋๋ฏ๋ก, ์๋ช ์ด ๊ณ ์ ๋๊ธฐ ์ ์๋ ์ฌ์ฉ์๊ฐ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ์ ๊ทผ ํ์ฉ ์ฐฝ์ ๋ณด๊ฒ ๋ฉ๋๋ค.
.github/workflows/release.yml์ด v* ํ๊ทธ๋ ์๋ ์คํ์์ DMG์ Windows ์ค์น ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ์ํฌํ๋ก ์ํฐํฉํธ๋ก ์ฌ๋ฆฝ๋๋ค. ์๋ ์ ์ฅ์ ์ํฌ๋ฆฟ์ด ์ค์ ๋์ด ์์ผ๋ฉด ์๋ช
ยท๊ณต์ฆ๊น์ง ์ํํ ๋ค codesign/spctl๋ก ๊ฒ์ฆํฉ๋๋ค.
| ์ํฌ๋ฆฟ | ๋ด์ฉ |
|---|---|
APPLE_CERTIFICATE |
Developer ID Application ์ธ์ฆ์(.p12)์ base64 |
APPLE_CERTIFICATE_PASSWORD |
ํด๋น .p12์ ๋น๋ฐ๋ฒํธ |
APPLE_SIGNING_IDENTITY |
์: Developer ID Application: ์ด๋ฆ (TEAMID) |
APPLE_ID / APPLE_PASSWORD / APPLE_TEAM_ID |
๊ณต์ฆ์ฉ Apple ID์ ์ฑ ์ํธ, ํ ID |
์ํฌ๋ฆฟ์ด ์์ผ๋ฉด ์ํฌํ๋ก๋ ๊ธฐ์กด์ฒ๋ผ ad-hoc ์๋ช DMG๋ฅผ ๋ง๋ค๋ฉฐ, ์ด๋ ๋ด๋ถ ํ ์คํธ์ฉ์ ๋๋ค.
Hardened Runtime์ ํ์ํ entitlement๋ src-tauri/Entitlements.plist์ ์ด๋ฏธ ์ ์ธ๋์ด ์์ต๋๋ค. Galpi๋ ์ฒซ ์คํ์์ ์์ฒด Python ํ๊ฒฝ์ ์ค์นํ๊ณ ๊ทธ ์์ PyTorchยทMLX๋ฅผ ๋ถ๋ฌ์ค๋ฏ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒ์ฆ ๋นํ์ฑํ์ ์คํ ๊ฐ๋ฅ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ์ด ํ์ํฉ๋๋ค. ์์ง ์๋ช
๋ ๋น๋๋ฅผ ๋ง๋ค์ด ๊ฒ์ฆํ ์ ์ ์์ผ๋ฏ๋ก, ์ฒซ ๊ณต์ฆ ์ ์ด ๋ถ๋ถ์ ๋ฐ๋์ ํ์ธํ์ธ์.
| ์ฆ์ | ํ์ธํ ๋ด์ฉ |
|---|---|
cargo tauri ๋ช
๋ น์ ์ฐพ์ ์ ์์ |
cargo install tauri-cli --version 2.11.4 --locked |
| ๋ก์ปฌ ์์ง ์ค๋น๊ฐ ์ค๊ฐ์ ์คํจํจ | ๊ฐ์ ๋ฒํผ์ ๋ค์ ๋๋ฅด๋ฉด ์ด์ด์ ์ฌ์๋ํฉ๋๋ค(์คํจํ ๋ถ๋ถ ์ค์น๋ ์๋์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค). ๋คํธ์ํฌ ์ํ๋ ํ์ธํ์ธ์ |
| Qwen3 ์ค๋น ์ ๋ด๋ ค๋ฐ์ ํ์ผ์ด ํผ | Qwen3 ํ๋ฆฌ์ ์ ์ ์ฌยท์ ๋ ฌ ๋ชจ๋ธ ํฉ๊ณ ์ฝ 6.6GB๋ฅผ ๋ด๋ ค๋ฐ์ต๋๋ค |
| ๋ชจ๋ธ ๋ค์ด๋ก๋๊ฐ 401/403์ผ๋ก ์คํจ | ๋ชจ๋ธ ์ด์ฉ ์กฐ๊ฑด ๋์์ Fine-grained Read ํ ํฐ ํ์ธ |
| ๋ง์ดํฌ ๋ น์์ด ์์๋์ง ์์ | ์์คํ ์ค์ ์์ Galpi ๋ง์ดํฌ ๊ถํ ํ์ธ |
| ์๋๋ฐฉ ์์ฑ์ด ๋ น์๋์ง ์์ | ํ์ฌ ์์คํ ์ค๋์ค ์บก์ฒ๋ ์ง์ํ์ง ์์ |
| AI ํ์๋ก์ด ์คํจํจ | API Key, Base URL, ๋ชจ๋ธ ์ด๋ฆ, ์ ๊ณต์ ์ฌ์ฉ๋ ํ๋ ํ์ธ |
| ๋ค๋ฅธ Mac์์ ์ฑ์ ์ด ์ ์์ | ๋ด๋ ค๋ฐ์ ๋ฏธ์๋ช ยท๋ฏธ๊ณต์ฆ ๋น๋๋ Gatekeeper๊ฐ ๋ง์ต๋๋ค. ๊ทธ Mac์์ INSTALL.md๋ก ์ง์ ๋น๋ํ์ธ์ |
์ฑ ์
๋ฐ์ดํธ ํ ์์ง์ด ๋ค์ ๋๊ธฐ๋ก ํ์๋จ |
์์ง ์ค๋น ๋ง์ปค๊ฐ ์์กด์ฑ ์ ๊ธ ํ์ผ์ ํด์๋ฅผ ๋ฐ๋ฆ ๋๋ค. ์ ๊ธ์ด ๋ฐ๋๋ฉด ๋ก์ปฌ ์์ง ์ค๋น๋ฅผ ํ ๋ฒ ๋ ๋๋ฌ ํ๊ฒฝ์ ๋ง์ถฅ๋๋ค(๋ชจ๋ธ์ ๋ค์ ๋ฐ์ง ์์ต๋๋ค) |
Galpi๋ ํ๋ฐํ ๊ฐ๋ฐ ์ค์ธ 0.1.0 ํ๋ก์ ํธ์
๋๋ค. ๋ฐฐํฌ ์๋ ์
๋ฐ์ดํธ, ์๋ช
ยท๊ณต์ฆ, ์์คํ
์ค๋์ค ์บก์ฒ, ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ดํ ๋จ๊ณ๋ก ๊ณํ๋์ด ์์ต๋๋ค. ์์ธํ ๊ณํ์ docs/ROADMAP.md๋ฅผ ์ฐธ๊ณ ํ์ธ์.
GPL-3.0-or-later. ์ ๋ฌธ์ LICENSE๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
Copyright (C) 2026 m16khb
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.