컴퓨터 프로그래밍/CS

[CS] CI/CD 파이프라인 구축을 위한 이해

한33 2024. 10. 28. 16:26

1. CI/CD 는 세 단계를 가진다.

개발, 빌드, 배포

각 단계는 하나의 서버 개념이다.


2. Jar 파일 빌드 시점에 대한 고민

 

.jar 파일을 빌드해야하기 때문에 이 과정을 개발 단계에서 포함해서 가져가냐, 빌드 단계에서 가져가냐의 차이는 있다.

 

빌드 단계에서 .jar 파일을 빌드하게 해놓는다면 Github Actions, Jenkins 등 툴에 따라서 환경을 맞춰줘야한다.

이렇게 하면 이미지가 가벼워진다.

 

개발단계에서 이미지를 만들고 도커파일 자체에서 jdk, gradle 를 정의하고 가져온다면 build 를 어떤 툴로 하든 가능해진다. but, 이미지가 무거워진다는 단점이 있다.

 

 

사실상 이렇게 만든 .jar 파일을 배포하면 끝이다.


3. 서버 확장 시 생길 수 있는 문제

 

하지만 나중에 EC2 서버를 늘려야하는 필요가 생긴다면 문제가 생긴다.

.jar 파일을 어디서 가져왔는지 남지 않는다는 것 ( 주소를 알 수가 없다 )

 

 

그렇기 때문에 S3 에 .jar 파일을 올리고 이를 EC2 에서 가져오게 한다면 해결이 가능하다.


4. Docker 이미지를 활용하는 이유

 

그런데 이대로 하면 EC2 에 자꾸 무언가 java jdk 등을 깔아줘야한다는 불편함이 생겼다.

 

그래서 빌드된 .jar 파일을 Docker 등 이미지로 만들어서 이를 빌드하고 이를 S3 에 올려도 된다는 것

 

그 때 이미지에 특화된 전용 저장소를 쓴다.


5. 결론

 

우리는 이렇게 각 단계를 이해하면 위와 같은 과정도 CI/CD 가 가능하다는 것을 알 수 있다.

 

CI/CD 파이프 라인은 내가 구성하기 나름이고 이해를 해야한다.

'컴퓨터 프로그래밍 > CS' 카테고리의 다른 글

[CS] 1. 객체지향 프로그래밍 ( OOP )  (0) 2024.12.12
[CS] 무중단 배포  (3) 2024.11.07
[CS] Spring Bean 이 없는 세상  (3) 2024.10.27
[CS] CI 와 CD 란?  (0) 2024.10.27
[CS] ACCESS 토큰과 REFRESH 토큰  (0) 2024.10.23