# Azure DevOps 주요 구성 요소 Azure DevOps는 Microsoft에서 제공하는 개발 도구 모음으로, 팀이 작업을 계획하고, 코드 개발에 협업하며, 애플리케이션을 빌드 및 배포할 수 있도록 도와줍니다. 다음은 Azure DevOps의 주요 구성 요소에 대한 상세 설명입니다. ## 1. Azure Boards Azure Boards는 애자일([[Agile]]) 방법론을 지원하는 작업 관리 도구입니다. ### 주요 기능: - **작업 항목 추적(Work Item Tracking)**: 버그, 작업, 사용자 스토리, 이슈 등을 생성하고 관리 - **스프린트 계획(Sprint Planning)**: 스프린트 기간 동안 수행할 작업 항목을 계획하고 할당 - **칸반 보드(Kanban Boards)**: 작업 상태를 시각적으로 표시하고 워크플로우 관리 - **백로그 관리(Backlog Management)**: 제품 백로그 및 스프린트 백로그 관리 - **대시보드 및 보고서(Dashboards & Reports)**: 프로젝트 진행 상황에 대한 시각적 보고서 제공 ### 지원하는 애자일 프레임워크: - Scrum - Kanban - Scrumban - 기본 프로세스 - CMMI(Capability Maturity Model Integration) 프로세스 ## 2. Azure Repos Azure Repos는 소스 코드 관리를 위한 버전 제어 시스템입니다. ### 주요 기능: - **Git 리포지토리**: 분산형 버전 제어 시스템인 Git을 통한 코드 관리 - **TFVC(Team Foundation Version Control)**: 중앙 집중식 버전 제어 옵션 지원 - **Pull Request**: 코드 리뷰 및 병합 프로세스 지원 - **브랜치 정책(Branch Policies)**: 코드 품질 및 협업 프로세스 제어 - **코드 검색(Code Search)**: 리포지토리 내 코드 검색 기능 - **무제한 프라이빗 리포지토리**: 개인 또는 팀만 접근 가능한 프라이빗 리포지토리 무제한 생성 ### 코드 관리 기능: - 브랜치 생성 및 관리 - 코드 변경 이력 추적 - 코드 변경사항 비교 - 충돌 해결(Conflict Resolution) ## 3. Azure Pipelines Azure Pipelines는 지속적 통합(CI) 및 지속적 배포(CD)를 위한 자동화 도구입니다. ### 주요 기능: - **지속적 통합(Continuous Integration)**: 코드 변경사항을 자동으로 빌드하고 테스트 - **지속적 배포(Continuous Deployment)**: 자동화된 배포 파이프라인 구성 - **다양한 플랫폼 지원**: Windows, Linux, macOS 등 다양한 운영 체제 지원 - **컨테이너 지원**: Docker 및 Kubernetes와의 통합 - **YAML 파이프라인**: 코드로서의 파이프라인(Pipeline as Code) 구현 - **릴리스 관리(Release Management)**: 여러 환경(개발, 테스트, 프로덕션 등)에 대한 릴리스 관리 ### 통합 가능한 환경: - 클라우드 서비스(Azure, AWS, GCP) - 온프레미스 서버 - 다양한 언어 및 프레임워크(Node.js, Python, Java, .NET, PHP, Go 등) - 다양한 배포 대상(VM, 컨테이너, 서버리스 등) ## 4. Azure Test Plans Azure Test Plans는 소프트웨어 품질 보증을 위한 테스트 관리 도구입니다. ### 주요 기능: - **수동 테스트 계획 및 실행**: 테스트 케이스 생성, 관리 및 실행 - **탐색적 테스트(Exploratory Testing)**: 구조화되지 않은 테스트 수행 - **자동화된 테스트 통합**: Selenium, JUnit, NUnit 등의 자동화 테스트 도구와 통합 - **부하 테스트(Load Testing)**: 애플리케이션의 성능 및 확장성 테스트 - **테스트 피드백(Test Feedback)**: 테스트 결과에 대한 피드백 수집 및 관리 - **결함 추적(Bug Tracking)**: 버그 발견 시 Azure Boards와 연동 ### 테스트 관리 기능: - 테스트 계획(Test Plans) - 테스트 스위트(Test Suites) - 테스트 케이스(Test Cases) - 테스트 결과 분석 및 보고서 ## 5. Azure Artifacts Azure Artifacts는 패키지 관리 도구로, 팀이 코드 종속성을 공유하고 관리할 수 있게 해줍니다. ### 주요 기능: - **패키지 리포지토리**: 개인 또는 조직 내 패키지 저장 및 공유 - **다양한 패키지 형식 지원**: - NuGet (.NET) - npm (JavaScript) - Maven (Java) - Python (PyPI) - Universal Packages - **패키지 버전 관리**: 패키지의 다양한 버전 관리 - **업스트림 소스(Upstream Sources)**: 공용 패키지 리포지토리와 통합 - **권한 관리**: 패키지 접근 권한 제어 ### 이점: - 종속성 관리 간소화 - 패키지 보안 강화 - 빌드 프로세스 일관성 유지 - 외부 리포지토리 종속성 감소 ## Azure DevOps 통합 및 확장성 Azure DevOps의 각 구성 요소는 서로 긴밀하게 통합되어 있으며, 다음과 같은 추가 기능도 제공합니다: ### 주요 통합 기능: - **Azure Active Directory 통합**: 사용자 인증 및 권한 관리 - **확장 마켓플레이스**: 다양한 확장 프로그램을 통한 기능 확장 - **API 지원**: RESTful API를 통한 프로그래밍 방식의 접근 - **타사 도구 통합**: Slack, Microsoft Teams, Jenkins, Trello 등 다양한 도구와 통합 - **IDE 통합**: Visual Studio, VS Code, Eclipse 등의 개발 환경과 통합 ### 배포 옵션: - **Azure DevOps Services**: 클라우드 호스팅 버전 - **Azure DevOps Server**: 온프레미스 설치 버전 ## 시작하기 Azure DevOps를 시작하기 위한 일반적인 단계: 1. Azure DevOps 조직 또는 서버 설정 2. 프로젝트 생성 3. 팀원 초대 및 권한 설정 4. 작업 항목 생성 및 스프린트 계획 5. 리포지토리 설정 및 코드 커밋 6. CI/CD 파이프라인 구성 7. 테스트 계획 수립 8. 패키지 리포지토리 설정 ## 결론 Azure DevOps는 소프트웨어 개발 라이프사이클의 모든 단계를 지원하는 종합적인 도구 세트를 제공합니다. 각 구성 요소는 독립적으로 사용할 수 있지만, 함께 사용할 때 최대의 효과를 발휘합니다. 이를 통해 팀은 더 효율적으로 협업하고, 고품질의 소프트웨어를 더 빠르게 제공할 수 있습니다.