팀프로젝트를 하려다가 노아님의 설명을 듣고 팀프로젝트 작업을 취소하게 되었다.
취소한 이유는 다음과 같다.
- 당장 서류 지원을 하고 있는 상황에서 팀원중 한명이 채용과제를 하게 되거나 취업하면 팀프로젝트가 유지될 확률이 적다.
- 팀프로젝트에서 적용하려했던 기술들은 개인프로젝트에서도 적용가능하다.
- 당장의 팀프로젝트 보다 면접 대비가 더 중요하다.
서류합격률을 높이기 위해 팀프로젝트를 하려고 했는데, 지금 상황에서는 잘못된 선택이나 마찬가지였다.
그래서 이러한 이유로 팀프로젝트는 취소했고, 대신에 개인프로젝트에 CI를 적용해보려고 한다.
CI 툴은 jenkins로 선택했다.
Jenkins는 세계적으로 많은 개발자들이 사용중인 CI 툴이다. 젠킨스는 CI 툴답게 다수의 개발자들이 하나의 프로그램을 개발할 때 공유 영역인 Git등의 저장소에 저장된 프로젝트를 버전 충돌을 방지하며 지속적 통합이 가능하도록 해 준다.
CI 툴로는 Jenkins 외에도 Buildkite, Github Actions, GitLab CI/CD, Bitbucket Pipelines, Circleci 등의 많은 툴 들이 존재한다.
이중에서 Jenkins를 선택한 이유는 다음과 같다.
- Jenkins는 전 세계적으로 많은 유저들이 이용하고 있다. 많은 유저들을 보유한 만큼 많은 레퍼런스들이 존재한다. 이와 같이 레퍼런스가 많은 툴일수록 사용중 문제가 발생하였을 때 해당 문제를 해결하기 쉽다고 생각했다.
- Jenkins는 개발자의 편의를 위한 많은 플러그인들을 제공하고 있다. 덕분에 Git 연동이라던가 다른 EC2와의 통신을 위한 SSH등을 편리하게 할 수 있다.
- 웹 인터페이스를 제공하여 사용이 편리하다. Jenkins 설치 이후에는 CLI가 아닌 GUI화면에서 편하게 이용할 수 있다.
- Java 기반이라 JDK, Gradle, Maven의 설정을 편리하게 할 수 있어 Java 기반의 프로젝트를 진행하는 사용자들이 빌드 설정을 하기 간편하다.
Jenkins를 사용할때는 Docker를 사용했다.
일반적으로 젠킨스를 설치하려면
이런 과정들을 거쳐야 한다고 한다.
하지만 Jenkins를 바로 설치하는 것이 아닌 도커를 사용한다면 Jenkins 컨테이너만을 받아와 사용하면 된다. 즉, 위의 많은 과정들이 생략되고 단순히 Jenkins 컨테이너를 받아와 실행만 하면 되는 것이다. 따라서 이러한 도커의 이점을 이용하고자 도커를 사용하였다.