λ°κ΅¬λ (Baguni)
μν°ν΄ μ 보
- λ₯μ§
- Tool & Service
- λΆλ₯
- Personal
- λ±λ‘μΌ
- 2024-07-04 02:18:51
- GitHub: https://github.com/redgoose-dev/baguni
- Date: 2024.03 ~ 2024.07
μμ¦μ AI κΈ°μ μ΄ κ°μ₯ λ§μ΄ λ¨κ³ μκ³ AIκ° λ§λ κ²°κ³Όλ¬Όμ΄ λ²λνκ³ μλ μλλ€.
μ¬νκΉμ§ μ¬λμ΄ λ§λ€μ΄μ¨ μ°½μλ¬Όμ μ νλ€ κ·Έ μΈμ μ‘΄μ¬κ° λ§λ μ°½μλ¬Όμμ λλ¨ν μ μ ν¨μ λκ»΄ μ€ν¬λ©μ κ½€ λ§μ΄ νκ² λμλ€. λμ§νΈ μνΈμν¬ μ΄λ―Έμ§λ€μ μ€ν¬λ©νλ©΄μ ꡬ경νλ μ¬λ―Έλ μκ³ , λ°μμ λνμ¬ λ§μ κ²μ λκ»΄μλ€.
μ§κΈκΉμ§ κ°μΈ μ»΄ν¨ν°λ redgoose note μλΉμ€μ ν¬μ€ν
νλ©΄μ μ€ν¬λ© ν΄μ€κ³ μμλλ° μ΄λ―Έμ§λ₯Ό νλνλ λ±λ‘νλ μΌμ΄ μλΉν νΌκ³€νκ² λκ»΄μ§κ³ μ λλ‘ μ λ¦¬κ° μ λλ κ±Έ κΉ¨λ¬μλ€.
κ·Έλμ μ€ν¬λ©νκ±°λ λ€λ₯Έ νμΌλ€μ 보κ΄κ³Ό νμμ λͺ©μ μΌλ‘ νλ ν΄μ λ§λ€μλ μμ΄λμ΄λ₯Ό μ¬λ¬ λ² μμ±ν΄μλ€. μ΄μ©λ©΄ FUI 리μμ€λ₯Ό 보κ΄νκ±°λ μμ±νλ ν΄μ λ§λλ €λ€κ° λ¨Όμ 보κ΄νλ λΆλΆμ λ¨Όμ λ§λ€μ΄μΌκ² λ€λ νμμ±μ λκΌλ κ² κ°λ€.
λΆλμ μ μ΄λ ꡬμλΆν° λμμΈ, κ°λ°κΉμ§ λͺ¨λ νΌμμ μ§ννλ€ λ³΄λ μμ΄ λ§μ΄ κ°λ€.
ꡬμνκΈ°
λ§λ€κΈ°λ‘ λ§μλ¨ΉκΈ° μ μ λ
ΈνΈμλ€ μ¬λ¬ κ΅°λ° λμ μ¬λ κ²μ΄ μμ΄μ μ‘°κ°λ€μ λͺ¨μ보μλ€.
μκ°μ λ€λ¬μΌλ©΄μ ν΄μ λͺ©μ μ±μ λͺ
νν νλ©΄μ κΈ°μ μ μΈ λΆλΆλ€λ μ΄λ»κ² ꡬμ±ν μ§κΉμ§ λλ΅μ μΈ λΆλΆλΆν° νμ€μ μ΄κ³ λν
μΌν λΆλΆκΉμ§ ꡬμνλ©° λ¬Έμλ€μ μ μ΄λκ°λ€.
Adobe Bridge ν΄μ λ μ¬λ¦¬λ©΄μ κΈ°λ₯λ€μ λμ΄ν΄λ³΄μλ€. κΈ°λ₯ μ μκ° λ¨Όμ μ§νμ΄ λμ΄μΌ κΈ°μ κ²ν μμ νμ ν μ μκ² λλ€. λ€μμ ν΄μμ λ§λ€ μ£Όμ κΈ°λ₯μ΄λ€.
- νμΌ λ°μ΄ν° κ΄λ¦¬
- κ°μΈμ μΈ κ³΅κ°μμ μ¬μ©νκΈ°
- μ΄λ―Έμ§ λ° νμΌ λ±λ‘
- μΉ λΈλΌμ°μ μμ μ¬μ©νκΈ°
- μ λ‘λν λ©μΈ νμΌμμ μ λͺ©κ³Ό μ€λͺ κ°μ μ λ³΄λ€ ν¬ν¨
- νκ·Έ
- κ²μ λ° νν°λ§, μ λ ¬
- 컬λ μ μΌλ‘ κ°μ μ£Όμ λ‘ λ΄μλκΈ°
- νμΌ λ°μ΄ν° 볡μ¬νκΈ°, λ€μ΄λ‘λ λ° κ³΅μ νκΈ°
μ΄λ κ² μ¬μ©νμΌλ©΄ νλ κΈ°λ₯λ€μ λμ΄νλ νμΌμ 보κ΄ν μ μμ΄μΌ νκ³ λ°μ΄ν°λ² μ΄μ€μ μΈμ¦ κΈ°μ μ΄ νμνλ€. κ·Έλμ μ€λ μκ°μ κ³ λ―Όνλ€κ° λ€μκ³Ό κ°μ κΈ°μ μ€νμ ꡬμνκ² λμλ€.
- sqlite: νμ MySQLμ μ¬μ©ν΄μλλ° μ΄κ²μ μΊ‘μνμν€λ λ° λ§μ κ±Έλ¦Όλμ΄λΌλ κ±Έ λκ»΄ κ°λ²Όμ΄ λ°μ΄ν°λ² μ΄μ€λ‘ μλ‘ νμ΅νλ©΄μ μ¬μ©ν΄λ³Ό μκ°μ΄μλ€.
- bun: λ³΄ν΅ npm, yarn κ°μ κ²μ μ¬μ©ν΄μλλ° νλ‘λμ μμ μ¬μ©ν λ μ§λμΉκ² λ리λ€. bunμ΄λ μλ μ°¨μ΄κ° 10λ°° μ΄μ λλ κ²μ΄ λΉλ§μ΄ μλ μ λλ€.
- vite: κΈ°λ₯κ³Ό μ±λ₯, μμ±λκ° κ°μ₯ μ λΉν΄μ μΈμ λ μ μ©νκ³ μλ€.
- api + client: μλ² μμμμ λ―Έλ€μ¨μ΄λ‘ μΌλΆ λΌμ°ν°λ₯Ό viteλ‘ μ¬μ©ν μ μλ€. SSRκ³Ό κ΄λ ¨λ λ°©μμ μ¬ννκ² μ¬μ©νλ©΄ κ°λ₯νλ€.
κΈ°μ μ€νμΌλ‘ κ°λ° κ°λ₯μ±κ³Ό λλ΅μ μΌλ‘ νλ‘μ νΈ κ΅¬μ±μ μ΄λ»κ² ν κ²μΈμ§μ κΈ°λ‘ν΄λλ©΄μ μμ΄μ΄νλ μκΉμ§ κ·Έλ¦¬κ³ λ€μ λ¨κ³λ‘ λμ΄κ°λ€.
λμμΈ
λμμΈ μμ
λ¨κ³μμ νλ©΄μ κ³§μ₯ λ§λ€μ§λ μμκ³ λ²νΌμ΄λ μ
λ ₯ νΌ κ°μ μ»΄ν¬λνΈ μμλ€μ λ¨Όμ λ§λλ μΌλ‘ μμνλ€.
μ΄λ€ μ»΄ν¬λνΈκ° νμνμ§ λ¦¬μ€νΈμ
μ λ¨Όμ ν΄λκ³ μ μμ λ€μ΄κ°λ€.
μ΄λ κ² λ€λ₯Έ μλΉμ€λ λμμΈλ€μ λͺ¨μλκ³ μ΄λ€ μ€νμΌμ΄λ μμ μ¬μ©ν μ§μ λνμ¬ νμ μ§λ λ§μ§λ§μΌλ‘ κ³ λ―Όνλ λ¨κ³λ λ§μ°¬κ°μ§λΌμ μ΄λ κ² λ νΌλ°μ€λ₯Ό μ’ λ§μ΄ λ³΄κ³ κ³ λ―Όν΄λ³Έλ€.
μΌλ¨ μ ν νμ§ μκ³ μ§λ¦¬μ§ μμΌλ €λ©΄ λ°°κ²½μμ νμ΄νΈλ‘ λ§λ€κΈ°λ‘ νλ€. λ€ν¬ λͺ¨λ μ§μμ μμ
λμ΄ λμ΄λκΈ° λλ¬Έμ λ§λ€μ§ μκΈ°λ‘ νμ¬ λ¨κ³μμ νμ μ§μ΄λμλ€.
κ·Έλ¦¬κ³ ν€ μ»¬λ¬λ λΆλλ¬μ΄ μ²λ‘μμΌλ‘ μ¬μ©νκ² λμλ€. μ²λ‘μμ λ³΄ν΅ μ±λκ° λλ¨ν λμμ μ λͺ
νκ² λκ»΄μ§λ€ 보λ λ무 κ°ν μ μκΈ° λλ¬Έμ λ°κΈ°λ₯Ό μ¬λ¦¬λ©΄μ ν΄μνλ€. (μ±λλ₯Ό μ§λμΉκ² λ¨μ΄λ¨λ¦¬λ©΄ μΉμΉνκ³ μμ΄ μ£½μ΄λ²λ¦°λ€.)
μμ μ νκ³ μ»΄ν¬λνΈλ₯Ό νλμ© λ§λ€λ©΄μ μ€νμΌλ€μ μ’ λ ꡬ체νν΄κ°λ€. λ©΄μ μμ λ°°κ²½μμΌλ‘ μ¬μ©νλ©΄μ λμ κ·Έλ¦Όμλ‘ κ΅¬λΆ μ§μλ€. ν€ μ»¬λ¬κΉμ§ λ°μΌλ©΄μ λΆλλ¬μ΄ μμ μ¬μ©νλ€ λ³΄λ μ½ν μΈ μ΄λ―Έμ§μκ² μμ μ λΊκΈ°μ§ μκΈΈ μνλ€.
μμ΄μ½μ μ²μμλ Featherλ₯Ό μ¬μ©ν΄μμμ§λ§ κ°λ° μμ νλ©΄μ Lucideλ‘ κ΅μ²΄νκ² λμλ€. μμ΄μ½μ μ’ λ₯κ° μ μ΄μ μμ¬μ κ³ λ μ΄μ μ λ°μ΄νΈκ° μ λμ΄ μλ‘μ΄ μ€νμμ€ μμ΄μ½μΌλ‘ λμ¨ κ²μΈλ° λλ¨ν λ§μ‘±μ€λ½λ€.
μ»΄ν¬λνΈλ₯Ό μ μνκ³ νμ΄μ§λ€μ νλμ© μ μν΄λ³΄μλ€.
λΆλͺ
ν μ€μ λ‘ κ°λ°νλ€κ° κ³ μ³μ§λ κ²λ€μ΄ λ§μμ§μ§λ§ κΈ°μ΄λ‘ λ§λ€μ΄μ§ λͺ¨μ΅μΌλ‘ μ¬μ©ν λ κΌ μ§νν΄μΌ ν κ³Όμ μ΄ μ΄λ° λμμΈ μμ
μ΄λ€.
κ°λ° μμ μμ λ°©ν₯μ μμ§ μκΈ° μνμ¬ μ΄λ κ² λμμΈ μμ λ μΆ©μ€νκ² μ§ννλ κ² κ°λ€.
κ°λ°
νλ©΄ λμμΈκΉμ§ μ§νμ΄ λμμΌλ μ΄λ€ μμκ° λ€μ΄κ°κ³ κΈ°λ₯λ€μ΄ λ§λ€μ΄μ§λμ§ κ±°μ νμ λ κ±°λ λ§μ°¬κ°μ§λΌμ λ°μ΄ν°λ² μ΄μ€μ μ¬μ©λ ν
μ΄λΈκ³Ό νλλ€μ μ€κ³νλ μΌμ΄ μ¬μμ§λ€.
κ·Έλμ λ¨Όμ λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈκ³Ό νλ μ€κ³λΆν° μμνλ€. μ²μμΌλ‘ ERD νκΈ°λ²μΌλ‘ κ·Έλ €λ΄€λ€. μ΄λ° κ±°μ νΉνλ ν΄λ μ‘΄μ¬ν΄μ μ무거λ μ΄μ©νμ¬ μ κ·Έλ €λ³΄μλ€.
μ¬νκΉμ§ λ§€ν ν μ΄λΈ κ°μ μμλ μ¬μ©ν΄λ³Έ μ μ΄ μμμ§λ§ νκ·Έ κΈ°λ₯μ μνμ¬ λ§€ν ν μ΄λΈμ μ κ·Ήμ μΌλ‘ μ΄μ©νκΈ°λ‘ νλ€. μ΄λ° λ§€ν ν μ΄λΈμ μ΄μ©νκ² λλ€λ©΄ μ‘°μΈ κΈ°λ₯λ€μ μ¬μ©νμκ³ λ§μλ¨Ήμ λ μ’ λΆμνκΈ°λ νλ€. μ λλ‘ κ΅¬νν μ μμμ§μ μ±λ₯μμ λ¬Έμ κ° λμ§ μμκΉ.. νκ³ ..
λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€κ³νκ³ λ°λ‘ API μ£Όμ λΌμ°νΈλ₯Ό μ νκ³ API κ°λ°λΆν° μμνλ€.
λμμΈ νλ©΄μ 보면 μ΄λ»κ² λ°μ΄ν°λ₯Ό λ겨주λμ§ μμΈ‘νκΈ° λλ¨ν μ¬μμ API λ¨Όμ λ§λλ κ² λΆλ΄ μμλ€.
μλ² νλ‘κ·Έλ¨μ νμ PHPλ‘ κ°λ°ν΄μ€λ€κ° μ΄λ²μλ node.js νμ
μΌλ‘ κ°λ°μ νκ² λλ 첫 κ²½νμ΄λ€. Bunμ΄ node.jsλ κ°μ΄ μ¬μ©ν μ μλ€ λ³΄λ κ·Έμ node.jsλ‘ κ°λ°νλ©΄μ μΆκ°μ μΈ Bun APIλ€μ λ¬Έμλ₯Ό μ°Έκ³ νλ©΄μ κ°λ°μ μμνλ€.
SQLite λ°μ΄ν°λ² μ΄μ€λ μ²μ μ¬μ©ν΄λ³΄λ€ 보λ λλΆλΆ λ¬Έμμ μμ§νλ€κ° μν©μ μ€λͺ
νκ³ μ§λ¬Έμ ν λ λ΅μ μ»λ κ²μ κ²μμμλ λΆκ°λ₯νμ§λ§ νμ±μ²λΌ λνλ ꡬμμλ AIλ€. γ
γ
νΉλ³ν μν©μ μ€λͺ
νκ³ λͺ©μ μ μ μ λ¬ν΄μ£Όλ©΄ λλΆλΆμ μνλ λͺ¨μ΅μΌλ‘ μμ€ μ½λμ μ€λͺ
μ μλ €μ€λ€.
sql 쿼리μ join ꡬ문 κ°μ κ²λ€μ λ€ μ²μ κ²½νν΄μ μ«λ Έλλ° AI μ΄μμ€ν΄νΈμκ² λμ λ°μμ sql μΏΌλ¦¬λ€ μ£λ€ λ§λ€μ΄μ μ¬μ©νκ² λμλ€. μ§μ§ μνλ κ²λ€μ ν΄κ²°ν μ μλ λ¨μμ μ리μ΄κΈ° λλ¬Έμ κ±°κΈ°μμ ννΈλ₯Ό μ»κ³ μμ©λ§ ν μ μμΌλ©΄ λλ μ§ λ€ λμλ€.
κ°λ AIκ° λͺ» μμλ£κ±°λ μλ±νκ² λ΅λ³ν΄μ£ΌλλΌλ μν©μ΄λ λ¨μλ₯Ό λ μΆκ°ν΄μ£Όλ©΄ μνλ λ΅λ³μ κ°κΉμμ§κΈ° λλ¬Έμ μ§λ¬Έμ΄ μ€μνλ€λ κ²μ λ§μ΄ κΉ¨λ«κ² λλ κ²½νμ΄μλ€.
API κ°λ°μ λλ΄κ³ μ°μ μ λ²νΌκ³Ό μ
λ ₯ νΌ κ³΅ν΅ μ»΄ν¬λνΈλ€μ λ¨Όμ λ§λ€μ΄λμλ€.
μμ μ λ§λ€μλ νλ‘μ νΈ μμ€ μ½λλ₯Ό μ°Έκ³ νλ©΄μ λμμΈκ³Ό νλμ μΈ μ κ·Όμ±μ λ§μΆ°μ μλ‘ μ μνλ€. λν
μΌμ μνμ¬ κΌ νμν κ³Όμ μ΄μκ³ μμ
κ³Όμ μ΄ κ½€ κΈΈμλ€.
ν΄λΌμ΄μΈνΈ μμ λΌμ°ν° μ£Όμλ₯Ό λ§λ€λ©΄μ μΌλ¨ λμμΈμμ νΌλΈλ¦¬μ±λΆν° μ μμνλ€.
λ¨Όμ νλ©΄ νΌλΈλ¦¬μ±μ λμμΈ νλ©΄ μ λΆ λ§λ€κ³ κ·Έ νμ API μ°λκ³Ό 컨νΈλ‘€ μμ
μ νλ λ°©μμΌλ‘ μ§ννλ€. λμμΈ νλ©΄μμ λΉλ‘μ λΈλΌμ°μ νλ©΄μμ λ³Ό μ μλ€λ μ μμ μ§μ§ ν΄μ μ¬μ©ν μ μλ€λ νμ€κ°μ΄ λλ¬λλ€.
μ¬νκΉμ§ μμ μ ν΄μ€λ©΄μ νμν νλ©΄μ΄λ κΈ°λ₯λ€μ μΆκ°νκ±°λ μμ νλ μΌλ€μ΄ μΌμ΄λλ©΄ λ°λ‘λ°λ‘ μ½λλ‘ μ μ©νλ©΄μ μμ±λλ₯Ό μ¬λ €κ°λ€.
UI μ μμ μ λΆ λλ΄κ³ μ΄μ μλͺ
μ λΆμ΄λ£μ΄μ€ API μ°λκ³Ό μμλ€ μ΄λ²€νΈ 컨νΈλ‘€ μμ
λ€μ μ§ννλ©΄μ κΈ°λ₯λ€μ μ€μ§μ μΌλ‘ μ¬μ©νλ©΄μ API λ€μ λ€λ¬μ΄κ°λ€.
λ°μ΄ν° νμ νν°λ§μ΄ λ§μμ§μλ‘ sql 쿼리 κΈΈμ΄κ° κΈΈμ΄μ§λλ° κ³Όμ° μ΄λλ λλ.. μΆμ κΈ°λΆμ΄λ€.
λΆλͺ ν νλ©΄μ λͺ κ° λμ§ μμ§λ§ κΈ°λ₯μ λ°λμ μμ±λλ₯Ό μ¬λ¦¬λ€ 보λ μκ°μ΄ λ§μ΄ κ±Έλ¦¬κ³ λ§μ μ§μ€μ΄ νμνλ€.
κΈ°μ΄μ μΈ κΈ°λ₯μ΄ μλν μμ€μΌλ‘ 1.0 λ²μ μΌλ‘ κ°λ°μ λ§λ¬΄λ¦¬ μ§μλ€.
λ°°ν¬ λ° λ§λ¬΄λ¦¬
μ΄ νλ‘κ·Έλ¨μ λ°°ν¬ν΄μΌ ν μλ²κ° Dockerλ‘λ§ λμκ°κ³ μκΈ° λλ¬Έμ μ΄λ―Έμ§λ₯Ό λ§λ€μ΄μΌ ν νμκ° μμλ€.
λ§€μΌ λ컀λ₯Ό μ¬μ©νλ νΈμ΄ μλλΌμ λͺ¨λ 리μ λ μνμμ λ컀 μ΄λ―Έμ§ νμΌ μ μκ³Ό 컨ν μ΄λλ₯Ό μ΄μ΄λ³΄λ©΄μ ν μ€νΈλ₯Ό νκ² λμλ€. μ½κ°μ μ½μ§μ μ’ νλ€ λ³΄λ λ컀 μ΄λ―Έμ§λ₯Ό λ§λ€κ³ μλ²μ μ¬λ¦¬λ©΄μ λ§μΉ¨λ΄ μ§μ§ μ¬μ©ν μ μλ λͺ¨μ΅μΌλ‘ ν΄μ μ¬μ©ν μ μκ² λμλ€.
μ¬μ©ν΄λ³΄λ©΄μ νμν μμ μμλ€μ μμ νκ³ λ³΄μΆ©νκ³ README λ¬Έμλ₯Ό μμ±νλ©΄μ λ°κ΅¬λ μ μμ λλ΄κ² λμλ€.
μλΉμ€λΌλ κ²μ΄ νλ² λ§λ€κ³ λλ΄λ κ²μ μλκ³ μ¬μ©ν΄λ³΄λ©΄μ λ¬Έμ μ μ΄ λ°μνλ©΄ κ³ μΉκ³ κ°μ ν κ²μ΄ μμΌλ©΄ κΈ°λ₯μ λ§λ€μ΄κ°λ©΄μ μ°λ κ²μ΄ ν΄μ΄λκΉ..
λͺ λ¬κ° λ§λ€μλ λμ΄ μ μ¬μ©λμμΌλ©΄ μ’κ² λ€.