1. Jenkins 란? (Freestyle Project vs Pipeline Project)
Jenkins란 Jenkins란 소프트웨어 개발 시 지속적인 통합(Continuous integration)을 제공해 주는 도구. 더불어 지속적인 배포 환경까지 구축할 수 있는 도구. Jenkins와 같은 CI 도구의 등장 전에는 일정 시간마다 스케쥴러 등을 활용하여 빌드를 실행하는 방식이 일반적. 개발자들이 당일 수정한 코드가 반영되는 되는 심야 시간대(유저의 사용이 적은 시간)에 이러한 빌드 타이머(스케쥴러)가 집중적으로 실행되었는데 이것을 Nightly-Build라고 함. Jenkins는 코드의 통합 부터 빌드, 테스트(SonarQube 등), 배포 프로세스를 자동화하여 개발자의 시간 절약과 개발 생산성을 높임. Git과 같은 형상관리 시스템과 연동하여 커밋을 감지하면(WebHook 등을 활용) 빌..