개인 공부

CI ( Continuous Integration )

Machine_웅 2022. 3. 26. 16:21
728x90
반응형

CI 란?

시스템을 지속적이고 효율적으로 제공하기 위한 빌드, 테스트, 인스펙션 등을 반복적으로 실행해 효율성을 높이거나

오류를 발견하는 속도를 높이려는 방안.

 

CI 로 해야 할 일과 시점

1.  빌드 - CI 에서 실행 단위를 빌드라고 합니다.

2. 테스트 

3. 인스펙션 - 품질 향상을 목적으로 이뤄지는 코드 분석을 말함.

4. 디플로이 - 개발한 소프트웨어를 배포해 사용할 수 있게 하는 것. 

5. 피드백

6. 실행 시점.

    - 커밋 빌드 :  VCS ( 버전관리 시스템 ) 에 체크인 한 직후 빌드   

    - 2차 빌드 :  1일 1회 등 정기적으로  빌드 

    - 릴리스 빌드 : 릴리스 직전에 실행되는 빌드 

 

 CI 의 장점

1. 엔지니어가 품질에 자신하면서 작업을 진행할 수 있음.

2. 수작업으로 할 일이 비교적 적다 ( 테스트 실행, 디플로이 작업 등 )

3. 피드백이 빠르고 빈번하다 ( 빌드와 디플로이 방법을 몰라도 바로 동작을 확인할 수 있다. )

4. 팀에서 다루는 소스코드 전체에 관한 상황을 시각화 ( 커밋 상황이나 테스트 커버리지, 코드 복잡도 등 )

 

* 테스트 커버리지 ( Test Coverage )란?

테스트 커버리지란 시스템 또는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타낸 것이다. 즉, 수행한 테스트가 테스트의 대상을 얼마나 커버했는지를 나타낸다.

 

CI 툴

1. Jenkins - 프로젝트에 필요한 설정은 무엇이든 할 수 있다. ( 서버운영이나 환경정비 시간등을 고려 해야한다 )

2. Circle  - SaaS 서비스 사양에 제한된 설정만 할 수 있다. ( 서버운영이나, 환경 정비등이 필요 없다. )

 

*SaaS 란?

서비스로서의 소프트웨어(Software-as-a-Service, SaaS)는

클라우드 애플리케이션과 기본 IT 인프라 및 플랫폼을 사용자에게 제공하는 클라우드 컴퓨팅 형태입니다.

 

 

준비 

- 안드로이드 SDK 를 Jenkins 서버에 넣고 필요한 패키지를 설치 

-  jenkins 에서  깃허브로 부터 프로젝트를 클론하기 위해서,  플러그인이 필요  ( Git Plugin, GitHub Plugin )

 

728x90
반응형