Bot Design Patterns (Will Schenk)
Source
Evernote/Inbox/Bot Design Patterns Blank Page Tech.md
Summary
이 문서는 Will Schenk 가 제안한 봇(Bot)의 설계 패턴과 분류 체계를 다룹니다. 봇은 메시지 반응 여부, 대화 상대 인식, 학습 능력, 공간(채널/룸) 인식, 대화 기억력 등 5 가지 기준에 따라 6 가지 유형으로 분류됩니다. 유형은 복잡도가 낮은 순서대로 Notifiers, Reactors, Space Reactors, Responders, Space Responders, Conversationists 입니다. 또한 Slack, IRC 등 ‘공간(Space)’ 개념이 있는 서비스와 SMS, Twitter 등 없는 서비스를 구분하여 컨텍스트 관리의 난이도를 설명합니다. 가장 단순한 ‘Notifiers’는 외부 이벤트에 기반해 메시지를 발송하는 일방향 봇으로, 메시지 생성 로직과 전송 로직을 분리하는 것이 핵심입니다.
Key Points
- 봇 분류의 5 가지 핵심 질문: 메시지 반응 여부, 대화 상대 인식, 학습 능력, 공간(채널) 인식, 대화 기억력
- 6 가지 봇 설계 패턴: Notifiers, Reactors, Space Reactors, Responders, Space Responders, Conversationists (복잡도 순)
- ‘Spaced’ 서비스 개념: Slack, IRC 등 채널/룸 개념이 있는 서비스는 봇이 공간 컨텍스트를 인식해야 함
- Notifiers 패턴: 외부 소스(모니터링, 빌드 결과 등)에 기반해 메시지를 발송하는 가장 단순한 봇 유형
- Notifiers 구현 전략: 정보 생성 로직과 메시지 전송 로직을 분리하여 구현하는 것이 좋음