LogoSEO Jing
  • All Posts
  • SEO Jing
  • okayJing
  • KD Team
  • CLAB Coreteam
  • Study

Contact Me

© 2026 SEOJing. All rights reserved.

API로 감쌀 것과 gateway에 남길 것 — OkayJing Local의 상태 변경 경계

2026년 6월 21일·3분 읽기

0. 모든 것을 API로 만들고 싶어진다

Local app을 만들다 보면 모든 동작을 API로 만들고 싶어진다. /api/messages/send, /api/worker/talk, /api/approve 같은 endpoint를 만들면 UI에서는 편하다. 문제는 그 순간 Hermes gateway가 이미 갖고 있는 대화 의미를 우회할 수 있다는 점이다.


1. API가 맡아야 하는 것

API는 원천 리소스의 동시성과 상태 변경을 맡는 것이 맞다. SQLite DB, Markdown, ticket, work-ledger, artifact, profile metadata, git/file/checkpoint index 같은 것들이다. 여기는 idempotency, locking, audit log, auth, readback이 필요하다.

이런 리소스는 여러 화면과 worker가 동시에 볼 수 있다. 그래서 명시적인 mutation contract가 있어야 한다. 누가 무엇을 바꿨고, 실패하면 어떻게 되돌릴 수 있는지 남아야 한다.


2. gateway에 남겨야 하는 것

반대로 chat, voice, STT/TTS, media attachment, session/thread binding, approval/clarify/permission prompt lifecycle은 gateway 의미를 따라야 한다. conversation은 단순 POST가 아니다. 누가 말했고, 어느 session에 묶이고, 어떤 platform delivery로 나가며, 어떤 승인 흐름을 갖는지가 같이 붙는다.

서식지 UI는 draft, preview, read-first bridge를 보여줄 수 있다. 하지만 실제 대화 런타임을 앱 API 안에 새로 만들면 OkayJing이 두 개의 대화 시스템을 갖게 된다. 이건 피해야 한다.


3. 어디까지 API로 감쌀지 정하는 법

개인 agent workspace를 웹앱으로 만들면 모든 것을 API로 만들고 싶어진다. 하지만 chat, voice, approval, media routing까지 새 앱 API로 다시 만들면 기존 agent gateway와 겹친다. 반대로 DB, Markdown, ticket처럼 여러 표면이 동시에 만지는 원천 리소스는 API 없이 직접 고치면 충돌이 난다.

기준은 "상태 변경의 소유자"다. 여러 클라이언트가 같은 원천 리소스를 바꾼다면 API가 잠금, 검증, diff, audit log를 맡는다. 이미 gateway가 잘 처리하는 대화와 승인 흐름은 재구현하지 말고 bridge로 연결한다. 이렇게 나누면 웹앱은 상태를 안전하게 바꾸고, agent runtime은 대화 의미를 계속 맡는다.


참고 자료 / Evidence sources

  • Boundary rule — API wraps concurrent source-resource mutation; gateway keeps chat, voice, approval, media semantics
  • Source resources — DB rows, Markdown files, tickets, generated artifacts, verification records
  • Bridge pattern — UI drafts/previews mutations; gateway remains the conversational runtime

Post Q&A

오케이징에게 물어보기

API로 감쌀 것과 gateway에 남길 것 — OkayJing Local의 상태 변경 경계 전체를 기준으로 질문과 피드백을 받아요.답을 본 뒤에는 이 내용을 댓글로 달아서 서징에게도 물어볼 수 있어요. 작성자가 직접 볼 수 있어요!

0/500

포스트 목록

/okayJing/architecture
파일 10개, 폴더 0개
새 에이전트 도구를 바로 설치하지 않는 이유 — 표준 정렬로 먼저 보기Worker를 사람 역할이 아니라 계약으로 봐야 하는 이유확장점은 플러그인이 아니라 경계면이다Planner, reviewer, coder를 늘리지 않기로 했다 — Hermes-only hub-spoke 원칙Jing Factory를 Hermes 시대에 다시 만든다면 — 공장보다 상태 흐름이 먼저다Jing Studio는 목업 생성기가 아니다 — 계약을 먼저 남기는 징팩토리로컬 모델에게 맡겨도 되는 일 — local evidence router의 경계OkayJing Local이 Discord를 대체하려면 — dashboard가 아니라 daily surface여야 한다Ticket list만으로는 일이 보이지 않았다 — Pixel Office를 작업 상태 모델로 보는 이유API로 감쌀 것과 gateway에 남길 것 — OkayJing Local의 상태 변경 경계