Sunday, July 27, 2014

Jenkins 서버란?

Jenkins 서버란?
젠킨 서버는 Open Source CI (Continuous Integration) Tool로써 여기서 CI 란 팀의 구성원들이 작업한 내용을 정기적으로 통합하는 것을 의미합니다. 말이 약간 어려운데 쉽게 이야기하면 하나의 프로젝트를 여러 명으로 구성된 한 팀이 작업할 때 프로젝트를 리드하는 매니저가 일을 여러가지로 나눠서 팀멤버들한테 분배하고 팀멤버들은 각각 할당된 부분만 작업을 하게 됩니다. 그리고 팀멤버들은 자신이 담당해서 하고 있는 부분의 소스코드를 정기적으로 SVN과 같은 Version Control System에 Submit 하는데 이 각각의 팀멤버들로부터 Submit된 소스코드들을 정기적으로 통합하는 것을 CI라고 하고 이것을 시행해주는 프로그램을 CI tool이라고 합니다.

왜 사용하나요?
Jenkins 서버를 사용하는 이유는 여러 가지인데 제 개인적인 경험으로 봤을 때 가장 큰 이유는 아래와 같습니다.
  1. 프로젝트의 빌드가 정상적으로 되고 있는지 체크할 때
  2. 자동으로 유닛 테스트와 통합 테스트 (integration test)들의 정기적인 실행. 만약 테스트 결과에 문제가 있을 때 이메일을 통해 리포트
  3. SonarQube 같은 코드의 질을 확인할 수 있는 모니터링 시스템과의 연동으로 코드의 질을 조절 

위의 내용을 짧게 이야기하면 Jenkins 서버는 현재 진행 중인 프로젝트가 정상적으로 빌드가 되고 있는지를 정기적으로 체크해서 결과를 팀원들한테 알려주고 문제가 발생했을 때 조기에 알려줄 수 있게 해줌으로써 여러 팀 멤버들이 큰 문제없이 각자의 맡은 부분만을 작업할 수 있도록 도와줍니다. 또한 프로젝트 빌드시 자동으로 유닛 테스트와 통합 테스트를 실행해줘서 잘 못된 점이 있으면 알려주고 또한 현재 얼마만큼의 소스코드를 유닛 테스트가 커버하고 있는지 및 어떤 부분에 문제가 있을 수 있는지 등의 정보도 SonarQube와 같이 연동시 모니터링 할 수 있도록 도와줍니다.


2 comments:

  1. i'm here to get more about DevOps Thanks for Sharing
    Here you can check best DevOps Online Training Institute
    DevOps Online Training

    ReplyDelete
  2. I did a search about the field and identified that very likely the majority will agree with your web page.Thanks for your post. This is excellent information. The list of your blogs is very helpful for those who want to learn about software engineering.
    DevOps Training in Chennai

    DevOps Online Training in Chennai

    DevOps Training in Bangalore

    DevOps Training in Hyderabad

    DevOps Training in Coimbatore

    DevOps Training

    DevOps Online Training

    ReplyDelete