CI/CD 완성

by Dongeun Paeng
Apr 09, 2023 · 만 33세

GPT-4와 함께 이 블로그 CI/CD를 빠르게 완성했다. 솔직히 맨땅에 헤딩은 어려웠을 것 같고, 스프링 CI/CD 연습(?)을 이전에 살짝 해봤기 때문에 쉬웠던 것일 수 있다. 한편 버전 관련 이슈 같이 최신 지식이 필요한 상황에서는 도움을 받지 못했다.


보통 로컬에서 프론트엔드를 작업하고 나면, build를 한 후 그 폴더 자체를 scp로 서버에 보낸다. 그러기 위해 EC2 인스턴스에 잠시 접속해서 기존의 build 폴더를 지우는 작업이 필요했다.


GPT-4에게 리액트 프로젝트를 서버로 보내는 CI/CD를 구축해달라고 하자, GitHub Actions에서 build하고, 압축하고, S3로 보내고, AWS CodeDeploy를 실행하는 데에 필요한 deploy.yml 파일을 작성해주었다.


build가 계속 되지 않아 GPT-4에게 에러 로그를 보여주었는데 해결해내지 못했다. 구글에 검색해보니 react-scripts 버전을 업그레이드해야 하는 문제였고, 최근에 생긴 일 같았다. 그 이후에는 일사천리였다.


물론 이 과정에서 단계별 에러가 자주 발생했고, 그 때마다 로그를 뒤져보는 수고는 내가 할 수밖에 없었다. 예를 들어 CodeDeploy의 로그를 직접 살펴보고, 그 안에서 appspec.yml 파일을 찾을 수 없다는 등의 로그를 찾아내야 했다. appspec.yml 파일을 build 폴더로 복사하는 과정을 빠뜨려서 생긴 일이었다. 아무튼 appspec의 BeforeInstall 부분까지 GPT-4가 작성해주어서, 몇 번의 복사-붙여넣기로 쉽게 끝낼 수 있었다.


한편 처음에 작성했던 deploy.yml에는 S3로 보내는 압축 파일이 build.zip이었는데, 내가 '버전 관리를 할 수 없을까?'와 같은 질문을 던지자 ${{ github.sha }}를 이용한 버전 관리까지 제안해주었다. 사실 나는 이미 ${{ github.sha }}를 이용할 생각을 갖고 있었는데, GPT-4가 그런 제안을 할 수 있는지 알아보려고 한 질문이었다.


이 과정에서 '더 많이 요구하면, 더 나은 답변을 주는구나'라는 것을 느꼈다. 처음의 답변에 만족하지 않고 extra mile을 요구해야겠다.


GPT-4 덕분에 블로그 개선 속도가 빨라진다고 느낀다. 참 재밌는 세상이다.

NEXT POST

But

Apr 15, 2023 · 만 33세

일을 단순하게 처리해야 한다고 말하는 것은 쉽습니다. 더 보기

PREVIOUS POST

검색 기능 추가

Apr 08, 2023 · 만 33세

블로그에 검색 기능을 추가했다. 내가 하진 않았다. GPT-4가 했다. 더 보기