23.06.05 웹개발_Deploy(CI/CD)

Yeondong Choe·2023년 6월 7일
0

회고 Tip
1. 지금 현재, 기분과 느낌을 표현(구체적)
2. 오늘 학습한 내용의 단어를 모두 나열
3. 나열한 단어를 하나씩 설명
4. 설명하기 어려운 단어가 있다면 그 이유를 생각
5. 스스로 설명하기 위해 질문한다면 어떻게 질문할것인가 생각

웹개발_Deploy(CI/CD)

개발자로서 꼭 사용해야할 기능인 CI/CD를 공부했는데 실습도중 에러가 나서 발견하기까지 쉽지 않았지만 막상 해보고나니 어렵지 않았고 이후 개발현장에서 사용하게 될때도 이해하고 사용할 수 있을거같다.

기억나는 단어들 나열해보기

  1. CI
  2. CD
  3. CI/CD 파이프라인
  4. Github Action 실습(에러분석)

1. CI란?

CI(지속적 통합)는 개발자를 위한 자동화 프로세스라고 볼 수 있다. Code, Build, Test 단계를 거쳐 개발자는 원격 코드 저장소에 push하고 테스트 및 빌드를 하며 성공 여부를 확인하고 결과를 바탕으로 개선 방안을 찾는다.
이러한 과정을 CI를 이용한다면 보다 더 일찍 버그를 발견하고 테스트가 완료된 코드를 빠르게 전달하여 지속적인 배포가 가능하다.
모든 개발팀이 변화된 코드를 확인 할 수 있기 때문에 문제점을 파악하기 쉽고 잦은 PR과 Merge로 코드를 자주 통합한다.

2. CD란?

지속적인 서비스 제공, 지속적인 배포를 의미하며 상호 교환적으로 사용된다.
Release, Deploy, Operate 단계에서 테스트 자동화와 코드 배포 자동화가 된다.
이 프로세스를 완료하면 프로덕션 준비가 완료된 빌드를 코드 리포지토리에 자동으로 배포할 수 있기에 운영팀이 보다 빠르고 쉽게 애플리케이션을 프로덕션으로 배포할 수 있게 된다.

3. CI/CD 파이프라인

최근 클라우드 기술 발전으로 CI와 CD가 맞물려 진행되다보니 CI/CD를 하나로 묶어서 다루는 경우가 증가하고 있다.

그림을 보면 알 수 있듯이 개발자가 배포를 하기위해서는 일일이 빌드하고 배포하는 과정을 수없이 수행해야한다. 이를 보완하기 위해 배포 과정을 자동화시키는 방법을 구축하게되는데 이것을 CI/CD 파이프라인이라고 한다.
자동화를 시도하는 부분은 코드가 빌드되면서 최종적으로 배포가 되는 단계까지이다.

그림과 같이 파이프라인은 전체 배포 과정을 여러 단계로 분리하며 각 단계는 파이프라인 안에서 순차적으로 실행되어 주어진 작업들을 수행하게 된다.

  1. Source단계에서는 원격 저장소에 관리되고 있는 소스코드에 변경 사항이 일어날 경우 이를 감지하여 다음 단계로 전달하는 작업
  2. Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공하며 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업
  3. Deploy 단계에서는 Build단계에서 전달받은 결과물을 실제 서비스에 반영하는 작업

4. Github Action실습

Github Action은 Github에서 제공하는 CI/CD 플랫폼이다.yaml(yml) 파일에 의해 구성되며 워크플로우를 만들 수 있다.

실습을 진행할때 에러가 계속나서 오랜시간 애먹었다.

yml파일 작성에 큰문제가 없었는데 AWS_SECRET_ACESS_KEY에 관련된 에러가 났으며

빨간색 에러가 뜨면서 배포에 에러가 생겼었다.
알고보니 저장소에 암호화 비밀을 생성할때 ACESS KEY와 ACESS SECRET KEY 2개를 따로 만들어줘야했다. 이후에는 Clint와 Bare Minimum 둘다 완료 버튼이 나왔고

AWS S3 을 통하여 배포된 브라우저를 확인해볼 수 있었다.

벌써 Section4의 마지막 주가 시작되었다. 마무리 잘해서 프로젝트로 잘 넘어가도록 해야겠다 화이팅!

profile
개발자 동동

0개의 댓글