ShortKit — 물리 이벤트 Trigger Plane (iBeacon → Webhook)
비콘의 진입·이탈을 감지해 지정한 URL을 자동 호출하는 iOS 앱입니다. 감지와 실행을 분리해, 호출을 받을 수 있는 모든 곳과 연결할 수 있습니다.
링크
기술
- iBeacon
- Webhook
- Core Location
물리 이벤트(iBeacon 근접)를 감지하면 미리 정의한 URL이나 Webhook을 자동 호출하는 트리거 앱을 설계해 공개했습니다. 감지(Trigger Plane)와 실행을 분리해, 실행 대상을 특정 서버에 묶지 않도록 구성했습니다.
배경·과제
사람이 직접 명령하지 않아도 물리 이벤트가 동작을 일으키게 하고 싶었습니다. 현관문 자동화처럼 ‘문 앞에서만’ 작동해야 하는 경우에는 GPS보다 범위가 좁은 iBeacon이 적합했습니다. 근접 감지를 트리거로 삼되, 감지와 실행 구조를 섞지 않는 것을 목표로 삼았습니다.
수행·기여
-
물리 이벤트 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/je-empty/ShortKit). 현재도 자취 자동화에 사용 중입니다.