250825
TIL: Azure AI Foundry, VS Code 확장
서론
오늘은 클라우드 기반 AI 개발을 효율적으로 관리하고 구성할 수 있는 플랫폼인 Azure AI Foundry에 대해 학습했습니다. AI 프로젝트의 구성 요소들을 체계적으로 조직화하는 방법과 개발 환경 설정 시 고려해야 할 점들을 중심으로 내용을 정리했습니다.
Azure AI Foundry
Azure AI Foundry는 AI 솔루션 개발을 위한 통합 플랫폼입니다. 개별 Azure AI 리소스를 직접 프로비저닝하여 애플리케이션을 개발할 수도 있지만, AI Foundry를 사용하면 프로젝트 단위로 리소스, 데이터, 코드를 조직화하고 AI 개발에 필요한 다양한 기능을 통합하여 관리할 수 있는 장점이 있습니다. 개발자는 웹 기반의 Azure AI Foundry 포털 또는 프로그래밍 방식의 Azure AI Foundry SDK를 통해 프로젝트와 상호작용할 수 있습니다.
프로젝트 유형
Azure AI Foundry의 프로젝트는 솔루션에 필요한 모든 요소를 담는 컨테이너 역할을 하며, 다음과 같이 두 가지 유형으로 나뉩니다.
Foundry Projects
Foundry 프로젝트는 Azure 구독 내의 Azure AI Foundry 리소스와 직접적으로 연결됩니다. Azure AI Foundry 모델 카탈로그, 에이전트 서비스, 그리고 기본적인 AI 서비스 및 평가 도구를 지원합니다. 대부분의 일반적인 AI 애플리케이션 및 에이전트 개발 시나리오에서는 Foundry 프로젝트만으로도 충분하며, 리소스 관리 부담을 최소화하면서 개발에 집중할 수 있는 환경을 제공합니다.
Hub-based Projects
Hub-based 프로젝트는 Azure AI Hub 리소스를 기반으로 하며, Foundry 프로젝트의 모든 기능을 포함합니다. 여기에 더해 관리형 컴퓨팅 리소스, Prompt Flow 개발 지원, 그리고 Azure Storage 및 Key Vault와의 연동을 통한 보안 데이터 저장소 등 한층 더 발전된 AI 개발 기능을 제공합니다. 복잡하고 고차원적인 AI 솔션을 개발하거나, 여러 프로젝트 간의 리소스를 중앙에서 관리해야 할 때 유용합니다.
VS Code 확장 프로그램
Azure AI Foundry는 Visual Studio Code용 확장 프로그램을 제공하여 로컬 개발 환경과의 연동성을 높입니다. 이 확장을 통해 프로젝트 생성, 모델 선택 및 배포, 플레이그라운드에서의 모델 테스트, 에이전트 생성 등의 작업을 VS Code 내에서 직접 수행할 수 있습니다.
다만, 이 확장 프로그램은 VS Code에 최적화되어 있습니다. VS Code를 포크(fork)한 Void와 같은 에디터에서는 대부분의 확장이 호환되지만, Azure AI Foundry 확장처럼 Microsoft 계정 인증이나 클라우드 리소스와의 직접적인 통신이 필요한 경우 100% 정상 작동을 보장하기 어렵습니다. 특히 인증 및 배포와 같은 핵심 기능에서 예기치 않은 문제가 발생할 수 있으므로, 안정적인 클라우드 연동 개발을 위해서는 공식 VS Code를 사용하는 것이 권장됩니다.
SDK 및 API 구조
Azure AI Foundry 생태계는 여러 SDK와 API로 구성되어 있으며, 각 요소는 다음과 같은 역할을 담당합니다.
Azure AI Foundry SDK: 프로젝트 생성, 리소스 연결 등 Foundry 환경을 관리하고 제어하는 가장 기본적인 프로그래밍 인터페이스입니다.
Azure AI Foundry Models API & OpenAI Models API: Foundry에 배포된 생성형 AI 모델이나 OpenAI 모델을 직접 호출하고 제어하는 데 사용되는 API입니다.
Azure AI Services SDKs: 텍스트 분석, 음성 인식 등 Azure의 개별적인 AI 서비스를 애플리케이션에 쉽게 통합할 수 있도록 제공되는 서비스별 라이브러리입니다.
Agent Service: 다양한 AI 서비스와 리소스를 조합하여 특정 워크플로우를 자동화하는 "에이전트"를 구성하고 관리하는 기능입니다.
결론
오늘 학습을 통해 Azure AI Foundry가 단순한 리소스 모음을 넘어, AI 개발의 전체 생명주기를 체계적으로 관리하는 강력한 프로젝트 기반 플랫폼이라는 점을 이해했습니다. 프로젝트의 요구사항에 따라 적절한 프로젝트 유형을 선택하고, 개발 환경의 호환성을 고려하는 것이 중요하다는 교훈을 얻었습니다.