[ CI (Continuous Integration) ]
CI란 팀의 구성원들이 작업한 내용을 정기적으로 통합하는 것을 의미한다.
풀어서 이야기하면 소프트웨어가 거대해지고 복잡해지면서 팀 단위로 개발을 하게 되었고 분업과 협업이 필수가 되면서 하나의 프로젝트를 여러 명으로 구성된 한 팀이 작업을 하게 되고 분업과 협업 과정에서 일을 나눠 각각 할당된 부분만 작업을 하게 되었다.
그리고 팀멤버들은 자신이 담당해서 하고 있는 부분의 소스코드를 정기적으로 GIT, SVN과 같은 형상 관리 시스템(Soucr Code Management)에 Submit하는데
이 각각의 팀 멤버들로부터 Submit된 소스코드들을 정기적으로 통합하는 것을 CI라고 하고 이것을 시행해주는 프로그램을 CI tool이라고 한다.
CI 시스템을 구축하지 않을 경우 개발자들이 각자 개발한 소스코드를 형상관리 서버에 커밋하면 별도의 품질관리를 거치지 않고, 대부분 개발이 끝난 막바지에 통합을 하여 테스트를 진행하게 된다.
이럴 경우, 개발 중 별도의 품질 관리를 수행하지 않았기 때문에 잘못된 소스코드를 형상관리 시스템에 반영하였을 경우 발생되는 문제가 개발 후반에 모두 장애로 발견된다.
반면 CI시스템을 구축하게 되면 CI서버는 형상관리 서버에 Commit된 소스코드를 주기적으로 폴링하여 컴파일, 단위테스트, 코드 인스펙션 등의 과정을 수행하며 신규 또는 수정된 소스코드가 결함이 있는지의 여부를 지속적으로 검증한다. 검증 결과는 이메일, RSS등의 피드백 메커니즘을 통해 개발자들에게 전달되고, 이를 통해 조기에 결함을 발견하여 해결할 수 있는 것이다.
'무지성 메모' 카테고리의 다른 글
■ list의 요소 수정하기 (0) | 2022.02.27 |
---|---|
■ [백엔드 면접] 개발상식 (좋은 코드란 무엇인가, 객체 지향 프로그램이란 무엇인가..) (0) | 2022.02.25 |
■ 자바 정규식 몇개 (카카오 기출 - 신규아이디 추천) (0) | 2022.02.22 |
■ array의 일부분을 copy하는 메소드 (0) | 2022.02.21 |
■ N진수의 숫자꼴로 이루어진 string을 10진수의 int로 반환하는 법 (0) | 2022.02.20 |