다음을 통해 공유


팀 환경에서의 데이터베이스 생성 및 배포 개요

업데이트: 2007년 11월

Team Edition for Database Professionals를 사용하면 개발 팀은 버전 제어로 관리되는 데이터베이스 프로젝트를 통해 데이터베이스 변경 내용을 관리할 수 있습니다. 팀의 DBA(데이터베이스 관리자) 역할을 수행하고 있는 경우 해당 프로젝트를 만들고, 프로덕션 서버에서 스키마를 가져오고, 데이터베이스 설정을 구성하고, 테스트 데이터 생성을 위한 계획을 설정합니다. 프로젝트 및 해당 설정을 팀의 나머지 멤버와 공유할 준비가 되면 프로젝트와 연결된 파일을 버전 제어로 관리합니다.

데이터베이스에서 작업하는 개발자 또는 테스터인 경우 버전 제어 시스템에서 현재 버전의 데이터베이스 스키마를 체크 아웃한 다음 격리된 개발 환경 또는 샌드박스에서 변경을 수행합니다. 그런 다음 팀의 다른 멤버에게 영향을 주지 않고 격리된 환경에서 변경 내용을 테스트할 수 있습니다. 변경이 완료된 후 파일을 다시 버전 제어 시스템에 체크 인하여 파일을 빌드하고 테스트 서버에 배포할 수 있게 합니다. 다른 팀 멤버는 버전 제어에 체크 인된 버전으로 동기화하여 변경 내용을 적용할 수 있습니다.

데이터베이스 프로젝트 설정

팀 환경에서 DBA 역할을 수행하는 멤버가 팀의 프로젝트를 설정한 다음 각 팀 멤버는 동일한 프로젝트를 사용하여 고유한 격리된 개발 환경에서 작업할 수 있습니다. 프로젝트를 설정하려면 일반적으로 다음과 같은 순서로 작업을 수행합니다.

  1. 데이터베이스 프로젝트를 만듭니다. 일반적으로 다음 단계와 함께 이 단계를 수행합니다.

  2. 데이터베이스 프로젝트에 대한 스키마를 설정합니다. 대부분의 개발 작업은 기존 데이터베이스에서 시작됩니다. 이 경우 해당 데이터베이스에서 스키마를 데이터베이스 프로젝트로 가져올 수 있습니다. 이 단계를 수행하려면 소스 데이터베이스(프로덕션 데이터베이스)에 대한 액세스 권한이 있어야 합니다. 데이터베이스를 만드는 중이면 데이터베이스 설계자와 협력하여 초기 데이터베이스 스키마를 개발해야 할 수도 있습니다.

  3. 빌드와 배포를 제어하는 속성을 데이터베이스 프로젝트에서 설정합니다. 이 단계에는 기본 데이터 정렬을 설정하고, 빌드 출력 경로를 설정하고, 연결 옵션을 지정하고, 대상 데이터베이스 이름을 설정하는 작업이 포함됩니다.

  4. 팀에서 액세스할 수 있도록 데이터베이스 프로젝트와 해당 내용을 버전 제어에 체크 인합니다.

  5. 각 팀 멤버가 중요한 정보가 포함되지 않은 실제 테스트 데이터로 작업할 수 있도록 데이터 생성 계획을 정의합니다. 이 계획을 데이터베이스 프로젝트에 추가하고 버전 제어에 체크 인합니다.

  6. 또한 기존 데이터베이스 기능에 대한 데이터베이스 단위 테스트를 정의합니다. 일반적으로 단위 테스트를 데이터베이스 프로젝트와 동일한 솔루션에 있는 별개의 프로젝트에 포함하고 전체 솔루션을 버전 제어에 체크 인합니다.

이제 팀에서 개발 작업을 시작할 수 있습니다.

격리된 개발 환경에서 반복적 개발 수행

개발자는 로컬 개발 환경을 버전 제어 시스템과 동기화합니다. 개발자는 데이터베이스 복사본을 호스팅할 서버를 가리키도록 데이터베이스 프로젝트에서 대상 연결 속성을 사용자 지정합니다. 주요 작업은 다음 프로세스로 구성됩니다.

  1. 수행할 작업을 식별합니다. 예를 들어 Team Foundation 작업 항목 추적에서 개발자에게 할당되는 작업 항목을 식별하는 것이 이 단계에 포함될 수 있습니다.

  2. 데이터베이스 프로젝트, 해당 내용 및 관련된 모든 소스 코드를 수정합니다. 코드와 데이터베이스 프로젝트를 동기화된 상태로 유지할 수 있는 버전 제어에서 파일을 체크 아웃합니다.

  3. 필요한 경우 단위 테스트를 만들거나 수정하고 데이터 생성 계획을 업데이트합니다.

  4. 데이터베이스 프로젝트와 관련 응용 프로그램을 빌드하여 데이터베이스의 전용 복사본이 있는 서버에 배포합니다.

  5. 단위 테스트를 실행합니다. 가능하다면 데이터 생성기를 사용하여 테스트 데이터를 만듭니다.

  6. 모든 테스트에 성공하고 결과에 만족할 때까지 2단계에서 5단계를 반복합니다.

  7. 단위 테스트에 성공하고 작업 품질에 만족할 경우 데이터베이스 프로젝트, 응용 프로그램 및 단위 테스트에 대한 모든 변경 내용을 체크 인합니다.

  8. 다음 작업으로 이동합니다.

이 프로세스에 따라 변경 내용을 격리된 상태로 개발하고 테스트할 수 있습니다. 이렇게 하면 변경 내용이 일관된 품질 수준에 도달할 때까지 다른 개발자에게 영향을 주지 않게 됩니다. 일관된 품질 수준에 도달하면 작업을 버전 제어에 체크 인하여 다른 개발자가 향상된 내용에 액세스하도록 할 수 있습니다.

변경 내용을 프로덕션에 배포

팀에서 필요한 변경을 모두 수행한 다음에는 프로덕션 서버를 업데이트하는 단계를 수행합니다. 이 작업을 담당하는 개발자는 버전 제어에서 최신 버전의 데이터베이스 프로젝트를 가져와서 배포 스크립트를 빌드하고 필요에 따라 해당 스크립트를 수동으로 업데이트한 다음 스크립트를 실행하여 스키마 변경 내용을 프로덕션에 배포할 수 있습니다.

일부 버전 제어 소프트웨어에서는 특정 시점에 존재하는 파일 집합에 대해 레이블을 지정하는 기능이 지원됩니다. 예를 들어 특정 릴리스에 사용되었던 데이터베이스 프로젝트, 응용 프로그램 소스 코드, 단위 테스트 및 기타 파일에 대해 레이블을 지정할 수 있습니다. 해당 시점 이후 개발이 계속되는 경우에도 릴리스를 구성하는 특정 버전의 파일을 항상 검색할 수 있습니다. 이전에 레이블이 지정된 데이터베이스 프로젝트 버전을 배포하는 방법에 대한 자세한 내용은 방법: 버전 제어 데이터베이스의 이전 버전 배포를 참조하십시오.

데이터베이스 표현

데이터베이스 개발에서 이 프로세스를 수행할 경우 다음과 같이 최대 세 개의 데이터베이스 표현을 사용할 수 있습니다.

  • 데이터베이스 서버 표현 - 데이터베이스와 데이터를 포함합니다. 데이터베이스 개발자는 주로 개발 또는 테스트 데이터베이스를 사용하여 작업합니다. 대부분의 조직에는 프로덕션 데이터베이스에 액세스할 수 있는 별도의 데이터베이스 관리자 역할이 있습니다.

  • 데이터베이스 프로젝트 - 데이터베이스 스키마의 오프라인 표현입니다. 또한 데이터베이스 프로젝트는 테스트 데이터를 생성하는 데 사용되는 모든 데이터 생성 계획과 데이터베이스를 배포 및 관리하는 데 사용되는 스크립트를 포함합니다. 자세한 내용은 데이터베이스 프로젝트 개요를 참조하십시오.

  • 버전 제어 리포지토리 - 개발자 자신이나 팀의 다른 멤버가 데이터베이스 프로젝트에 적용하는 모든 변경 내용을 추적합니다.

데이터베이스 서버는 데이터를 데이터베이스 프로젝트와 교환하며 데이터베이스 프로젝트는 또한 데이터를 버전 제어 리포지토리와 교환합니다. 이러한 데이터베이스 표현에서 버전 제어, 스키마 가져오기 및 배포와 관련하여 데이터를 교환하는 방법을 개발자가 이해하게 되면 데이터베이스를 더 효율적으로 관리할 수 있습니다.

참고 항목

작업

연습: 격리된 데이터베이스 개발 환경 만들기

개념

데이터베이스 개체 작업 개요

Database Edition의 용어 개요

기타 리소스

데이터베이스 프로젝트 시작

데이터베이스 스키마 빌드 및 배포

데이터베이스 스크립트 작업

팀 환경에서 데이터베이스 프로젝트 작업

연습(버전 제어 데이터베이스 스키마 만들기 및 업데이트)