πŸ§‘β€πŸ’» 개발 κ°€μ΄λ“œ

이 λ¬Έμ„œλŠ” 살가이 ν”„λ‘œμ νŠΈμ˜ 전체 μ‹œμŠ€ν…œ ꡬ성과 개발 과정을 μ²΄κ³„μ μœΌλ‘œ μ†Œκ°œν•©λ‹ˆλ‹€.
ν”„λ‘ νŠΈμ—”λ“œ, λ°±μ—”λ“œ, AI λͺ¨λΈ, ν•˜λ“œμ›¨μ–΄, ν΄λΌμš°λ“œ μΈν”„λΌκΉŒμ§€ μ‚΄κ°€μ΄μ˜ 기술적 핡심 μš”μ†Œλ“€μ„ μ΄ν•΄ν•˜κ³ , 직접 κ΅¬ν˜„ν•  수 μžˆλ„λ‘ λ‹¨κ³„λ³„λ‘œ μ•ˆλ‚΄ν•©λ‹ˆλ‹€.


πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰 μš”μ•½

μ‚΄κ°€μ΄λŠ” λ‹€μŒκ³Ό 같은 μ„Έ κ°€μ§€ 핡심 μ»΄ν¬λ„ŒνŠΈλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€:

  • 라즈베리파이 (RPi): μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‹΄λ‹Ήν•˜λ©°, μŒμ„± 감지, λ…ΉμŒ, 볡약 μ•Œλ¦Ό λ“± 직접적인 μƒν˜Έμž‘μš© κΈ°λŠ₯을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  • EC2 μ„œλ²„: FastAPI 기반의 λ°±μ—”λ“œ μ„œλ²„λ‘œ, STT 및 TTS μš”μ²­ 처리, μ‚¬μš©μž 정보 및 볡약 이λ ₯ μ €μž₯, ν”„λ‘ νŠΈμ—”λ“œ ν˜ΈμŠ€νŒ…μ„ λ‹΄λ‹Ήν•©λ‹ˆλ‹€.
  • GCP μ„œλ²„: LLaMA 기반 LLM λͺ¨λΈμ„ νƒ‘μž¬ν•œ μΆ”λ‘  μ„œλ²„λ‘œ, 볡약 μ—¬λΆ€ 및 건강 κ΄€λ ¨ λ°œν™” 뢄석을 μ²˜λ¦¬ν•©λ‹ˆλ‹€.

λͺ¨λ“  μ»΄ν¬λ„ŒνŠΈλŠ” REST API 기반으둜 ν†΅μ‹ ν•˜λ©°, 고령자 μΉœν™”μ„±κ³Ό μ‹€μ‹œκ°„ 응닡성을 κ³ λ €ν•˜μ—¬ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

살가이 μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨ κ·Έλ¦Ό-살가이 μ•„ν‚€ν…μ²˜ λ‹€μ΄μ–΄κ·Έλž¨ β€”

πŸ”§ 1. μ‹œμž‘μ— μ•žμ„œ

πŸ“Œ 곡톡 개발 ν™˜κ²½

개발 ν™˜κ²½ 섀정법

  • Python 3.10 이상
  • Node.js 18 이상
  • pip / npm
  • pm2 (λ°±μ—”λ“œ ν”„λ‘œμ„ΈμŠ€ κ΄€λ¦¬μš©)

☁️ ν΄λΌμš°λ“œ 인프라 ꡬ성

ꡬ성 μš”μ†Œ ν”Œλž«νΌ μ—­ν• 
EC2 AWS λ°±μ—”λ“œ API μ„œλ²„ 및 ν”„λ‘ νŠΈμ—”λ“œ 정적 파일 ν˜ΈμŠ€νŒ…
GCP Google LLM 기반 AI μΆ”λ‘  μ„œλ²„
RPi 둜컬 μ‚¬μš©μž μŒμ„± μΈν„°νŽ˜μ΄μŠ€ 및 λ””λ°”μ΄μŠ€ μ œμ–΄

πŸ” 전체 데이터 흐름

[RPi]
 ↓ λ…ΉμŒ
[EC2 - STT 처리 및 API]
 ↓ ν…μŠ€νŠΈ
[GCP - LLM 뢄석]
 ↓ ν…μŠ€νŠΈ
[EC2 - νŒŒμ‹± 및 TTS 생성]
 ↓ μŒμ„±
[RPi - μŒμ„± ν”Όλ“œλ°± μž¬μƒ]

이 κ΅¬μ‘°λŠ” 각 κΈ°λŠ₯이 λ…λ¦½μ μœΌλ‘œ μž‘λ™ν•˜λ©΄μ„œλ„ REST APIλ₯Ό 톡해 유기적으둜 μ—°κ²°λ˜λ„λ‘ κ΅¬μ„±λ˜μ–΄ μžˆμ–΄, κΈ°λŠ₯ ν™•μž₯μ΄λ‚˜ μœ μ§€λ³΄μˆ˜μ— μœ λ¦¬ν•©λ‹ˆλ‹€.


βš™οΈ 2. λ°±μ—”λ“œ (FastAPI)

살가이 ν”„λ‘œμ νŠΈ λ°±μ—”λ“œ Github

μ‚΄κ°€μ΄μ˜ λ°±μ—”λ“œ μ„œλ²„λŠ” FastAPI 기반으둜 κ΅¬μΆ•λ˜μ—ˆμœΌλ©°, μ‚¬μš©μž 인증뢀터 μŒμ„± 데이터 μ²˜λ¦¬κΉŒμ§€ λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

  • μ£Όμš” μ—­ν• :
    • μ‚¬μš©μž 등둝 및 인증
    • 볡약 기둝 및 μŠ€μΌ€μ€„ 관리
    • STT 데이터 μˆ˜μ‹  및 TTS 파일 λ°˜ν™˜
    • LLM 처리 μœ„ν•΄ GCP μ„œλ²„μ™€ 톡신
  • λ°μ΄ν„°λ² μ΄μŠ€: ν˜„μž¬λŠ” SQLite μ‚¬μš© (가볍고 관리 용이).
    ν–₯ν›„ μ•ˆμ •μ„±κ³Ό ν™•μž₯성을 κ³ λ €ν•΄ PostgreSQL 이관을 κ²€ν†  μ€‘μž…λ‹ˆλ‹€.

🎨 3. ν”„λ‘ νŠΈμ—”λ“œ (React + Vite + TailwindCSS)

살가이 ν”„λ‘œμ νŠΈ ν”„λ‘ νŠΈμ—”λ“œ Github

ν”„λ‘ νŠΈμ—”λ“œλŠ” React와 Vite, TailwindCSS 기반으둜 κ΅¬μΆ•λ˜μ–΄ 있으며, κ³ λ Ή μ‚¬μš©μžλ₯Ό κ³ λ €ν•œ ν‚€μ˜€μŠ€ν¬ μŠ€νƒ€μΌμ˜ UIλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

  • μ£Όμš” νŠΉμ§•:
    • λ‹¨μˆœν•˜κ³  λͺ…ν™•ν•œ λ²„νŠΌ μ€‘μ‹¬μ˜ UI
    • 볡약 μ‹œκ°„ ν‘œμ‹œ 및 ν”Όλ“œλ°± κΈ°λŠ₯
    • μ–΄λ₯΄μ‹ λ“€κ»˜ μ΅œμ ν™”λœ μΈν„°νŽ˜μ΄μŠ€ ꡬ성

λ””μžμΈμ€ Material UI와 TailwindCSSλ₯Ό ν˜Όν•©ν•΄ μ‚¬μš©ν•˜μ—¬, λΉ λ₯Έ 개발과 μœ μ—°ν•œ μŠ€νƒ€μΌλ§μ΄ κ°€λŠ₯ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.


🧠 4. AI μ„œλ²„ 및 λͺ¨λΈ (GCP 기반)

살가이 ν”„λ‘œμ νŠΈ AIμ„œλ²„ 및 λͺ¨λΈ Github

μ‚΄κ°€μ΄μ˜ 핡심 뢄석 κΈ°λŠ₯은 GCP에 μœ„μΉ˜ν•œ AI μΆ”λ‘  μ„œλ²„μ—μ„œ μˆ˜ν–‰λ˜λ©°, LLaMA 기반 LLM을 ν™œμš©ν•©λ‹ˆλ‹€.

  • μ‚¬μš© λͺ¨λΈ: MLP-KTLim/llama-3-Korean-Bllossom-8B
  • 운영 방식: GCP VM μΈμŠ€ν„΄μŠ€μ—μ„œ FastAPI 기반 μΆ”λ‘  API μ‹€ν–‰

πŸ€– μ£Όμš” κΈ°λŠ₯

  • μžμ—°μ–΄ λ°œν™”λ‘œλΆ€ν„° 볡약 μ—¬λΆ€(T/F), μ‹œμ  μΆ”λ‘ 
  • 상황 λΆ„λ₯˜(Text Classification)λ₯Ό ν†΅ν•œ ν”„λ‘¬ν”„νŠΈ μžλ™ 선택
  • 상황에 μ•Œλ§žμ€ λ‹΅λ³€

이 κ΅¬μ‘°λŠ” λ³΅μž‘ν•œ λͺ…λ Ήμ–΄ 없이도 자유둜운 μ‚¬μš©μž 응닡 처리λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜λ©°, μ‹€μ œ λŒ€ν™”μ— κ°€κΉŒμš΄ μžμ—°μŠ€λŸ¬μš΄ μƒν˜Έμž‘μš©μ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ”Œ 5. ν•˜λ“œμ›¨μ–΄ 연동 (라즈베리파이)

살가이 ν”„λ‘œμ νŠΈ ν•˜λ“œμ›¨μ–΄ Github

λΌμ¦ˆλ² λ¦¬νŒŒμ΄λŠ” 살가이 μ‹œμŠ€ν…œμ˜ ν”„λ‘ νŠΈλΌμΈ λ””λ°”μ΄μŠ€λ‘œ, μ‹€μ œ μ‚¬μš©μžκ°€ λ§ˆμ£Όν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€ 역할을 ν•©λ‹ˆλ‹€.

  • 톡합 μž₯치:
    • 마이크 (arecord, pyaudio) β€” μŒμ„± λ…ΉμŒ
    • μŠ€ν”Όμ»€ (mpg123, aplay) β€” μŒμ„± ν”Όλ“œλ°± μž¬μƒ
    • Wake Word 감지 (pvporcupine) β€” β€œμ‚΄κ°€μ΄β€
    • LED, λ²„νŠΌ, λ””μŠ€ν”Œλ ˆμ΄ β€” μ‹œκ°μ  ν”Όλ“œλ°± 및 μƒν˜Έμž‘μš©

πŸ“‹ 볡약 루틴 처리 흐름

  1. μŠ€ν”Όμ»€κ°€ 인사
  2. 식사 μ—¬λΆ€ 확인
  3. 볡약 μ‹œκ° μ•Œλ¦Ό
  4. 5λΆ„ ν›„ 볡약 μ—¬λΆ€ μž¬ν™•μΈ
  5. 미응닡 λ˜λŠ” 미볡약 μ‹œ 10λΆ„ 간격 3회 μΆ”κ°€ 확인

Wake Word와 볡약 루틴은 λΉ„λ™κΈ°μ μœΌλ‘œ μ‹€ν–‰λ˜λ©°, 마이크 μžμ› 좩돌 λ°©μ§€λ₯Ό μœ„ν•΄ mic_lock 동기화 μ²˜λ¦¬κ°€ κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.


βœ… 마무리

이 개발 κ°€μ΄λ“œλŠ” 살가이 ν”„λ‘œμ νŠΈμ˜ μ „λ°˜μ μΈ 기술 ꡬ쑰λ₯Ό μ΄ν•΄ν•˜κ³ , 직접 개발 ν™˜κ²½μ„ κ΅¬μ„±ν•˜κ±°λ‚˜ κΈ°λŠ₯을 ν™•μž₯ν•˜κ³ μž ν•˜λŠ” κ°œλ°œμžμ—κ²Œ μ‹€μ§ˆμ μΈ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
전체 흐름을 λ‹¨κ³„μ μœΌλ‘œ 따라가면, 볡약 μ•Œλ¦Ό AI μŠ€ν”Όμ»€ μ‹œμŠ€ν…œμ„ 완성도 있게 κ΅¬ν˜„ν•˜κ³  μ•ˆμ •μ μœΌλ‘œ μš΄μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


Table of contents