둘러보기 생략.
 

CI (Continuous Integration)

CTIP(Continuous Test & Integration Platform, 이하 CTIP)은 어플리케이션 개발 라이프 사이클 전체에 걸쳐 사용되는 개발 도구와 빌드, 테스트 도구 등을 통합한 자동화된 도구이다. Anyframe은 이러한 CTIP을 기반으로 Continuous Integration 환경을 구성하고 있다.
Anyframe의 Continuous Integration 환경 구성 요소 및 빌드 수행 순서는 다음과 같다. (아래 그림에서 구성 요소 이미지 클릭 시 해당 화면으로 이동)

Continuous Integration 구성 요소Continuous Integration 구성 요소

빌드 서버[QuickBuild]

빌드 대상 프로젝트에 대해 정해진 스케쥴에 따라 “리소스 Get -> 컴파일 -> 테스트 -> 패키징 -> 배포”로 정의된 일련의 작업을 자동으로 수행한다.

연결 정보
주요 기능

빌드 서버는 형상 관리 도구에 저장된 소스 코드가 변경되었을 경우 정의된 빌드 스케쥴에 의해 자동으로 소스 코드를 체크 아웃하여 빌드 및 테스트를 수행하고 Reuse Repository에 배포하는 역할을 수행한다. 개발 작업 시 나의 모듈이 변경되면 다른 사람이 구현하고 있는 모듈이 영향을 받을 수 있다. 이러한 경우 개발 완료 시점에 모듈 통합을 시도하게 되면 모듈간 인터페이스 불일치가 발생하면서 통합으로 인해 수많은 오류가 발생하게 된다. 빌드 서버의 지속적인 통합을 이용하면 특정 모듈의 변경으로 인해 영향받는 타 모듈들에서 결함이 발생되지 않는지 조기에 발견하고 조치할 수 있게 된다.

  • 여러 사람이 동시에 작업한 결과를 대상으로 정의된 스케쥴에 따라 자동으로 통합한다.
  • 빌드 결과는 빌드 서버 화면을 통해 확인 가능하며 또한 메일 서버를 통해 담당자에게 통보됨으로써 문제점을 즉시 인식할 수 있게 한다.
  • 빌드 대상 모듈 간의 영향 관계를 식별하는데 용이하다.
  • JUnit 레포트, 테스트 커버리지 측정 도구 등과의 연계를 통해 테스트케이스 수행 결과를 시각적으로 파악할 수 있다.
  • 개인 작업 환경에서 배포 라이브러리를 구성할 경우 해당 라이브러리가 특정 작업 환경에 종속적이게 되어 배포시 문제가 발생할 수 있다. 빌드 서버는 빌드 수행 결과 문제가 없을 경우 배포 라이브러리를 구성함으로 일관된 배포 라이브러리 구성을 용이하게 한다.

Reuse Repository

프로젝트 수행 중에 필요한 모든 컴포넌트를 Reuse Repository에 관리하여 공유함으로써, 다수 개발자간에 발생되는 참조 라이브러리 버전의 불일치로 인해 발생하는 오류를 감소시킨다. Anyframe 프레임워크에 사용된 모든 3rd Party 라이브러리들도 함께 관리되고 있다.
현재 Maven Repository에 라이브러리들이 저장되고 있고 사용자 편의성을 위해 Artifactory 툴을 사용하여 트리 형태로 Repository내 라이브러리들을 조회할 수 있게 제공하고 있다.

연결 정보
사용 방법
  • 위 연결정보 링크를 통해 Artifactory 툴페이지로 이동한다.
  • 상단 메뉴 중 Browse 메뉴를 선택하고, 좌측 메뉴 중 Tree Browser를 선택한다.
  • 오른쪽 Repository Browser 화면 내에서 anyframe-repository-cache 트리 하위에서 원하는 카테고리를 선택한다.
  • 내려받고 싶은 라이브러리에 대해서 각 라이브러리 명과 버전 명을 트리로 확인한다.
  • 해당 라이브러리를 선택하고 마우스 오른쪽 버튼을 클릭하여 나오는 Download 버튼이나 우측 화면에 나오는 Download 버튼을 클릭하여 다운로드한다.
주요 기능

개발자들이 함께 사용하는 라이브러리를 각 개발자 로컬 환경마다 배포된 경우, 버전 관리가 어려워서 관리가 힘들다. Maven Repository는 라이브러리 변경 사항 발생 시 개발 서버에 있는 Maven Repository에만 배포하면 각 개발자 로컬 환경에서는 빌드 시 동일한 버전의 라이브러리를 사용할 수 있게 된다.

  • 라이브러리 참고 관계 관리가 가능하다.
  • 모든 프로젝트의 빌드 프로세스를 일관성있게 표준화 시킬 수 있다.
[참고] Maven이란?

Anyframe에서는 빌드 도구로 Maven을 사용하고 있다. 이때 반드시 Maven 2.0.9 이상의 버전을 사용하도록 한다.
Maven은 Software Project Management 통합 툴로써, Project Object Model(POM) 개념 기반으로 표준화된 프로젝트 개발 라이프 사이클(빌드, 테스트, 배포 등)을 제공함으로써 어플리케이션을 개발하기 위해 매 프로젝트마다 반복적으로 진행해 왔던 작업들을 지원한다.

그동안 많은 프로젝트에서 빌드 도구인 Ant를 이용하여 빌드 및 배포 작업을 수행하도록 해왔다. 그러나 일관된 표준 없이 Ant 빌드 설정 파일(build.xml)을 작성하였기 때문에 프로젝트를 진행할 때마다 대부분의 작업을 반복해야 했다. Maven 빌드 도구를 사용하면 이러한 것을 방지할 수 있다.

기존에 Ant 사용에 익숙해진 개발자들이 Maven을 처음 사용하게 되면 Maven의 제약 사항(폴더 명 및 위치 등)에 거부감을 느낄 수 있다. Ant만큼 자유도가 높지는 않지만(Ant의 빌드 설정 파일와 병행 사용 가능) Ant를 사용하면서 반복해야 했던 수많은 작업들을 안해도 된다. 이를 통해 모든 프로젝트를 일관된 구조로 빌드 및 배포하는 것이 가능하기 때문에 프로젝트의 복잡도가 증가하고 있는 요즘 시스템 개발 시 효과가 높다.

이전 버전

다음은 이전 버전의 빌드 서버(QuickBuild) 정보이다.