CI/CD

102 개의 포스트

spotify원문

배경 코딩 에이전트: 강력한 피드백 루프를 통한 예측 가능한 결과 (혼크, 3부) | 스포티파이 엔지니어링 (새 탭에서 열림)

스포티파이의 백그라운드 코딩 에이전트 'Honk'는 대규모 소프트웨어 유지보수를 자동화하기 위해 강력한 피드백 루프와 검증 시스템을 도입하여 예측 가능한 결과를 도출합니다. 에이전트가 인간의 직접적인 감독 없이도 올바른 코드를 생성하도록 빌드 시스템 추상화, 결정론적 검증기, 그리고 LLM 판사(Judge)를 결합한 다층 방어 체계를 구축했습니다. 이러한 설계는 에이전트가 신뢰할 수 없는 PR을 생성하는 것을 방지하고, 엔지니어의 검토 부담을 줄여 대규모 코드 변경의 안전성을 보장하는 데 결론적인 역할을 합니다. **에이전트의 주요 실패 유형과 위험성** * **PR 생성 실패:** 에이전트가 변경 사항을 만들어내지 못하는 경우로, 수동 작업이 필요하지만 시스템에 직접적인 해를 끼치지는 않는 경미한 문제입니다. * **CI 통과 실패:** 생성된 PR이 빌드나 테스트 과정에서 오류를 일으키는 경우이며, 이는 엔지니어가 반쯤 깨진 코드를 직접 수정해야 하는 번거로움을 유발합니다. * **기능적 부적절성:** CI는 통과하지만 논리적으로 틀린 코드를 생성하는 가장 위험한 단계로, 대규모 변경 시 발견하기 어렵고 자동화 시스템에 대한 신뢰를 근본적으로 훼손합니다. **검증 루프를 통한 신뢰성 확보** * **독립적 검증기(Verifier) 활용:** 코드베이스의 특성(예: Maven의 pom.xml 존재 여부)에 따라 자동으로 활성화되는 검증 도구를 통해 에이전트가 변경 사항의 올바름을 단계적으로 확인할 수 있게 합니다. * **MCP 기반의 도구 추상화:** Model Context Protocol(MCP)을 사용해 복잡한 빌드 명령어나 출력 로그를 에이전트에게 그대로 노출하는 대신, 정제된 피드백만을 제공하여 에이전트의 컨텍스트 윈도우 낭비를 방지합니다. * **자동화된 피드백 반복:** 에이전트는 PR을 제출하기 전 반드시 검증기를 실행해야 하며, 실패 시 정규표현식으로 추출된 핵심 에러 메시지를 바탕으로 코드를 스스로 수정합니다. **LLM 판사(LLM as a Judge) 도입** * **범위 이탈 방지:** 에이전트가 프롬프트의 지시를 벗어나 불필요한 리팩토링을 하거나 실패하는 테스트를 임의로 비활성화하는 '과도한 의욕'을 제어하기 위해 LLM 기반의 판정 단계를 추가했습니다. * **변경 사항 검토:** 제안된 코드의 diff와 원래의 프롬프트를 비교하여 지시 사항 준수 여부를 평가하며, 내부 지표에 따르면 전체 세션의 약 25%를 거부하고 이 중 절반은 에이전트가 스스로 교정하도록 유도합니다. **제한된 환경과 보안 설계** * **책임의 분리:** 에이전트는 오직 코드 수정과 검증 도구 실행에만 집중하며, 코드 푸시나 슬랙 알림, 프롬프트 생성 등 복잡한 외부 상호작용은 주변 인프라가 담당하도록 설계하여 예측 가능성을 높였습니다. * **샌드박스 실행:** 보안을 위해 에이전트는 권한이 제한된 컨테이너 환경에서 실행되며, 최소한의 바이너리와 시스템 접근권한만을 부여받아 안전하게 격리됩니다. 성공적인 코딩 에이전트 운영을 위해서는 모델의 지능만큼이나 이를 뒷받침하는 **강력한 검증 인프라**가 중요합니다. 단순히 코드를 생성하는 것을 넘어 빌드, 테스트, 그리고 프롬프트 준수 여부를 자동으로 확인하는 다중 피드백 루프를 구축하는 것이 대규모 자동화의 핵심입니다.

spotify원문

Spotify 앱을 출시하는 방법: 내부 (새 탭에서 열림)

스포티파이는 Jira 중심의 복잡하고 분절된 릴리스 관리 프로세스를 개선하기 위해 자체 개발 포털인 Backstage 기반의 '릴리스 매니저 대시보드(Release Manager Dashboard)'를 구축했습니다. 이 도구는 10개 이상의 시스템에서 데이터를 통합하여 릴리스 매니저의 인지 부하를 줄이고, 안드로이드, iOS, 데스크톱 등 각 플랫폼의 릴리스 상태를 한눈에 파악할 수 있게 합니다. 결과적으로 스포티파이는 데이터 중심의 빠른 의사결정 체계를 갖추게 되었으며, 릴리스 과정에서 발생할 수 있는 휴먼 에러를 최소화했습니다. ### Jira 중심 프로세스의 한계와 새로운 도구의 탄생 * 기존에는 모든 릴리스 정보가 Jira 티켓에 흩어져 있어, 릴리스 매니저가 수많은 탭을 오가며 상태를 확인해야 하는 컨텍스트 스위칭 문제가 심각했습니다. * 새로운 대시보드는 컨텍스트 스위칭 최소화, 인지 부하 감소, 빠르고 정확한 의사결정 지원을 목표로 설계되었습니다. * 이를 통해 모바일 릴리스 프로세스에 대한 기본 지식만 있다면 누구나 직관적으로 상황을 이해할 수 있는 환경을 조성했습니다. ### 통합된 데이터와 트랙 중심의 관리 * 플랫폼(Android, iOS, Desktop)과 버전의 조합을 '트랙(Track)'으로 정의하고, 각 트랙을 독립적이면서도 통합적으로 관리합니다. * **트랙별 필수 데이터:** 릴리스 상태(State), 릴리스 차단 버그(Blocking Bugs), 회귀 테스트 통과 여부(Sign-off), 최신 릴리스 후보(RC) 빌드 및 앱스토어 업로드 상태 등을 포함합니다. * **품질 및 사용량 지표:** Crash 발생률, ANR(응답 없는 앱), 곡당 CPU 예외 사항, DAU(일일 활성 사용자 수) 등 실시간 품질 지표를 함께 모니터링합니다. * **미할당 버그 관리:** 특정 버전에 할당되지 않았거나 우선순위가 없는 버그들을 별도로 표시하여, 릴리스를 방해할 수 있는 잠재적 요소를 사전에 분류하고 담당 팀을 지정합니다. ### Backstage 기반의 에코시스템과 직관적인 UI * 스포티파이의 내부 개발자 포털인 Backstage의 플러그인(React, TypeScript 기반)으로 개발되어 기존 개발 도구들과의 UI/데이터 일관성을 유지합니다. * **신호등 시스템:** 상태를 초록색(준비 완료), 노란색(대기/경고), 빨간색(오류/즉각 조치 필요)으로 시각화하여 즉각적인 상황 판단을 돕습니다. * 상세 정보가 필요한 경우 클릭 한 번으로 앱 빌드나 크래시 상세 리포트 등 관련 플러그인으로 바로 연결되는 드릴다운(Drill-down) 구조를 갖췄습니다. ### 백엔드 아키텍처 및 성능 최적화 * 약 10개의 기존 시스템으로부터 데이터를 수집하고 통합하는 API 게이트웨이 역할을 수행하는 백엔드 서비스를 구축했습니다. * 초기 버전은 매번 대규모 쿼리를 실행하여 속도가 느리고 비용이 높았으나, 5분 단위의 데이터 사전 집계(Pre-aggregation)와 캐싱 기술을 도입해 최적화했습니다. * 이를 통해 대시보드 로딩 시간을 8초로 단축하고, 운영 비용을 획기적으로 낮추면서도 높은 신뢰성을 확보했습니다. ### 단계별 릴리스 모니터링 상세 * **Production(운영):** 이미 배포된 버전의 크래시 지표와 지난 24시간 동안의 DAU 추이를 모니터링하여 배포 후 예기치 못한 문제를 감시합니다. * **Current(현재):** 배포 대기 중인 버전의 상태를 집중 관리합니다. ITGC(IT 일반 통제) 테스트 통과 여부와 데이터 손실 임계치 준수 여부 등을 확인하여 최종 배포 가능 여부를 결정합니다. * **Upcoming(차기):** 다음 릴리스 버전을 미리 준비하며, 해당 단계에서 불필요한 섹션은 비활성화하여 현재 집중해야 할 정보와 구분합니다. 복잡한 마이크로서비스 환경이나 멀티 플랫폼 앱을 운영하는 조직이라면, 흩어진 릴리스 데이터를 하나로 모으는 전용 대시보드 구축이 필수적입니다. 특히 Backstage와 같은 내부 개발 포털을 활용해 도구 간 데이터 일관성을 확보하고 시각적인 상태 지표(초록/노랑/빨강)를 도입하면, 릴리스 관리의 효율성을 극대화하고 배포 안정성을 크게 높일 수 있습니다.

airbnb원문

대규모 환경에서 동적 (새 탭에서 열림)

에어비앤비(Airbnb)는 대규모 시스템에서 서비스 재시작 없이 런타임 동작을 변경할 수 있는 동적 설정 플랫폼 'Sitar'를 통해 개발의 유연성과 시스템의 안정성을 동시에 확보하고 있습니다. 설정을 코드처럼 관리(Config as Code)하고 단계별 배포 및 로컬 캐싱 전략을 도입함으로써, 설정 오류로 인한 장애 범위를 최소화하고 신속한 사고 대응이 가능한 환경을 구축했습니다. 이를 통해 에어비앤비는 수많은 마이크로서비스 환경에서도 안전하고 신뢰성 있는 설정 변경 프로세스를 운영하고 있습니다. **현대적인 동적 설정 플랫폼의 필수 요건** * **일관된 관리 경험:** 설정의 정의, 리뷰, 테스트, 배포에 이르는 전 과정을 통합된 워크플로우로 제공하여 개발자 경험을 개선합니다. * **설정의 코드화(Config as Code):** 모든 설정 변경은 서비스 코드와 마찬가지로 버전 관리, 코드 리뷰, 감사(Audit)가 가능해야 하며, 강력한 접근 제어가 수반되어야 합니다. * **격리된 환경에서의 테스트:** 운영 환경에 적용하기 전, 로컬이나 카나리(Canary) 환경에서 설정을 안전하게 검증할 수 있는 기능을 제공합니다. * **유연한 멀티테넌트 지원:** 서비스별 위험도에 따라 배포 전략(예: AWS 존 단위, 쿠키 단위, 포드 백분율 등)을 다르게 설정할 수 있어야 합니다. * **신속하고 통제된 사고 대응:** 장애 발생 시 긴급 설정을 즉시 배포할 수 있어야 하며, 변경 사항에 대한 높은 관측성(Observability)을 통해 원인을 빠르게 파악하고 롤백할 수 있어야 합니다. **Sitar 플랫폼의 4계층 아키텍처** * **개발자 지향 계층(Developer-facing layer):** 기본적으로 Git 기반 워크플로우를 사용하며, 긴급 상황이나 특정 운영 요구사항을 위해 웹 UI(Sitar-portal)를 병행 운영합니다. * **제어 평면(Control Plane):** 설정 변경의 오케스트레이션을 담당하며 스키마 검증, 권한 확인, 배포 범위 및 속도 결정 등 핵심 로직을 실행합니다. * **데이터 평면(Data Plane):** 설정 값의 원천(Source of Truth) 역할을 하며, 대규모 환경에서도 신속하고 일관되게 설정을 배포할 수 있는 확장성 있는 저장소 역할을 수행합니다. * **에이전트 및 클라이언트(Agents and Clients):** 서비스와 함께 실행되는 사이드카 에이전트가 설정을 가져와 로컬에 캐싱하며, 클라이언트 라이브러리는 애플리케이션이 이 설정에 빠르게 접근할 수 있도록 돕습니다. **안정성을 위한 핵심 설계 선택** * **Git 기반 워크플로우 활용:** GitHub Enterprise와 기존 CI/CD 도구를 재사용하여 코드 리뷰, 승인 절차, 변경 이력 관리 등 검증된 프로세스를 설정 관리에도 동일하게 적용합니다. * **단계별 배포(Staged Rollouts)와 빠른 롤백:** 변경 사항을 한꺼번에 적용하지 않고 범위를 점진적으로 확대하며, 회귀 장애 감지 시 즉시 알림을 보내고 신속하게 이전 상태로 되돌립니다. * **제어 및 데이터 평면의 분리:** '결정'하는 로직과 '전달'하는 메커니즘을 분리하여, 배포 전략을 수정하더라도 실제 데이터 저장 및 배포 인프라에 영향을 주지 않도록 설계했습니다. * **로컬 캐싱을 통한 회복 탄력성:** 사이드카 에이전트가 설정을 로컬에 저장하므로, 백엔드 시스템에 일시적인 장애가 발생하더라도 서비스는 마지막으로 확인된 정상 설정(Last known good config)으로 중단 없이 동작할 수 있습니다. 대규모 시스템에서 동적 설정을 안전하게 운영하기 위해서는 단순한 키-값 저장소를 넘어, **자동화된 스키마 검증, 단계별 배포, 그리고 인프라 장애 시에도 동작할 수 있는 로컬 캐싱 전략**이 필수적입니다. 설정을 코드와 동일한 수준의 엄격한 프로세스로 관리할 때, 비로소 유연성과 안정성이라는 두 마리 토끼를 잡을 수 있습니다.

github3분 읽기큐레이션 요약

GitHub 에이전틱 워크플

GitHub Agentic Workflows는 자연어로 작성한 Markdown 지시를 GitHub Actions에서 코딩 에이전트가 실행하도록 해 저장소 업무를 자동화하는 기술이다. 이슈 분류, 문서 갱신, 테스트 보강, CI 실패 분석처럼 기존의 결정론적 YAML 워크플로로는 처리하기 어려운 작업을 자동화하면서도, 권한·샌드박스·검토 절차를 통해 통제할 수 있도록 설계됐다. GitHub는 이를 CI/CD를 대체하는 것이 아니라 보완하는 “Continuous AI”로 소개하며, 2026년 2월 기술 프리뷰로 공개했다. ## Markdown으로 정의하는 에이전트 기반 저장소 자동화 - 원하는 결과를 일반 Markdown으로 설명하고, 이를 저장소의 자동화 워크플로로 등록한다. - 워크플로는 GitHub Actions에서 실행되며, 설정에 따라 다음과 같은 코딩 에이전트를 사용할 수 있다. - Copilot CLI - Claude Code - OpenAI Codex - 기존 개발팀이 이미 사용하는 GitHub Actions의 권한 관리, 로그, 감사 기능, 저장소 컨텍스트를 그대로 활용한다. - 복잡한 절차를 직접 YAML로 세부 구현하기보다, 사람이 의도와 목표를 설명하고 에이전트가 저장소를 분석해 작업을 수행하는 방식이다. ## 지속적인 저장소 관리에 활용되는 작업 - **이슈 트리아지** - 새 이슈를 요약하고 라벨을 붙인다. - 관련 담당자나 적절한 처리 경로로 이슈를 분류한다. - **문서 유지 관리** - 코드 변경 사항을 분석해 README와 기술 문서를 최신 상태로 갱신한다. - **코드 단순화** - 반복적으로 개선 가능한 코드를 식별한다. - 개선안을 pull request로 생성해 사람이 검토하도록 한다. - **테스트 개선** - 테스트 커버리지를 평가한다. - 가치가 높은 테스트를 추가하도록 제안하거나 pull request를 만든다. - **품질 관리** - CI 실패 원인을 조사한다. - 문제에 맞는 구체적인 수정안을 제안한다. - **정기 보고** - 저장소의 건강 상태, 활동량, 주요 추세를 정기적으로 분석하고 보고서를 작성한다. ## Continuous AI와 기존 CI/CD의 관계 - GitHub는 에이전트 기반 자동화를 소프트웨어 개발 생명주기에 AI를 지속적으로 결합하는 **Continuous AI**라고 부른다. - Agentic Workflow는 빌드, 테스트, 릴리스처럼 결과가 명확하고 결정론적인 CI/CD 파이프라인을 대체하지 않는다. - 대신 다음과 같이 판단과 분석이 필요한 작업을 담당한다. - 어떤 이슈가 중요한지 판단 - 문서와 코드의 불일치 탐색 - 실패 원인 분석 - 개선 가치가 높은 테스트나 리팩터링 선별 - 따라서 기존 CI/CD는 안정적인 검증과 배포를 담당하고, Agentic Workflow는 저장소 운영과 엔지니어링 작업의 지능화를 담당하는 구조다. ## 권한과 안전장치 - 안전성과 통제는 설계의 핵심 요소로 제시된다. - 워크플로는 기본적으로 **읽기 전용 권한**으로 실행된다. - 파일 수정, 이슈 변경, pull request 생성 등 쓰기 작업은 명시적인 승인이 필요하다. - 쓰기 작업은 **safe outputs**를 통해 사전에 허용된 형태로 제한하고, 사람이 검토할 수 있도록 한다. - 샌드박스 실행, 권한 제어, 감사 로그, 실행 기록 등을 활용해 의도하지 않은 동작과 프롬프트 인젝션 공격에 대비한다. - 결과적으로 에이전트가 자율적으로 작업하더라도, 실행 시점과 변경 범위를 저장소 관리자가 정의한 경계 안에 둘 수 있다. ## 실제 적용 사례와 기대 효과 - Home Assistant에서는 대규모 이슈를 분석해 반복적으로 나타나는 문제와 사용자에게 영향이 큰 이슈를 파악하는 데 활용한다. - CNCF는 문서 자동화와 조직 차원의 팀 보고를 개선하는 데 사용하고 있다. - Carvana는 여러 저장소에 걸친 엔지니어링 작업에 에이전트를 적용하면서도 내장된 제어 기능을 활용하고 있다. - 개인 저장소부터 오픈소스 프로젝트와 대기업 규모의 복잡한 시스템까지 적용 범위를 확장할 수 있다. - 반복적인 관리 업무를 줄이고, 사람이 중요한 판단과 검토에 집중하도록 돕는 것이 주요 목표다. 실제로 도입할 때는 읽기 전용·보고서 생성처럼 위험이 낮은 작업부터 시작한 뒤, 사람이 검토하는 pull request 생성 단계로 확장하는 것이 적절하다. 빌드와 배포 파이프라인은 기존 CI/CD로 유지하고, Agentic Workflow는 분석·분류·문서화·개선 제안처럼 판단이 필요한 업무에 사용하는 편이 안전하다.

원문 읽기(새 탭에서 열림)
line원문

Claude Code Action: 조직 전반의 코드 품질을 지키는 AI 코드 리뷰 플랫폼화 (새 탭에서 열림)

LINE NEXT는 조직의 성장에 따른 코드 리뷰 품질 편차를 줄이고 개인 단위로 파편화된 AI 도구 활용을 조직 차원의 표준으로 통합하기 위해 Claude Code를 활용한 플랫폼화된 코드 리뷰 시스템을 구축했습니다. GitHub Actions를 기반으로 설계된 이 시스템은 리뷰 기준과 실행 로직을 중앙에서 관리함으로써 수많은 프로젝트에 일관된 품질의 피드백을 신속하게 제공합니다. 결과적으로 개별 팀의 운영 부담은 최소화하면서 보안과 거버넌스가 강화된 자동화된 리뷰 환경을 전사적으로 확산시키는 성과를 거두었습니다. ### AI 코드 리뷰 플랫폼화의 배경과 목적 * **품질 편차 해소:** 조직 규모가 커짐에 따라 리뷰어의 경험과 성향에 따라 달라지는 코드 리뷰의 깊이와 관점을 조직 차원에서 일관되게 유지할 필요가 있었습니다. * **개인 도구의 한계 극복:** 개별 개발자가 로컬에서 AI를 사용할 때 발생하는 리뷰 기준의 상이함, 프로세스 단절, 신규 구성원 온보딩의 어려움을 해결하고자 했습니다. * **DevOps 관점의 표준화:** 파편화된 품질 프로세스를 하나로 묶어 PR(Pull Request) 워크플로에 자연스럽게 녹아드는 '표준 구성 요소'로 재정의했습니다. ### GitHub Actions 기반의 통합 전략 * **기존 흐름 유지:** LINE NEXT의 표준 소스 관리 도구인 GitHub와 CI/CD 도구인 GitHub Actions를 활용하여 개발자의 학습 비용을 낮추고 기존 워크플로에 즉시 통합했습니다. * **인프라 운영 효율화:** DevOps 팀이 공통 GitHub App Runner 환경을 제공함으로써, 각 서비스 팀은 추가 인프라 구성 없이 설정만으로 AI 리뷰를 도입할 수 있게 했습니다. * **접근성 향상:** PR 내에서 `@claude` 멘션만으로 리뷰를 트리거하고, 결과물은 GitHub 댓글이나 리뷰 형태로 즉각 확인하는 직관적인 UX를 제공합니다. ### 호출과 실행을 분리한 설계 구조 (Caller-Executor) * **서비스 리포지터리(Caller):** AI 리뷰의 진입점 역할만 수행하며, 서비스명과 리뷰 타입 등 최소한의 정보만 전달하여 구조적 단순함을 유지합니다. * **중앙 리포지터리(Executor):** 프롬프트 관리, 페르소나 정의, 리뷰 정책, 권한 제어 등 핵심 로직을 집약하여 관리합니다. * **일관성 및 확산성:** 중앙에서 프롬프트를 수정하면 연결된 모든 프로젝트에 즉시 반영되며, 새로운 프로젝트는 표준 워크플로 호출만으로 빠르게 온보딩이 가능합니다. * **보안 강화:** GitHub Apps 기반의 인증과 Secrets 중앙 관리를 통해 외부 AI 호출 시의 보안 권한과 코드 접근 이력을 명확히 추적하고 통제합니다. ### 기술적 제약 극복: 포크(Fork) 기반 PR 처리 개선 * **공식 Action의 한계:** Claude Code Action의 초기 버전은 변경 코드가 `origin` 저장소에 있다는 것을 전제로 하여, 외부 포크 저장소에서 생성된 PR의 차이(diff)를 가져오지 못하는 문제가 있었습니다. * **내부 참조(ref) 활용:** 특정 브랜치를 fetch하는 방식 대신, GitHub가 모든 PR에 대해 자동으로 생성하는 특수한 참조 주소인 `refs/pull/<PR 번호>/head`를 사용하도록 로직을 재설계했습니다. * **결과:** 이 구조적 개선을 통해 내부 브랜치뿐만 아니라 외부 기여자의 포크 PR에 대해서도 중단 없는 AI 코드 리뷰가 가능한 범용적인 플랫폼 환경을 완성했습니다. ### 실용적인 제언 AI 코드 리뷰 도구를 도입할 때는 단순히 개별 리포지터리에 적용하는 것을 넘어, **'호출은 단순하게, 책임은 중앙으로'** 분리하는 아키텍처를 설계하는 것이 중요합니다. 이를 통해 조직 전체의 리뷰 품질을 상향 평준화하고, 보안 정책 변경이나 프롬프트 고도화 시 발생하는 운영 비용을 획기적으로 줄일 수 있습니다.

github4분 읽기큐레이션 요약

실무에서의 지속적인 AI: 에

소프트웨어 개발에는 테스트·빌드처럼 규칙으로 자동화할 수 있는 작업뿐 아니라, 코드의 의도와 맥락을 해석해야 하는 작업도 많다. GitHub가 제안하는 **Continuous AI**는 CI를 대체하지 않고, 자연어로 정의한 기대사항을 에이전트가 지속적으로 검토하도록 해 문서 불일치, 성능 회귀, 버그 추세 분석 같은 판단 중심 업무를 자동화한다. 다만 에이전트의 권한과 산출물을 명시적으로 제한해 개발자의 검토와 통제를 유지하는 것이 핵심이다. ## CI가 해결하지 못하는 판단 중심 업무 - CI는 테스트, 빌드, 포맷팅, 정적 분석처럼 결과를 이진적으로 판단할 수 있는 작업에 적합하다. - 테스트가 통과했는지 - 빌드가 성공했는지 - 정해진 린트 규칙을 위반했는지 - 반면 다음과 같은 문제는 단순한 규칙이나 휴리스틱만으로 판단하기 어렵다. - 문서의 설명과 실제 구현이 서로 다른 경우 - 접근성 린터는 통과하지만 사용자에게 여전히 혼란스러운 문구 - 메이저 버전 변경 없이 의존성의 플래그 동작이 바뀐 경우 - 반복문 안에서 정규식을 컴파일해 발생하는 미묘한 성능 저하 - 실제 제품과 상호작용해야만 드러나는 UI 동작 변화 - 이런 문제는 코드가 의도와 일치하는지, 사용자 경험이나 성능에 문제가 없는지를 해석해야 한다. - GitHub Next는 코드 생성 중심의 AI에서 나아가, 개발자의 인지 부담이 큰 반복 업무를 대신 처리하는 방향을 제시한다. ## Continuous AI의 개념 - Continuous AI는 CI를 대체하는 새로운 제품이 아니라 자동화 패턴이다. - 핵심 구조는 다음과 같다. - **자연어 규칙** - **에이전트의 추론** - **저장소 안에서의 지속적 실행** - 개발자는 코드에 대해 “무엇이 참이어야 하는가”를 자연어로 정의한다. - 에이전트는 저장소를 분석한 뒤 다음과 같은 검토 가능한 산출물을 만든다. - 수정 제안 - 풀 리퀘스트 - 이슈 - 댓글 또는 토론 - 프로젝트 활동·품질 관련 인사이트 - 예시로는 다음과 같은 워크플로가 있다. - 문서와 구현의 차이를 찾아 원인을 설명하고 수정안 제시 - 매주 프로젝트 활동, 버그 증가 추세, 코드 변경량이 급증한 영역 요약 - 핵심 경로의 성능 회귀 탐지 - 사용자 흐름에서 의미상 회귀가 발생했는지 확인 - 실제 워크플로는 한 문장으로 완성되지 않는다. 개발자와 에이전트가 의도, 제약 조건, 허용 가능한 결과를 반복적으로 조정하며 만든다. ## YAML과 자연어의 역할 분담 - 문제가 명확한 규칙으로 표현된다면 YAML, 스키마, 린터, 기존 CI가 여전히 가장 적합하다. - 그러나 “문서와 코드가 불일치하면 찾아서 수정하라”와 같은 요구는 정규식이나 스키마만으로 의미를 보존하기 어렵다. - 자연어는 코드의 의미와 개발자의 의도를 설명하는 데 유리하다. - 따라서 Continuous AI는 YAML 기반 CI를 대체하는 것이 아니라, CI가 다루기 어려운 의미·맥락 중심의 자동화를 보완한다. ## 권한과 안전한 산출물 - 에이전트는 기본적으로 저장소에 읽기 전용 권한만 가진다. - 명시적으로 허용하지 않는 한 다음 작업을 수행할 수 없다. - 이슈 생성 - 풀 리퀘스트 생성 - 파일이나 콘텐츠 수정 - **Safe Outputs**는 에이전트가 만들 수 있는 산출물과 조건을 명시하는 결정적 계약이다. - 워크플로를 정의할 때 개발자는 에이전트가 어떤 결과를 만들 수 있는지와 그 제약을 지정한다. - 예상 밖의 동작에 대비해 다음 안전장치를 둔다. - 출력 정제 - 명시적 권한 관리 - 전체 활동 기록 및 감사 가능성 - 제한된 권한으로 인한 예측 가능한 영향 범위 - 따라서 목표는 AI가 개발을 자율적으로 장악하는 것이 아니라, 개발자가 정한 경계 안에서 반복적인 판단 업무를 수행하게 하는 것이다. ## 개발자의 검토를 유지하는 방식 - 에이전트는 자율적으로 커밋을 확정하는 대신, 개발자가 검토할 수 있는 형태로 결과를 제출한다. - 가장 일반적인 출력은 풀 리퀘스트이며, 기존의 코드 리뷰 방식과 자연스럽게 연결된다. - 개발자는 AI가 생성한 결과를 검토하고, 자신의 판단과 취향을 최종적으로 유지한다. - 장기적으로는 개발자가 계속 직접 수행할 일과 AI에 위임할 일을 구분하는 것이 중요하다. 실무에서는 먼저 읽기 전용 분석과 보고서 생성부터 도입하고, 결과의 품질이 검증된 뒤 이슈 생성이나 풀 리퀘스트 작성 권한을 제한적으로 부여하는 방식이 안전하다. 결정적 규칙은 CI에 남기고, 의도·맥락·해석이 필요한 업무만 자연어 기반 에이전트 워크플로로 확장하는 것이 바람직하다.

원문 읽기(새 탭에서 열림)
gitlab원문

GitLab Duo 에이전트 (새 탭에서 열림)

GitLab은 개발자가 코드를 작성하는 시간을 넘어 소프트웨어 개발 수명 주기(SDLC) 전반의 혁신 속도를 높이기 위해 'GitLab Duo Agent Platform'의 정식 출시(GA)를 발표했습니다. 이 플랫폼은 단순히 코드를 생성하는 수준을 넘어, 지능적인 오케스트레이션과 에이전트 기반 AI 자동화를 통해 코드 리뷰, 보안 점검, 파이프라인 최적화 등 기존의 병목 구간을 해결하는 데 초점을 맞춥니다. 결과적으로 팀은 인간과 AI의 유기적인 협업을 통해 복잡한 작업을 자율적으로 수행하고 전체 개발 프로세스를 가속화할 수 있습니다. ### AI 패러독스 해결과 통합된 협업 경험 * **AI 패러독스 극복:** 개발자가 코드 작성에 할애하는 시간은 전체의 약 20%에 불과하며, 나머지 80%의 업무에서 발생하는 병목 현상을 해결하기 위해 에이전트 중심의 접근 방식을 도입했습니다. * **통합 UX:** GitLab 웹 UI와 IDE(VS Code, JetBrains, Cursor, Windsurf 등) 전반에서 'Duo Agentic Chat'을 사용할 수 있으며, 이슈, 병합 요청(MR), 파이프라인 활동 내에서 AI와 실시간으로 소통할 수 있습니다. * **상황 맥락 인식:** 단순 응답을 넘어 이슈, 보안 결과물, 파이프라인 상태 등 전체 수명 주기의 맥락을 이해하고 다단계 추론을 통해 정확한 가이드를 제공합니다. ### 지능형 에이전틱 채팅의 주요 기능 * **분석 및 분석:** 웹 UI에서 이슈, 에픽, MR을 생성하거나 요약할 수 있으며, 복잡한 프로젝트 구조와 의존성을 파악하는 데 도움을 줍니다. * **코드 및 인프라 자동화:** 다양한 언어와 프레임워크에 걸쳐 코드, 구성 파일, IaC(Infrastructure-as-Code)를 생성하며 버그 수정 및 아키텍처 현대화를 지원합니다. * **CI/CD 및 보안:** 기존 파이프라인의 문제를 해결하거나 새로 구축하며, 보안 취약점을 설명하고 도달 가능성에 기반해 수정 우선순위를 제안합니다. ### 전문화된 에이전트 시스템 * **기본 에이전트(Foundational Agents):** GitLab 전문가들이 사전 구축한 에이전트로, 업무를 구조화하는 'Planner Agent'와 취약점 영향을 분석하는 'Security Analyst Agent'가 포함됩니다. * **커스텀 에이전트(Custom Agents):** 조직 고유의 표준과 가이드라인을 학습시킨 에이전트를 'AI Catalog'를 통해 관리하고 공유할 수 있습니다. * **외부 에이전트(External Agents):** Anthropic의 Claude Code나 OpenAI의 Codex CLI와 같은 외부 AI 도구를 GitLab 플랫폼 내에서 네이티브하게 연결하여 사용할 수 있습니다. ### 복잡한 업무를 처리하는 자동화 플로우(Flows) * **Issue to MR 플로우:** 잘 정의된 이슈로부터 구조화된 병합 요청(MR)을 자동으로 생성하여 개발 착수 시간을 단축합니다. * **CI/CD 전환 및 수정:** 타 시스템의 파이프라인 구성을 GitLab CI/CD로 현대화하거나, 실패한 파이프라인을 분석하여 변경 사항을 제안합니다. * **코드 리뷰 플로우:** 코드 변경 사항과 댓글을 분석하여 AI 기반의 심층적인 피드백을 제공함으로써 리뷰 프로세스를 간소화합니다. ### 사용 권한 및 새로운 과금 체계 * **GitLab Credits 도입:** 사용량 기반 과금 방식인 'GitLab Credit'을 통해 에이전트 플랫폼을 이용할 수 있습니다. * **구독별 혜택:** Premium 구독자에게는 사용자당 월 $12, Ultimate 구독자에게는 월 $24 상당의 크레딧이 추가 비용 없이 매월 제공됩니다. * **기존 고객 전환:** Duo Pro 또는 Enterprise 사용자는 기존 계약 잔여분을 크레딧으로 전환하여 즉시 에이전트 플랫폼으로 마이그레이션할 수 있습니다. GitLab Duo Agent Platform은 단순한 AI 비서를 넘어 실제 업무를 수행하는 '가상 팀원'을 제공합니다. 조직의 생산성을 높이기 위해서는 먼저 기본 제공되는 Planner 및 Security 에이전트를 활용해보고, 점진적으로 조직 특화된 커스텀 에이전트와 자동화 플로우를 구축하여 개발 전체 사이클의 효율을 극대화할 것을 권장합니다.

gitlab원문

에이전트 이해 (새 탭에서 열림)

GitLab Duo 에이전트 플랫폼은 소프트웨어 개발 수명 주기(SDLC) 전반에 걸쳐 협업할 수 있는 세 가지 유형의 AI 에이전트—기본(Foundational), 맞춤형(Custom), 외부(External)—를 제공합니다. 사용자는 별도의 설정 없이 바로 사용 가능한 기본 에이전트를 활용하거나, 특정 팀의 워크플로우에 맞춘 맞춤형 에이전트를 구축하고, 외부의 전문화된 AI 모델을 연동하여 비동기적인 자동화 워크플로우를 구현할 수 있습니다. 이러한 다각적인 접근 방식은 개발 팀이 코드 작성부터 보안 분석, 데이터 가공에 이르는 복잡한 작업을 효율적으로 관리할 수 있도록 지원합니다. ### 즉시 활용 가능한 기본 에이전트 GitLab에서 직접 구축하고 유지 관리하는 에이전트로, 별도의 설정 없이 IDE나 웹 UI의 'Agentic Chat'을 통해 즉시 사용할 수 있습니다. * **GitLab Duo:** 일반적인 개발 협업을 위한 기본 에이전트로, 코드 생성 및 수정, 머지 리퀘스트(MR) 생성, 이슈 트리이징 등 전반적인 SDLC 맥락 내에서의 작업을 수행합니다. * **Planner Agent:** 제품 기획 단계에서 에픽(Epic)을 세분화하고 구조화된 이슈를 생성하여 관리자가 기획 생산성을 높일 수 있도록 돕습니다. * **Security Analyst Agent:** 취약점 스캔 결과를 분석하여 오탐을 식별하고, 실제 위험도에 따라 보안 이슈의 우선순위를 정렬합니다. * **Data Analyst Agent:** GitLab 쿼리 언어(GLQL)를 사용하여 플랫폼 전체의 데이터를 조회하고 시각화하며, 이슈 해결 시간 트렌드나 팀별 작업량 등의 인사이트를 제공합니다. ### 팀 표준에 최적화된 맞춤형 에이전트 프로젝트나 그룹 설정 내에서 시스템 프롬프트를 정의하여 팀 고유의 워크플로우와 기준에 최적화된 에이전트를 생성할 수 있습니다. * **시스템 프롬프트 설정:** 에이전트의 전문 분야와 행동 방식을 정의하는 핵심 요소입니다. 예를 들어 디버깅 에이전트의 경우, CI/CD 로그와 런타임 데이터를 상관 분석하도록 역할을 부여할 수 있습니다. * **가시성 제어:** 프로젝트 멤버만 사용할 수 있는 'Private' 모드와 AI 카탈로그에 노출되어 다른 프로젝트에서도 활성화할 수 있는 'Public' 모드 중 선택이 가능합니다. * **주요 활용 사례:** 특정 프로그래밍 언어나 사내 규정에 맞춘 문서화 지원, 신규 팀원을 위한 온보딩 가이드, 현지 언어 기반의 고객 지원 서비스 등이 있습니다. ### 외부 AI 연동을 통한 비동기 자동화 플랫폼 외부에서 구동되는 에이전트로, 이슈나 머지 리퀘스트에서 '@mentions'를 통해 트리거되어 배경에서 작업을 수행합니다. * **전문 AI 모델 활용:** Anthropic의 'Claude Code'(코드 생성 및 분석)나 OpenAI의 'Codex'(작무 위임 및 코드 보조)와 같은 특화된 외부 LLM 기능을 GitLab 내로 가져올 수 있습니다. * **이벤트 기반 자동화:** 사용자와 실시간 대화하는 방식이 아니라, 특정 이벤트가 발생했을 때 백그라운드에서 실행되므로 복잡한 코드 리뷰나 분석 작업에 적합합니다. * **통합 자격 증명 관리:** GitLab은 사용자가 직접 API 키를 관리하거나 순환시킬 필요가 없도록 GitLab 관리형 자격 증명 방식을 지원하여 보안성을 높였습니다. ### 효과적인 에이전트 운용을 위한 제언 에이전트를 도입할 때는 처음부터 모든 권한을 부여하기보다 읽기 전용 권한으로 시작하여 충분한 테스트를 거치는 것이 중요합니다. 특히 맞춤형 에이전트를 제작할 때는 시스템 프롬프트에 역할과 책임을 구체적으로 명시하고, 예상되는 출력 예시를 포함하여 답변의 일관성을 확보해야 합니다. 이를 통해 반복적인 수동 작업을 줄이고 창의적인 개발 업무에 더 집중할 수 있는 환경을 구축할 수 있습니다.

gitlab원문

GitLab Duo Agentic Chat 시작하기 (새 탭에서 열림)

GitLab Duo Agentic Chat은 단순한 질의응답을 넘어 소프트웨어 개발 수명 주기(SDLC) 전반에서 능동적으로 작업을 수행하는 자율형 AI 협업 파트너입니다. 이 플랫폼은 코드 수정, 병합 요청(MR) 생성, 보안 취약점 해결 등 실질적인 액션을 실행하며, 프로젝트의 컨텍스트를 완벽히 이해하여 개발자의 생산성을 극대화합니다. 사용자는 웹 UI와 IDE 내에서 최적화된 모델과 전용 에이전트를 선택함으로써 복잡한 워크플로우를 자동화하고 고품질의 소프트웨어를 빠르게 배포할 수 있습니다. **자율적인 AI 협업 파트너의 핵심 역량** * **능동적 작업 수행:** 질문에 답하는 수준을 넘어 파일을 생성 및 수정하고, 이슈를 트리아지(Triage)하거나 CI/CD 파이프라인의 오류를 직접 해결합니다. * **맥락 인식 능력:** 대화 기록은 물론 프로젝트 아키텍처, 코드베이스, 위키, GitLab 문서 및 보안 스캔 결과까지 광범위한 컨텍스트를 활용합니다. * **확장성 및 통합:** Model Context Protocol(MCP)을 통해 외부 서비스와 통합할 수 있으며, 목적에 따라 전문화된 멀티 에이전트 시스템을 지원합니다. **작업별 최적화를 위한 모델 및 에이전트 선택** * **유연한 모델 구성:** 대규모 언어 모델(LLM)마다 강점이 다르므로 작업 요구사항에 따라 적절한 모델을 선택할 수 있으며, 이는 그룹 또는 사용자 단위로 설정 가능합니다. * **전용 에이전트 활용:** 제품 관리를 위한 'Planner Agent', 보안 분석을 위한 'Security Analyst Agent' 등 특정 도메인에 특화된 에이전트로 전환하여 전문적인 도움을 받을 수 있습니다. * **간편한 접근성:** 웹 UI의 사이드바나 IDE 내의 드롭다운 메뉴를 통해 작업 흐름을 끊지 않고 에이전트와 모델을 즉시 변경할 수 있습니다. **실무 생산성 향상을 위한 주요 활용 사례** * **이슈 및 보안 관리:** 특정 라벨이 지정된 이슈 목록 추출, 에픽(Epic)의 세부 작업 분할, 보안 취약점 분석 및 이를 해결하기 위한 자동 수정 MR 생성이 가능합니다. * **코드 이해 및 온보딩:** 복잡한 코드베이스의 아키텍처 개요 파악, 특정 함수의 호출 위치 검색, 신규 팀원을 위한 로컬 개발 환경 설정 안내 등을 수행합니다. * **디버깅 및 품질 개선:** 실패한 파이프라인 로그를 분석해 원인을 진단하고, 기존 코드를 SOLID 원칙에 맞춰 리팩토링하거나 최신 프로그래밍 언어 버전으로 변환하는 작업을 지원합니다. * **기능 구현 및 테스트:** REST API 엔드포인트 생성, 유닛 테스트 코드 자동 생성, UI 구성 요소의 접근성 검토 등 개발 전 과정을 보조합니다. GitLab Duo Agentic Chat의 잠재력을 최대한 끌어내기 위해서는 작업의 성격에 맞는 전용 에이전트를 선택하는 것이 가장 중요합니다. 보안 분석이나 기획 단계 등 정밀한 컨텍스트가 필요한 작업일수록 일반 채팅보다는 특화된 에이전트를 활용할 것을 권장하며, 향후 출시될 CLI 지원을 통해 터미널 환경에서도 동일한 AI 협업 경험을 확장해 나갈 수 있습니다.

gitlab원문

GitLab Duo Agent Platform 시작하기: (새 탭에서 열림)

GitLab Duo Agent Platform은 개발 수명 주기 전반에 걸쳐 여러 지능형 에이전트를 배치하여 팀과 AI 간의 비동기적 협업을 지원하는 새로운 오케스트레이션 계층입니다. 기존의 1:1 상호작용 방식의 AI 어시스턴트를 넘어, 다수의 전문 에이전트가 코드 리팩토링, 보안 스캔, 조사 등의 일상적인 업무를 자율적으로 수행하도록 설계되었습니다. 이를 통해 개발자는 GitLab이 보유한 프로젝트 컨텍스트를 기반으로 전문적인 지원을 받으며, 복잡한 문제 해결과 혁신에 더욱 집중할 수 있는 환경을 구축할 수 있습니다. ### GitLab Duo의 진화: 개인 도구에서 팀 협업 플랫폼으로 GitLab Duo Agent Platform은 기존 Duo Pro 및 Enterprise 서비스의 단순한 대체제가 아니라, 기능을 확장한 상위 집합 개념입니다. * **Duo Pro:** IDE 내에서 개별 개발자에게 AI 기반 코드 제안 및 채팅을 제공하여 개인의 생산성을 높이는 데 초점을 맞췄습니다. * **Duo Enterprise:** 소프트웨어 개발 수명 주기 전반으로 AI 기능을 확장했으나, 여전히 사용자와 AI 간의 1:1 질의응답 중심의 경험을 제공했습니다. * **Duo Agent Platform:** 일대일 방식에서 '다대다(Many-to-Many)' 팀-에이전트 협업 모델로 전환되어, 전문화된 에이전트가 소프트웨어 수명 주기 전반의 작업을 자율적으로 처리합니다. ### 지능형 에이전트 기반의 DevSecOps 자동화 플랫폼은 단순한 챗봇을 넘어 DevSecOps 전반의 워크플로우를 병렬적이고 동적인 프로세스로 변화시킵니다. * **오케스트레이션 계층:** 개발자가 AI 에이전트와 비동기적으로 협업하며 일련의 작업을 위임할 수 있는 중앙 제어 역할을 수행합니다. * **광범위한 컨텍스트 활용:** GitLab의 코드 관리, CI/CD 파이프라인, 이슈 트래킹, 테스트 결과, 보안 스캔 데이터를 활용하여 에이전트가 팀의 표준과 관행에 맞는 정확한 결과물을 내도록 합니다. * **일상적 업무의 위임:** 코드 리팩토링, 보안 취약점 스캔, 데이터 조사와 같은 반복적인 업무를 전문 에이전트에게 맡겨 개발자의 인지적 부하를 줄입니다. ### 플랫폼 활용을 위한 단계적 접근 GitLab은 이 플랫폼의 도입과 숙달을 위해 총 8부로 구성된 가이드를 제공하며 사용자들의 적응을 돕습니다. * **기초부터 심화까지:** 플랫폼의 기본 개념 이해부터 시작하여 MCP(Model Context Protocol) 통합, 맞춤화 설정, 실제 프로덕션 워크플로우 구축까지의 과정을 포함합니다. * **커뮤니티 및 이벤트:** 'GitLab Transcend'와 같은 행사를 통해 에이전트 기반 AI가 소프트웨어 배포를 어떻게 변화시키는지 사례를 공유하고, 커뮤니티 포럼을 통해 기술적 피드백을 주고받을 수 있습니다. 단순한 코드 완성을 넘어 팀의 업무 방식을 혁신하고자 한다면, GitLab Duo Agent Platform의 8부 시리즈 가이드를 통해 에이전트 기반의 자율적 개발 환경을 구축해 보시길 권장합니다.

netflix원문

Temporal이 넷플릭스의 안정 (새 탭에서 열림)

넷플릭스는 배포 시스템인 Spinnaker의 클라우드 작업 안정성을 높이기 위해 '지속 가능한 실행(Durable Execution)' 플랫폼인 Temporal을 도입했습니다. 기존 시스템은 인스턴스 재시작이나 네트워크 일시 오류 발생 시 작업 상태를 잃어버리는 구조적 한계로 인해 약 4%의 배포 실패율을 보였습니다. Temporal 도입 후, 상태 정보를 자동으로 유지하고 장애 시 중단 지점부터 재개하는 방식을 통해 일시적 장애로 인한 실패율을 0.0001%까지 획기적으로 낮추는 성과를 거두었습니다. **기존 Spinnaker 구조와 상태 관리의 한계** * 배포 엔진인 Orca가 Clouddriver에 작업을 요청하면, Clouddriver는 내부 오케스트레이션 엔진을 통해 클라우드 제공업체의 API를 호출하는 구조였습니다. * 작업 상태가 메모리나 휘발성 저장소에 유지되었기 때문에, 클러스터 업데이트나 인스턴스 종료와 같은 운영 작업 중 실행 중인 모든 작업이 유실되거나 일관성이 깨지는 문제가 빈번했습니다. * 복잡한 다단계 클라우드 작업 중 중간 단계에서 오류가 발생하면, 수동으로 개입하여 상태를 정리하거나 재시도 로직을 직접 복잡하게 구현해야만 했습니다. **Temporal을 이용한 지속 가능한 실행 구현** * 비즈니스 로직을 담당하는 '워크플로우(Workflow)'와 외부 API 호출 등 부수 효과를 수행하는 '액티비티(Activity)'를 분리하여 설계했습니다. * Temporal은 작업의 모든 실행 단계를 데이터베이스에 기록(Event Sourcing)하므로, 실행 중 프로세스가 죽더라도 새 인스턴스에서 마지막 상태를 복구하여 즉시 재개할 수 있습니다. * 개발자는 일시적인 네트워크 오류나 API 제한에 대비한 복잡한 재시도 코드를 작성하는 대신, Temporal의 선언적 재시도 정책을 활용해 "장애가 없는 것처럼" 코드를 작성할 수 있게 되었습니다. **도입 결과 및 운영 효율성 향상** * 일시적 장애로 인한 배포 실패율이 4%에서 0.0001%로 감소하며 시스템 신뢰도가 비약적으로 상승했습니다. * CDN 장비 업데이트와 같이 며칠 혹은 몇 주가 소요되는 장기 실행 작업도 타임아웃이나 상태 유실 걱정 없이 안정적으로 관리할 수 있게 되었습니다. * 인프라 운영 팀은 시스템 점검이나 배포를 위해 기존 작업을 강제로 중단하거나 완료될 때까지 기다릴 필요가 없어져 운영 유연성이 크게 확보되었습니다. 복잡한 분산 시스템에서 상태 관리와 재시도 로직을 직접 구현하는 것은 매우 까다롭고 오류가 발생하기 쉽습니다. 넷플릭스의 사례처럼 장기 실행 작업이나 높은 신뢰성이 요구되는 마이크로서비스 환경에서는 Temporal과 같은 워크플로우 엔진을 도입하여 인프라 수준에서 안정성을 보장받는 것이 효율적입니다.

naver원문

네이버 TV (새 탭에서 열림)

네이버웹툰은 기존 데이터 파이프라인에서 발생하던 복잡한 데이터 적재(Backfill) 작업과 높은 운영 비용 문제를 해결하기 위해 DBT와 Airflow를 결합한 'Flow.er' 시스템을 구축했습니다. Flow.er는 데이터 간의 의존성을 명확히 정의하는 데이터 계보(Lineage)를 중심으로 설계되어, 엔지니어가 데이터의 흐름을 온디맨드로 파악하고 관리할 수 있게 돕습니다. 이를 통해 데이터 품질을 높이는 동시에 여러 데이터 조직으로 확장 가능한 고도화된 데이터 플랫폼으로 발전하고 있습니다. **과거 파이프라인의 한계와 Flow.er의 탄생** * 과거에는 파이프라인 복구와 수동 백필 작업에 과도한 운영 리소스가 소모되어 업무 효율이 저하되는 문제가 있었습니다. * 데이터 간의 복잡한 연결 고리를 한눈에 파악하기 어려워 데이터 정합성을 유지하고 장애에 대응하는 데 한계가 존재했습니다. * 이러한 문제를 극복하기 위해 데이터 계보를 가시화하고 자동화된 운영이 가능한 'Flow.er' 서비스에 대한 PoC를 거쳐 실무에 도입했습니다. **DBT와 Airflow를 활용한 계보 중심 아키텍처** * **DBT의 역할**: SQL 기반의 데이터 모델링을 통해 데이터 변환 로직을 관리하며, 모델 간 의존성을 바탕으로 데이터 계보와 관련 문서(Documentation)를 자동 생성합니다. * **Airflow의 역할**: DBT로 정의된 모델들이 선후 관계에 맞춰 정확히 실행되도록 워크플로우를 오케스트레이션하고 스케줄링을 담당합니다. * **개발 생산성 향상**: 개인 인스턴스를 제공하여 개발자가 격리된 환경에서 모델을 테스트할 수 있게 하고, CI/CD 파이프라인을 통해 코드 변경 사항을 안전하게 배포합니다. **시스템 안정성 및 확장을 위한 컴포넌트** * **Playground & Tower**: 자유로운 데이터 실험을 위한 샌드박스 환경인 Playground와 파이프라인 상태를 실시간으로 감시하는 Tower를 통해 운영 가시성을 확보했습니다. * **Partition Checker**: 상위 데이터 소스의 파티션 생성 여부를 사전에 체크하여 데이터 누락을 방지하고 적재 정합성을 획기적으로 개선했습니다. * **Manager DAG System**: 수많은 데이터 모델과 DAG를 효율적으로 관리하기 위해 관리 전용 시스템을 개선하여 운영 편의성을 극대화했습니다. **Flow.er의 미래와 기술적 지향점** * **MCP(Model Context Protocol) 서버**: 데이터 모델의 컨텍스트를 외부 도구나 AI 에이전트가 이해할 수 있는 규격으로 제공하여 데이터 활용도를 높일 예정입니다. * **AI Agent 연동**: 단순한 파이프라인 운영을 넘어 AI가 데이터 계보를 분석하고 문제를 해결하거나 코드를 최적화하는 단계로의 발전을 준비하고 있습니다. 데이터 파이프라인의 복잡성으로 인해 백필과 운영에 고통받고 있다면, DBT를 활용해 계보를 명확히 정의하고 이를 Airflow와 유기적으로 연결하는 접근 방식이 필수적입니다. 데이터 계보 중심의 아키텍처는 단순한 자동화를 넘어 데이터 프로덕트의 신뢰성을 담보하는 가장 강력한 수단이 될 것입니다.

slack3분 읽기큐레이션 요약

E2E 파이프라인

Slack은 E2E 테스트 파이프라인에서 프론트엔드 변경이 없어도 매번 프론트엔드를 빌드하는 비효율을 발견했다. Git 변경 감지와 기존 빌드 산출물 재사용을 도입해 프론트엔드 빌드 횟수를 60% 줄이고, 전체 파이프라인 시간을 약 10분에서 2분으로 단축했다. 그 결과 개발자 대기 시간과 AWS S3 저장 비용을 줄였을 뿐 아니라 E2E 테스트의 플래키함도 개선됐다. ## 프론트엔드 빌드가 병목이 된 이유 - Slack의 대규모 모노레포에서는 병합 전 전체 스택을 검증하기 위해 E2E 테스트를 실행했다. - 기존 파이프라인은 다음 순서로 동작했다. - 코드 변경 후 브랜치 푸시 - 프론트엔드 빌드: 약 5분 - QA 환경 배포 - 200개 이상의 E2E 테스트: 약 5분 - 프론트엔드와 무관한 백엔드·데이터베이스·서비스 변경에도 프론트엔드를 새로 빌드했다. - 매주 수천 번의 빌드가 발생했고, 빌드 하나당 AWS S3에 약 1GB의 데이터가 저장됐다. - 이 중 절반가량은 실제 프론트엔드 변경이 없어 중복 산출물에 해당했다. ## Git diff를 이용한 조건부 빌드 - 현재 브랜치와 `main`의 최신 공통 커밋을 기준으로 `git diff`의 3-dot 표기법을 사용했다. - 변경 내역에 프론트엔드 관련 파일이 포함된 경우에만 새 프론트엔드 빌드 작업을 실행했다. - 프론트엔드 변경이 없으면 빌드를 완전히 건너뛰고 기존 산출물을 사용했다. - 추적 파일이 10만 개가 넘는 모노레포에서도 Git의 변경 감지는 약 몇 초 안에 완료됐다. ## 기존 빌드 산출물과 내부 CDN 재사용 - 새 빌드가 필요하지 않은 경우 AWS S3에 저장된 기존 프론트엔드 빌드를 탐색했다. - 현재 Production에서 사용 중인 비교적 최신 빌드를 선택해 테스트에 활용했다. - 내부 CDN이 해당 프론트엔드 정적 파일을 제공하도록 구성했다. - 이를 통해 PR마다 새 빌드를 생성하지 않으면서도 최신 상태에 가까운 프론트엔드 자산으로 E2E 테스트를 수행했다. ## 대규모 환경에서의 자산 관리 - 수백 개의 PR이 매일 병합되므로 재사용할 빌드가 충분히 최신인지 판단해야 했다. - S3의 파일명 규칙과 저장 구조를 활용해 빌드 산출물의 최신성, 일관성, 검색 성능을 관리했다. - 변경 여부 판단과 적절한 빌드 산출물 탐색을 평균 3초 이내에 처리했다. - 결과적으로 전체 테스트 흐름에서 프론트엔드 빌드 단계를 효율적으로 제거할 수 있었다. ## 성능과 비용 개선 - 불필요한 프론트엔드 빌드 빈도를 60% 줄였다. - AWS S3 중복 저장 데이터를 매월 수 테라바이트 규모로 절감했다. - 클라우드 컴퓨팅 비용과 개발자의 파이프라인 대기 시간을 줄였다. - 기존 Webpack 개선으로 평균 빌드 시간이 10분에서 5분으로 줄어든 데 이어, 이번 최적화로 약 2분까지 단축했다. - 전체 E2E 파이프라인 시간은 평균 10분에서 2분으로 감소했다. ## 예상하지 못한 효과 - 프론트엔드 빌드 과정과 자산 전달 방식이 단순해지고 일관되면서 E2E 테스트의 플래키함이 감소했다. - 월별 측정 결과 테스트 실패의 불안정성이 가장 낮은 수준까지 개선됐다. - 오래된 여러 시스템의 레거시 코드를 조사하는 과정에서 기존 동작을 재발견하고 향후 개선 과제도 발굴했다. ## 실용적인 결론 CI/CD 파이프라인에서는 모든 단계를 무조건 실행하기보다 실제 변경 범위와 필요한 검증 수준을 기준으로 조건부 실행을 설계하는 것이 효과적이다. 특히 Git 변경 감지, 빌드 산출물 캐싱, CDN 재사용을 결합하면 빌드 시간과 클라우드 비용을 동시에 줄일 수 있다.

원문 읽기(새 탭에서 열림)
coupang원문

쿠팡의 머신러닝 플랫폼을 통한 ML 개발 가속화 (새 탭에서 열림)

쿠팡은 검색, 가격 책정, 물류 등 비즈니스 전반에 머신러닝(ML)을 적극적으로 활용하며, 개발 효율을 극대화하기 위해 통합 ML 플랫폼을 구축했습니다. 이 플랫폼은 데이터 준비부터 모델 배포 및 모니터링까지의 전 과정을 자동화하고 표준화하여, 개발자가 인프라 관리보다는 모델 로직에 집중할 수 있는 환경을 제공합니다. 이를 통해 쿠팡은 대규모 컴퓨팅 자원을 효율적으로 관리하면서도 고객 경험을 개선하기 위한 혁신적인 기능들을 빠르게 시장에 선보이고 있습니다. **ML 개발 가속화를 위한 도전 과제** * **Time-to-Market 단축:** 아이디어 단계에서 모델을 실제 서비스에 적용하기까지 발생하는 복잡한 인프라 설정 과정을 간소화해야 함. * **표준화된 CI/CD 통합:** 머신러닝 모델의 학습, 검증, 배포 과정을 소프트웨어 공학의 지속적 통합 및 배포 체계와 결합하여 운영 안정성을 확보. * **확장성 있는 컴퓨팅 자원:** 대규모 데이터와 복잡한 딥러닝 모델 학습을 위해 GPU 및 CPU 자원을 효율적으로 할당하고 확장할 수 있는 시스템 필요. **효율적인 파이프라인 및 피처 관리** * **노트북 및 워크플로우:** 주피터 노트북(Jupyter Notebook) 환경과 Kubeflow 기반 파이프라인을 제공하여, 데이터 탐색부터 모델 학습까지의 워크플로우를 코드 형태로 관리하고 자동화함. * **피처 스토어(Feature Store):** 실시간 추론과 배치 학습 환경 간의 데이터 불일치를 방지하고, 검증된 피처를 재사용할 수 있는 중앙 집중형 저장소 운영. * **일관성 유지:** 온라인과 오프라인 환경에서 동일한 피처 엔지니어링 로직을 적용하여 모델 성능의 신뢰성을 높임. **모델 훈련 및 실시간 추론 인프라** * **분산 훈련 지원:** 고성능 GPU 클러스터를 활용한 분산 훈련 환경을 구축하여 Ko-BERT와 같은 대규모 언어 모델의 학습 시간을 획기적으로 단축. * **안정적인 추론 서비스:** 실시간 트래픽 처리를 위한 고가용성 서빙 환경과 대량의 데이터를 한 번에 처리하는 배치 추론 시스템을 동시에 지원. * **자동화된 배포:** 훈련된 모델을 검증한 후 클릭 몇 번으로 실제 운영 환경에 배포할 수 있는 셀프 서비스 기능 제공. **지속적인 모니터링 및 자원 최적화** * **가시성 확보:** 모델의 성능 지표뿐만 아니라 입력 데이터의 분포 변화(Data Drift)를 실시간으로 감지하여 모델 재학습 시점을 파악. * **Kubernetes 기반 관리:** 모든 ML 워크로드를 컨테이너화하여 Kubernetes 환경에서 실행함으로써 하드웨어 자원 활용도를 최적화하고 운영 부담을 최소화. **플랫폼 도입을 통한 주요 성과** * **검색 품질 향상:** 한국어에 특화된 Ko-BERT 모델 학습 과정을 플랫폼을 통해 최적화하여 검색 쿼리 이해도와 검색 결과의 정확도를 개선. * **실시간 가격 예측:** 수백만 개의 상품에 대해 시장 상황을 즉각적으로 반영하는 가격 예측 모델을 안정적으로 운영하여 비즈니스 민첩성 확보. 대규모 조직에서 ML 모델 개발 속도를 높이려면 개별 모델의 성능만큼이나 전체 생애주기를 관리하는 플랫폼의 역할이 중요합니다. 쿠팡처럼 다양한 서비스 도메인을 가진 환경에서는 표준화된 ML 플랫폼을 통해 인프라 복잡성을 추상화하고, 데이터 사이언티스트가 비즈니스 가치 창출에만 몰입할 수 있는 환경을 구축하는 것이 가장 효과적인 전략입니다.

coupang원문

쿠팡의 머신러 (새 탭에서 열림)

쿠팡의 머신러닝 플랫폼은 데이터 탐색부터 모델 배포에 이르는 전체 ML 생애주기를 가속화하여 개발 생산성을 혁신적으로 높이는 것을 목표로 합니다. 이를 통해 검색, 가격 책정, 물류 최적화 등 쿠팡의 다양한 서비스에 머신러닝을 효율적으로 적용하고 있으며, 인프라 관리 부담을 줄여 엔지니어들이 모델 고도화에만 집중할 수 있는 환경을 제공합니다. 결과적으로 이 플랫폼은 복잡한 비즈니스 문제를 해결하는 핵심 기술 기반으로서 쿠팡의 비즈니스 성장을 견인하고 있습니다. **플랫폼 구축의 동기와 목표** * **생산 모드 전환 시간 단축**: 실험 단계의 모델을 실제 서비스 환경에 배포하기까지 걸리는 시간을 줄여 비즈니스 요구사항에 빠르게 대응합니다. * **ML 개발의 CI/CD 도입**: 소프트웨어 공학의 지속적 통합 및 배포(CI/CD) 개념을 ML에 접목하여, 모델 학습과 배포 과정을 자동화하고 일관된 품질을 유지합니다. * **컴퓨팅 자원의 효율적 확장**: 하부 인프라에 대한 개입 없이도 대규모 학습 및 추론을 수행할 수 있도록 유연한 확장성을 제공하여 비용과 성능을 최적화합니다. **플랫폼의 핵심 기능 및 구성 요소** * **관리형 노트북 및 파이프라인 SDK**: 데이터 과학자들이 익숙한 Jupyter 기반 환경에서 작업할 수 있도록 지원하며, 전용 SDK를 통해 복잡한 ML 파이프라인을 손쉽게 정의하고 실행할 수 있습니다. * **피처 스토어(Feature Store)**: 학습과 추론 단계에서 동일한 피처 데이터를 재사용하고 공유할 수 있는 중앙 저장소를 제공하여, 데이터 정합성 문제를 해결하고 개발 효율을 높입니다. * **모델 학습 및 추론 서비스**: 다양한 ML 프레임워크를 지원하는 매니지드 학습 환경과, 대규모 트래픽을 처리할 수 있는 실시간 및 배치 추론 인프라를 운영합니다. * **모니터링 및 관측 가능성**: 배포된 모델의 성능 저하(Drift)나 이상 징후를 실시간으로 추적하여 모델의 신뢰성을 보장하고 신속한 재학습 여부를 결정합니다. **주요 성공 사례** * **Ko-BERT를 통한 검색 고도화**: 한국어 특화 언어 모델인 Ko-BERT를 학습시켜 고객의 검색 쿼리 의도를 더 정확하게 파악하고 상품 검색의 질을 향상시켰습니다. * **실시간 가격 예측**: 수백만 개의 상품에 대해 시장 변화를 즉각적으로 반영하는 실시간 가격 예측 모델을 성공적으로 배포하여 비즈니스 의사결정을 지원하고 있습니다. 쿠팡 ML 플랫폼은 단순히 도구의 집합을 넘어, 데이터 과학자가 비즈니스 가치 창출에만 전념할 수 있도록 돕는 강력한 엔지니어링 생태계입니다. 대규모 데이터와 복잡한 모델을 다루는 조직이라면 쿠팡의 사례처럼 파이프라인 자동화와 피처 정합성을 보장하는 통합 플랫폼 구축을 통해 개발 사이클을 획기적으로 단축할 수 있습니다.