Jarvis
사내 업무 자동화를 위한 AI 기반 Slack BotAI-powered Slack Bot for Internal Workflow Automation
1. 프로젝트 개요1. Project Overview
사내 업무 효율화를 위해 개인적으로 개발 / 운영 중인 Slack Bot. Notion, GitHub, AWS, OpenAI 등 사내 도구들을 Slack 하나로 통합하여 반복 업무를 자동화한다.A Slack Bot personally developed and operated for internal workflow efficiency. Integrates Notion, GitHub, AWS, OpenAI and other internal tools into a single Slack interface to automate repetitive tasks.
| 항목Item | 내용Details |
|---|---|
| 프로젝트명Project | Jarvis |
| 분류Category | 사내 업무 자동화를 위한 AI 기반 Slack BotAI-powered Slack Bot for Internal Workflow Automation |
| 개발 기간Duration | 2023.01 ~ 현재 (지속적 기능 추가 및 운영 중)Jan 2023 – Present (continuous feature additions and operations) |
| 역할Role | 기획, 설계, 개발, 운영Planning, design, development, and operations |
2. 프로젝트 배경과 기술 스택2. Background and Tech Stack
사내에서 Notion, GitHub, AWS, Slack 등 여러 도구를 병행하면서 여러 도구를 번갈아 쓰면서 생기는 비효율이 반복적으로 발생했다.
각각의 도구들이 분산되어 있어, 단순 반복 작업에 불필요한 시간이 소요되는 문제를 해결해보고자 Jarvis를 기획했다.
이후 LLM이 대중화되면서 AI 기반 기능(커피챗 요약, 사내 AI 챗봇, 자연어 기반 로그 분석 등)을 추가로 확장해나갔다.Using multiple tools simultaneously — Notion, GitHub, AWS, Slack — repeatedly caused inefficiency from constantly switching between tools. With tools scattered, unnecessary time was spent on repetitive tasks, which motivated the planning of Jarvis. As LLMs became mainstream, AI-powered features (coffee chat summaries, internal AI chatbot, natural language log analytics, etc.) were progressively added.
| 분류Category | 기술Technology |
|---|---|
| Language | Python |
| Framework | FastAPI |
| External API | Slack API, Notion API, GitHub Webhooks, OpenAI API, OpenSearch API |
| Cloud | AWS (EKS, ECR, CloudTrail, EventBridge, Lambda, S3) |
| Infra | Docker, Kubernetes (EKS), GitHub Actions (CI / CD) |
3. 시스템 아키텍처3. System Architecture
Jarvis는 Slack, Notion, GitHub, AWS, OpenAI 등 다양한 외부 서비스의 이벤트를 단일 Slack Bot으로 수렴시키는 허브 아키텍처로 설계했다. 각 서비스의 Webhook / Event를 FastAPI 서버에서 수신하고, Slack API를 통해 결과를 응답하는 구조이다. Slack Event Subscription은 3초 내 응답을 요구하므로, async 네이티브인 FastAPI로 비동기 처리한다.Jarvis is designed as a hub architecture that converges events from various external services — Slack, Notion, GitHub, AWS, OpenAI — into a single Slack Bot. Each service's Webhook / Event is received by the FastAPI server, and results are delivered via the Slack API. Since Slack Event Subscription requires a response within 3 seconds, asynchronous processing is handled via the async-native FastAPI.
사내에 EKS 환경이 구축되어 있어, 별도의 Namespace로 격리하여 배포 진행.EKS environment already established internally, deployed in a separate Namespace for isolation.
4. 핵심 기능4. Core Features
4-1. Notion / GitHub 작업 자동화4-1. Notion / GitHub Workflow Automation
Slack 메시지의 키워드 감지 또는 GitHub Issue 등록을 트리거로, Notion 프로젝트 보드에 작업 카드를 자동 생성하고 Slack으로 팀에 공유한다. Slack ↔ GitHub ↔ Notion 간 수동 조작 없이 작업이 흐른다.Triggered by Slack message keyword detection or GitHub Issue creation, task cards are automatically created on the Notion project board and shared with the team via Slack. Work flows between Slack ↔ GitHub ↔ Notion without manual intervention.
4-2. AWS Console 접근 Alert4-2. AWS Console Access Alert
CloudTrail → EventBridge → Lambda → Jarvis 파이프라인으로, AWS Console 로그인 발생 시 접속자 정보(IAM User, IP, Geo Location, Region, User-Agent)를 Slack에 실시간 알림하여 비인가 접근을 즉시 탐지한다.Via the CloudTrail → EventBridge → Lambda → Jarvis pipeline, real-time Slack alerts with access details (IAM User, IP, Geo Location, Region, User-Agent) are triggered on AWS Console login, enabling instant detection of unauthorized access.
4-3. 팀원 휴가 / 재택 현황 조회4-3. Team Leave / Remote Work Status
Slash Command /vac으로 Notion 휴가 DB를 조회하여 향후 1주일 일정을 Ephemeral Message로 즉시 응답한다.Queries the Notion leave DB via the /vac Slash Command and instantly responds with the upcoming week's schedule as an Ephemeral Message.
4-4. Tech Trend Coffee Chat AI 요약4-4. Tech Trend Coffee Chat AI Summary
매주 진행되는 사내 커피챗 내용을 Notion API로 수집하고, OpenAI API로 카테고리별 분류 및 요약하여 Slack에 자동 공유한다.Collects weekly internal coffee chat content via Notion API, categorizes and summarizes it using OpenAI API, and automatically shares the summary on Slack.
4-5. LLM 기반 사내 AI 챗봇4-5. LLM-based Internal AI Chatbot
20명+ 조직에서 개별 LLM 구독 시 월 60~70만원의 비용이 발생한다. OpenAI API 기반 공유 챗봇을 구축하여 단일 플랜으로 동일 기능을 제공, 비용을 대폭 절감했다. (개발팀은 1인 1계정 지급, 그 외 포지션은 Jarvis 챗봇으로 접근)Individual LLM subscriptions for a 20+ member org would cost KRW 600K~700K/month. Built a shared chatbot using the OpenAI API, providing the same functionality under a single plan and significantly reducing costs. (Dev team receives individual accounts; other positions access via Jarvis chatbot)
또한 Slack 스레드에서 나눈 대화 내용을 한번에 읽어 요약 및 정리해주는 기능도 제공하여, 긴 논의를 빠르게 파악할 수 있도록 했다.Additionally, a feature was provided to read and summarize entire Slack thread conversations at once, enabling quick comprehension of lengthy discussions.
4-6. 자체 로그 메트릭 분석 시스템 (JARVIS Log Analytics)4-6. Custom Log Metric Analytics System (JARVIS Log Analytics)
Kibana를 통해 로그 중앙화는 해결했지만, 비즈니스 레벨의 집계 뷰가 부족했고, PM이나 마케터 등 비개발 직군이 OpenSearch DSL 쿼리를 직접 작성하여 로그를 분석하는 것은 사실상 불가능했다. 또한 스타트업 특성상 외부 데이터 분석 툴 도입은 비용 부담이 컸다.While log centralization was solved via Kibana, it lacked business-level aggregation views, and it was virtually impossible for non-engineers like PMs and marketers to write OpenSearch DSL queries for log analysis. Additionally, adopting external data analytics tools was cost-prohibitive for a startup.
LLM을 활용하여 당장 필요한 기능부터 자체 구축하는 방향을 택했다. Jarvis의 백엔드(FastAPI + OpenAI API)를 그대로 활용하고, 프론트엔드 페이지는 AI 바이브 코딩으로 빠르게 구축하여 자체 로그 메트릭 분석 시스템을 만들었다.The approach was to leverage LLM to quickly build the most needed features in-house. Using Jarvis's backend (FastAPI + OpenAI API), with the frontend page rapidly built via AI vibe coding, a custom log metric analytics system was created.
로그 데이터 수집 파이프라인(Fluent Bit → OpenSearch)에 대한 자세한 내용은 Observability Monitoring System 참고For details on the log data collection pipeline (Fluent Bit → OpenSearch), see Observability Monitoring System
Dashboard — 로그 집계 현황Dashboard — Log Aggregation Overview
Dev 로그(전체 / 에러 / 경고 / 정상)와 Event 로그(전체 이벤트 / 오늘 이벤트 / 활성 이벤트) 집계를 한눈에 보여주며, 상위 이벤트 타입 분포를 실시간으로 확인할 수 있다. Stage / Prod 환경 선택으로 환경별 분석이 가능하다.Provides an at-a-glance view of Dev log aggregation (total / error / warning / normal) and Event log aggregation (total / today / active events), with real-time top event type distribution. Stage / Prod environment selector enables per-environment analysis.
Search — 구조화된 로그 검색Search — Structured Log Search
Log Level, Stage, App Name, Version, Platform, Code, Endpoint, User ID, Session ID 등 다양한 필터를 조합하여 원하는 로그를 빠르게 검색할 수 있다. Kibana 대비 직관적인 UI로 로그 탐색 속도를 높였다.Enables fast log search with various filter combinations including Log Level, Stage, App Name, Version, Platform, Code, Endpoint, User ID, and Session ID. Improved log exploration speed with a more intuitive UI compared to Kibana.
AI Query — 자연어 기반 로그 분석 (핵심 기능)AI Query — Natural Language Log Analysis (Core Feature)
자연어로 로그 분석을 요청하면, LLM이 OpenSearch DSL 쿼리를 자동 생성하고 실행하여 결과를 반환한다. 프롬프트에 수집 중인 로그의 종류, 필드 구조, 데이터 포맷 등을 사전 정의하여 정확한 쿼리 생성을 유도했다.When users request log analysis in natural language, the LLM automatically generates and executes OpenSearch DSL queries, returning the results. The prompt is pre-configured with collected log types, field structures, and data formats to ensure accurate query generation.
활용 예시:Example Queries:
- "오늘 접속한 사용자 수 몇 명이야?""How many users logged in today?"
- "오늘 본인의 프로필을 조회한 사용자는 몇 명이야?""How many users viewed their own profile today?"
- "최근 view_page 이벤트를 가장 많이 발생시킨 유저는 누구야?""Which user triggered the most view_page events recently?"
이를 통해 PM, 마케터 등 비개발 직군도 OpenSearch 쿼리 지식 없이 로그 데이터를 직접 분석할 수 있게 되어, 로그 분석의 접근성을 크게 높였다.This enabled non-engineers such as PMs and marketers to directly analyze log data without OpenSearch query knowledge, significantly improving log analysis accessibility.
5. 성과 요약5. Results Summary
| 항목Area | 내용Details |
|---|---|
| 업무 자동화Workflow Automation | Notion 카드 생성, GitHub-Notion 연동 등 반복 업무 제거Eliminated repetitive tasks such as Notion card creation and GitHub-Notion integration |
| 보안 강화Security Enhancement | AWS Console 접근 실시간 알림으로 비인가 접근 즉시 탐지Instant detection of unauthorized access via real-time AWS Console access alerts |
| 비용 절감Cost Reduction | 20명+ 조직 기준, OpenAI API 기반 공유 AI 챗봇으로 개별 LLM 구독 비용 대폭 절감For 20+ member org, shared AI chatbot via OpenAI API significantly reduced individual LLM subscription costs |
| 정보 접근성Info Accessibility | 커피챗 요약, 휴가 현황 등 흩어진 정보를 Slack으로 일원화Unified scattered information (coffee chat summaries, leave status, etc.) into Slack |
| 로그 분석Log Analytics | OpenSearch 로그 기반 자체 메트릭 대시보드 및 자연어 AI 쿼리로 비개발 직군의 로그 분석 접근성 확보Custom metric dashboard and natural language AI query on OpenSearch logs, enabling log analysis accessibility for non-engineers |
| 팀 반응Team Response | 실사용자인 팀원들로부터 업무 프로세스가 간소화되고 편해졌다는 긍정적 피드백Positive feedback from team members (actual users) that workflows became simpler and more convenient |