개발 환경
Windows 11, Windows 10 1주년 업데이트 이상 또는 Ubuntu 24.04(시험판), Ubuntu 22.04 LTS 또는 Ubuntu 20.04 LTS를 실행하는 Linux 컴퓨터에서 Azure Sphere용 애플리케이션을 개발할 수 있습니다. Windows 11 사용하는 경우 Azure Sphere SDK의 22.02 이상 버전을 사용합니다.
- Windows의 경우 Windows SDK 설치합니다. Visual Studio, Visual Studio Code 또는 명령줄을 사용하여 Windows에서 애플리케이션을 빌드, 배포 및 디버그할 수 있습니다.
- Linux의 경우 Linux SDK를 설치합니다. Visual Studio Code 또는 명령줄을 사용하여 Linux에서 애플리케이션을 빌드, 배포 및 디버그할 수 있습니다.
Azure Sphere SDK에는 다음과 같은 주요 구성 요소가 포함됩니다.
- 특정 API 집합을 대상으로 하는 애플리케이션을 컴파일하고 연결하는 데 사용되는 라이브러리, 헤더 파일 및 도구를 포함하는 Sysroots입니다.
- 다양한 하드웨어 디바이스에서 사용할 수 있는 하드웨어 기능을 설명하고 app-manifest.json 파일에서 이를 지정하는 데 사용할 수 있는 하드웨어 정의입니다.
- CMakeFiles- CMake에 대한 Azure Sphere 확장을 정의합니다.
- Azure Sphere CLI(Command-Line 인터페이스)입니다.
자습서에서는 첫 번째 애플리케이션을 빌드하고 배포하는 단계를 안내합니다. 또한 Azure Sphere 하드웨어를 프로그래밍하고 API를 사용하는 방법을 보여 주는 샘플 애플리케이션을 포함하는 샘플 리포지토리를 GitHub 에 제공합니다.
Azure Sphere 애플리케이션 런타임
Azure Sphere 애플리케이션 런타임은 상위 수준 애플리케이션 개발을 위한 두 가지 라이브러리 집합인 기본 API 및 applibs API를 제공합니다. 기본 API는 Azure Sphere 디바이스를 독점적으로 대상으로 하지 않는 라이브러리를 기반으로 하는 반면, applibs API는 특히 Azure Sphere 디바이스를 대상으로 합니다. Azure Sphere SDK를 사용하여 빌드된 고급 애플리케이션은 이러한 인터페이스를 컴파일하고 연결합니다. 이러한 API는 실시간 지원 애플리케이션에서 사용할 수 없습니다.
기본 API의 헤더 파일은 Azure Sphere SDK 설치 디렉터리의 Sysroots\API set\usr\include 폴더에 설치됩니다. applibs API의 헤더 파일은 Azure Sphere SDK 설치 디렉터리의 Sysroots\API set\usr\include\applibs 폴더에 설치됩니다.
팁
POSIX C 표준 헤더는 일반 API 헤더의 경우 Sysroots\API set\usr\include, 하위 수준 시스템 종속 API 헤더의 경우 Sysroots\API set\usr\include\sys의 두 폴더에 있습니다. 일반 API를 사용하는 것이 좋습니다.
도구
Azure Sphere SDK에는 디바이스 관리, 애플리케이션 개발 및 배포, 클라우드 서비스 작업을 위한 Azure CLI 가 포함되어 있습니다.
CMake는 경량 Ninja 빌드 유틸리티와 함께 Azure Sphere 애플리케이션에 대한 빌드 조정을 제공합니다. Visual Studio를 사용하는 경우 CMake 및 Ninja가 자동으로 설치됩니다. Visual Studio Code 또는 Azure CLI를 사용하는 경우 Windows 또는 Linux에 직접 설치해야 합니다.
Visual Studio와 Visual Studio Code 모두 Azure Sphere 애플리케이션 개발을 간소화하는 Azure Sphere 확장이 있습니다. 이러한 확장을 사용하면 IDE에서 직접 Azure Sphere 애플리케이션을 쉽게 빌드, 디버그, 테스트 및 배포할 수 있습니다. 두 확장 모두 Azure Sphere의 CMake 도구를 완전히 지원합니다.
컨테이너
Azure Sphere는 독립 실행형 Linux 환경에서 SDK를 패키지하는 컨테이너를 제공합니다. 미리 정의된 빌드 환경에서 컨테이너를 사용하면 올바른 SDK 빌드 환경을 설치(또는 제거한 다음 다시 설치)하는 단계를 방지할 수 있습니다. 고유한 요구 사항에 맞게 빌드 환경을 수정하고 균일한 결과와 동시에 모든 호스트 머신에 해당 환경을 복제할 수 있습니다. 자세한 내용은 컨테이너를 사용하여 Azure Sphere 앱 빌드 를 참조하세요. GitHub Actions 또는 Azure Pipelines와 같은 빌드 파이프라인이 기본 코드를 변경할 때마다 애플리케이션을 자동으로 다시 빌드하는 연속 통합 시나리오의 일부로 컨테이너를 사용할 수도 있습니다. 자세한 내용은 컨테이너 빌드에 연속 통합 추가를 참조하세요 .
컨테이너란?
컨테이너는 호스트 컴퓨터의 커널에서 실행되는 고유한 경량 환경과 함께 제공되는 휴대용 패키지입니다. 컨테이너는 공유 계층을 사용하기 때문에 가볍습니다. 이러한 계층은 운영 체제 또는 공유 애플리케이션의 공유 조각일 수 있습니다. 계층은 전체 운영 체제 및 모든 연결된 애플리케이션을 포함하는 가상 머신의 오버헤드를 방지합니다. 공유를 사용하면 컨테이너가 작고 빠르게 부팅될 수 있습니다.
mar(Microsoft 아티팩트 레지스트리)와 같은 컨테이너 레지스트리에서 컨테이너를 다운로드할 수 있습니다.
Azure Sphere에 가져오는 컨테이너
Microsoft Azure Sphere SDK 빌드 환경의 컨테이너는 미리 만들어진 개발 환경을 제공합니다. 컨테이너는 다음을 제공합니다.
- 현재 Azure Sphere 릴리스용 Ubuntu Linux 버전
- Linux용 Azure Sphere SDK의 현재 버전
- CMake 및 Ninja와 같은 SDK에 필요한 추가 도구
Azure Sphere는 Dockerfile 텍스트 파일로 구성된 Docker 컨테이너를 사용합니다. 기본 컨테이너 이미지를 사용하여 Azure Sphere 애플리케이션을 빌드하기 위한 사용자 지정 컨테이너를 만드는 Dockerfiles를 작성할 수 있습니다. 사용자 지정된 컨테이너를 실행하면 호스트 컴퓨터에 없는 경우 최신 기본 이미지가 다운로드되고, 필요한 경우 새 사용자 지정된 컨테이너를 빌드하고, 지정된 애플리케이션을 빌드하고, 종료합니다. 그런 다음 Azure Sphere SDK가 설치된 호스트 컴퓨터에 애플리케이션 빌드의 출력을 복사하고 애플리케이션을 디바이스에 테스트용으로 로드할 수 있습니다. 사용자 지정 빌드 컨테이너는 일반적으로 대화형으로 사용되지 않지만, 예를 들어 빌드 문제를 진단할 수 있습니다.