azure

3 개의 포스트

microsoft

마이크로소프트 엔지 (새 탭에서 열림)

마이크로소프트는 자사 엔지니어들이 대규모 AI 애플리케이션을 구축하는 실제 방법론을 공유하기 위해 'How Microsoft engineers build AI' 비디오 시리즈를 새롭게 공개했습니다. 첫 번째 에피소드에서는 'Copilot for Azure' 내의 'Ask Learn' 플러그인 개발 사례를 통해 검색 증강 생성(RAG) 기술을 안정적으로 구현하고 확장하는 핵심 전략을 다룹니다. 이를 통해 개발자들은 기업 내부 데이터와 대규모 언어 모델(LLM)을 결합하여 정확하고 맥락에 맞는 AI 서비스를 구축하는 실질적인 통찰력을 얻을 수 있습니다. ### RAG 기술의 핵심과 활용 차별화 * RAG(검색 증강 생성)의 기본 개념을 정립하고, 모델의 가중치를 직접 수정하는 파인튜닝(Fine-tuning) 기술과 비교하여 RAG가 가진 차별적 우위를 설명합니다. * Copilot in Azure뿐만 아니라 Microsoft Security Copilot, Dynamics 365 Business Central 등 마이크로소프트의 주요 제품군에 RAG가 실제로 어떻게 적용되어 비즈니스 가치를 창출하는지 사례를 제시합니다. * 단순한 이론을 넘어, 실제 서비스 환경에서 LLM이 고유 데이터에 접근하여 답변의 신뢰도를 높이는 메커니즘을 상세히 다룹니다. ### 엔지니어링 단계에서의 도전 과제와 해결책 * RAG 시스템 구축 시 직면하는 주요 난관인 콘텐츠 선택, 데이터 전처리(Preprocessing), 그리고 성능 평가(Evaluation) 과정을 체계적으로 관리하는 방법을 공유합니다. * 플러그인이 사용자에게 최신 상태의 정확한 정보를 실시간으로 전달할 수 있도록 보장하는 혁신적인 엔지니어링 솔루션을 소개합니다. * 프로토타이핑 단계에서 흔히 발생하는 실수들을 짚어보고, 이를 방지하기 위한 데이터 관리 및 운영상의 베스트 프랙티스를 제안합니다. ### Ask Learn 플러그인 구현 사례 분석 * Azure 개발자들이 작업 흐름을 방해받지 않고 몇 초 만에 답을 얻을 수 있도록 설계된 'Ask Learn'의 실제 작동 시연을 포함하고 있습니다. * 제품 관리자(PM)와 수석 소프트웨어 엔지니어링 매니저 등 실제 개발 주역들의 인터뷰를 통해, 대규모 스케일에서 RAG 솔루션을 안정화하기 위해 사용된 구체적인 기술 스택과 의사결정 과정을 공개합니다. * 사용자의 질문 의도에 가장 적합한 문서를 검색하고 이를 기반으로 맥락에 맞는 답변을 생성하는 구체적인 워크플로우를 학습할 수 있습니다. 성공적인 AI 애플리케이션 구축을 위해서는 Microsoft Learn의 관련 문서와 가이드를 참고하는 것이 좋습니다. 또한, 현재 무료로 제공되는 GitHub Copilot이 포함된 Visual Studio IDE를 활용하면 RAG 기반 앱 개발을 더욱 효율적으로 시작할 수 있습니다.

microsoft

관리형 DevOps 풀 – 탄생 비 (새 탭에서 열림)

마이크로소프트는 전사적으로 파편화되어 있던 5,000개 이상의 자가 호스팅 Azure DevOps 풀을 '1ES 호스팅 풀(1ES Hosted Pools)'이라는 단일 서비스로 통합하여 인프라 효율성과 보안성을 극대화했습니다. 이 시스템을 통해 인프라 비용을 60% 이상 절감하고 개발자들이 인프라 관리 대신 제품 개발에 집중할 수 있는 환경을 구축했으며, 내부적인 성공을 바탕으로 최근 외부 고객을 위한 '관리형 데브옵스 풀(Managed DevOps Pools, MDP)'을 출시했습니다. ### 분산된 자가 호스팅 환경의 문제점 * **중복 투자와 비효율:** 수천 개의 팀이 각자 유사한 인프라 관리 도구를 구축하는 데 개발 자원을 낭비했으며, 자동 스케일링 기능 부재로 사용하지 않는 자원에 비용이 지출되었습니다. * **낮은 신뢰성 및 지원 체계:** 팀 규모에 따라 지원 수준이 달라 장애 발생 시 CI/CD 파이프라인 복구 속도에 차이가 발생했습니다. * **보안 및 규정 준수의 어려움:** 인프라가 파편화되어 있어 보안 패치 여부를 추적하기 어렵고, 전사적인 보안 정책이나 컴플라이언스 기준을 일괄 적용하고 감사하는 데 막대한 시간이 소요되었습니다. ### 1ES 호스팅 풀의 핵심 기술적 기능 * **유연한 네트워크 및 이미지 구성:** 사설 네트워크 연결을 지원하여 내부 패키지 저장소나 비밀 관리자에 안전하게 접근할 수 있으며, 팀별 맞춤형 이미지를 베이스 이미지 위에 구축해 사용할 수 있습니다. * **상태 유지 및 성능 최적화:** 기본적으로는 작업마다 새 에이전트를 생성하는 상태 비저장(Stateless) 방식이지만, 로컬 캐시 활용이 필요한 경우 상태 유지(Stateful) 옵션을 제공하며 디스크 공간에 따른 자동 리사이클링을 지원합니다. * **지능형 리소스 관리:** 다양한 Azure SKU 선택은 물론, 과거 데이터를 기반으로 한 에이전트 사전 예열(Standby Agents) 기능을 통해 파이프라인 시작 시간을 단축했습니다. * **비즈니스 연속성 보장:** 특정 지역의 장애에 대비해 여러 지역에 백업 풀을 구성하여 에이전트를 즉시 가동할 수 있는 체계를 갖추었습니다. ### 표준화 시스템 도입의 성과 * **비용 절감:** Azure SPOT VM 활용과 워크로드에 최적화된 SKU 선택, 데이터 기반의 자원 활용도 개선을 통해 인프라 비용을 60% 이상 줄였습니다. * **보안 강화 및 중앙화:** Confidential VM, Trusted Launch, SecureTPM 등 고급 보안 기능을 모든 풀에 일괄 적용했으며, 일관된 텔레메트리 데이터를 통해 규정 준수 여부를 즉각적으로 확인할 수 있게 되었습니다. * **개발 생산성 향상:** 수천 개의 자가 호스팅 풀이 수십 개로 줄어들면서 인프라 관리 부담이 사라졌고, 팀 간 이동 시에도 동일한 도구를 사용하게 되어 개발 환경 적응 기간이 단축되었습니다. 현재 자체적으로 VM 확장 집합(Scale Set)이나 자가 호스팅 에이전트를 운영하며 관리 부담을 느끼고 있다면, 마이크로소프트의 내부 운영 노하우가 집약된 **Managed DevOps Pools(MDP)**로 전환하는 것을 추천합니다. 이를 통해 보안 수준을 높이는 동시에 운영 비용과 관리 오버헤드를 획기적으로 줄일 수 있습니다.

figma

마이크로소프트 디자이너 (새 탭에서 열림)

Microsoft 디자이너 Jackie Chui는 사내 아이콘 4,000개를 한곳에서 검색·분류·복사할 수 있는 브라우저 기반 라이브러리를 3주 만에 만들었다. 디자이너용 태그와 엔지니어용 클래스명, 아이콘을 붙여 넣어 메타데이터를 찾는 역검색 기능을 제공해 도구 간 단절을 해결했다. 이 사례는 기존 제품을 그대로 사용하는 대신 실제 사용자의 요구를 조사하고, 익숙한 기술과 단계적인 학습으로 맞춤형 도구를 만들 수 있음을 보여준다. ## 문제 발견과 기존 도구의 한계 - Jackie는 Microsoft 디자이너들의 작업 과정을 관찰하고 아이콘 관리에서 겪는 불편을 조사했다. - 기존 제품 중에서는 IconJar가 아이콘 정리와 복사·붙여넣기를 지원했지만 Microsoft의 요구에는 부족했다. - 여러 사용자가 아이콘 태그를 추가하고 공유할 수 없었다. - 브라우저 기반이 아니어서 아이콘을 클라우드에서 공동으로 사용할 수 없었다. - Mac 전용이라 Windows 중심 조직에 적합하지 않았다. - 이에 따라 특정 운영체제나 디자인 도구에 종속되지 않는 자체 도구를 만들기로 했다. ## 브라우저 기반 아이콘 라이브러리 설계 - 초기 UI는 Sketch로 설계하고 IconJar에서 아이디어를 얻되, Microsoft Fabric 디자인 언어에 맞게 스타일을 조정했다. - 브라우저에서 작동하도록 만들어 사용자가 선호하는 디자인 도구와 관계없이 접근할 수 있게 했다. - 아이콘마다 다음 정보를 연결했다. - 디자이너가 찾기 쉬운 태그와 분류명 - 엔지니어가 코드에서 사용하는 클래스명 - 실제 복사·붙여넣기에 필요한 유니코드 아이콘 문자 - 아이콘을 검색해 바로 복사할 수 있게 해, 디자이너가 자주 쓰는 아이콘 문자를 별도 파일에 보관하던 방식을 없앴다. - 아이콘을 라이브러리에 붙여 넣으면 관련 메타데이터를 역으로 찾을 수 있는 기능도 제공했다. ## 익숙한 기술로 빠르게 개발 - Jackie는 포트폴리오 제작을 통해 익힌 HTML, CSS, JavaScript 경험을 기반으로 개발을 시작했다. - 프런트엔드와 백엔드 데이터베이스를 함께 구축하기 쉬운 JavaScript 프레임워크 Meteor.js를 선택했다. - Meteor 튜토리얼의 할 일 목록 데이터베이스 예제를 아이콘 데이터베이스로 확장했다. - 새로운 기술을 완전히 습득한 뒤 시작하기보다, 해결해야 할 실제 문제를 중심으로 필요한 내용을 학습하며 개발했다. - 기획과 디자인 경험에 엔지니어링 지식을 결합해 짧은 기간 안에 작동하는 제품을 완성했다. ## 아이콘 데이터 수집과 변환 - 아이콘은 일반적으로 폰트 파일에 저장되며, 키보드로 직접 입력할 수 없는 전용 유니코드 문자를 복사해 사용한다. - Jackie는 회사의 아이콘 폰트 파일을 다운로드하고 각 아이콘의 실제 유니코드 문자를 추출했다. - Microsoft 문서에서 엔지니어가 사용하는 아이콘 이름과 클래스명 목록을 확보했다. - 아이콘 이름 목록을 Excel로 정리한 뒤 JSON으로 변환해 애플리케이션 데이터로 사용했다. - 이렇게 아이콘 문자, 표시 이름, 클래스명, 태그를 하나의 검색 가능한 시스템으로 통합했다. ## 배포와 사용자 피드백 - 약 3주간의 개인 작업 끝에 첫 버전을 완성하고 Microsoft Azure에 호스팅했다. - 처음에는 팀에 간단한 이메일과 링크만 공유했지만, 사용자들의 입소문을 통해 디자인 스튜디오 전체로 확산됐다. - 동료들은 버그를 제보하고 새 기능을 제안하며 제품 개선에 참여했다. - 도구는 빠르게 여러 디자이너의 일상적인 작업 흐름에 포함됐다. - 이후 V2에서는 버그 수정과 기능 보강을 진행하고 다른 Microsoft 팀으로 확장할 계획이었다. ## Figma 컴포넌트로의 확장 - 향후 4,000개 이상의 아이콘을 한 번에 Figma 컴포넌트로 변환하는 기능을 계획했다. - 사용자는 별도 라이브러리를 거치지 않고 Figma 안에서 아이콘을 검색하고 정리할 수 있게 된다. - 장기적으로는 아이콘 폰트 파일을 업로드하면 누구나 Figma 컴포넌트로 변환할 수 있는 도구로 발전시키려 했다. - 기존 도구를 대체하는 다음 버전을 만드는 것이 목표라는 점에서, 제품은 사용자의 작업 흐름에 맞춰 계속 진화한다. 실용적으로는 먼저 사용자의 반복적인 불편을 관찰하고, 기존 도구의 부족한 점을 명확히 정의하는 것이 중요하다. 이후 모든 기능을 완성하려 하기보다 검색·분류·복사처럼 핵심 작업만 지원하는 최소 버전을 빠르게 배포하고, 실제 사용자 피드백을 바탕으로 확장하는 접근이 효과적이다.