Jenkins란

젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integriation)툴 이라고 표현한다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합 이 가능하도록 해준다. 

젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이었다. 특히 개발자들이 당일 작성한 소스들의 커밋이 모든 끝난 심야 시간대에 이러한 빌드가 타이머에 집중적으로 진행되는데, 이를 nightly-bulid라 한다 . 하지만, 젠킨스는 정기적인 빌드에서 한발 나아가 서브버전, git과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다. 

 

Jenkins의 이점

개발중인 프로젝트는 빈번하게 커밋이 일어나지만 그 횟수만큼 빌드를 실행하는 것이 아니라 작업이 큐잉되어 자신이 실행될 차례를 기다리게 된다. 코드의 변경과 함께 이뤄지는 이 같은 자동화된 빌드와 테스트 작업은 다음과 같은 이점을 가져다 준다.

  • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
  • 정적 코드 분석에 의한 코딩 규육 준수여부 체크
  • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
  • 결합 테스트 환경에 대한 배포작업

각종 배치 작업의 간략화

DB구축, 앱 서버로의 Deploy, 라이브러리 릴리즈와 같이 이전에 CLI로 실행되던 작업들이 젠킨스 덕분에 웹 인터페이스로 손쉽게 가능해졌다.

 

Build 자동화의 확립

빌드 툴의 경우 Java는 Maven과 Gradle이 자리잡고 있으며, 이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스를 사용하지 않을 이유가 없다. 젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있다.

 

자동화 테스트

자동화 테스트는 젠킨스를 사용해야하는 가장 큰 이유 중 하나이며, 사실상 자동화 테스트가 포함되지 않은 빌드는 CI자체가 불가능하다고 봐도 무방하다. 젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 테스트가 있다 하여도 든든한 안전망이 되어준다. 제대로 테스트를 거치지 않은 코드를 커밋하게 되면 화난 젠킨스를 만난다.

 

코드 표준 준수여부 검사

자동화 테스트와 마찬가지로 개인이 미처 실시하지 못한 코드 표준 준수 여부의 검사나 정적 분석을 통한 코드 품질 검사를  빌드 내부에서 수행함으로써 기술적 부채의 감소에도 크게 기여한다.

 

빌드 파이프라인 구성

2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용된 프로젝트에는 그에 따른 빌드 파이프라인이 구성이 필요하다. 

'Git_형상관리' 카테고리의 다른 글

git_config 란  (0) 2021.01.13

Git Config

Git을 설치하고 나면 git의 사용 환경을 적절하게 설정해 주어야한다.

한 번만 설정하면 된다. 설정한 내용은 git을 업그레이드해도 유지된다.

언제든지 다시 바꿀 수 있는 명령어가 있다.

Git config 라는 도구로 설정 내용을 확인하고 변경할 수 있다.

Git은 이 설정에 따라서 동작한다. 이때 사용하는 설정 파일은 세 가지나 된다.

  • \etc\gitconfig 파일 : 시스템의 모든 사용자와 모든 저장소에 적용되는 설정이다. Git config –-system 옵션으로 이 파일을 읽고 쓸 수 있다.
  • -/.gitconfig 파일 : 특정 사용자에게만 적용되는 설정이다. Git config –global 옵션으로 이 파일을 읽고 쓸 수 있다.
  • .git/config: 이 파일은 git 디렉토리에 있고 특정 저장소 (혹은 현재 작업 중인 프로젝트)에만 적용된다. 각 설정은 역순으로 우선시 된다. 그래서 .git/config/etc/gitconfig보다 우선한다
Git Config 등록하기
//각 config가 무엇을 의미하는지는 각자 공부해보도록 하자.
$git config --global core.pager 'less -x5,9'
$git config --global alias.st status
$git config --global alias.ci commit
$git config --global alias.co checkout
$git config --global alias.br branch
$git config --global color.branch auto
$git config --global color.diff auto
$git config --global color.interactive auto
$git config --global color.status auto
$git config --global user.name "본인이름"
$git config --global user.email "본인 이메일주소"
//$cat ~/.gitconfig 로 확인가능

'Git_형상관리' 카테고리의 다른 글

jenkins 란  (0) 2021.01.14

+ Recent posts