본문 바로가기

개발 자동화 & 생산성 도구

2편 반복 업무를 자동화한 사례 — 진짜로 시간을 절반으로 줄인 프로젝트들

반응형

 

🟦 개발 생산성 & 자동화 시리즈 — 2편

반복 업무를 자동화한 사례 — 진짜로 시간을 절반으로 줄인 프로젝트들

📌 들어가며

개발팀이 반복적으로 처리해왔던 업무 중 상당수는
“사실은 사람이 할 필요가 없는 일”이었다.

문제는,

  • 시간이 조금씩만 들다 보니 방치되거나
  • 귀찮아서 자동화를 미루고
  • 누구도 정확한 소요 시간을 계산하지 않아
    누적 비용을 모른 척하고 있었다는 점이다.

이번 편에서는 실제로 내가 자동화해서
시간을 절반 이하로 줄인 실전 프로젝트 3가지를 공유한다.
각 프로젝트는 아키텍처·코드·문제 해결 경험·실전 팁을 포함한다.


🧩 1. 사내 보고서 자동 생성기 — “보고서 쓰는 데 2시간 → 10분”

1) 기존 방식의 문제

개발자들이 매주 쓰는 주간보고서가 문제였다.

  • Jira 이슈 정리 →
  • Git 커밋 정리 →
  • Notion 양식 채우기 →
  • 팀 Slack에 공유

총 2시간씩 소요.
가장 귀찮고, 가장 도망치고 싶었던 일.


2) 자동화 아키텍처

[Jira REST API]
       ↓
[Git Log Parser]
       ↓
[Vibe Coding로 생성한 Summarizer]
       ↓
[Markdown Report Generator]
       ↓
[Slack Webhook 공유]

핵심은 LLM 요약기를 중간에 넣어서
“내가 한 일을 요약 + 정리 + 구조화”를 동시에 처리하게 한 것.


3) 핵심 코드

Jira Issue Fetcher

def fetch_jira_issues(user):
    url = f"{JIRA_URL}/search"
    query = {
        "jql": f"assignee={user} AND updated>=-7d",
        "fields": ["summary", "status", "description"]
    }
    return requests.get(url, auth=AUTH, params=query).json()

Git Log Parser

def get_git_logs():
    result = subprocess.check_output(
        ["git", "log", "--since=7.days", "--pretty=format:%s"]
    )
    return result.decode().split("\n")

Report 생성

def generate_report(jira, commits):
    prompt = f"""
    아래의 업무 기록을 주간보고 형식으로 정리해줘.
    Jira: {jira}
    Commits: {commits}
    형식: 완료/진행중/다음주 계획
    """
    return llm.generate(prompt)

4) 실제 문제 해결 경험

문제 ①: Jira 상태값이 팀마다 달라 요약 품질이 떨어짐

→ Vibe Coding에 각 상태값을 mapping하는 규칙을 정의해 요청
→ “진행중/완료/보류”로 자동 변환하는 코드 생성

문제 ②: Git Log가 너무 산만

→ prefix 규칙(Feat/Fix/Refactor)을 자동 분석해 카테고리화하는 로직 작성

문제 ③: Slack 메시지가 너무 길음

→ Slack Block Kit 포맷으로 자동 변환
→ 가독성 개선 + 링크/하이라이트 강화


5) 결과

  • 주간보고 시간: 2시간 → 10분
  • 팀 전체 월간 시간 절감: 40시간 이상
  • 팀장 피드백: “보고 품질은 올라가고, 스트레스도 줄었다”


🧩 2. 운영 장애 알림 자동 triage — “사고 대응 속도 50% 개선”

1) 기존 문제

서버 장애가 발생하면 담당자가 했던 일은…

  1. Slack 알림 확인
  2. 로그 서버로 접속
  3. stacktrace 읽기
  4. 담당자 멘션
  5. 임시 조치

이 중 대부분이 규칙 기반으로 자동화 가능한 작업이었다.


2) 자동화 아키텍처

[CloudWatch / Grafana Alert]
       ↓
[Webhook Receiver (FastAPI)]
       ↓
[LLM Log Analyzer]
       ↓
[자동 담당자 매핑 + 우선순위 분류]
       ↓
[Slack 알림 자동 메시지]

3) 핵심 코드

Log Analyzer

def analyze_log(log):
    prompt = f"""
    아래 로그의 오류 원인을 한 줄로 요약하고,
    가능한 담당자 태그를 추천해줘.
    Log:
    {log}
    """
    return llm.generate(prompt)

담당자 매핑

OWNER_MAP = {
    "payments": "@eric",
    "order": "@backend_team",
    "auth": "@platform"
}

def find_owner(module):
    return OWNER_MAP.get(module, "@devops")

4) 문제 해결 경험

문제 ①: LLM이 담당자 이름을 잘못 추론

→ module별 owner mapping을 “프롬프트에 하드코딩” → 정확도 급상승
→ 이후 config.yml로 분리해 유지보수 부담 감소

문제 ②: 로그 길이가 너무 길어 요약 품질 저하

→ LLM에게 “오류 부분만 추출하는 Pre-Parser” 코드 자동 생성 요청
→ 불필요한 로그 제거 후 정확도 크게 개선

문제 ③: Slack 메시지가 너무 산만

→ Block Kit으로 모듈별 박스 구성
→ 담당자 멘션 자동 처리


5) 결과

  • 장애 triage 시간: 7~10분 → 2분
  • 우선순위 판단 정확도 개선
  • 사후 분석 보고서 생성 시간도 절감 (LLM 자동 생성)


🧩 3. 사내 문서 자동 분류·요약 시스템 — “문서 생산성 2배”

1) 기존 문제

문서가 너무 많았다.

  • 기획 문서
  • 제안서
  • 운영 가이드
  • 개발 문서
  • 고객사 보고서

검색이 특정 키워드 기반이라 원하는 문서를 찾는 데 시간이 오래 걸렸다.


2) 자동화 아키텍처

[문서 업로드]
       ↓
[Docling → 텍스트 변환]
       ↓
[LLM로 문서 요약]
       ↓
[RAG Embedding (local vLLM)]
       ↓
[분류 + 검색 시스템]

3) 핵심 코드

문서 요약

def summarize_document(text):
    prompt = f"""
    아래 문서를 10줄 이하로 요약해줘.
    문서 목적 / 주요 내용 / 결론을 포함해.
    {text}
    """
    return llm.generate(prompt)

Embedding 저장

def store_embedding(doc_id, text):
    vector = embed_model.embed(text)
    db.insert({"doc_id": doc_id, "vector": vector})

4) 실제 문제 해결 경험

문제 ①: Docling OCR 품질 불안정

→ 전처리 규칙(특수문자 제거, 헤더/푸터 제거) 자동 생성
→ 텍스트 품질 크게 개선

문제 ②: LLM 요약 결과가 들쭉날쭉

→ “요약 기준 템플릿”을 시스템 프롬프트로 고정
→ 항상 일정한 구조로 요약됨

문제 ③: Embedding 검색 정확도 부족

→ chunk size 재조정 (500 → 1000 토큰)
→ 검색 품질 개선


5) 결과

  • 문서 검색 시간: 15분 → 10초
  • 문서 요약 자체가 자동이라 공유 회의 효율 급상승
  • 신규 직원 온보딩 속도 개선


🎯 실전 팁 3개

✔ TIP 1. 반복 업무는 ‘누적 시간’을 계산해라

작아 보여도 매주 반복되는 업무라면
누적하면 연간 수십 시간이 사라진다.
가장 먼저 자동화를 고려해야 하는 영역이다.


✔ TIP 2. 자동화는 100% 완벽하지 않아도 된다

초기 자동화는 70% 정확도여도 OK.
사람이 검수하면서 품질을 높이면 된다.
시작 자체가 중요하다.


✔ TIP 3. LLM에게 “규칙”을 먼저 설명해라

“원하는 결과값”만 말하면 품질이 흔들린다.
규칙·예시·패턴을 먼저 알려주면 훨씬 안정적이다.


🏷 추천 태그

#업무자동화 #개발생산성 #LLM활용 #사내도구 #Slack자동화 #문서요약 #RAG시스템 #VibeCoding #AI엔지니어링


 

반응형