회고 Tip
1. 지금 현재, 기분과 느낌을 표현(구체적)
2. 오늘 학습한 내용의 단어를 모두 나열
3. 나열한 단어를 하나씩 설명
4. 설명하기 어려운 단어가 있다면 그 이유를 생각
5. 스스로 설명하기 위해 질문한다면 어떻게 질문할것인가 생각
웹개발_Deploy(CI/CD)
개발자로서 꼭 사용해야할 기능인 CI/CD를 공부했는데 실습도중 에러가 나서 발견하기까지 쉽지 않았지만 막상 해보고나니 어렵지 않았고 이후 개발현장에서 사용하게 될때도 이해하고 사용할 수 있을거같다.
기억나는 단어들 나열해보기
1. CI란?
CI(지속적 통합)는 개발자를 위한 자동화 프로세스라고 볼 수 있다. Code, Build, Test 단계를 거쳐 개발자는 원격 코드 저장소에 push하고 테스트 및 빌드를 하며 성공 여부를 확인하고 결과를 바탕으로 개선 방안을 찾는다.
이러한 과정을 CI를 이용한다면 보다 더 일찍 버그를 발견하고 테스트가 완료된 코드를 빠르게 전달하여 지속적인 배포가 가능하다.
모든 개발팀이 변화된 코드를 확인 할 수 있기 때문에 문제점을 파악하기 쉽고 잦은 PR과 Merge로 코드를 자주 통합한다.
2. CD란?
지속적인 서비스 제공, 지속적인 배포를 의미하며 상호 교환적으로 사용된다.
Release, Deploy, Operate 단계에서 테스트 자동화와 코드 배포 자동화가 된다.
이 프로세스를 완료하면 프로덕션 준비가 완료된 빌드를 코드 리포지토리에 자동으로 배포할 수 있기에 운영팀이 보다 빠르고 쉽게 애플리케이션을 프로덕션으로 배포할 수 있게 된다.
3. CI/CD 파이프라인
최근 클라우드 기술 발전으로 CI와 CD가 맞물려 진행되다보니 CI/CD를 하나로 묶어서 다루는 경우가 증가하고 있다.
그림을 보면 알 수 있듯이 개발자가 배포를 하기위해서는 일일이 빌드하고 배포하는 과정을 수없이 수행해야한다. 이를 보완하기 위해 배포 과정을 자동화시키는 방법을 구축하게되는데 이것을 CI/CD 파이프라인이라고 한다.
자동화를 시도하는 부분은 코드가 빌드되면서 최종적으로 배포가 되는 단계까지이다.
그림과 같이 파이프라인은 전체 배포 과정을 여러 단계로 분리하며 각 단계는 파이프라인 안에서 순차적으로 실행되어 주어진 작업들을 수행하게 된다.
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 을 통하여 배포된 브라우저를 확인해볼 수 있었다.