본문 바로가기
Study/Tip

CI Server의 정의

by 얏옹이 2023. 7. 13.
반응형

1.C.I server란?

Countinuous Intergration이라고 하는데 여러명으로 구성된 팀이 작업한것을 자주,각 팀원이 하루에 한번이상, 여러번 통합하는것을 가라키는 소프트웨어 개발 Practice로 개발자, 버전 관리 저장소, 통합 빌드 머신등으로 구성되어있다.

 

개발자가 먼저 작성한 코드를 형상관리 툴에 Commit을 하면 CI server가 주기적으로 가져가서 소스를 빌드한다.

그러면 전반적으로 문제가 없는지 파악을 한후 문제가 있으면 문제에 대한 Feedback을 주고 문제가 없으면 개발 서버에 배포를 진행하게 된다.

 

2. 효과와 특징

효과

 - 흔히 발생하는 일반적인 위험을 줄여줌.

 - 에러를 초기에 발견 가능, 자주 통합할수록 에러가 발생하는 범위가 줄어듬, 에러 잡는것이 수월

 - 잘 동작하고 에러가 거의 없는 S/W를 유지할수 있음

 - 언제 어느떄라도 배포할수 있는 상태의 S/W를 생성해냄

 - 반복적인 수작업을 줄여줌

 - 프로젝트 가시성을 높여줌

 

특징

 - 소스코드 일관성 유지 : 소스 코드 관리 시스템이 필요하다.

 - 자동 빌드 : 빌드는 CI 툴에 의하여 자동으로 이루어져야 한다.

 - 자동 테스트 : 소스 검증과 함께 기능 / 비기능 테스팅을 매번 검증함으로 코드의 품질을 높일수 있다.

 - 일일 체크아웃과 빌드 : 빌드 주기가 길어질수록 개발자 소스의 오류 발생 확률이 증가. 그만큼 시간을 낭비하게 된다.

 

쉽게 얘기하면 CI Server를 이용하여 자동 빌드하고 배포하면 오류 발생 확률 감소, 오류 처리 능력 증가, 생산성 증가, 효율성 증가가 된다는 말이다.

 

반응형

 

3.Jenkins

Jenkins는 정부전자프레임워크에서 제공하는 오픈소스 CI Server이다. 소스 빌드 스크립트를 사용한 자동 빌드 및 빌드 결과를 개발자에게 피드백하는 메커니즘을 제공

 

특징

 - 웹 기반 UI를 통한 쉬운 설정 및 즉각적인 피드백

 - 플러그인 기반의 확장성 제공

 - 깔끔하고 잘 정의된 문서 및 API

 

주요기능

 - 소프트웨어 자동빌드

    빌드 주기에 따른 일일 빌드 또는 주간 빌드 기능 제공

 

- 지속적이고 자동화된 빌드 검증

  SCM 풀링(Pooling) 기능을 통한 최신 코드 기반의 빌드 수행

 

- 지속적이고 자동화된 빌드 테스트

  테스트 슈트 실행을 통한 코드 품질 검증

 

- 빌드 후속 절차 자동화

  컴파일된 코드의 패키징 및 테스트 리프팅 기능 제공

 

- JUnit과 연동하여 테스트 결과 정보를 목록으로 보여주며, 단위테스트 결과 및 테스트 소요시간등에 관한 리포트를 제공해준다

 

젠킨스 홈페이지 바로가기

 

Jenkins

Easy installation Jenkins is a self-contained Java-based program, ready to run out-of-the-box, with packages for Windows, Linux, macOS and other Unix-like operating systems.

www.jenkins.io

 

 

 

 

 

반응형