Contoso 부동산을 사용한 최신 클라우드 개발
Contoso 부동산 애플리케이션에는 엔터프라이즈급 최신 구성 가능 프런트 엔드(또는 마이크로 프런트 엔드) 및 클라우드 네이티브 애플리케이션을 빌드하기 위한 참조 아키텍처 및 구성 요소가 포함되어 있습니다. 최신 JavaScript 애플리케이션을 빌드하고 Azure에 배포하는 데 사용할 수 있는 모범 사례, 아키텍처 패턴 및 기능 구성 요소의 컬렉션입니다.
Contoso 부동산 솔루션에서 사용되는 최신 클라우드 개발에는 애플리케이션을 개발, 디버그, 빌드, 배포 및 테스트할 수 있는 도구가 포함되어 있습니다.
개발자 환경
효과적이고 효율적인 개발 팀이 개발 환경을 결정하고 일관되게 기본.
개발 컨테이너
개발 환경은 팀의 모든 개발자에게 동일해야 합니다. 또한 해당 환경은 프로덕션 환경을 최대한 미러 합니다. 개발 컨테이너 는 커뮤니티 지원, 사양, 도구, 가이드 및 템플릿이 포함된 업계 표준입니다. 개발 컨테이너는 기본 운영 체제, 언어 및 팀 효율성에 필요한 기타 도구에 대해 확인해야 합니다.
Visual Studio Code 는 소스 코드를 래핑하는 빠른 단계별 개발 컨테이너 만들기 프로세스를 제공하므로 컨테이너를 작성하는 대신 코드를 작성할 수 있습니다. 컨테이너를 개발하려는 경우 기존 컨테이너를 가져오거나 제공된 개발 컨테이너 파일을 변경할 수 있습니다.
- Contoso Dev Container - devcontainer.json
IDE
IDE(통합 개발자 환경)는 코드를 보다 효율적으로 작성, 테스트 및 디버깅하기 위해 개발자에게 포괄적인 도구와 기능을 제공하는 소프트웨어 애플리케이션입니다. 소프트웨어 개발의 다양한 측면을 단일 환경으로 통합하여 개발 프로세스를 간소화하도록 설계되었습니다. 통합 개발 환경 IDE에서 개발 컨테이너와 결합하면 나머지 팀을 지원하면서 새 팀 구성원을 신속하게 온보딩할 수 있습니다. 설정, 확장 및 기타 통합을 포함한 IDE에 대한 모든 수정 사항을 개발 컨테이너에 지정할 수 있으므로 모든 팀 구성원은 수동 단계에 의존하지 않고도 동일한 환경을 가질 수 있습니다.
플랫폼 간 개발자 팀의 경우 Visual Studio Code를 사용합니다.
- Visual Studio Code에 대한 환경 설정 - ./vscode
- devcontainer.json에 설치된 Visual Studio 확장
코드 품질 도구
코드 품질 도구는 개발 중에 서식 및 스타일 지침을 적용하고 코드 표준을 적용하여 잠재적인 런타임 문제를 catch하기 위해 적용됩니다. 코드 품질 도구는 프로그래밍 언어가 고유하며 지원 및 진행을 보장하기 위해 커뮤니티에서 지원됩니다. Visual Studio Code 는 일반적인 코드 품질 도구와 통합을 제공합니다.
Contoso는 다음 코드 품질 도구를 사용합니다.
- 패키지
tsconfig.json
파일의 TypeScript 설정입니다. - 루트 package.json의 더 예쁜 설정입니다.
- 루트 .eslintrc.js의 ESLint
자동화된 테스트
개발 환경에서 개발자는 빌드 및 테스트 파이프라인에 변경 내용을 푸시하지 않고도 코드를 빠르게 작성하고 프로젝트에 미치는 영향을 테스트할 수 있습니다. Visual Studio Code 는 자동화된 테스트 도구와 통합을 제공합니다. 브라우저 및 API 테스트를 포함한 엔드 투 엔드 테스트에 PlayWright를 사용합니다.
Contoso는 다음을 사용합니다.
CLI
명령줄 인터페이스를 사용하면 개발자가 개발 환경에서 신속하게 작업하고 파이프라인 빌드 및 배포를 위한 자동화 도구에 CLI를 추가할 수 있습니다.
Contoso는 다음 CLI를 사용합니다.
개발자 컴퓨팅
개발자의 워크스테이션은 클라우드 또는 물리적 컴퓨터로 배치할 수 있습니다. 컴퓨팅 리소스의 위치에 관계없이 최신 클라우드 개발자가 필요로 하는 구성 요소를 쉽게 통합할 수 있습니다.
Codespaces
Codespaces는 GitHub 리포지토리에서 사용할 수 있는 개발자 컨테이너입니다. 브라우저 또는 로컬 IDE의 Codespaces에서 리포지토리를 엽니다. 일반적인 개발자 흐름에서 즉시 작업을 시작하고, PR을 작성, 디버깅, 테스트 및 GitHub 리포지토리로 다시 푸시합니다. Codespaces는 환경 변수, 종속성 설치 및 CLI와 같은 환경에 대한 특정 변경 내용을 유지합니다.
웹 브라우저에서 GitHub에서 프로젝트를 열거나 로컬 버전의 Visual Studio Code에서 컨테이너를 열 수 있습니다. 둘 다 동일한 개발 컨테이너를 사용합니다.
개발자를 위한 클라우드 리소스
개발자는 개발하는 동안 클라우드 리소스에 액세스해야 합니다. 리소스에 따라 개발 팀은 로컬 에뮬레이터(사용 가능한 경우)를 사용하거나 코드 파일과 동일한 인프라를 사용하여 개발자 리소스를 제공할 수 있습니다.
AZD(Azure Dev CLI)와 같은 도구를 사용하여 코드로서의 인프라를 사용하면 클라우드 리소스를 빠르게 만들고 분해할 수 있습니다.
이 프로젝트에는 독립적으로 배포할 수 있는 논리 서비스를 정의하는 루트 수준 파일인 azure.yml이 있습니다. 각 서비스를 지원하는 리소스는 인프라 폴더에 정의됩니다.
- 인프라/앱 폴더는 Azure 서비스를 구성하고 연결하는 방법을 정의합니다.
- 인프라/코어 폴더에는 각 Azure 서비스를 만드는 데 사용되는 Bicep 파일이 있습니다.
AZD(Azure Developer CLI) 는 명령을 통해 모든 리소스 또는 논리 서비스에 대한 리소스 생성을 azd provision
제공합니다.
소스 제어, 연속 통합 및 배포
소스 제어 는 개발 주기 동안 변경 내용을 추적하는 기능을 제공합니다. Contoso는 git를 사용하여 버전 제어를 관리하고 GitHub를 사용하여 소스 코드를 저장합니다.
연속 통합을 사용하면 기본 분기에 병합하기 전에 소스 코드에 대한 변경 내용을 확인할 수 있습니다. Contoso는 연속 통합을 위해 .github/workflows 파일을 사용합니다.
배포 는 소스 코드 및 관련 파일을 클라우드로 이동하는 프로세스입니다. AZD(Azure Developer CLI) 는 명령을 통해 배포를 azd deploy
제공합니다.