동사부터 묻기 — 명사·화면은 맨 마지막
“○○관리 화면을 만들어줘”는 구시대 ERP의 질문이었습니다. 에이전트가 일하는 시스템을 만들려면 질문 자체를 바꿔야 했습니다 — “이 업무에서 1년 동안 일어나는 의사결정 사건을 동사(verb)로 뽑아줘.” 이 한 줄의 차이가 설계의 시작점을 통째로 옮깁니다. 이 글은 그 출발점이 왜 그렇게까지 중요한지의 기록입니다.
명사형 설계와 동사형 설계
섹션 제목: “명사형 설계와 동사형 설계”이 글은 단 하나의 대비를 다룹니다. 명사부터 설계하느냐, 동사부터 설계하느냐입니다. 말장난 같지만 이 선택이 시스템 전체의 운명을 가릅니다. 먼저 두 단어를 정확히 정의하겠습니다.
전통 ERP의 설계는 명사에서 출발합니다. 사원 등록 화면, 품목 테이블, 결재 메뉴. 사람이 화면을 열어 데이터를 입력하고 저장 버튼을 누르는 것을 전제로 모든 구조가 짜입니다. 그래서 시작점이 Form과 Table입니다. 20년 동안 ERP는 이렇게 만들어졌고, 그게 당연했습니다. 사람이 일을 하니까, 사람이 쓸 화면부터 만드는 게 자연스러웠습니다.
왜 화면부터 만들면 평범한 ERP가 되는가
섹션 제목: “왜 화면부터 만들면 평범한 ERP가 되는가”그런데 목표가 “대부분의 업무를 에이전트가 처리하고, 사람은 승인·반려만 한다”라면 이 구조는 출발부터 어긋납니다. 이유는 간단합니다. 에이전트는 화면을 클릭하지 않습니다.
에이전트는 버튼을 보지 않고, 드롭다운을 고르지 않고, 저장 버튼을 누르지 않습니다. 에이전트가 하는 일은 다릅니다 — 이벤트가 발생하면 도구(Tool)를 호출하고, 정책에 따라 분기하고, 필요할 때 사람에게 승인을 요청합니다. 그러니 에이전트를 위한 시스템의 시작점은 Form과 Table이 아니라 Event와 Tool이어야 합니다.
동사 5단 추출 — 하나의 모듈을 묻는 법
섹션 제목: “동사 5단 추출 — 하나의 모듈을 묻는 법”그래서 모듈 하나를 설계할 때 화면 이야기를 5단계 뒤로 미뤘습니다. AI에게 “화면을 그려줘”라고 하지 않고, 다음 순서로 물었습니다.
- 사건 열거 — 이 모듈에서 1년 동안 실제로 일어나는 사건을 시간 순으로 20개 이내로 적습니다. (“신입이 입사한다”, “연차를 신청한다”, “재고가 떨어진다”…)
- 사건 해부 — 각 사건마다 다섯 가지를 채웁니다. 누가(Actor) · 무엇을 보고(Context) · 어떤 판단(Decision) · 어떤 결과(Output) · 다음 트리거(Next Event).
- 결정 분류 — 각 결정을 셋으로 나눕니다. 완전 자동화 가능 / 정책 분기로 처리 / 인간 승인 필수.
- 외부 의존 식별 — 결정에 필요한 바깥 시스템을 적습니다. 메일·회계·근태·결제·세금계산서 등.
- 동사 명세 — 사건들을 의미 있는 동사(메서드명)로 정리하고 입력·출력 타입을 명세합니다.
예시 — “신규 입사”라는 명사를 동사로 풀면
섹션 제목: “예시 — “신규 입사”라는 명사를 동사로 풀면”명사로 보면 신규 입사는 “사원 등록 화면” 하나입니다. 그런데 동사로 풀면 전혀 다른 풍경이 펼쳐집니다.
| 동사 | 이 동사의 처리 방식 | 외부 의존 |
|---|---|---|
| 입사를 처리한다 | 정책 분기 (자동) | — |
| 계정을 발급한다 | 자동화 가능 | 메일 |
| 4대보험에 가입한다 | 자동화 가능 | 외부 신고 시스템 |
| 연봉을 확정한다 | 인간 승인 필수 | — |
| 멘토를 배정한다 | 정책 자동 분기 | — |
주목할 점은, 동사로 풀어 적는 순간 각 동사가 자기 처리 방식을 스스로 드러낸다는 것입니다. 4대보험 가입은 외부 어댑터를 부르는 자동 작업이고, 연봉 확정은 절대 자동화하면 안 되는 인간 승인 게이트이며, 멘토 배정은 규칙으로 굴러가는 자동 분기입니다. 명사(“사원 등록 화면”)로만 봤다면 이 차이는 전부 화면 안에 뭉개져 보이지 않았을 것입니다.
동사 하나가 세 가지를 동시에 낳는다
섹션 제목: “동사 하나가 세 가지를 동시에 낳는다”이 방식의 진짜 보상은 동사 하나를 제대로 뽑으면 세 가지 산출물이 한꺼번에 결정된다는 점입니다. 따로 설계할 필요가 없습니다.
| 동사를 뽑으면… | 동시에 정해지는 것 | 그게 무엇이냐면 |
|---|---|---|
| 입력·출력 타입 | 도구 시그니처 | 에이전트가 호출할 MCP Tool의 함수 모양 |
| 누가 결정하는가 | 에이전트 역할 | 어느 에이전트가 이 동사를 맡는가 |
| 자동/분기/승인 분류 | 정책 룰북 | 무엇을 사람이 승인할지(권한 경계) |
그래서 동사부터 뽑으면 ERP 모듈들이 “서로 다른 화면 세트”가 아니라, 같은 패턴(동사 + 입력 + 결정 + 출력 + 다음 동사)으로 묶인 하나의 그래프가 됩니다. 에이전트는 그 그래프를 따라 움직입니다. 실제로 개인 업무 영역 하나를 동사로 풀었을 때 약 85개의 동사가 카탈로그 초안으로 나왔고, ERP 전체로 확장하면 수백 개 규모가 될 것으로 봅니다. 화면은 맨 마지막에 “동사 실행 결과를 사람이 확인·승인하는 최소 뷰”로만 붙입니다.
느려 보이지만, 사실 두 번 짓지 않는 길
섹션 제목: “느려 보이지만, 사실 두 번 짓지 않는 길”동사를 20개 뽑고 다섯 칸을 채우는 작업은 처음엔 답답합니다. “그냥 화면부터 후딱 만들면 될 걸”이라는 유혹이 큽니다. 그러나 화면부터 만든 모듈은 결국 에이전트를 붙이려는 순간 처음부터 다시 설계해야 합니다. 명사형으로 굳은 구조는 동사형으로 리모델링되지 않기 때문입니다.
반대로 동사부터 설계하면, 같은 동사를 사람이 화면에서 호출하든·AI가 말로 호출하든·다른 시스템이 이벤트로 호출하든 그 뒤의 실행 단위는 하나입니다. 한 번 만든 동사가 입구를 가리지 않고 재사용됩니다. 처음 30분 더 들이는 대신, 나중에 통째로 다시 짓는 3개월을 아끼는 셈입니다.
이 글은 SL.AIMS를 만들며 겪은 현장 회고 중 하나입니다. 전체 그림은 〈사례연구: SL.AIMS〉에 있습니다.