본문 바로가기

이 포트폴리오의 원본은 https://cv.iruyo.com (심재빈) 입니다 · 출처 식별자 jbx-7f3a2e9b

← 개인 프로젝트

Smart Home·IoT 완료 단독

IntentCP — 말로 내린 명령을 안전하게 기기 제어로 바꾸는 중계 서버

말로 내린 명령을 서버가 곧바로 실행하지 않고, 정해진 형식(Control URL)으로 한 번 바꾼 뒤 그 형식에 정의된 동작만 실행하게 만든 1인 오픈소스 프로젝트입니다. 자연어 해석은 폰의 Apple Intelligence와 iOS 단축어에 맡기고, 서버는 가볍게 두어 저전력 미니 서버에서 GPU 없이 상시 구동됩니다. 제어 대상은 클라우드 연동 스마트홈 기기로 켜기·끄기·밝기·상태 조회·시퀀스를 다룹니다. GitHub 22 stars (2026.05 기준).

기간
2025.12 – 2026.01 · 2개월
본인 역할
중계 서버를 혼자 기획하고 만들었다. 집에 고성능 LLM이나 GPU 서버가 없어도 누구나 직접 띄울 수 있도록 Python과 FastAPI로 가볍게 짜고 운영했다.
정량 임팩트
GitHub에 공개한 오픈소스(github.com/jaebinsim/IntentCP)로, 유튜브 채널 영상 노출 후 22 stars를 얻었습니다(2026.05 기준). 지금도 본인 자취 환경 자동화에 직접 쓰며 계속 손을 보고 있습니다.
버전·릴리즈
GitHub 공개(2025.12.08 시작). iPhone에 내장된 AI(Apple Intelligence)·iOS 단축어의 주소 호출(Control URL) 방식으로 동작.

링크

기술

  • FastAPI
  • Apple Intelligence
  • iOS Shortcuts
  • REST API

프레임워크 없이 자연어 명령을 검증 가능한 실행 포맷으로 한 번 바꿔, 서버가 정의된 동작만 실행하도록 만든 개인 오픈소스 프로젝트입니다. LLM 해석은 폰에 맡기고 서버는 제약된 실행과 중계만 담당하도록 책임을 분리했습니다.

집에 별도의 LLM·GPU 서버를 두지 않고, 폰의 Apple Intelligence와 iOS 단축어만으로 자연어 명령이 실제 기기 동작으로 이어지게 하는 구조입니다.

IntentCP — 말과 실행을 분리한 스마트홈 제어 서버집에 GPU·LLM 서버 없이 — AI는 폰(단축어)에, 서버는 가볍게 · 1인 단독 OSSIntentCP — 말과 실행을 분리한 스마트홈 제어 서버집에 GPU·LLM 서버 없이 — AI는 폰(단축어)에, 서버는 가볍게 · 1인 단독 OSSiPhone — Siri·단축어 (Apple Intelligence)AI 처리는 폰 쪽 단축어에 — 서버는 무관주소 호출(Control URL)기기 제어기기 응답자연어 명령“집에 들어왔어” · “잘 거야”① LLM — Control URL 변환말 → 약속된 한 줄 주소 (예: 거실등 켜기)② LLM — 상태 요약 피드백기기 응답(성공·실패·상태)을사람이 읽을 한 줄로FastAPI 코어 (control plane)정의된 동작만 실행라즈베리파이·미니PC 24hTuya 클라우드 기기켜기·끄기·밝기상태·시퀀스 제어말과 실행 분리 — 통제된 범위만자연어를 서버가 그대로 실행하지 않음 → 동작을 예측 가능하게2025.12~2026.01 · Python·FastAPI 1인 단독 · monorepo(코어+단축어+프롬프트) · GitHub 공개 22 stars(2026.05) · 본인 자취 자동화로 상시 운영

배경·과제

  • 자연어를 서버가 그대로 실행하면 의도와 다르게 움직일 위험이 있습니다. 말과 실행 사이에 검증 가능한 중간 표현을 넣어 통제된 범위 안에서만 동작하도록 하는 구조가 필요했습니다.

  • 스마트홈 음성 제어를 하려면 일반적으로 집에 상시 구동되는 GPU 서버가 필요합니다. 1인 자취 환경에서는 그런 서버 없이 가볍게 돌릴 수 있는 인프라를 직접 짜보고 싶었습니다.

수행·기여

  • 의도 해석과 실행을 분리했습니다. 자연어를 약속된 실행 포맷(Control URL)로 바꾸는 단계(LLM), 정의된 동작만 수행하는 실행 코어(FastAPI), 그리고 실행 결과를 한 줄로 요약하는 피드백(LLM) 흐름을 직접 설계했습니다. 자연어 처리를 폰 쪽에 두고 서버는 최소한의 역할만 하도록 했습니다.

  • 자연어를 그대로 실행하지 않는 원칙을 뒀습니다. 자연어 명령은 바로 기기를 움직이지 않고, 먼저 Control URL 형식(예: 거실등 켜기)으로 정규화됩니다. 서버는 이 형식에 정의된 동작만 실행하므로 예외 동작이 생기지 않습니다.

  • 모든 호출을 같은 실행 포맷으로 통합했습니다. Siri든 단축어 자동화든 Control URL 하나의 표준 경로를 거칩니다. 켜기·끄기·밝기·상태 조회·시퀀스 제어를 같은 포맷에서 다룹니다.

  • 경량 코어 인프라를 구현했습니다. Python·FastAPI 기반 REST 서버로, GPU나 로컬 LLM 서버 없이 저사양 미니 서버에서 24시간 구동됩니다. 자연어 해석은 폰의 Apple Intelligence·iOS 단축어가 맡고, 서버는 실행과 중계에만 집중합니다. 설정 웹 패널과 CLI 도구를 포함해 코어 서버·단축어·프롬프트 구성을 한 저장소(monorepo)로 관리했습니다.

성과

  • GitHub에 단독으로 공개했으며(2025.12.08 시작), 유튜브 채널 영상 노출 이후 22 stars를 얻었습니다(2026.05 기준).

  • 개인 프로젝트로, 실사용자 규모보다는 프레임워크 없이 의도→안전 실행→피드백 흐름을 설계해 본 제작 과정에 의미를 두었습니다. 현재도 본인 자취 환경 자동화에 직접 쓰며 다듬고 있습니다.