본문 바로가기

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

← 개인 프로젝트

iOS App 완료 단독

ShortKit — 물리 이벤트 Trigger Plane (iBeacon → Webhook)

비콘 진입·이탈을 감지해 지정한 URL을 자동 호출하는 iOS 앱입니다. 감지와 실행을 분리해, 호출을 받을 수 있는 곳이면 스마트홈이든 Notion이든 연결할 수 있습니다. 1인 제작입니다.

기간
2025.11 – 2026.02 · 4개월
본인 역할
iBeacon 영역에 들어오고 나가는 순간을 감지해, 미리 등록해 둔 webhook URL을 호출하는 iOS 앱을 혼자 만들었다.
정량 임팩트
GitHub 공개 OSS(github.com/jaebinsim/ShortKit)로 2025.11.20부터 운영 중이며, 감지 앱 ShortKit과 실행 앱 IntentCP를 함께 구성해 '비콘 감지 → 주소 호출 → 스마트홈 제어'의 한 흐름을 혼자 구현했습니다. 유튜브 자취남 채널 영상(2026.01.30)의 자동화 시연에도 직접 사용했습니다.
버전·릴리즈
GitHub 공개 OSS (2025.11.20 시작·운영 중)

링크

기술

  • iBeacon
  • Webhook
  • Core Location

물리 이벤트(iBeacon 근접)를 감지하면 미리 정의한 URL이나 Webhook을 자동 호출하는 트리거 앱을 설계해 공개했습니다. 감지(Trigger Plane)와 실행을 분리해, 실행 대상을 특정 서버에 묶지 않도록 만들었습니다.

ShortKit — iBeacon 근접 감지로 자취 자동화감지 앱(ShortKit) + 실행 앱(IntentCP)을 나눠 한 벌 구성 · webhook URL로 범용 연동 · 1인 OSSShortKit — iBeacon 근접 감지로 자취 자동화감지 앱(ShortKit) + 실행 앱(IntentCP)을 나눠 한 벌 구성 · webhook URL로 범용 연동 · 1인 OSSShortKit — 감지 앱 (Swift)CoreLocation region monitoring스마트홈 제어대안 경로iBeacon 영역UUID + Major/Minor현관·복도 좁은 근접① Enter / Exit 감지들어올 때·나갈 때 URL 분리② 백그라운드 감지앱 종료 상태에서도 동작감지·호출 결과는 알림webhook URL 호출서버에 묶이지 않는 범용IntentCP — 실행 앱호출 받아 명령 변환스마트홈 기기 제어조명·플러그 등 자동화대안 수신처 (URL만 있으면)Home Assistant · IFTTT개인 서버 등에 그대로 연동2025.11~ 운영 · GitHub 공개 OSS(Swift) · 감지(ShortKit)+실행(IntentCP) 2앱 1벌 · 자취남 영상 자동화 시연 사용

배경·과제

사람이 매번 명령하지 않아도 물리 이벤트가 스스로 동작을 일으키게 하고 싶었습니다. 특히 현관문 자동화처럼 ‘문 앞에서만’ 동작해야 하는 경우에는 범위가 좁은 iBeacon이 GPS보다 적합했습니다. 근접 감지를 능동 트리거로 쓰되, 감지와 실행을 뒤섞지 않는 구조를 목표로 했습니다.

수행·기여

  • 물리 이벤트 Trigger Plane을 설계하고 구현했습니다. iBeacon 영역의 진입(Enter)·이탈(Exit)을 감지해, 사전 등록한 URL을 호출하는 iOS 앱을 Swift로 개발했습니다. 앱이 꺼진 상태에서도 백그라운드에서 동작하며, 감지와 호출 결과는 로컬 알림으로 확인합니다.

  • 감지와 실행을 명시적으로 분리했습니다. ShortKit은 이벤트 감지와 URL 호출까지만 맡고, 호출을 받아 실제 동작을 수행하는 부분은 다른 시스템이 담당합니다. 직접 만든 컴패니언 앱 IntentCP가 그 호출을 받아 기기 제어를 처리하는 구조가 대표 사례입니다.

  • 실행 대상을 특정 서버에 종속시키지 않은 범용 구조로 설계했습니다. URL이나 Webhook을 받을 수 있는 엔드포인트면 어떤 것이든 연결됩니다. IntentCP(Python·FastAPI)는 한 사례일 뿐이며, Home Assistant, IFTTT, 개인 서버, Notion, Sheets, DB 등으로도 같은 방식으로 연동할 수 있습니다.

  • 트리거를 능동적으로 동작하게 하기 위해 앱이 종료돼도 감지를 유지하도록 했고, 호출은 webhook 한 줄로 단순화했습니다. 호출 신뢰성과, 진입 즉시 실행되지 않도록 조건 검증을 한 번 더 두는 부분은 개선 과제로 남겨두었습니다.

성과

  • GitHub에 공개했습니다(github.com/jaebinsim/ShortKit). 지금도 자취 자동화에 직접 사용 중입니다.

  • 유튜브 자취남 채널 ‘IOT 천재의 집’ 편(2026.01.30, 39만뷰)에서 자동화 시연 도구로 쓰여, 직접 만든 트리거–실행 자동화를 비전공자에게 보여주었습니다.