ShortKit — 물리 이벤트 Trigger Plane (iBeacon → Webhook)
비콘 진입·이탈을 감지해 지정한 URL을 자동 호출하는 iOS 앱입니다. 감지와 실행을 분리해, 호출을 받을 수 있는 곳이면 스마트홈이든 Notion이든 연결할 수 있습니다. 1인 제작입니다.
링크
기술
- iBeacon
- Webhook
- Core Location
물리 이벤트(iBeacon 근접)를 감지하면 미리 정의한 URL이나 Webhook을 자동 호출하는 트리거 앱을 설계해 공개했습니다. 감지(Trigger Plane)와 실행을 분리해, 실행 대상을 특정 서버에 묶지 않도록 만들었습니다.
배경·과제
사람이 매번 명령하지 않아도 물리 이벤트가 스스로 동작을 일으키게 하고 싶었습니다. 특히 현관문 자동화처럼 ‘문 앞에서만’ 동작해야 하는 경우에는 범위가 좁은 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만뷰)에서 자동화 시연 도구로 쓰여, 직접 만든 트리거–실행 자동화를 비전공자에게 보여주었습니다.