confluence

2 개의 포스트

ODW #4: 코파일럿에서 파일럿으로, 에이전틱 코딩으로 구현부터 PR까지 자동화 (새 탭에서 열림)

LY Corporation의 'Orchestration 길드'는 단순한 코드 보조를 넘어 AI가 자율적으로 개발 사이클을 주도하는 '에이전틱 코딩(Agentic Coding)'으로의 전환을 제안합니다. 명세 주도 개발(SDD)과 MCP(Model Context Protocol)를 결합하여 AI 에이전트가 기획 문서를 읽고 구현 계획 수립부터 풀 리퀘스트(PR) 작성까지 수행하도록 하는 것이 핵심입니다. 이를 통해 개발자는 단순 반복 업무에서 벗어나 고차원적인 설계와 검토에 집중함으로써 전체적인 생산성을 비약적으로 높일 수 있습니다. **단순 보조를 넘어선 에이전틱 코딩의 정의** * 기존 AI 도구가 코드 자동 완성 수준에 머물렀다면, 에이전틱 코딩은 고수준의 목표를 스스로 분해하고 자율적으로 실행하며 피드백을 통해 조정하는 방식입니다. * AI 에이전트가 전체 코드베이스와 파일 간 관계를 이해하고, 테스트 실패 시 스스로 수정하며 빌드 성공까지 반복하는 '파일럿' 역할을 수행합니다. * Jira와 Confluence 같은 사내 시스템을 MCP로 연결하여 AI가 최신 요구 사항 명세서를 직접 참조할 수 있는 환경을 구축하는 것이 기술적 토대가 됩니다. **1단계: MCP 기반의 구현 계획 수립과 리뷰** * 에이전틱 코딩의 성패는 초기 구현 계획의 정교함에 달려 있으며, 이를 위해 Jira와 Confluence URL에서 정보를 수집하는 커스텀 슬래시 명령어를 활용합니다. * Claude Code의 'Explore Agent' 기능을 병렬로 사용하여 메인 컨텍스트를 유지하면서도 광범위한 코드 분석과 문서 조사를 동시에 수행합니다. * 분석 결과는 `plan.md`와 같은 독립된 파일로 출력하여 사람이 미리 리뷰할 수 있게 함으로써, AI가 엉뚱한 방향으로 구현을 시작하는 리스크를 방지합니다. **2단계: 자율적 구현과 품질 검증 및 PR 작성** * 확정된 구현 계획서를 바탕으로 AI가 코드를 작성하며, 단순 생성을 넘어 테스트 코드 추가, 린트(Lint), 빌드(Build) 과정을 스스로 반복합니다. * 작업 단계를 명시한 커스텀 명령어를 통해 AI가 할 일 목록(To-do list)을 생성하고 누락 없이 작업을 완수하도록 가이드합니다. * 구현 완료 후에는 미리 정의된 템플릿에 따라 배경, 대응 영역, 테스트 관점 등을 포함한 상세한 PR 설명을 자동으로 작성하여 공유합니다. **3단계: AI 셀프 리뷰와 피드백 대응** * 작성된 PR에 대해 AI가 스스로 스크리닝 리뷰를 수행하고, 잠재적인 오류나 개선 사항에 대해 코멘트를 남깁니다. * AI는 자신의 셀프 코멘트뿐만 아니라 다른 팀원이 남긴 리뷰 내용까지 파악하여 수정안을 제시하고 실제 코드에 반영합니다. * 이 과정에서 사람은 AI가 내린 판단의 적절성만 최종 승인함으로써 리뷰 및 수정에 드는 비용을 획기적으로 줄입니다. **에이전틱 코딩 도입의 성과와 과제** * **장점:** 여러 에이전트를 병렬로 실행하여 코드 생성 속도를 높일 수 있으며, 사전 계획 수립 과정을 통해 잠재적 리스크를 조기에 발견할 수 있습니다. * **주의 사항:** AI가 생성한 대량의 코드를 검토해야 하는 리뷰어의 부담이 커질 수 있으므로, '최종 책임은 사람에게 있다'는 인식과 품질 유지 프로세스가 필수적입니다. * **워크숍 결과:** 약 2,500명의 엔지니어가 참여하여 40% 이상이 실무에 적용하거나 활용할 의사를 밝히는 등 긍정적인 확산 효과를 확인했습니다. 에이전틱 코딩을 성공적으로 도입하기 위해서는 명확한 명세서 작성을 선행하고, AI가 작업 계획을 파일 형태로 기록하게 하여 사람과의 접점을 만드는 것이 중요합니다. 기술 부채를 방지하기 위해 AI가 작성한 코드의 품질을 엄격히 관리하는 체계를 병행할 것을 권장합니다.

SRE 팀의 반복 작업을 10분의 1로 줄인 SRE 봇 개발기 (새 탭에서 열림)

LINE Home DevOps 팀은 인프라 전환과 서비스 확대로 급증한 운영 문의 및 반복적인 배포 요청 문제를 해결하기 위해 Slack 기반의 통합 자동화 도구인 'SRE 봇'을 구축했습니다. 기존에 수동으로 수행하던 Jira 티켓 생성, 컨플루언스 체크리스트 복사, 배포 매뉴얼 검색 등의 프로세스를 자동화하여 업무 시간을 획기적으로 단축하고 휴먼 에러를 방지했습니다. 이를 통해 팀은 단순 반복 업무에서 벗어나 서비스 안정화와 인프라 고도화라는 본연의 업무에 집중할 수 있는 환경을 마련했습니다. ### 수동 운영 프로세스의 한계와 비효율성 * **복잡한 워크플로와 컨텍스트 스위칭:** 배포 요청 한 건을 처리하기 위해 Slack, Confluence, Jira 등 여러 플랫폼을 오가며 정보를 복사-붙여넣기해야 했으며, 이 과정에서 1건당 약 1시간의 시간이 소요되었습니다. * **휴먼 에러의 빈번한 발생:** 수동 작업 특성상 릴리스 버전 설정 오류, 필수 체크리스트 항목 누락, Epic 링크 연결 누락 등 실수가 잦았고, 긴급 상황일수록 이러한 문제는 더욱 심화되었습니다. * **가시성 부족과 정량화의 어려움:** Slack 멘션으로 들어오는 요청은 휘발성이 강해 진행 상황 추적이 어려웠으며, 팀의 업무량을 정량적으로 파악하여 성과로 증명하기 힘든 구조였습니다. ### 사용자 편의와 시스템 안정성을 고려한 기술적 설계 * **Slack 워크플로 기반 UI:** 사용자가 직접 명령어를 입력하는 방식 대신 Slack 워크플로 양식을 채택하여 필수 항목 누락을 방지하고 사용자의 진입 장벽을 낮췄습니다. * **백그라운드 비동기 처리:** Slack API의 응답 제한 시간(3초) 내에 외부 시스템(Jira, Confluence)과의 복잡한 연동을 마칠 수 없으므로, 즉시 응답 후 실제 작업은 백그라운드에서 수행하는 비동기 방식을 선택했습니다. * **Redis를 활용한 상태 관리:** Slack 스레드와 Jira 티켓 간의 매핑 정보를 Redis에 저장(TTL 30일 설정)하여 100ms 미만의 빠른 조회 성능을 확보하고, 트랜잭션을 통해 여러 SRE가 동시에 작업할 때 발생할 수 있는 동시성 문제를 해결했습니다. ### 헥사고날 아키텍처를 통한 유연한 확장성 확보 * **포트와 어댑터 패턴 적용:** Slack, Jira, Redis 등 외부 시스템과의 결합도를 낮추기 위해 헥사고날 아키텍처를 도입했습니다. * **비즈니스 로직 보호:** 인터페이스를 통해 외부 환경을 격리함으로써 Jira API 버전 업그레이드나 Slack SDK 변경 등 외부 변화가 발생하더라도 내부의 핵심 비즈니스 로직을 수정할 필요가 없도록 설계했습니다. * **테스트 및 유지보수 용이성:** 각 레이어가 명확히 분리되어 있어 기능 추가 시 영향 범위를 최소화할 수 있으며, 테스트 코드 작성이 수월해져 안정적인 코드베이스 유지가 가능해졌습니다. ### 도입 후 시나리오별 변화 및 성과 * **배포 요청 처리 시간 단축:** 기존 30분 이상 걸리던 배포 요청 처리가 SRE 봇 도입 후 1분 이내로 단축되었습니다. 봇이 Fix Version 생성, 티켓 연결, 매뉴얼 검색을 10초 만에 자동 수행하기 때문입니다. * **긴급 대응 및 가시성 개선:** 긴급 요청 시 즉시 우선순위가 높게 설정된 티켓이 생성되고 채널에 알림이 공유됩니다. SRE는 이모지 클릭만으로 본인에게 티켓을 할당하고 상태를 업데이트할 수 있어 실시간 추적이 용이해졌습니다. * **정기적인 업무 정량화:** 모든 요청이 정형화된 Jira 티켓으로 자동 기록됨에 따라, 팀원당 투입 시간과 처리 건수를 명확히 데이터화하여 운영 성과를 증명할 수 있게 되었습니다. 단순 반복적인 운영 업무로 인해 팀의 에너지가 고갈되고 있다면, 기술적인 자동화 레이어를 구축하여 'Zero Manual Work'를 지향하는 것이 장기적인 팀 생산성 향상의 핵심입니다. Slack과 같은 협업 툴을 Single Point of Truth로 설정하고 외부 시스템을 유연하게 연결하는 아키텍처를 고민해 보시기 바랍니다.