일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- jaas
- 기술자 등급
- SSO
- 한국 소프트웨어산업협회
- 보안
- 스마트폰
- single sign on
- oriented
- 리턴 오리엔티드 프로그래밍
- Java
- 신원 및 접근 관리
- 소프트웨어기술자
- 인정 범위
- RBAC
- 부호 절대값
- 동향
- Cloud Computing
- big data
- return oriented programming
- scavenging
- starforce
- josso
- gssapi
- security
- 기술자 경력관리
- 최소자승법
- opensso
- 1의 보수
- OSGi
- 홍옥
- Today
- Total
Numb
CI 본문
CI/CD
1. CI(지속적 통합, Continuous Integration)
1.1 CI의 정의
1.1.1 출현 배경
- 소프트웨어 개발 방법론인 폭포수 모델의 단점을 애자일 방법론으로 해결 가능
- 애자일 방법론에 적합한 통합 방식이 필요성 대두
1.1.2 의미
- 개발자들이 빠른 주기로 작업한 내용을 통합 브랜치에 통합하고 빌드하는 개발 방식을 의미한다.
1.1.3 절차
- 기능 -> 개발 및 커밋 -> 빌드 및 단위 테스트 -> 통합 -> 빌드 -> 통합 테스트 -> 패키징
1.2 CI의 구성 요소
1.2.1 버전 관리 시스템
- 비분산형 : SVN
- 분산형 : GIT, 머큐리얼(Mercurial)
1.2.2 브랜칭 전략
- GitFlow 브랜칭 모델
1.2.3 CI 도구
- CI 시스템의 중심에 위치해 버전 관리 시스템, 빌드 도구, 바이너리 관리 도구테스트 및 프로덕션 환경, 소스코드 분석 도구 및 자동화 테스트 도구 등을 연결한다.
- 빌드 포지(Build Forge), 뱀부(Bamboo), 팀시티(TeamCity), 젠킨스
- 파이프라인(Pipeline)을 생성하는 방법을 제공
1.2.4 자동으로 시작되는 빌드
- 앤트(Ant), 메이븐(Maven)
- 요구 조건 : 빠른 속도, 코드나 통합 이슈를 최대한 빨리 잡아내는 것
1.2.5 코드 커버리지
- 테스트 케이스가 커버하는 코드의 양을 백분율로 나타낸 값
- 소나큐브
1.2.6 코드 정적 분석
- 화이트 박스(white-box) 테스트
- 코드의 구조적인 품질을 측정하는 소프트웨어로 코드가 얼마나 견고하고 지속 가능한지를 알려준다.
1.2.7 자동화된 테스트
1.2.8 바이너리 관리 도구
- 바이너리 파일의 버전 관리 시스템
1.2.9 패키징 자동화
1.3 CI 사용의 장점
1.3.1 복잡하고 어려운 통합으로부터 해방
1.3.2 메트릭
- 작업 기간 동안의 추세를 기록하고 보여준다.
1.3.3 이슈의 조기 발견
1.3.4 빠른 개발
'Cloud Native > 배경지식' 카테고리의 다른 글
클라우드 네이티브 데이터 다루기 (0) | 2020.09.17 |
---|---|
클라우드 네이티브 애플리케이션 설계 (0) | 2020.09.17 |
클라우드 네이티브 소개 (0) | 2020.09.15 |