μ΄ λ¬Έμλ Resonance Streamμ μμ€ μ½λλ₯Ό μ»΄νμΌνκ³ λ°°ν¬μ© ν¨ν€μ§λ‘ λ§λλ μ 체 νλ‘μΈμ€λ₯Ό μλ΄ν©λλ€. μ΄ νλ‘μ νΈλ Rust(Tauri) λ°±μλμ Python(AI Engine) μ¬μ΄λμΉ΄κ° κ²°ν©λ ꡬ쑰μ΄λ―λ‘ κ° λ¨κ³μ μμκ° μ€μν©λλ€.
λΉλ μ , λ€μ λꡬλ€μ΄ μμ€ν μ μ€μΉλκ³ κ²½λ‘(PATH)μ λ±λ‘λμ΄ μμ΄μΌ ν©λλ€.
- Rust: λ²μ 1.70+ (2021 μλμ ).
- Node.js & Trunk: Leptos νλ‘ νΈμλ λΉλ λ° λ²λ€λ§μ©.
- Python 3.10+:
ctranslate2,pykakasi,argparse,pyinstallerμ€μΉ νμ. - CUDA Toolkit: NVIDIA GPU κ°μμ μ¬μ©νλ €λ©΄ 11.x λλ 12.x λ²μ μ΄ νμν©λλ€.
μ΄μ λ²μ κ³Ό λ¬λ¦¬, WinDivertμ Npcap SDKλ₯Ό μλμΌλ‘ λ€μ΄λ‘λνκ±°λ .envμ κ²½λ‘λ₯Ό μ§μ ν νμκ° μμ΅λλ€. νλ‘μ νΈ λ£¨νΈμ ν¬ν¨λ μ€μ μ€ν¬λ¦½νΈκ° μ΄λ₯Ό μλμΌλ‘ μ²λ¦¬ν©λλ€.
- μλ μ€μ μ€ν¬λ¦½νΈ μ€ν:
νλ‘μ νΈ λ£¨νΈμμ
setup_libs.batλ₯Ό μ€ννμΈμ.setup_libs.bat
- μ΄ μ€ν¬λ¦½νΈλ
lib/ν΄λλ₯Ό μμ±νκ³ νμν SDK(Npcap, WinDivert)λ₯Ό μλμΌλ‘ λ€μ΄λ‘λ λ° μμΆ ν΄μ ν©λλ€. .gitignoreμ μν΄lib/ν΄λλ λ²μ κ΄λ¦¬μμ μ μΈλ©λλ€.
package.batλ₯Ό μ¬μ©νμ§ μκ³ μλμΌλ‘ λΉλν κ²½μ°, λ€μ μμλ₯Ό λ°λμ μ€μν΄μΌ ν©λλ€.
Rust λ§μ»€κ° Npcap λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμ μ μλλ‘ νκ²½ λ³μλ₯Ό μμλ‘ μ€μ ν©λλ€.
set LIB=%CD%\lib\npcap-sdk\Lib\x64;%LIB%
PyInstallerλ₯Ό μ¬μ©νμ¬ AI μμ§μ λ 립 μ€ν νμΌλ‘ λ§λλλ€. Tauriλ μ¬μ΄λμΉ΄ νμΌλͺ μ **Target Triple(νλ«νΌ μλ³μ)**μ΄ ν¬ν¨λμ΄ μμ΄μΌλ§ μΈμν©λλ€.
- λͺ
λ Ήμ΄:
.specνμΌμ μ¬μ©νμ¬ μ΅μ νλ μ€μ μ μ μ©ν©λλ€.
pyinstaller --noconfirm --clean --distpath src-tauri\bin translator.spec
- κ²°κ³Όλ¬Ό:
src-tauri/bin/translator-x86_64-pc-windows-msvc.exeμμ±.
lib ν΄λμ λ€μ΄λ‘λλ WinDivert λλΌμ΄λ²λ₯Ό μ€ν νμΌ μμΉλ‘ 볡μ¬ν©λλ€.
lib\WinDivert\x64\WinDivert.dll->src-tauri\bin\lib\WinDivert\x64\WinDivert64.sys->src-tauri\bin\
νλ‘ νΈμλ μμ°μ λ²λ€λ§νκ³ Rust λ°±μλλ₯Ό μ»΄νμΌνμ¬ μ€μΉ νμΌμ μμ±ν©λλ€.
- λͺ λ Ήμ΄:
cargo tauri buildλͺ¨λ μλ λ¨κ³λ₯Ό μλ΅νκ³ μ¦μ λ°°ν¬νμ λ§λ€λ €λ©΄ **package.bat**λ₯Ό μ¬μ©νμΈμ. μ΄ μ€ν¬λ¦½νΈλ λ€μ μμ
μ μνν©λλ€:
- μμ‘΄μ± κ²μ¬:
lib/ν΄λ νμΈ ν, μμΌλ©΄setup_libs.batμλ μ€ν. - μ¬μ΄λμΉ΄ λΉλ:
translator.specμ ν΅ν΄ AI μμ§ μ»΄νμΌ λ° λ°°μΉ. - 리μμ€ λ°°μΉ: WinDivert λλΌμ΄λ² μλ 볡μ¬.
- μ€μΉ νμΌ μμ±: Tauri λΉλ(NSIS) μ€ν.
- λ°°ν¬ μ 리 (Move & Organize): μμ±λ μ€μΉ νμΌ(
*-setup.exe)μ νλ‘μ νΈ λ£¨νΈμdistν΄λλ‘ μ΄λνμ¬ μ¦μ λ°°ν¬ κ°λ₯ν μνλ‘ λ§λλλ€.
- λͺ¨λΈ κ΄λ¦¬: μ± μ€μΉ ν 첫 μ€ν μ,
models.jsonμ μ μλ λ§ν¬λ₯Ό μ°Έμ‘°νμ¬ AI λͺ¨λΈμ μλμΌλ‘ λ€μ΄λ‘λν©λλ€. - κ΄λ¦¬μ κΆν: λ€νΈμν¬ ν¨ν· μ€λν(WinDivert)μ μν΄ μ±μ λ°λμ κ΄λ¦¬μ κΆνμΌλ‘ μ€νλμ΄μΌ ν©λλ€. (μμ±λ μ€μΉ νμΌμ μ΄λ₯Ό μλμΌλ‘ μꡬνλλ‘ μ€μ λμ΄ μμ΅λλ€.)
- μ¬μ΄λμΉ΄ λλ²κΉ
: λ§μ½ λ²μ κΈ°λ₯μ΄ μλνμ§ μλλ€λ©΄,
translator.specμconsole=Trueμ΅μ μ μΌκ³ λΉλνμ¬ Python μ½μ μ°½μμ μ€λ₯ λ©μμ§λ₯Ό νμΈνμΈμ.