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

GitLab Duo Agent Platform이 MCP(Model Context Protocol)를 지원함에 따라, 이제 개발자들은 Jira와 같은 외부 도구를 AI 개발 환경에 직접 연결하여 사용할 수 있게 되었습니다. 이를 통해 IDE를 벗어나지 않고도 자연어 대화만으로 Jira 이슈를 조회, 생성 및 업데이트하며 프로젝트 관리와 코드 작성을 통합할 수 있습니다. 결과적으로 도구 간의 빈번한 맥락 전환(Context Switching)을 줄여 개발 생산성을 극대화하고 워크플로우를 단순화할 수 있는 강력한 환경을 제공합니다. ### MCP 연동 아키텍처 및 보안 설정 * GitLab Duo Agent Platform은 MCP 클라이언트 역할을 수행하며, Atlassian MCP 서버와 통신하여 Jira 데이터에 접근합니다. * 보안 인증을 위해 Atlassian 개발자 콘솔에서 OAuth 2.0 애플리케이션을 생성해야 하며, `read:jira-work`, `write:jira-work`, `read:jira-user`와 같은 구체적인 API 권한(Scope) 설정이 필요합니다. * 인증 과정에서 콜백 URL(`https://gitlab.com/oauth/callback`)을 등록하고 발급된 Client ID와 Secret을 안전하게 관리해야 합니다. ### GitLab Duo MCP 클라이언트 구성 및 검증 * 프로젝트의 `.gitlab/duo/mcp.json` 경로에 MCP 서버 설정 파일을 생성합니다. 이 파일에는 서버 URL과 앞서 발급받은 OAuth 인증 정보가 포함됩니다. * GitLab 그룹 설정의 'GitLab Duo' 메뉴에서 외부 MCP 도구 허용 옵션(`Allow external MCP tools`)을 활성화해야 정상적으로 작동합니다. * VS Code 내 'GitLab: Show MCP Dashboard' 기능을 통해 연결 상태를 모니터링할 수 있으며, `jira_get_issue`, `jira_create_issue` 등 사용 가능한 도구 목록과 실시간 서버 로그를 확인할 수 있습니다. ### 실무 적용을 위한 주요 활용 사례 * **기획 및 관리 보조:** "할당되지 않은 이슈 목록 보여줘", "우선순위가 높은 이슈 2개를 요약하고 나에게 할당해줘"와 같은 프롬프트를 통해 스프린트 계획을 IDE 내에서 즉시 처리할 수 있습니다. * **코드 맥락 기반 이슈 생성:** 코드 리뷰 중 버그를 발견했을 때, 별도의 브라우저 실행 없이 현재 코드의 맥락을 포함하여 Jira 티켓을 즉시 생성하고 관련 브랜치와 연결할 수 있습니다. * **워크플로우 자동화:** 자연어 요청을 통해 Jira의 복잡한 필드를 자동으로 채우거나, 코드 분석 결과에 따라 관련 블로커(Blocker)를 검색하는 등 지능적인 협업이 가능해집니다. 개발팀은 MCP를 활용해 Jira뿐만 아니라 MCP 규격을 지원하는 다양한 외부 도구를 GitLab Duo에 통합함으로써 커스텀 AI 에이전트 환경을 구축할 수 있습니다. 툴 간 전환 비용을 줄이고 개발 집중도를 높이고 싶다면, 가이드에 따라 `.gitlab/duo/mcp.json` 설정을 완료하고 첫 번째 MCP 워크플로우를 시작해 보시기 바랍니다.

AI 카탈로그: 에이 (새 탭에서 열림)

GitLab의 AI 카탈로그는 조직 내에서 AI 에이전트와 워크플로우를 중앙 집중식으로 관리하고 공유할 수 있는 핵심 저장소입니다. 사용자는 이를 통해 사전 구축된 솔루션을 검색하여 즉시 적용하거나, 팀의 특정 요구사항에 맞춘 맞춤형 에이전트 및 플로우를 생성하여 개발 협업 효율성을 극대화할 수 있습니다. 결과적으로 개발 생명주기 전반에 걸쳐 일관되고 재사용 가능한 AI 자동화 환경을 구축하는 것을 목표로 합니다. ## AI 카탈로그의 구성과 활용 방식 * **중앙 저장소 역할:** 조직 내에서 생성된 모든 AI 자산(에이전트 및 플로우)을 한곳에서 탐색하고, 복제하여 커스터마이징하거나 프로젝트에 즉시 활성화할 수 있습니다. * **에이전트(Agents):** 특정 태스크나 전문 분야(예: 디버깅, 코드 리뷰)에 특화된 대화형 AI 도구로, 시스템 프롬프트와 도구 접근 권한을 설정하여 동작을 정의합니다. * **플로우(Flows):** 여러 단계로 구성된 복잡한 자동화 프로세스로, YAML 구조를 통해 여러 에이전트를 조율하고 반복 가능한 멀티 스텝 워크플로우를 실행합니다. ## 맞춤형 자산 생성 및 가시성 관리 * **세밀한 권한 설정:** 에이전트 생성 시 코드, 이슈, 머지 리퀘스트(MR) 등에 대한 도구 접근 권한을 제한적으로 부여하여 보안성을 높일 수 있습니다. * **비공개(Private) 모드:** 특정 프로젝트 멤버나 소유자만 접근할 수 있는 설정으로, 민감한 워크플로우를 개발하거나 초기 실험 단계에서 유용합니다. * **공개(Public) 모드:** 인스턴스 내 모든 사용자가 검색하고 자신의 프로젝트에 활성화할 수 있도록 공유하여 조직 전체의 생산성을 높입니다. * **공유 모범 사례:** `security-code-review`와 같이 명확한 명명 규칙을 사용하고, 상세한 사용 사례와 전제 조건을 문서화하여 품질을 유지할 것을 권장합니다. ## 안정성을 보장하는 버전 관리 시스템 * **자동 의미론적 버전 관리(Semantic Versioning):** 시스템 프롬프트나 구성이 변경될 때마다 GitLab이 자동으로 버전을 업데이트(예: 1.0.0에서 1.1.0으로)하며, 각 버전은 불변(Immutable) 상태로 유지됩니다. * **버전 고정(Version Pinning):** 하위 프로젝트에서 에이전트를 사용할 때 특정 버전으로 고정되어, 카탈로그의 원본이 업데이트되더라도 기존 워크플로우가 예기치 않게 변경되는 것을 방지합니다. * **수동 업데이트 방식:** 새로운 기능이나 개선 사항을 적용하려면 사용자가 직접 업데이트 버튼을 클릭하고 변경 사항을 검토한 후 최신 버전으로 갱신하는 '옵트인(Opt-in)' 방식을 채택합니다. 효과적인 AI 도입을 위해 처음에는 비공개 모드로 에이전트를 생성하여 충분히 테스트한 후, 검증된 자산에 한해 문서화와 함께 공개 모드로 전환하여 조직 전체에 배포하는 전략을 추천합니다.

플로우 이해하기: 멀티 (새 탭에서 열림)

GitLab Duo Agent Platform의 '플로우(Flows)'는 여러 전문 AI 에이전트가 협업하여 복잡한 개발 과업을 자율적으로 수행하는 멀티 에이전트 워크플로우 시스템입니다. 사용자와 대화하며 협력하는 개별 에이전트와 달리, 플로우는 특정 이벤트에 의해 트리거되어 백그라운드에서 분석부터 실제 구현 및 결과 도출까지 엔드 투 엔드(end-to-end) 작업을 독립적으로 처리합니다. 이를 통해 개발자는 반복적인 파이프라인 관리나 단순 구현 업무에서 벗어나 보다 고차원적인 설계에 집중할 수 있는 자율형 자동화 환경을 구축할 수 있습니다. ### 에이전트와 플로우의 차이 및 주요 특징 * **자율성:** 에이전트가 사용자와 상호작용하며 실시간으로 도움을 준다면, 플로우는 사용자를 대신해 독립적으로 워크플로우를 완수하는 데 초점을 맞춥니다. * **플랫폼 통합:** 별도의 외부 인프라 구축 없이 GitLab 플랫폼의 컴퓨팅 자원에서 직접 실행되는 내장형 시스템입니다. * **비동기 및 이벤트 기반:** 멘션(@), 담당자 할당, 리뷰어 지정 등의 이벤트로 트리거되며, 작업이 진행되는 동안 개발자는 다른 업무를 중단 없이 수행할 수 있습니다. * **기본 및 커스텀 옵션:** GitLab이 직접 관리하는 생산 준비 완료 단계의 '기본 플로우'와 팀의 특정 요구에 맞춰 구성하는 '커스텀 플로우'를 모두 지원합니다. ### 커스텀 플로우의 활용과 트리거 방식 * **팀 맞춤형 자동화:** 조직 고유의 보안 정책 검토, 특정 기술 스택에 맞춘 코드 리뷰, API 문서 자동 생성 등 범용 AI가 해결하기 어려운 구체적인 워크플로우를 자동화할 수 있습니다. * **다양한 실행 경로:** 이슈나 머지 리퀘스트(MR)에서 `@flow-name`으로 멘션하거나, `/assign @flow-name` 명령어를 통해 담당자 또는 리뷰어로 지정하는 즉시 실행됩니다. * **실제 활용 사례:** 핀테크 기업의 경우 컴플라이언스 플로우를 구축하여, 모든 MR에 대해 PCI-DSS 위반 여부를 스캔하고 보안 코딩 표준 준수 여부를 확인한 뒤 자동으로 보고서를 게시하도록 설정할 수 있습니다. ### YAML 기반의 플로우 설계 및 구성 요소 * **구조적 정의:** 플로우는 YAML 구성을 통해 정의되며 구성 요소(Components), 프롬프트(Prompts), 라우터(Routers), 도구 모음(Toolsets)으로 이루어집니다. * **에이전트 컴포넌트:** 워크플로우의 각 단계를 담당할 에이전트의 유형과 동작 방식을 정의하며, 특정 AI 모델의 행동 지침을 프롬프트 ID로 연결합니다. * **강력한 도구 연결:** `get_issue`, `create_commit`, `create_merge_request`와 같은 GitLab API 도구를 에이전트에게 부여하여 실제로 코드를 수정하고 저장소에 반영할 수 있는 권한을 제공합니다. * **전문성 주입:** 프롬프트 템플릿 내에 도메인 지식(예: 여행 예약 시스템의 특수성)과 코드 표준을 명시하여 AI가 조직의 맥락에 맞는 최적의 결과물을 내놓도록 정교하게 제어합니다. 단순한 코드 생성을 넘어 복잡한 프로세스의 완전 자동화를 목표로 한다면, 팀 내에서 가장 반복적으로 발생하는 작업부터 커스텀 플로우로 전환해 보길 권장합니다. 처음에는 GitLab에서 제공하는 기본 플로우로 기능을 탐색한 뒤, 점진적으로 팀의 정책이 반영된 YAML 정의 플로우를 확장해 나가는 것이 생산성 향상에 가장 효과적입니다.

디스코드, 후맘 사크 (새 탭에서 열림)

디스코드가 2025년 4월 28일부로 게임 산업의 베테랑인 후맘 사크니니(Humam Sakhnini)를 신임 CEO로 선임하며 새로운 도약을 준비합니다. 창업자인 제이슨 시트론(Jason Citron)은 CEO 직에서 물러나 이사회 이사이자 신임 CEO의 고문 역할을 맡게 되며, 공동 창업자인 스테판 비슈네프스키는 CTO직을 유지합니다. 이번 리더십 교체는 디스코드가 핵심 구독 모델을 넘어 광고, 소액 결제, 개발자 인프라 제공 등 비즈니스 영역을 본격적으로 확장하려는 전략적 의도로 풀이됩니다. **신임 CEO 후맘 사크니니의 선임 배경** * 액티비전 블리자드 부회장 출신으로 '콜 오브 듀티', '월드 오브 워크래프트', '캔디 크러쉬' 등 수십억 달러 규모의 포트폴리오를 관리한 15년 이상의 게임 업계 경력을 보유하고 있습니다. * 킹 디지털 엔터테인먼트 사장 시절, 창업자 이후의 리더십 승계를 성공적으로 이끌며 회사를 기록적인 성과로 성장시킨 실무적 역량을 입증했습니다. * 게임 산업 전반에 대한 깊은 이해와 고객 확보(User Acquisition) 및 현대적 수익 모델 창출에 대한 전문성을 바탕으로 디스코드의 성장을 가속화할 것으로 기대됩니다. **경영 구조 개편과 창업자들의 역할 변화** * 제이슨 시트론은 창업 이후 10년 넘게 유지해 온 CEO 직무를 내려놓고 이사회에 잔류하며, 고문으로서 디스코드의 비전이 유지될 수 있도록 지원합니다. * 공동 창업자이자 CTO인 스테판 비슈네프스키는 변동 없이 기술 조직을 총괄하며, 신임 CEO와 협력해 제품 혁신을 지속할 예정입니다. * 이사회 측은 이번 인사가 디스코드의 독창적인 문화를 유지하면서도 비즈니스 스케일을 확장하기 위한 최적의 변화라고 평가했습니다. **디스코드의 비즈니스 확장 및 재무 현황** * 디스코드는 현재 전 세계 월간 활성 사용자(MAU) 2억 명을 돌파했으며, 매달 디스코드를 통해 20억 시간의 게임 플레이가 이루어지는 등 강력한 지표를 기록 중입니다. * 수익 모델 다각화를 위해 기존의 유료 구독 서비스인 '니트로(Nitro)' 외에도 광고 도입, 마이크로 트랜잭션, 게임 개발자용 소셜 인프라 구축 등에 집중하고 있습니다. * 최근 5분기 연속으로 조정 EBITDA(상기각전 영업이익) 흑자를 기록하며 안정적인 재무 기반을 마련했으며, 이를 바탕으로 공격적인 성장을 도모할 계획입니다. **향후 전망 및 전략적 가치** 디스코드는 단순한 커뮤니케이션 툴을 넘어 게임 에코시스템의 핵심 인프라로 자리 잡으려 하고 있습니다. 후맘 사크니니의 리더십 아래 디스코드는 게임 커뮤니티와의 연결성을 더욱 공고히 하는 동시에, 플랫폼 내에서 발생하는 상호작용을 수익화하는 비즈니스 모델 고도화에 박차를 가할 것으로 보입니다. 이는 게임 개발자와 퍼블리셔, 그리고 플레이어를 잇는 '중심축'으로서의 디스코드의 가치를 극대화하려는 행보로 분석됩니다.

.NET 컨티뉴어스 프로 (새 탭에서 열림)

프로덕션 환경에서의 성능 진단은 복잡하지만, Continuous Profiler의 타임라인 뷰를 사용하면 코드 레벨의 비효율성을 시각적으로 즉각 파악할 수 있습니다. 이 도구는 CPU 사용량뿐만 아니라 대기 시간과 런타임 오버헤드를 시간 순서대로 나열하여, 특정 시점에 발생한 성능 저하의 근본 원인을 정확히 짚어냅니다. 이를 통해 개발자는 막연한 추측이 아닌 구체적인 데이터를 바탕으로 애플리케이션의 지연 시간(latency)을 단축하고 리소스 효율을 극대화할 수 있습니다. **타임라인 뷰를 통한 스레드 상태의 시각화** * 개별 스레드의 활동을 밀리초(ms) 단위의 시각적 타임라인으로 제공하여, 특정 시점에 코드가 실제로 실행 중인지(On-CPU) 아니면 외부 요인으로 대기 중인지(Off-CPU)를 명확히 구분합니다. * 전체적인 샘플링 통계만으로는 알 수 없는 스레드 간의 작업 순서와 실행 흐름을 직관적으로 이해할 수 있게 돕습니다. **On-CPU 및 Off-CPU 활동 분석을 통한 병목 식별** * **On-CPU 분석:** 복잡한 알고리즘 연산이나 무한 루프 등 CPU 자원을 과도하게 점유하는 코드 구간을 식별하여 로직 최적화의 근거를 제공합니다. * **Off-CPU 분석:** 네트워크 I/O 대기, 디스크 읽기/쓰기 요청, 혹은 시스템 호출로 인해 코드가 멈춰 있는 구간을 찾아내어 외부 서비스 의존성 문제를 진단합니다. **런타임 오버헤드와 가비지 컬렉션(GC)의 영향 파악** * 가비지 컬렉션(GC)의 발생 시점과 그로 인한 애플리케이션 중단(Stop-the-world) 시간을 타임라인 상에서 직접 확인하여 메모리 할당 패턴을 개선할 수 있습니다. * 뮤텍스(Mutex) 잠금 경합(Lock Contention)이 발생하는 지점을 시각화하여, 멀티스레드 환경에서 스레드들이 서로 자원을 기다리며 낭비되는 시간을 최소화합니다. **분산 추적(Tracing) 데이터와의 연계 진단** * 특정 요청(Trace)이 처리되는 과정과 해당 시점의 프로파일링 데이터를 결합하여, 개별 사용자 요청이 정확히 어떤 코드 라인에서 지연되었는지 정밀하게 추적합니다. * 서비스 전체의 메트릭과 개별 코드의 실행 궤적을 연결함으로써 문제 해결을 위한 컨텍스트 전환 비용을 줄여줍니다. 성능 문제를 해결하기 위해서는 단순히 '느리다'는 현상을 아는 것을 넘어 '왜 느린지'에 대한 실행 맥락을 파악해야 합니다. Continuous Profiler의 타임라인 뷰를 활용해 코드의 실제 실행 동작을 상시 관찰함으로써, 예기치 못한 성능 저하에 선제적으로 대응하고 인프라 비용을 효율화할 것을 권장합니다.

실패는 피할 수 없습니다: (새 탭에서 열림)

2023년 3월, 데이터독(Datadog)은 인프라의 약 50~60%가 중단되는 대규모 장애를 겪으며 시스템의 일부가 마비될 때 플랫폼 전체가 완전히 다운된 것처럼 보이는 '정방형 파형(Square-wave)' 장애 패턴을 확인했습니다. 이를 계기로 데이터독은 모든 장애 상황을 완벽히 방지하는 것은 불가능하다는 점을 인정하고, 장애 발생 시에도 시스템이 점진적으로 기능을 유지하는 '우아한 성능 저하(Graceful Degradation)'를 최우선 가치로 삼게 되었습니다. 데이터 유실 방지, 실시간 데이터 우선 처리, 부분적인 결과 제공을 핵심 원칙으로 설정하여 인프라 전반의 회복 탄력성을 재설계하는 대대적인 변화를 추진하고 있습니다. **"결함 없음" 설계의 한계와 Square-wave 장애** - 과거 데이터독은 데이터의 '정확성'을 보장하기 위해 100% 완벽한 데이터가 수집될 때까지 쿼리 결과를 반환하지 않도록 시스템을 최적화했습니다. - 이러한 설계는 일부 노드가 다운되었을 때 시스템 전체가 응답을 멈추게 하여, 사용자에게는 플랫폼이 완전히 중단된 것처럼 보이는 이진적(Binary) 장애를 초래했습니다. - 고전적인 근본 원인 분석(RCA)을 통해 특정 트리거를 제거할 수는 있지만, 소프트웨어 업데이트, 인증서 만료 등 무한한 장애 원인을 모두 예방하는 것은 불가능하다는 결론에 도달했습니다. **우아한 성능 저하를 위한 새로운 우선순위** - 시스템 구성 요소가 완벽하게 작동해야만 가치를 제공하는 '결함 방지(Never-fail)' 아키텍처에서 '더 잘 실패(Fail better)'하는 구조로 전환했습니다. - 데이터 유실 방지: 처리가 늦어지더라도 고객의 데이터가 영구적으로 사라지지 않도록 보장합니다. - 실시간성 우선: 가용 자원이 부족할 때 오래된 데이터보다 실시간 데이터를 우선적으로 처리하여 현재 상태를 파악할 수 있게 합니다. - 부분 결과 제공: 모든 데이터가 준비되지 않았더라도 정확도가 확인된 범위 내에서 부분적인 데이터를 즉시 시각화합니다. **데이터 유실 방지를 위한 영구적 수집 저장소(Persistent Intake Storage)** - 장애 당시 메모리나 로컬 디스크에만 머물던 미복제 데이터가 노드 유실과 함께 사라졌던 문제를 해결하기 위해 파이프라인 초기 단계에 디스크 기반 영구 저장소를 도입했습니다. - 수집(Intake) 직후 데이터를 복제된 저장소에 즉시 기록함으로써, 후속 처리 시스템이 정체되거나 노드가 유실되더라도 데이터 손실 없이 재처리가 가능하도록 설계했습니다. - 이를 통해 네트워크 지연이나 하위 시스템의 과부하 상황에서도 데이터 수집 단계에서의 안정성을 확보했습니다. 모든 장애를 차단하려는 시도보다는, 장애 상황에서도 시스템이 어떻게 부분적으로나마 작동할 수 있을지를 설계 단계부터 고민해야 합니다. 대규모 분산 시스템을 운영한다면 데이터의 완전성(Completeness)과 가용성(Availability) 사이의 균형을 재검토하고, 최악의 순간에도 사용자에게 최소한의 가시성을 제공할 수 있는 복구 탄력성을 구축하는 것이 권장됩니다.

패스키를 통한 비밀번호 없는 로그인 및 2단계 인증이 GitLab에서 사용할 수 있습니다 (새 탭에서 열림)

GitLab이 계정 보안 강화와 사용자 편의성 증대를 위해 패스키(Passkeys) 지원을 공식적으로 시작했습니다. 이제 사용자들은 지문, 얼굴 인식 또는 PIN을 사용하여 비밀번호 없이 로그인하거나, 피싱 방지 기능이 탑재된 강력한 이중 인증(2FA) 수단으로 패스키를 활용할 수 있습니다. 이번 업데이트는 보안 환경을 개선하고 다중 인증(MFA) 사용률을 높이려는 GitLab의 '보안 설계(Secure by Design)' 서약 이행의 일환입니다. **패스키의 기술적 원리와 보안성** * 패스키는 WebAuthn 기술과 공개키 암호화(Public-key cryptography) 방식을 기반으로 작동합니다. * 개인키(Private Key)는 사용자의 기기에 안전하게 보관되어 절대 외부로 유출되지 않으며, GitLab 서버에는 공개키(Public Key)만 저장됩니다. * 이러한 구조 덕분에 설령 GitLab 서버가 침해당하더라도 공격자가 사용자의 계정에 접근할 수 있는 유효한 인증 정보를 탈취하는 것이 근본적으로 불가능합니다. **광범위한 호환성 및 설정 방법** * 데스크톱 브라우저(Chrome, Firefox, Safari, Edge)는 물론 모바일 기기(iOS 16+, Android 9+), FIDO2 하드웨어 보안 키를 모두 지원합니다. * 사용자는 자신의 프로필 설정 내 'Account > Manage authentication' 메뉴에서 패스키를 간단히 등록할 수 있습니다. * 여러 기기에서 편리하게 접속할 수 있도록 계정 하나에 다수의 패스키를 등록하여 사용하는 것이 가능합니다. **보안 설계(Secure by Design) 서약 준수** * GitLab은 CISA(미국 사이버보안 및 인프라 보안국)의 'Secure by Design' 서약에 동참하여 제품 전반의 보안 수준을 높이고 있습니다. * 패스키는 해당 서약의 핵심 목표 중 하나인 다중 인증(MFA) 채택률 확대를 달성하기 위한 핵심 요소입니다. * 기존에 2FA를 활성화한 사용자의 경우 패스키를 등록하면 해당 방식이 기본 인증 수단으로 자동 설정되어 더욱 매끄러운 로그인 경험을 제공합니다. 보안 사고의 상당수가 피싱을 통한 계정 탈취에서 시작되는 만큼, GitLab 사용자는 보안 수준을 높이기 위해 기존의 일회용 비밀번호(OTP) 방식을 대체하거나 보완할 수 있는 패스키를 적극적으로 등록해 사용할 것을 권장합니다.