GitLab

135 개의 포스트

about.gitlab.com/blog

태그로 필터

gitlab4분 읽기큐레이션 요약

GitLab Duo Agent Platform으로 배포 프로세스 자동화

GitLab Duo Agent Platform의 커스텀 에이전트를 활용하면 새로운 마이크로서비스를 기존 GitOps 배포 흐름에 자동으로 편입할 수 있다. 에이전트는 애플리케이션의 저장소 구조와 매니페스트, 파이프라인, Dockerfile을 분석해 필요한 설정을 생성하고 수정한다. 에이전트와 생성 결과가 GitLab 안에서 버전 관리·권한 통제되므로 자동화 속도와 엔터프라이즈 거버넌스를 함께 확보할 수 있다는 것이 글의 결론이다. ## TanukiBank의 마이크로서비스 온보딩 사례 - 가상의 은행 애플리케이션인 TanukiBank에 `intra-account-transfers` 마이크로서비스를 추가하는 상황을 예로 든다. - 기존 애플리케이션에는 계좌 간 송금 UI가 있지만 이를 처리할 백엔드 서비스가 없어 Transfer 버튼이 동작하지 않는다. - 새 서비스는 기존 GitOps 배포 규칙에 맞게 다음 요소를 모두 구성해야 한다. - Kubernetes 배포 매니페스트 - 컨테이너 이미지 빌드 및 전달 파이프라인 - 이미지 자동 업데이트 설정 - 네임스페이스, 포트, 호스트명 참조 ## TanukiBank의 GitOps 배포 구조 - GitLab 그룹에는 각 마이크로서비스를 담는 `services` 하위 그룹이 있다. - 배포 과정은 두 프로젝트와 Flux 컴포넌트가 연계되는 구조다. - **Tanuki Bank - Delivery**: 환경별 배포 매니페스트와 전달 파이프라인 관리 - **Flux Config**: Flux 관련 매니페스트 관리 - **Flux Image Automation Controller**: 서비스 레지스트리의 새 이미지를 감지하고 Delivery 프로젝트의 매니페스트 갱신 - **Flux CD Controller**: Delivery 프로젝트의 상태를 Kubernetes 클러스터의 실행 상태와 동기화 - 새 서비스가 추가되면 서비스 저장소, Delivery 프로젝트, Flux 설정을 모두 정확히 수정해야 한다. - 수동 작업에서는 특정 파일이나 참조를 빠뜨릴 경우 배포 실패가 발생할 수 있다. ## GitLab Duo를 이용한 시스템 프롬프트 생성 - GitLab Agentic Chat에 TanukiBank 그룹과 하위 그룹의 구조 및 파일을 분석하도록 요청한다. - Duo는 다음 자료를 조사해 커스텀 에이전트용 시스템 프롬프트를 작성한다. - Kubernetes 매니페스트 - 설정 파일 - Dockerfile - 프로젝트 간 의존성 - 기존 GitOps 규칙 - 생성된 프롬프트에는 다음과 같은 내용이 포함된다. - 에이전트가 따라야 할 작업 규칙 - 결과 보고 방식 - 사용할 도구 - 이 프롬프트는 현재 애플리케이션의 GitOps 구조를 반영한 것이므로, 향후 배포 방식이 바뀌면 다시 생성해야 한다. ## 커스텀 에이전트 생성 및 적용 - `application-agents`라는 별도 프로젝트를 만들어 에이전트를 관리한다. - GitLab의 **AI > Agents > Managed** 메뉴에서 `TanukiBank Microservice Onboarder` 에이전트를 생성한다. - 에이전트 생성 시 다음을 설정한다. - 이름과 설명 - 공개 여부 - Duo가 추천한 도구 - 앞서 생성한 시스템 프롬프트 - 이후 에이전트를 GitOps를 담당하는 다음 프로젝트에서 사용할 수 있도록 활성화한다. - `Tanuki Bank - Delivery` - `Flux Config` - 각 프로젝트의 Agentic Chat 에이전트 목록에 해당 에이전트가 표시되면 설정이 완료된 것이다. ## Developer 플로우로 새 서비스 구현 - `services` 그룹에 `intra-account-transfers` 프로젝트를 만든다. - 프로젝트 이슈에 마이크로서비스 요구사항을 작성하고 **Generate MR with Duo**를 실행한다. - Developer foundational flow가 다음 작업을 자동으로 수행한다. - 이슈의 사양 분석 - 서비스 코드 구현 - 브랜치 생성 - Merge Request 생성 - 이슈와 MR 연결 - 로컬에서 `curl` 명령으로 동작을 확인한 뒤 MR을 병합한다. - 파이프라인이 실행되어 새 서비스의 컨테이너 이미지를 서비스 프로젝트의 내장 레지스트리에 업로드한다. ## 커스텀 에이전트를 통한 GitOps 온보딩 - 서비스 자체는 생성됐지만 GitOps 설정에는 아직 등록되지 않은 상태다. - Delivery 프로젝트의 `manifests/dev`에 서비스 매니페스트가 없음 - 전달 파이프라인에 서비스 참조가 없음 - Flux Config의 `image-update-automation.yaml`에 이미지 자동화 항목이 없음 - 새 서비스 프로젝트에서도 `TanukiBank Microservice Onboarder`를 활성화한다. - Delivery 프로젝트의 Agentic Chat에서 커스텀 에이전트를 선택한다. - 서비스 이름과 호스트명을 전달해 온보딩을 요청한다. - 에이전트는 새 서비스의 Dockerfile을 읽어 포트를 확인하고, 이에 맞는 매니페스트와 파이프라인 설정을 생성·수정한다. - 제공된 글은 이 작업이 진행되는 지점에서 끝나므로, 이후 생성된 변경 사항과 실제 Kubernetes 배포 결과는 본문에 포함되어 있지 않다. 새 마이크로서비스 온보딩 절차가 반복적이고 규칙 기반이라면, 프로젝트 구조와 GitOps 규칙을 반영한 커스텀 에이전트를 만들어 자동화하는 것이 효과적이다. 다만 시스템 프롬프트가 현재 배포 구조에 강하게 의존하므로, GitOps workflow 변경 시 프롬프트와 에이전트 동작을 함께 재검토해야 한다.

원문 읽기(새 탭에서 열림)
gitlab3분 읽기큐레이션 요약

유출된 개인 액세스 토큰 하나로 소유자가 접근할 수 있는 모든 프로젝트가 노출되어서는 안 됩니다. 세분화된 PAT는 각 토큰의 권한을 해당 작업에 맞게 제한합니다.

GitLab은 개인 액세스 토큰(PAT)을 작업별·리소스별로 제한하는 세분화된 PAT를 베타로 공개했습니다. 토큰이 특정 프로젝트의 특정 리소스에서 필요한 작업만 수행하도록 설정해, 유출 시 피해 범위를 전체 계정이 아닌 해당 작업과 프로젝트로 줄이는 것이 핵심입니다. 다만 현재 REST API의 약 75%만 지원하므로 정식 출시 전까지는 운영 환경 사용을 권장하지 않습니다. ## 광범위한 PAT의 보안 위험 - `api`나 `read_api`처럼 넓은 범위의 스코프는 사용자가 접근 가능한 여러 프로젝트와 그룹에 권한을 부여합니다. - 하나의 토큰으로 소스 코드 조회, 파이프라인 수정, 컨테이너 레지스트리 접근, CI/CD 변수 복호화 등을 모두 수행할 수 있습니다. - 토큰이 유출되면 공격자가 해당 사용자가 접근 가능한 전체 프로젝트를 악용할 수 있습니다. - 토큰의 권한이 특정 작업이 아니라 사용자 계정에 묶여 있어 피해 범위가 커집니다. ## 작업별 최소 권한 부여 - 세분화된 PAT는 자동화 작업마다 별도의 토큰을 발급하는 방식입니다. - 토큰이 접근할 수 있는 범위를 다음처럼 지정할 수 있습니다. - 개인 프로젝트만 - 사용자가 속한 모든 프로젝트와 그룹 - 선택한 특정 프로젝트와 그룹 - 접근 가능한 리소스별로 권한을 독립 설정할 수 있습니다. - Issues - Merge Requests - Pipelines - Repositories - Container Registry 등 - 각 리소스에 대해 `Create`, `Read`, `Update`, `Delete` 권한을 개별적으로 부여합니다. ## 컨테이너 레지스트리 활용 예시 - 컨테이너 이미지를 빌드하고 업로드하는 파이프라인에는 전체 `api` 토큰 대신 특정 프로젝트의 Container Registry용 토큰을 발급합니다. - 해당 토큰에는 필요한 `Create`와 `Read` 권한만 부여할 수 있습니다. - 토큰이 유출되어도 피해 범위는 전체 프로젝트나 계정이 아닌 해당 프로젝트의 컨테이너 레지스트리로 제한됩니다. ## 토큰 감사와 추가 보호 장치 - 토큰 목록 화면에서 기존 PAT와 세분화된 PAT의 전체 스코프 및 리소스별 권한을 확인할 수 있습니다. - 과도한 권한을 가진 토큰을 보안 검토 중 쉽게 식별할 수 있습니다. - 토큰 만료 기간 제한과 자동 폐기 기능을 함께 사용하면 도난된 토큰의 악용 시간을 줄일 수 있습니다. - 작업별 토큰을 사용하면 유출 이후 조사와 대응 범위도 해당 작업과 프로젝트로 좁힐 수 있습니다. ## 베타 단계의 지원 범위와 제한 - 세분화된 PAT는 현재 REST API 엔드포인트의 약 75%를 지원합니다. - 향후 나머지 REST API와 GraphQL 지원 범위를 확대할 예정입니다. - 정식 출시 전까지는 프로덕션 워크로드에 사용하지 않는 것이 권장됩니다. - 베타 기간에는 기존 PAT와 세분화된 PAT를 동시에 생성해 호환성과 권한 모델을 평가할 수 있습니다. ## 생성 방법 - **User Settings → Personal Access Tokens**로 이동합니다. - **Generate token** 메뉴에서 **Fine-grained token**을 선택합니다. - 접근 가능한 프로젝트·그룹과 리소스별 권한을 설정합니다. - 지원 리소스와 관리자 제어 항목은 GitLab의 세분화된 PAT 문서에서 확인할 수 있습니다. 실무에서는 자동화 작업마다 별도 토큰을 만들고, 특정 프로젝트와 필요한 리소스의 최소 권한만 부여하는 방식이 권장됩니다. 베타 기간에는 프로덕션 적용을 피하고, 먼저 테스트 환경에서 기존 PAT와의 호환성 및 API 지원 범위를 검증하는 것이 안전합니다.

원문 읽기(새 탭에서 열림)
gitlab3분 읽기큐레이션 요약

Claude Code와 GitLab: 실제 배포로 이어지는 세 가지 워크플로

Claude Code는 코드 작성과 디버깅을 빠르게 수행하지만, 실제 배포에는 CI/CD, 보안 검사, 코드 리뷰, 승인 등 추가 과정이 필요하다. 이 글은 Claude Code와 GitLab을 결합해 버그 수정부터 머지 리퀘스트, 검증, 리뷰, 배포까지 연결하는 세 가지 워크플로를 소개한다. GitLab MCP와 Duo Agent Platform을 활용하면 AI가 로컬 코드뿐 아니라 이슈와 과거 개발 맥락까지 반영할 수 있다. ## 코드 수정과 GitLab 검증 파이프라인 연결 - C++로 작성된 Arduino IoT Collector가 `/dev/ttyACM0` 장치가 없을 때 충돌하는 버그를 예제로 사용한다. - `cmake`로 프로젝트를 빌드하고 실행해 문제를 재현한다. - Claude Code에 버그 수정을 요청하면 코드베이스를 탐색해 `main.cpp`의 `std::runtime_error` 예외가 애플리케이션을 즉시 종료시키는 원인임을 찾는다. - 수정 방향은 예외로 프로세스를 중단하는 대신 사용자 친화적인 설정 오류를 기록하고 애플리케이션은 계속 실행하도록 바꾸는 것이다. - 수정 후 Claude Code 또는 직접 Git 명령으로 다음 작업을 수행한다. - 수정 브랜치 생성 - 변경 사항 커밋 - 원격 저장소에 푸시 - 머지 리퀘스트 생성 - MR이 생성되면 GitLab이 자동으로 다음을 수행한다. - 빌드 및 테스트를 위한 CI/CD 파이프라인 실행 - 새 취약점이 추가되지 않았는지 보안 스캔 - GitLab Duo Code Review를 통한 코드 정확성 및 스타일 검토 - 코드 리뷰에는 프로젝트의 C++ 개발 규칙과 사용자 정의 리뷰 지침도 적용할 수 있다. ## GitLab MCP로 이슈와 개발 이력 활용 - 로컬 저장소만 이용하면 Claude Code가 버그 리포트, 디버깅 논의, 과거 MR의 해결 방식 등을 알 수 없다는 한계가 있다. - GitLab MCP Server를 연결하면 Claude Code가 GitLab의 SDLC 맥락을 함께 조회할 수 있다. - 관련 이슈와 설명 - 이슈 댓글 및 논의 - 과거 머지 리퀘스트 - 유사한 버그의 수정 이력 - 프로젝트 내 개발 정보 - GitLab 인스턴스 또는 최상위 그룹에서 MCP Server를 활성화한 뒤, Claude Code에 HTTP 방식으로 추가한다. ```bash claude mcp add --transport http GitLab https://gitlab.example.com/api/v4/mcp ``` - 새 Claude Code 세션에서 `/mcp`를 실행하고 브라우저 OAuth 인증을 완료한다. - MCP 도구 목록과 서버 버전을 질의해 연결 상태를 확인할 수 있다. - MCP는 Claude에 추가적인 맥락을 제공할 뿐 권한을 상승시키지 않는다. - Claude Code는 인증한 사용자가 원래 접근할 수 있는 프로젝트와 이슈만 볼 수 있다. - GitLab의 프로젝트·그룹 멤버십과 가시성 설정을 우회하지 않는다. - 별도의 관리자 권한을 자동으로 부여하지 않는다. ## Claude Code와 GitLab Duo Agent Platform의 역할 분담 - Claude Code는 터미널이나 IDE에서 코드 탐색, 버그 수정, 기능 구현을 담당한다. - GitLab은 변경 사항을 실제로 출하하기 위한 중앙 플랫폼 역할을 한다. - CI/CD - 보안 검사 - 코드 리뷰 - 승인 절차 - 감사 가능한 변경 이력 - 세 번째 워크플로에서는 GitLab Duo Agent Platform의 외부 에이전트가 Claude를 활용해 MR의 코드 리뷰 피드백을 직접 반영한다. - 따라서 개발자가 리뷰 댓글을 수동으로 해석하고 수정하는 대신, 에이전트가 MR 맥락에서 코드를 변경하고 후속 검증까지 진행할 수 있다. ## 필요한 개발 환경 - 터미널에서 실행 가능한 Claude Code - 버그와 기능 제안 이슈가 등록된 GitLab 프로젝트 - 필요에 따라 GitLab MCP Server와 GitLab Duo Agent Platform 외부 에이전트 - C++ 예제 실행 시: - CMake - Make - gcc 또는 clang++ - Java 프로젝트를 다룰 경우 Maven - 예제 프로젝트를 클론한 뒤 `claude` 명령으로 Claude Code를 실행하고 프로젝트 목적을 먼저 질의할 수 있다. 실무에서는 Claude Code를 코드 작성과 문제 해결에 사용하고, GitLab을 CI/CD·보안·리뷰·승인의 통합 관문으로 두는 방식이 효과적이다. 특히 GitLab MCP를 연결하면 AI가 단순히 현재 파일만 보고 추측하지 않고, 실제 이슈와 과거 변경 이력을 근거로 더 일관된 수정을 제안할 수 있다.

원문 읽기(새 탭에서 열림)
gitlab4분 읽기큐레이션 요약

팀 협업을 재편하는 8가지 에이전틱 AI 패턴

17개 에이전틱 AI 플랫폼을 분석한 결과, 팀 협업을 혁신하는 핵심은 개별 에이전트의 성능보다 팀 전체의 업무 흐름을 얼마나 일관되게 연결하느냐에 있다. 특히 에이전트는 진행 상황 공유, 업무 배정, 커뮤니케이션, 권한 관리, 개발·배포 거버넌스를 지원하며 팀의 속도와 판단력을 높이고 통제력을 유지하게 한다. 글은 이러한 기능을 8가지 패턴으로 정리하고, 소프트웨어 개발 생명주기 전체가 하나의 플랫폼에 통합된 GitLab이 에이전트 협업에 구조적 강점을 가진다고 주장한다. ## 1. 진행 상황 자동 공유 - 에이전트가 실시간 작업 데이터를 바탕으로 진행 상황과 상태 보고서를 자동 생성한다. - 일정 지연, 차단 요소, 위험 요소를 사전에 감지해 관련 담당자에게 전달한다. - 정기 상태 회의나 수동 확인 절차를 줄이고, 필요한 사람에게 필요한 정보만 제공한다. - 팀이 더 빠르게 움직이고, 업무 상황을 더 정확하게 파악할 수 있다. ## 2. 사람 간 업무 라우팅 - 대기열에 쌓인 업무를 담당자의 기술, 현재 업무량, 프로젝트 맥락에 따라 자동 배정한다. - 계획 수립 시점에만 업무를 조정하는 것이 아니라, 프로젝트 진행 중에도 지속적으로 부하를 균형 조정한다. - 에이전트가 왜 특정 담당자에게 업무를 배정했는지 근거를 공개한다. - 사람이 최종 배정 전에 개입하고 수정할 수 있어 자동화와 통제력을 함께 확보한다. ## 3. 팀 커뮤니케이션 지원 - 채널, 메시지 스레드, 회의 녹화 내용을 요약해 핵심 결정과 논점을 전달한다. - 새로 참여한 구성원도 전체 대화 기록을 직접 읽지 않고 업무 맥락을 파악할 수 있다. - 반복 질문과 역할 간 재설명을 줄이고, 동기식 회의 대신 비동기 요약을 활용한다. - 정보 공유 속도와 의사결정 효율을 높인다. ## 4. 채팅 안의 역할별 에이전트 - 팀이 이미 사용하는 Slack 등의 커뮤니케이션 도구 안에 전문 에이전트를 배치한다. - 온보딩 질문, IT 장애 처리, 영업 브리핑 등 역할별 업무를 대화 흐름에서 바로 수행한다. - 예를 들어 메시지에 이모지 반응을 추가하는 것만으로 추적 티켓을 생성할 수 있다. - 별도 포털이나 도구로 이동하지 않아도 대화가 곧 업무 실행의 출발점이 된다. ## 5. 공유되는 대화 맥락 - 에이전트가 여러 사람이 참여한 대화의 스레드와 파일을 지속적으로 인식한다. - 한 사람이 에이전트에게 제공한 정보와 지식이 팀 전체에 공유된다. - 새 구성원이나 다른 에이전트도 이전 작업이 끝난 지점에서 바로 이어서 작업할 수 있다. - 구성원마다 같은 문제를 반복해서 설명하거나 중복 프롬프트를 작성하는 일을 줄인다. ## 6. 역할 기반 접근 제어(RBAC) - 에이전트가 부여받은 역할에 허용된 데이터와 기능만 접근하도록 제한한다. - 권한은 단순한 시스템 단위가 아니라 필드 수준까지 세밀하게 적용될 수 있다. - 권한이 없는 데이터는 에이전트가 읽거나 추론하거나 조작할 수 없다. - 모든 에이전트의 작업을 기록해 규정 준수와 감사에 필요한 추적성을 제공한다. ## 7. 통제된 에이전트 실행 환경 - 에이전트를 코드와 마찬가지로 개발·테스트·운영 환경을 거쳐 배포한다. - 초기 개발 단계에서는 격리된 샌드박스를 사용해 에이전트 간 충돌을 방지한다. - 관리형 승격 파이프라인을 통해 검증되지 않은 에이전트가 운영 환경에 진입하지 않도록 한다. - 운영 중인 에이전트에 대한 무분별한 업데이트가 실제 업무를 중단시키는 위험도 줄인다. ## 8. 에이전트 공동 개발 - 여러 구성원이 에이전트를 공동 소유하고 수정·유지보수할 수 있다. - 역할별 권한을 부여하고, 공유 개발 공간에서 실시간으로 에이전트를 디버깅한다. - 표준화된 프로토콜을 사용해 서로 다른 사람이 만든 에이전트의 호환성을 유지한다. - 에이전트 개발을 개인 작업이 아니라 버전 관리와 협업이 필요한 팀 활동으로 만든다. ## 경쟁 환경에서 드러난 흐름 - 에이전트는 별도 애플리케이션보다 팀이 이미 일하는 채팅 도구 안으로 이동하고 있다. - 조직 규모가 커질수록 권한, 감사 로그, 배포 통제 같은 거버넌스가 필수 요소가 된다. - 에이전트 제작 역시 공동 소유, 협업 수정, 감사 가능한 버전 관리가 기본 기능이 되고 있다. - 상태 회의, 수동 확인, 역할 간 반복 설명 같은 ‘조정 비용’을 에이전트가 줄이기 시작했다. - 경쟁력은 가장 강력한 단일 에이전트보다 여러 에이전트와 사람을 일관된 팀 경험으로 연결하는 데서 나온다. ## 아직 부족한 통합형 거버넌스 - 분석된 플랫폼에서 가장 드문 기능은 다음 요소를 하나로 연결하는 통합 환경이다. - 실행 환경 그룹화 - 에이전트 카탈로그 공유 - 관리형 배포·승격 파이프라인 - 대부분의 플랫폼은 권한 관리나 배포 관리 등 거버넌스의 일부만 해결한다. - 개발부터 운영까지 에이전트를 안전하게 만들고 공유하고 배포하는 전체 흐름을 연결한 사례는 많지 않다. ## GitLab에 대한 시사점 - GitLab은 소프트웨어 개발과 배포 전 과정이 하나의 플랫폼에 있어 에이전트를 외부에서 덧붙일 필요가 적다. - GitLab Duo Agent Platform은 기존 워크플로를 규칙으로 활용하고, 조직의 맥락과 지식을 공유하며, 가드레일로 실행을 통제하는 방향을 취한다. - 따라서 코드 작성뿐 아니라 계획, 개발, 테스트, 보안, 배포 등 전체 DevSecOps 생명주기에서 에이전트를 조율할 수 있다는 것이 글의 결론이다. 팀에 에이전트를 도입할 때는 개별 자동화 기능보다 공유 맥락, 투명한 업무 배정, 세밀한 권한, 테스트·승격 파이프라인, 공동 유지보수 체계를 먼저 설계하는 것이 바람직하다. 그래야 속도 향상뿐 아니라 보안과 책임성까지 확보할 수 있다.

원문 읽기(새 탭에서 열림)
gitlab4분 읽기큐레이션 요약

Atlassian이 여러분의 데이터를 학습에 사용합니다: GitLab으로 거부하세요

Atlassian은 2026년 8월 17일부터 Jira, Confluence 등 클라우드 제품의 메타데이터와 인앱 콘텐츠를 AI 서비스 학습에 기본적으로 활용할 예정이다. Free·Standard·Premium 고객은 메타데이터 수집을 끌 수 없고, Enterprise 고객만 옵트아웃할 수 있어 데이터 거버넌스와 규제 준수에 큰 부담이 생긴다. 글은 이러한 옵트아웃 기본 정책과 달리, GitLab은 요금제와 관계없이 고객 데이터를 수집하거나 AI 학습에 사용하지 않는 접근을 취한다고 설명한다. ## Atlassian의 데이터 수집 정책 변경 - 수집 대상은 크게 두 가지다. - **메타데이터**: 스토리 포인트, 스프린트 날짜, SLA 값, 작업 분류, Teamwork Graph 및 연결된 외부 앱의 운영 신호 - **인앱 콘텐츠**: Confluence 페이지, Jira 이슈 제목·설명·댓글 등 사용자가 작성한 내용 - Atlassian은 학습 전에 데이터를 비식별화하고 집계한다고 설명한다. - 수집 데이터는 최대 7년 보관될 수 있다. - 옵트아웃하면 인앱 데이터는 30일 이내 삭제되고, 관련 모델은 90일 이내 재학습된다고 안내한다. - 고객 관리 암호화 키, Government Cloud, Isolated Cloud, HIPAA 적용 고객은 수집 대상에서 제외된다. ## 요금제에 따른 옵트아웃 문제 - 모든 클라우드 고객에게 데이터 수집이 기본 활성화된다. - Free, Standard, Premium 고객은 메타데이터 수집을 비활성화할 수 없다. - Enterprise 고객만 옵트아웃할 수 있으며, 최소 801명의 사용자가 필요하고 별도 가격이 적용된다. - 결과적으로 데이터 보호가 기술 설정이 아니라 고비용 Enterprise 요금제로의 업그레이드 여부에 달려 있다. - Atlassian이 과거에 밝혔던 “고객 데이터를 AI 서비스 학습이나 개선에 사용하지 않는다”는 입장과도 달라졌다. ## 비식별 메타데이터도 민감할 수 있는 이유 - 스토리 포인트, 스프린트 속도, SLA 지표는 개별적으로는 민감하지 않아 보일 수 있다. - 그러나 장기간 축적하면 다음 정보를 추론할 수 있다. - 조직의 프로젝트 구조 - 팀별 생산성과 성과 패턴 - 릴리스 및 업무 처리 주기 - 운영 방식과 병목 구간 - 데이터가 비식별화되더라도 여러 신호를 결합하면 조직의 운영 특성을 재구성할 수 있으므로, 비식별화가 곧 비민감성을 의미하지는 않는다. ## Atlassian 생태계에서 커지는 데이터 범위 - Jira와 Confluence는 스프린트 계획, 버그 추적, 릴리스 관리, 보안 티켓, 사고 보고서, 내부 문서의 시스템 오브 레코드로 사용된다. - Bitbucket과 Bamboo까지 함께 사용하면 다음 정보도 데이터 흐름에 포함될 수 있다. - 소스 코드 관련 메타데이터 - CI/CD 구성 - 프로젝트 계획과 기술 문서 - Teamwork Graph 커넥터를 통해 Slack, Figma, Google Drive, Salesforce, ServiceNow 같은 외부 서비스의 관계·활동 신호도 연결될 수 있다. - 따라서 보안·컴플라이언스 팀은 Atlassian 제품 내부뿐 아니라 연결된 제3자 서비스까지 포함해 데이터 흐름을 검토해야 한다. - Data Center·Server에서 Atlassian Cloud로 이전하려는 조직은 클라우드 전환과 AI 학습 데이터 제공 문제를 함께 판단해야 한다. ## 옵트아웃 기본 정책의 거버넌스 공백 - 약관 변경만으로 데이터 처리 방식이 바뀌면 고객이 직접 변경 사항을 발견하고 위험을 평가해야 한다. - 다음 항목이 기존 계약 및 내부 정책과 일치하는지 확인해야 한다. - 데이터 처리 계약(DPA) - “메타데이터”의 정의 - 제3자 앱에서 유입되는 데이터 범위 - 보관 기간과 삭제 절차 - AI 모델 재학습 및 삭제 방식 - 조직의 법무·보안팀이 민감하다고 판단하는 정보가 Atlassian의 “비민감 메타데이터” 정의와 다를 수 있다. ## 규제 산업이 재평가해야 할 사항 - 금융 서비스 기업은 SR 11-7, DORA 등에 따라 외부 기술 제공업체의 데이터 처리와 통제를 문서화하고 감사 가능하게 관리해야 한다. - 공공 부문은 NIST 800-53과 FISMA에 따라 민감 데이터의 이동과 접근을 통제해야 한다. - 의료 분야에서는 HIPAA에 따른 제3자 데이터 처리 검토가 필요하다. - EU AI Act 적용 조직은 미국식 옵트아웃보다 유럽 규제 환경의 옵트인 동의 기대와 충돌할 가능성을 검토해야 한다. - 기존에 Atlassian의 데이터 처리 방식을 평가했다면, “고객 데이터를 학습에 사용하지 않는다”에서 “기본적으로 사용한다”로의 변경은 공급업체 위험평가와 관련 문서의 갱신 사유가 된다. ## GitLab의 대안적 접근 - GitLab은 고객 데이터에 대해 다음 원칙을 제시한다. - 고객 데이터 수집 없음 - 고객 데이터로 AI 모델 학습 없음 - 요금제와 관계없이 동일한 데이터 보호 원칙 적용 - 핵심 차이는 데이터 보호를 Enterprise 같은 특정 고가 요금제의 기능으로 제한하지 않는다는 점이다. - 글은 CTO와 CISO가 AI 도입을 규제기관, 이사회, 고객에게 설명할 수 있어야 하며, 이를 위해 명확하고 조건 없는 데이터 처리 약속이 필요하다고 주장한다. ## 실용적인 대응 - 2026년 8월 17일 이전에 Atlassian 데이터 흐름과 연결 앱 목록을 재검토한다. - Jira·Confluence의 콘텐츠뿐 아니라 Teamwork Graph가 가져오는 외부 서비스 메타데이터도 목록화한다. - DPA, 개인정보 처리방침, 보안 정책, 규제 준수 문서를 변경된 정책과 대조한다. - Enterprise 업그레이드, 예외 환경 사용, 플랫폼 이전 등 가능한 대응책의 비용과 위험을 비교한다. - AI 기능을 도입할 때는 옵트아웃 가능 여부보다 처음부터 고객 데이터를 학습에 사용하지 않는 공급업체 정책을 우선 검토하는 것이 권장된다.

원문 읽기(새 탭에서 열림)
gitlab3분 읽기큐레이션 요약

Contagious Interview IDE 공격을 탐지하고 방지하는 방법

Contagious Interview 캠페인은 가짜 채용 과제로 피해자가 악성 저장소를 VS Code에서 열고, `tasks.json`을 통해 악성 명령을 실행하도록 유도한다. 글은 VS Code 자체보다 운영체제에 가까운 `node-pty`의 `spawn-helper` 실행을 탐지하는 EDR 규칙과, IDE 작업 자동 실행을 비활성화하는 하드닝을 함께 적용해야 한다고 주장한다. 이를 통해 인포스틸러 설치와 기업 네트워크 접근 권한 탈취를 실행 전에 차단할 수 있다. ## Contagious Interview 공격의 진입 방식 - 공격자는 가짜 면접·코드 리뷰를 미끼로 피해자에게 악성 코드 저장소를 다운로드하고 VS Code에서 열도록 유도한다. - 저장소의 `.vscode/tasks.json`에는 프로젝트를 열 때 자동 실행되는 작업이 정의될 수 있다. - VS Code는 해당 저장소를 신뢰하도록 승인해야 작업을 실행하지만, 피해자는 면접 과정이라고 믿어 무심코 신뢰를 부여할 가능성이 높다. - 악성 작업은 `runOn: "folderOpen"`을 사용해 폴더를 열 때 자동 실행되며, 화면에 거의 표시되지 않도록 설정할 수 있다. - 예시 명령은 운영체제별로 다음 단계 악성코드를 내려받아 실행한다. - macOS: `curl ... | bash` - Linux: `wget ... | sh` - Windows: `curl ... | cmd` - 이후 인포스틸러가 비밀번호와 암호화폐 정보를 탈취하고, 지속성을 확보해 피해자의 기업 네트워크 접근 권한을 악용할 수 있다. ## IDE보다 낮은 계층을 겨냥한 탐지 - 특정 VS Code 기능만 탐지하면 VS Code 포크나 유사한 Node/Electron 기반 IDE를 우회 경로로 사용할 수 있다. - GitLab은 운영체제에 더 가까운 프로세스 생성 계층을 조사했다. - VS Code는 하위 프로세스를 실행할 때 널리 사용되는 `node-pty` 라이브러리를 활용한다. - `node-pty.spawn()` 호출은 자체 바이너리인 `spawn-helper`를 실행하며, 이 프로세스는 Node 애플리케이션의 자식 프로세스로 생성된다. - `node-pty`는 주당 다운로드 수가 100만 회 이상인 널리 사용되는 라이브러리이므로, 이 계층을 이용하면 특정 IDE에 종속되지 않는 탐지가 가능하다. ## 백그라운드 실행과 사용자 실행의 구분 - GitLab은 Purple Team 훈련으로 공격 경로를 재현한 뒤 EDR 텔레메트리를 분석했다. - VS Code에서 백그라운드 작업을 실행할 때는 주로 `spawn-helper`가 호출된다. - 사용자가 통합 터미널을 열거나 직접 프로세스를 실행하는 등 전면적인 상호작용이 있을 때는 `Code Helper` 바이너리가 사용된다. - 따라서 `spawn-helper`를 기반으로 탐지하면 사용자가 인지하지 못한 상태에서 실행되는 IDE 작업에 집중할 수 있다. - 일반적인 개발 활동에서 발생하는 의도적 프로세스 실행을 제외해 오탐을 줄일 수 있다. ## `curl | shell` 패턴과 행위 기반 튜닝 - `curl | bash`는 Homebrew 설치처럼 정상적인 용도로도 사용될 수 있으므로 단순 문자열 탐지는 오탐 가능성이 있다. - 하지만 사용자가 인지하지 못하는 백그라운드 작업에서 해당 명령이 실행되는 것은 조직 환경에서 비정상적일 수 있다. - GitLab은 다음과 같은 조건을 결합해 탐지 규칙을 조정했다. - 부모 프로세스가 IDE의 `spawn-helper`인지 - 작업이 백그라운드에서 실행됐는지 - 외부 URL에서 데이터를 내려받는지 - 다운로드한 내용을 셸로 직접 파이프하는지 - 이 방식은 모든 백그라운드 작업을 차단하지 않고, 드물고 위험한 실행 조합만 경고하도록 설계됐다. - 조직 내 많은 개발자가 매일 VS Code를 사용했음에도 구현 후 오탐이 발생하지 않았다고 설명한다. ## 다층 방어와 IDE 설정 강화 - EDR을 이용한 런타임 탐지는 악성 작업이 실제로 실행되는 순간을 포착하는 방어선이다. - 동시에 조직 전체 설정을 배포해 VS Code의 작업 자동 실행 자체를 비활성화하면 공격 표면을 줄일 수 있다. - 특히 저장소를 열 때 자동으로 실행되는 작업을 제한하면 `runOn: "folderOpen"` 기반 공격을 예방하는 데 효과적이다. - VS Code뿐 아니라 동일한 Node 기반 구조와 백그라운드 작업 기능을 가진 IDE 포크에도 같은 원칙을 적용해야 한다. 실무적으로는 IDE 작업 자동 실행을 기본 비활성화하고, EDR에서 `spawn-helper`의 백그라운드 프로세스 생성과 `curl/wget | shell` 패턴을 함께 모니터링하는 방식을 권장한다. Gmail·채용 플랫폼 등 초기 유입 경로에 대한 보안 교육과 저장소 신뢰 승인 절차도 병행해야 한다.

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

GitLab CI/CD 및 Duo를 이용한 탐지 테스트 자동화 (새 탭에서 열림)

GitLab의 신호 엔지니어링(Signals Engineering) 팀은 보안 모니터링 파이프라인이 예기치 않게 중단되는 '침묵하는 실패'를 방지하기 위해 자동화된 탐지 테스트 프레임워크인 **WATCH(Weekly Attack Testing for Continuous Health)**를 개발했습니다. 이 프레임워크는 스테이징 환경에서 실제 악성 행위를 시뮬레이션함으로써 로그 수집부터 SIEM 탐지, SOAR 알림 라우팅에 이르는 전체 과정을 엔드투엔드(End-to-End)로 검증합니다. 이를 통해 보안팀은 인프라 변경이나 설정 오류 속에서도 핵심 탐지 로직이 상시 정상 작동한다는 확신을 얻을 수 있습니다. ### 기존 탐지 검증 방식의 한계 * **로그 재주입의 맹점:** 단순히 과거의 악성 로그를 SIEM에 다시 밀어 넣는 방식은 실제 로그 소스에서 SIEM으로 데이터가 흐르는 '로그 수집(Ingestion)' 단계의 오류를 포착할 수 없습니다. * **배포와 실행의 간극:** '코드로서의 탐지(Detections as Code)' 파이프라인은 탐지 규칙이 성공적으로 배포되었는지는 확인할 수 있지만, 실제 환경에서 해당 규칙이 트리거되어 경보까지 이어지는지는 보장하지 못합니다. * **환경의 가변성:** 로그 스키마 변경, SIEM 업데이트, 파이프라인 오설정 등 탐지 시스템을 망가뜨릴 수 있는 변수는 무수히 많으며, 이는 실제 사고 발생 시 경보가 울리지 않는 치명적인 결과로 이어질 수 있습니다. ### WATCH 프레임워크의 작동 원리 * **무작위 스케줄링:** 매주 GitLab CI/CD 파이프라인이 활성화된 모든 테스트를 탐색하고, 이를 일주일 중 무작위 시간대에 분산 배치합니다. 이는 테스트가 예측 가능해지는 것을 막고 실제 위협 상황과 유사한 환경을 조성합니다. * **사전 알림 및 등록:** 테스트 실행 직전, WATCH는 SOAR 시스템에 '사전 알림'을 보내 예상되는 탐지 항목을 등록하고 추적 가능한 기록을 생성합니다. * **공격 시뮬레이션:** 스테이징 환경에서 관리자 계정 비밀번호 재설정이나 수상한 API 호출과 같은 실제 공격 행위를 스크립트로 실행합니다. * **알림 상관관계 분석:** SIEM에서 발생한 경보가 실제 침해 사고인지 WATCH 테스트인지 판별하기 위해 '실행 시간, 행위자 식별자(IP/ID), 탐지 규칙 ID'라는 세 가지 요소를 대조합니다. 이를 통해 테스트 경보가 실제 사고 대응팀(SIRT)으로 에스컬레이션되는 것을 방지합니다. ### GitLab CI/CD를 활용한 파이프라인 구조 * **`schedule_pipelines` 단계:** 전체 테스트를 그룹화하고 무작위 실행 시간이 설정된 하위 파이프라인을 생성하여 일주일간의 테스트 일정을 관리합니다. * **`run_tests` 단계:** 할당된 시뮬레이션을 실제로 수행하며, 실행 통계와 SOAR 레코드 ID를 저장하여 후속 단계에서 검증할 수 있도록 준비합니다. * **`pages` 단계:** SOAR 시스템을 쿼리하여 경보가 정상적으로 생성 및 라우팅되었는지 최종 확인합니다. 결과는 GitLab Pages 대시보드에 업데이트되며, 탐지 실패 시 보안팀의 슬랙 채널로 즉시 알림을 보냅니다. 상용 침해 및 공격 시뮬레이션(BAS) 도구는 비용이 많이 들고 개별 기업의 특수한 탐지 스택에 맞춤화하기 어렵습니다. GitLab의 WATCH 사례처럼 자사의 CI/CD 인프라와 SOAR를 결합한 자동화 프레임워크를 구축하면, 저비용으로도 보안 모니터링 시스템의 건강 상태를 지속적으로 검증하고 신뢰도를 높일 수 있습니다.

gitlab원문

GitLab을 사용하여 소프트웨어 개발을 쉽게 가르치는 방법 (새 탭에서 열림)

워싱턴 대학교의 Stephen G. Dame 강사는 'GitLab for Education' 프로그램을 활용해 대규모 소프트웨어 개발 강의의 과제 배포 및 피드백 과정을 효율적으로 관리하고 있습니다. GitLab의 그룹 및 하위 그룹 구조를 통해 복잡한 권한 설정을 체계화하고, 실제 현업과 유사한 워크플로우를 교육 현장에 도입하여 학생들에게 실무적인 개발 환경을 제공하는 것이 핵심입니다. 이를 통해 교강사는 행정적 부담을 줄이면서도 학생 개개인에게 구체적이고 맥락 있는 코드 리뷰를 전달할 수 있습니다. ### 그룹 및 하위 그룹을 활용한 체계적 구조 설계 * GitLab의 고유한 '그룹(Groups)' 및 '하위 그룹(Subgroups)' 기능을 사용하여 대학 부서, 강의, 역할별로 계층적인 구조를 설계합니다. * 최상위 그룹(예: UWTeaching) 아래에 개별 강의 하위 그룹을 두고, 그 안에 강의 자료, 학생 전용 그룹, 채점자 그룹 등을 구분하여 관리합니다. * 권한 상속 기능을 활용해 학생들에게는 '리포터(Reporter)' 권한을 부여함으로써, 강의용 템플릿 코드를 복제(Clone)하거나 가져올(Pull) 수는 있지만 원본 소스에 직접 푸시(Push)할 수는 없도록 제어합니다. * 학생들은 개인별 비공개 저장소를 생성하여 자신의 버전 히스토리를 관리하고, SSH 키 설정을 통해 로컬 환경이나 가상 머신에서 원활하게 작업할 수 있습니다. ### REST API 기반의 관리 자동화 * 수강생이 많은 대규모 강의의 경우, GitLab REST API와 Python 스크립트를 활용해 학생별 하위 그룹 생성 및 멤버 추가 과정을 자동화할 수 있습니다. * 학생의 사용자 이름을 기반으로 개인별 비공개 하위 그룹을 생성하고, 학기 종료 시점에 맞춰 권한이 자동으로 만료되도록 '만료일(Expiration date)'을 설정하여 보안을 유지합니다. * 이러한 자동화 워크플로우는 수동 관리에서 발생할 수 있는 실수를 방지하고 교강사가 교육 콘텐츠에 더 집중할 수 있는 시간을 확보해 줍니다. ### 머지 리퀘스트(Merge Request)를 통한 실무형 피드백 * 학생들은 과제 제출 시 '머지 리퀘스트(MR)'를 생성하며, 강사는 이를 통해 변경된 코드의 차이점(Diff)을 한눈에 확인하고 검토합니다. * 강사는 특정 코드 라인에 직접 인라인 댓글을 남겨 단순히 틀린 부분을 지적하는 것을 넘어, 왜 수정이 필요한지 맥락 있는 피드백을 제공합니다. * 학생들은 실제 현업의 필수 프로세스인 버전 관리와 코드 리뷰를 자연스럽게 경험하며 추상적인 개념이 아닌 실전적인 개발 습관을 체득하게 됩니다. ### 실용적인 권장 사항 처음 GitLab을 교육에 도입한다면 단일 강의 그룹과 기본 과제 템플릿으로 간단하게 시작하여 점진적으로 구조를 확장하는 것이 좋습니다. 'GitLab for Education' 프로그램을 신청하면 Ultimate 등급의 기능을 무료로 사용할 수 있으므로, 무제한 리뷰어 설정과 추가 컴퓨팅 리소스를 활용하여 교육의 질을 높일 것을 추천합니다.

gitlab원문

GitLab 패치 릴리스: 18.11.2, 18.10.5 | GitLab 문서 (새 탭에서 열림)

GitLab은 GitLab Dedicated 고객의 재해 복구(DR) 목표인 RTO(복구 목표 시간)와 RPO(복구 지점 목표)를 안정적으로 달성하기 위해 관측성(observability) 간극을 해결한 18.11.2 및 18.10.5 패치 버전을 출시했습니다. 이번 릴리스는 보안 수정 사항을 포함하지 않는 대신, 시스템의 안정성을 저해하는 다수의 회귀 버그와 성능 이슈를 해결하는 데 집중했습니다. 사용자들은 이번 업데이트를 통해 AI 기능의 호환성을 높이고 특정 상황에서 발생하는 시스템 부하 문제를 해소할 수 있습니다. ### 주요 기능 개선 및 버그 수정 * **AI 및 GitLab Duo 기능 강화**: 셀프 호스팅 모델을 사용하는 환경에서도 Code Suggestion 기능을 사용할 수 있도록 지원을 추가했으며, Duo Core 사용자가 코드 리뷰 기능을 차질 없이 사용할 수 있도록 개선했습니다. * **시스템 성능 및 안정성 최적화**: 특정 사용자를 차단(Ban)할 때 Sidekiq 리소스 사용량이 급증하는 스파이크 현상을 해결하여 백그라운드 작업의 안정성을 높였습니다. * **관측성 지표 추가**: 동기화되지 않은 데이터의 가장 오래된 시간을 추적하는 `*_oldest_unsynced_time` 메트릭을 추가하여 시스템 상태 모니터링을 더욱 정교화했습니다. * **UI 및 워크플로우 개선**: 워크 아이템 페이지 로드 시 기존 필터를 초기화하여 사용자 경험을 개선했으며, 실패한 재할당 작업을 다시 시도할 수 있는 GraphQL mutation을 도입했습니다. ### 인프라 및 환경별 특이 사항 * **데이터베이스 및 마이그레이션**: 18.10.5 버전에서 이미 삭제된 테이블을 참조하는 마이그레이션을 건너뛰도록 수정(BBM)하여 업데이트 오류를 방지했습니다. * **Geo 및 설치 환경 호환성**: Geo 보조(Secondary) 노드에서 불필요한 워커 실행을 방지하도록 수정했으며, 상대 경로(Relative URL)를 사용하는 설치 환경에서 OAuth 탐색이 실패하던 문제를 해결했습니다. * **기능 롤백**: 18.11.2 버전에서는 역할 및 권한 활성화와 관련된 리팩토링(ia-refactor-role-permission-enablement) 내용을 이전 상태로 되돌려 안정성을 우선시했습니다. ### 업데이트 가이드 및 권장 사항 * **다운타임 발생 유의**: 단일 노드 인스턴스의 경우 마이그레이션이 완료될 때까지 서비스 가동이 중단되므로 작업 시간을 사전에 확보해야 합니다. * **제로 다운타임 업그레이드**: 다중 노드 환경에서는 GitLab의 표준 제로 다운타임 업그레이드 절차를 따르면 서비스 중단 없이 패치를 적용할 수 있습니다. * **사후 마이그레이션 실행**: 두 버전 모두 업그레이드 프로세스 종료 후 실행해야 하는 '사후 배포 마이그레이션(Post-deploy migrations)'을 포함하고 있으므로, 관리자는 업그레이드 완료 후 해당 작업이 정상적으로 수행되었는지 확인해야 합니다.

gitlab원문

대규모 환경에서 CI/CD 관측성을 구축하는 방법 (새 탭에서 열림)

GitLab 셀프 매니지드 환경에서 CI/CD 가시성을 확보하는 것은 대규모 데브옵스 플랫폼의 성능 최적화와 안정적인 운영을 위한 필수 과제입니다. 이 글은 Prometheus와 Grafana, 그리고 전용 익스포터를 활용하여 원시 파이프라인 데이터를 실시간 대시보드로 변환하고 의사결정에 필요한 핵심 통찰을 얻는 기술적 방법론을 제시합니다. 이를 통해 기업은 인프라 투자 효율성을 높이고 병목 현상을 체계적으로 해결할 수 있는 데이터 기반의 관리 체계를 구축할 수 있습니다. ### 실시간 통찰을 위한 다층적 대시보드 구성 효과적인 CI/CD 옵저버빌리티를 위해 다음과 같은 네 가지 핵심 대시보드를 구성하여 운영 가시성을 확보합니다. * **파이프라인 개요 대시보드:** 전체 실행 횟수, 시간 흐름에 따른 성공/실패율, 평균 소요 시간 추이를 시각화합니다. 상태별 색상 코딩을 통해 플랫폼 팀이 성능 저하를 즉각적으로 감지할 수 있도록 합니다. * **작업(Job) 성능 대시보드:** 개별 작업의 실행 시간 분포(히스토그램)와 가장 느린 상위 10개 작업을 분석합니다. 프로젝트 및 스테이지별 실패 히트맵을 통해 최적화가 필요한 병목 지점을 특정합니다. * **러너 및 인프라 대시보드:** Node Exporter의 호스트 지표(CPU, 메모리, 디스크)와 파이프라인 대기 시간을 결합하여 분석합니다. 인프라 포화도와 작업 지연의 상관관계를 파악하여 러너 스케일링이나 인스턴스 업그레이드 등의 용량 계획 수립에 활용합니다. * **배포 빈도 대시보드:** 환경별 배포 횟수와 소요 시간을 추적하여 DORA 지표를 관리합니다. 엔지니어링 리더십은 이를 통해 릴리스 속도와 메인 브랜치 대비 커밋 지연 상태(Environment Drift)를 점검할 수 있습니다. ### 옵저버빌리티 구현을 위한 핵심 기술 스택 GitLab의 원시 데이터를 수집하고 시각화하기 위해 두 가지 주요 익스포터와 컨테이너 기반 인프라를 사용합니다. * **GitLab CI Pipelines Exporter:** GitLab API를 통해 파이프라인 소요 시간, 작업 상태, 배포 정보 등 CI/CD 관련 핵심 메트릭을 수집합니다. * **Node Exporter:** 러너가 실행되는 호스트의 하드웨어 및 OS 지표를 수집하여 인프라 수준의 통찰을 제공합니다. * **Grafana 파일 기반 프로비저닝:** 모든 대시보드를 코드로 관리하고 자동으로 배포하여 여러 환경에서 일관된 모니터링 환경을 유지합니다. 프로젝트나 브랜치별 필터링을 위한 변수 설정이 가능합니다. ### 엔터프라이즈급 Kubernetes 배포 아키텍처 대규모 환경에서는 확장성과 보안을 위해 Kubernetes 클러스터에 각 컴포넌트를 분리된 Deployment로 배포하는 것이 권장됩니다. * **네임스페이스 및 보안 관리:** `gitlab-observability`와 같은 전용 네임스페이스를 생성하고, GitLab API 접근을 위한 Personal Access Token(`read_api` 권한)을 Kubernetes Secret으로 안전하게 관리합니다. * **익스포터 배포:** `gitlab-ci-pipelines-exporter`를 Deployment로 구성하고, ConfigMap을 통해 수집 대상 프로젝트 및 설정을 주입합니다. * **데몬셋 활용:** `Node Exporter`는 DaemonSet으로 배포하여 클러스터 내 모든 노드의 메트릭을 빠짐없이 수집합니다. * **Prometheus 통합:** 수집된 모든 메트릭은 Prometheus로 집계되며, 이를 Grafana의 데이터 소스로 연결하여 시각화 체계를 완성합니다. 대규모 CI/CD 환경을 운영하는 조직이라면 단순한 로그 확인을 넘어, 이와 같은 통합 옵저버빌리티 스택을 구축할 것을 권장합니다. 특히 인프라 비용 최적화와 개발 생산성 향상을 목표로 한다면, DORA 메트릭과 인프라 지표를 연계한 분석이 병목 현상 해결의 결정적인 열쇠가 될 것입니다. 중간 규모 이하의 환경이나 PoC 단계에서는 Docker Compose를 통해 빠르게 프로토타입을 구축해본 후 Kubernetes로 확장하는 전략이 효과적입니다.

gitlab원문

GitLab과 Anthropic: 엔터프라이즈 개발을 위한 거버넌스 AI (새 탭에서 열림)

GitLab은 Anthropic과의 협력을 강화하여 자사의 지능형 오케스트레이션 플랫폼에 최신 Claude 모델을 통합하고, 엔터프라이즈 환경에 최적화된 관리형 AI 서비스를 제공합니다. 이를 통해 기업은 최신 AI의 강력한 성능을 활용하면서도 GitLab이 제공하는 엄격한 거버넌스, 컴플라이언스 및 감사 기능을 그대로 유지할 수 있습니다. 결과적으로 보안과 규제 준수가 필수적인 공공 및 기업 환경에서 개발 속도를 안전하게 가속화할 수 있는 토대를 마련했습니다. **GitLab Duo와 Anthropic Claude의 통합** * Anthropic의 Claude 모델은 GitLab Duo 에이전트 플랫폼의 기본 모델로서 코드 생성, 코드 리뷰, 취약점 해결 및 에이전트 기반 채팅 등 다양한 유스케이스를 지원합니다. * 개발자들은 GitLab Duo를 통해 소프트웨어 개발 생명주기(SDLC) 전반의 워크플로우를 자동화하고 AI의 고도화된 추론 능력을 직접적으로 경험할 수 있습니다. **통제된 AI(Governed AI)를 통한 차별화** * AI가 제안하는 모든 코드 변경 사항은 별도의 특혜 없이 기존의 병합 요청(Merge Request) 프로세스, 승인 규칙, 보안 스캔 및 감사 추적 시스템을 동일하게 통과해야 합니다. * AI 에이전트가 자율적으로 취약점을 해결하거나 서비스를 리팩토링할 때, 모든 작업은 기록되고 추적 가능하며 인간 개발자와 동일한 정책 강제력을 적용받습니다. * 이는 AI의 자율성이 높아질수록 중요해지는 '책임성'과 '투명성'을 아키텍처 단계에서부터 보장하는 구조입니다. **엔터프라이즈 배포의 유연성 및 효율성** * Google Cloud Vertex AI 및 Amazon Bedrock을 통해 Claude 모델을 활용할 수 있어, 기업은 기존에 구축된 클라우드 거버넌스 프레임워크와 인프라를 그대로 이용할 수 있습니다. * 새로운 벤더 계약이나 데이터 거주성(Data Residency) 문제를 고민할 필요 없이 기존 Google Cloud 또는 AWS 환경 내에서 AI 워크로드를 처리할 수 있습니다. * Claude Marketplace에서 GitLab 크레딧을 구매하여 기존 Anthropic 지출 약정에 포함시킬 수 있는 통합 결제 방식을 통해 구매 절차를 단순화했습니다. **에이전트 중심의 소프트웨어 개발 미래** * GitLab은 AI 에이전트가 계획, 코딩, 테스트, 보안, 배포에 이르는 정의된 작업을 자율적으로 수행하는 미래를 지향하며, 이를 위해 Claude의 강력한 추론 능력과 신뢰성을 결합했습니다. * 거버넌스 프레임워크를 통해 AI 에이전트의 작업 시점과 내용에 대한 완전한 가시성을 제공함으로써, 기업이 통제권을 잃지 않고도 고도화된 자동화 단계로 진입할 수 있도록 돕습니다. 고급 AI 역량과 기업 수준의 강력한 통제권 사이에서 고민하는 기업이라면, GitLab Duo 플랫폼을 통해 보안이 담보된 지능형 DevSecOps 환경을 구축하는 것이 효과적인 전략이 될 것입니다. 현재 GitLab Duo를 사용 중인 고객은 기존의 거버넌스 틀 안에서 더 깊이 있는 AI 지원을 즉시 경험할 수 있습니다.

gitlab원문

glab CLI로 AI 에이전트에 GitLab 직접 액세스 권한 부여하기 (새 탭에서 열림)

GitLab CLI(`glab`)를 MCP(Model Context Protocol)와 결합하면 AI 에이전트가 프로젝트 데이터에 직접적이고 구조적으로 접근할 수 있게 되어 개발 워크플로우의 효율성이 극대화됩니다. 이를 통해 개발자는 수동으로 정보를 복사하여 붙여넣는 번거로움을 없애고, 할루시네이션(환각) 없이 실시간 데이터에 기반한 정확한 코드 리뷰와 이슈 관리가 가능해집니다. 결과적으로 AI 에이전트는 단순한 조력자를 넘어 프로젝트의 상태를 직접 파악하고 작업을 수행하는 강력한 도구로 진화합니다. ### MCP를 통한 AI와 GitLab의 연결 * **개방형 표준 활용:** MCP는 AI 도구가 런타임에 외부 기능을 발견하고 사용할 수 있게 해주는 표준 프로토콜로, 이를 통해 AI 어시스턴트가 GitLab 이슈 읽기, MR 댓글 작성, 파이프라인 상태 확인 등을 직접 수행할 수 있습니다. * **간편한 서버 실행:** `glab mcp serve` 명령어를 실행하는 것만으로 MCP 서버를 구동하여 Claude Code, Cursor 등 다양한 AI 클라이언트와 연결할 수 있습니다. * **구조화된 JSON 데이터:** MCP를 통해 호출되는 모든 `glab` 명령은 자동으로 `--output json` 형식을 사용하여, AI 에이전트가 파싱하기 쉬운 깨끗하고 정제된 데이터를 제공합니다. * **안정성 확보:** 터미널의 대화형 입력이 필요한 명령은 제외하고 에이전트 환경에서 신뢰할 수 있게 작동하는 명령 위주로 노출하여 작업 중단 오류를 방지합니다. ### AI 기반 코드 리뷰 자동화 * **전체 컨텍스트 파악:** `glab mr view --comments --unresolved` 명령을 사용하면 MR의 메타데이터, 설명, 해결되지 않은 모든 토론 내용을 단일 JSON 페이로드로 가져와 AI에게 전달할 수 있습니다. * **효율적인 피드백 요약:** 사용자는 여러 탭을 오가는 대신 AI에게 "MR에서 해결해야 할 사항이 무엇인가?"라고 질문하여 우선순위가 지정된 요약과 제안된 변경 사항을 즉시 받을 수 있습니다. * **프로그래밍 방식의 처리:** AI가 피드백을 반영한 후 `glab mr note resolve` 명령을 직접 실행하여 토론을 해결 상태로 변경하는 등 코드 리뷰의 전 과정을 자동화된 루프 내에서 처리할 수 있습니다. ### 실시간 데이터 기반의 이슈 분석 및 디버깅 * **정확한 정보 제공:** 웹 UI에서 텍스트를 복사해 붙여넣는 방식은 정보가 누락되거나 왜곡될 위험이 크지만, `glab`은 이슈 번호, 마일스톤, 라벨 등의 속성을 정확한 구조로 제공합니다. * **훈련 데이터 한계 극복:** AI가 과거의 학습 데이터나 웹 스크래핑에 의존하지 않고, API를 통해 실시간 프로젝트 상태를 조회하므로 파이프라인 실패 원인 분석이나 이슈 분류 시 정확도가 비약적으로 향상됩니다. * **워크플로우 마찰 감소:** 에이전트가 직접 GitLab 데이터를 가져오고 보고하기 때문에 개발자는 정보 전달자 역할에서 벗어나 실제 문제 해결에 더 집중할 수 있습니다. 반복적인 코드 리뷰 분석이나 이슈 트리이징(Triage) 시간을 줄이고 싶다면 `glab` CLI를 MCP 서버로 활용해 보세요. 특히 Claude나 Cursor와 같은 최신 AI 도구를 사용 중이라면, `glab mcp serve`를 통해 AI 에이전트에게 GitLab 프로젝트에 대한 직접적인 실행력을 부여함으로써 진정한 자율 개발 환경을 구축할 수 있습니다.

gitlab원문

19.0 Omnibus-GitLab FIPS 패키지에서 curl 제거 (새 탭에서 열림)

GitLab은 2026년 5월 출시 예정인 19.0 버전부터 Omnibus-GitLab FIPS 패키지 내부에 자체 빌드하여 포함하던 `curl`을 제거합니다. 앞으로 FIPS 환경의 사용자들은 GitLab이 제공하는 번들 대신 사용 중인 Linux 배포판의 `curl` 패키지를 직접 활용하게 되며, 이는 기존의 OpenSSL 라이브러리 관리 방식과 동일한 모델로 통합되는 것입니다. 이번 변경을 통해 GitLab은 패키지 유지보수의 효율성을 높이고, OS 수준의 암호화 라이브러리와의 호환성을 강화하고자 합니다. ### 기술적 배경 및 변경 사유 * **OpenSSL 1.x 지원 중단:** 최신 버전인 `curl 8.18.0`부터 OpenSSL 1.x 환경에서의 컴파일 지원이 중단되었습니다. 이로 인해 Amazon Linux 2나 AlmaLinux 8(RHEL 8 기반)과 같이 구형 라이브러리를 사용하는 환경에서 기존 방식의 패키징을 지속하기 어려워졌습니다. * **FIPS 관리 모델의 일관성:** FIPS 패키지는 이미 배포판의 암호화 라이브러리를 링크하여 사용하고 있습니다. `curl` 또한 이와 동일한 방식으로 전환함으로써 보안 및 관리 모델의 일관성을 확보합니다. * **유지보수 및 보안 강화:** OpenSSL 3.0 이상을 사용하는 최신 배포판을 포함한 모든 FIPS 패키지에 이 변경 사항을 적용하여 전체적인 보안 관리 체계를 개선합니다. ### 적용 대상 및 일정 * **적용 시점:** 2026년 5월 21일 출시되는 GitLab 19.0 버전 및 이후의 패치 릴리스부터 적용됩니다. * **영향 범위:** 모든 Omnibus-GitLab FIPS 패키지 사용자가 대상입니다. * **사용자 조치:** GitLab 인스턴스 자체의 동작 방식은 변하지 않으므로 즉각적인 기능 설정 변경은 필요하지 않으나, 시스템 환경에 대한 점검이 권장됩니다. ### 보안 관리 책임의 변화 * **보안 업데이트 주체 변경:** 이제 GitLab은 FIPS 패키지용 `curl`의 보안 패치를 직접 배포하지 않습니다. 사용자는 운영체제(OS)에서 제공하는 업데이트를 통해 `curl`의 최신 보안 상태를 유지해야 합니다. * **취약점 스캐닝 결과:** 보안 스캐너는 더 이상 GitLab 번들 버전이 아닌, 호스트 OS에 설치된 `curl` 패키지를 기준으로 취약점을 식별하게 됩니다. FIPS 환경에서 GitLab을 운영 중인 관리자는 19.0 업데이트 이후 `curl` 관련 보안 취약점 대응이 운영체제 패키지 관리 프로세스에 포함되도록 관리 절차를 재점검해야 합니다. 특히 시스템 보안 스캔 결과가 OS 패키지 상태를 반영하게 되므로, 정기적인 OS 업데이트를 통해 최신 보안 패치를 적용할 것을 권장합니다.

gitlab원문

GitLab AI 해커톤 2026: 수상자를 만나보세요 (새 탭에서 열림)

GitLab AI 해커톤 2026은 단순한 코드 생성을 넘어 보안, 컴플라이언스, 배포 등 소프트웨어 개발 전 과정을 자율적으로 수행하는 600개 이상의 AI 에이전트 생태계를 확인한 자리였습니다. 구글 클라우드 및 앤스로픽(Anthropic)과 협업한 이번 행사에는 약 7,000명의 개발자가 참여하여, 실질적인 워크플로우에 통합되어 팀을 대신해 행동하는 혁신적인 솔루션들을 대거 선보였습니다. 이는 AI가 챗봇 형태를 벗어나 복잡한 엔지니어링 문제를 해결하는 능동적인 에이전트로 진화했음을 입증하는 결과입니다. ### 조직 지식 보존과 시스템 이해: LORE 및 GraphDev * **대상(Grand Prize) 수상작 'LORE'**: 8개의 에이전트와 라우터를 활용해 엔지니어의 머릿속에만 있던 '암묵적 지식'을 기록하고 관리합니다. 지식 그래프의 순환 루프 방지 로직과 탄소 추적 기능을 갖췄으며, 해커톤 프로젝트임에도 43개의 테스트 코드를 포함할 정도로 완성도가 높습니다. * **Anthropic 부문 우승작 'GraphDev'**: 코드 간의 연결 고리를 매핑하여 시스템이 시간에 따라 어떻게 변하는지 보여줍니다. 코드 변경 시 미칠 영향을 사전에 시각화하여 복잡한 시스템의 진화 과정을 쉽게 파악할 수 있도록 돕습니다. * **RepoWarden**: 코드의 기능뿐만 아니라 '왜' 그렇게 작성되었는지를 캡처하는 '리빙 스펙 엔진(Living Specification Engine)' 역할을 수행합니다. ### 보안 및 컴플라이언스 자동화 * **보안 자동화 솔루션**: 구글 클라우드 부문 우승작 'Gitdefender'는 코드 리뷰 중 보안 문제를 발견하면 즉시 수정 코드를 작성하고 리뷰를 생성합니다. 'RedAgent'는 AI가 생성한 보안 보고서를 재검증하여 AI 진단 결과에 대한 신뢰 격차를 해소합니다. * **컴플라이언스 관리**: 'Compliance Sentinel'은 머지 요청(MR)의 리스크를 점검해 위반 사항이 있으면 차단하며, 'MR Compliance Auditor'는 증거 자료를 수집해 SOC 2 통제 항목과 매핑한 후 실시간 대시보드로 송출합니다. * **SecurityMonkey**: 테스트 브랜치에 알려진 취약점을 주입하여 현재 보안 스캐너가 이를 얼마나 잘 잡아내는지 점검하는 독특한 접근 방식을 선보였습니다. ### 기술적 완성도와 운영 효율화 * **안전한 마이그레이션**: 'Time-Traveler'는 운영 환경의 복제본을 생성하여 데이터베이스 마이그레이션을 선제적으로 실행해 봄으로써 배포 실패를 방지합니다. 5개의 에이전트가 브릿지로 연결되어 실제 PostgreSQL 환경에서 작동합니다. * **모바일 기반 워크플로우**: 'stregent'는 개발자가 노트북 없이도 WhatsApp을 통해 CI/CD 파이프라인을 모니터링하고 수정 사항을 머지할 수 있는 모바일 우선 경험을 제공합니다. * **문서화 에이전트 'DocSync'**: 감지(Detector), 작성(Writer), 검토(Reviewer)라는 세 단계 에이전트 체계를 통해 문서화 작업을 자동화하며, 신뢰도가 낮을 경우 사람에게 이슈를 생성해 검토를 요청합니다. ### 지속가능성을 고려한 그린 에이전트(Green Agent) * **탄소 배출 최적화**: 'GreenPipe'와 'CarbonLint' 등은 CI/CD 파이프라인과 LLM 실행에 따른 탄소 발자국을 측정하고 보고서를 생성합니다. * **운영 비용 절감**: 일부 프로젝트는 모델 최적화와 에너지 효율적인 아키텍처 설계를 통해 운영 비용을 월 $556에서 $18로 약 96% 절감하는 성과를 거두었습니다. * **실시간 최적화 팁**: 'Carbon Tracker'는 각 파이프라인 작업의 탄소 배출량을 계산하여 머지 요청 시 최적화 팁을 자동으로 댓글로 남겨줍니다. 이제 AI 에이전트는 단순한 도구를 넘어 로컬 지식 그래프와 결합하여 코드의 맥락과 역사를 이해하는 방향으로 발전하고 있습니다. 기업들은 GitLab Duo Agent Platform과 같은 환경을 통해 보안 점검, 데이터베이스 마이그레이션, 컴플라이언스 준수와 같은 고난도 수동 작업을 자동화함으로써 엔지니어링 생산성을 획기적으로 높일 수 있을 것입니다.

gitlab원문

GitLab 패치 릴리스: 18.11.1, 18.10.4, 18.9.6 | GitLab 문서 (새 탭에서 열림)

GitLab은 2026년 4월 22일, 다수의 보안 취약점과 버그를 해결하기 위해 GitLab Community Edition(CE) 및 Enterprise Edition(EE)의 패치 버전인 18.11.1, 18.10.4, 18.9.6을 출시했습니다. 이번 업데이트는 GraphQL API의 CSRF 문제와 Web IDE 내 임의 자바스크립트 실행 등 심각도가 높은 보안 결함을 포함하여 총 10건 이상의 취약점을 해결하는 것을 핵심으로 합니다. 시스템의 안전한 운영을 위해 자체 호스팅(Self-managed) 환경을 사용하는 모든 관리자는 최신 패치 버전으로 즉시 업그레이드할 것을 강력히 권고합니다. ### 고위험 보안 취약점 해결 * **CVE-2026-4922 (GraphQL API CSRF):** GraphQL API의 CSRF 보호가 불충분하여 인증되지 않은 사용자가 인증된 사용자를 대신해 뮤테이션(Mutation)을 실행할 수 있는 문제를 해결했습니다. (CVSS 점수 8.1) * **CVE-2026-5816 (Web IDE 경로 검증 오류):** 특정 조건에서 웹 IDE 자산의 경로 검증이 부적절하게 이루어져, 인증되지 않은 사용자가 사용자의 브라우저 세션에서 임의의 자바스크립트를 실행할 수 있는 취약점을 수정했습니다. (CVSS 점수 8.0) * **CVE-2026-5262 (Storybook XSS):** Storybook 개발 환경에서 입력값 검증 미흡으로 인해 인증되지 않은 사용자가 토큰에 접근할 수 있는 교차 사이트 스크립팅(XSS) 이슈를 해결했습니다. (CVSS 점수 8.0) ### 서비스 거부(DoS) 취약점 보완 * **리소스 고갈 방지:** 토론(Discussions) 엔드포인트(CVE-2025-0186), 노트(Notes) 엔드포인트(CVE-2025-6016), GraphQL API(CVE-2025-3922)에서 리소스 할당 제한이 미흡하여 서버 자원을 고갈시킬 수 있는 DoS 문제를 수정했습니다. * **Jira 가져오기 오류(CVE-2026-1660):** 이슈를 가져오는 과정에서 부적절한 입력값 검증으로 인해 인증된 사용자가 DoS를 유발할 수 있는 취약점을 해결했습니다. ### 접근 제어 및 세션 관리 개선 * **가상 레지스트리 세션(CVE-2026-6515):** 만료되거나 잘못된 범위의 인증 정보를 사용하여 가상 레지스트리에 접근할 수 있었던 세션 만료 관련 이슈를 수정했습니다. * **비공개 정보 노출 차단(CVE-2026-5377):** 이슈 설명 렌더링 과정의 접근 제어 오류로 인해, 공개 프로젝트 내에서 비공개 이슈의 제목이 노출될 수 있는 문제를 해결했습니다. * **UI 레이어 및 API 보안:** Mermaid 샌드박스 내 입력값 검증 오류(CVE-2026-3254)와 프로젝트 포크(Fork) 관계 API의 부적절한 접근 제어 문제를 수정했습니다. 현재 GitLab.com은 이미 패치된 버전이 적용되어 있으며, GitLab Dedicated 고객은 별도의 조치가 필요하지 않습니다. 그러나 Omnibus, Helm Chart, 소스 코드 설치 등 모든 유형의 자체 호스팅 설치 환경은 이번 취약점의 영향을 받으므로, 관리자는 보안 하이진 유지를 위해 지원되는 최신 패치 버전으로 즉시 업그레이드해야 합니다. 상세한 취약점 정보는 패치 릴리스 30일 후에 GitLab 이슈 트래커를 통해 공개될 예정입니다.