728x90
반응형
Jenkins 서버란?
젠킨 서버는 Open Source CI (Continuous Integration) Tool로써 여기서 CI 란 팀의 구성원들이 작업한 내용을 정기적으로 통합하는 것을 의미합니다. 말이 약간 어려운데 쉽게 이야기하면 하나의 프로젝트를 여러 명으로 구성된 한 팀이 작업할 때 프로젝트를 리드하는 매니저가 일을 여러가지로 나눠서 팀멤버들한테 분배하고 팀멤버들은 각각 할당된 부분만 작업을 하게 됩니다. 그리고 팀멤버들은 자신이 담당해서 하고 있는 부분의 소스코드를 정기적으로 SVN과 같은 Version Control System에 Submit 하는데 이 각각의 팀멤버들로부터 Submit된 소스코드들을 정기적으로 통합하는 것을 CI라고 하고 이것을 시행해주는 프로그램을 CI tool이라고 합니다.
왜 사용하나요?
Jenkins 서버를 사용하는 이유는 여러 가지인데 제 개인적인 경험으로 봤을 때 가장 큰 이유는 아래와 같습니다.
- 프로젝트의 빌드가 정상적으로 되고 있는지 체크할 때
- 자동으로 유닛 테스트와 통합 테스트 (integration test)들의 정기적인 실행. 만약 테스트 결과에 문제가 있을 때 이메일을 통해 리포트
- SonarQube 같은 코드의 질을 확인할 수 있는 모니터링 시스템과의 연동으로 코드의 질을 조절
위의 내용을 짧게 이야기하면 Jenkins 서버는 현재 진행 중인 프로젝트가 정상적으로 빌드가 되고 있는지를 정기적으로 체크해서 결과를 팀원들한테 알려주고 문제가 발생했을 때 조기에 알려줄 수 있게 해줌으로써 여러 팀 멤버들이 큰 문제없이 각자의 맡은 부분만을 작업할 수 있도록 도와줍니다. 또한 프로젝트 빌드시 자동으로 유닛 테스트와 통합 테스트를 실행해줘서 잘 못된 점이 있으면 알려주고 또한 현재 얼마만큼의 소스코드를 유닛 테스트가 커버하고 있는지 및 어떤 부분에 문제가 있을 수 있는지 등의 정보도 SonarQube와 같이 연동시 모니터링 할 수 있도록 도와줍니다.
728x90
반응형
'Web Programming' 카테고리의 다른 글
프레임워크와 라이브러리의 차이 (0) | 2018.08.29 |
---|---|
캐시와 쿠키의 차이 (0) | 2018.08.29 |
WebSocket이란? (0) | 2018.08.29 |
SonarQube란? (0) | 2018.08.29 |
Apache Kafka (아파치 카프카)란? (0) | 2018.08.29 |