개인 사이드 프로젝트 0.1ver 회고
혼자 사이드 프로젝트를 진행할 때 마다 이런저런 이유로 항상 끝까지 진행하기가 힘들었다. 때문에 이번 프로젝트에서는 일단 완성하자는 마음가짐으로 빠르게 프로토타입을 만들게 되었는데, 그렇게 해서 만들어진 프로토타입에 대한 회고를 공유하려 한다. 사이드 프로젝트 깃허브 링크 🔗
예상 외의 개발 기간
"일단 만들자", "프로토타입" 이라는 말과 다르게, 시작과 끝의 기간만을 놓고 보면 약 8개월이라는 시간이 걸렸다.
환경적으로 사이드 프로젝트에 소홀해질 때가 있었는데, 먼저 회사 일이 바빠질 때였 다. 회사 일에 집중해야 할 때에는 평일은 물론이고, 주말에도 회사 일을 할 때에도 있었다. 그렇다고 정말 시간이 없어서냐고 묻는다면 당연히 그렇지 않다. 하지만 회사 일에 지치다보면 퇴근 후에 노트북을 쳐다보기도 싫어지게 되고, 어려운 문제를 맞닥드려 개발이 막혔다거나, 단순 노동과 같이 개발하기 싫은 부분을 개발할 때라면 더욱 하기 싫어졌다.
개발적인 문제도 있었다. 무작정 도커를 구축하려다 실패하고, 결국 도커를 공부하고 구축하면서 많은 시간이 소요되기도 했고, ec2의 메모리 문제로 단순 빌드시간에 대한 시간소모도 상당했다. 물론 소요된 시간동안 많은 것을 배우긴 했지만, 그럼에도 조금 더 빨리 끝내고 점진적으로 버전업 시키는 방식으로 했었다면 이라는 아쉬움이 남는다.
잘 모르는 기술을 GPT로 사용할 수 있을까?
적어도 나는 그렇지 못했다. 어떻게 빌드만 하면 되겠지라는 마음으로 동작원리를 이해하지 않고 gpt에게 해줘, 해줘 만을 반복해서 시도하며 왜 안되지?를 반복했다. 하지만 계속해서 오류가 발생했고, 에러메시지를 보아도 어떻게 고쳐야 할지 몰랐다. 그렇게 한참 고생을 하고 나서야 도커를 공부하고 만들어야겠다는 생각이 들었다. docker가 어떻게 사용되는지, yaml 파일은 어떻게 만들어야 하는지, Dockerfile은 어떻게 만들어야 하는지, 이미지는 무엇이고 볼륨은 무엇인지 배우고 나서야 오류를 이해하고 해결할 수 있었다. 빨리 가려다 오히려 먼길을 돌아간 경험이었다. AI가 코드를 다 짜주는 세상이라고는 하지만, 기술에 대한 이해가 있어야만 그 기술을 사용할 수 있겠구나 싶었다.
어차피 해야 할 일이라면 일찍 끝내자
만약 개발 초기로 돌아갈 수 있다면 하고 싶은 일들이 있다. tailwindCSS 삭제, migration 추가, docker image로 배포.
매몰비용의 오류 tailwindCSS
해외 개발자들이 tailwindCSS를 많이 사용하는 것을 보고, 한번 쯤 시도해보고 싶었다. 문법에 어느정도 익숙해지니 빠른 사용이 가능했지만, 세부적인 디자인이나 상속을 할당할 때에는 코드가 지저분해지고 오히려 더 오래걸리는 느낌이 들었다. 결국 css와 styled-components와 혼용해서 사용하게 되었는데, 이럴거면 tailwindCSS를 지우는게 낫지 않나 라는 생각이 들었다. 하지만 지금까지 만든 코드들이 아까웠고, 조금만 더하면 완성인데.. 라는 마음으로 지워야할 코드들을 계속해서 만들어갔다. 지금 돌이켜보면 바꿔야겠다는 생각이 들었을 때 바로 바꿨으면 개발시간이 더 단축되었을 듯 하다.
migration 및 백업 코드 구현
잘못된 코드를 restart: always로 작성해서 aws ec2 서버가 멈추는 경우가 잦았다. 그때마다 ec2를 종료하고 재생성하면서 목업데이터를 일일이 다시 작성해야만 했다. database를 백업하고 목업데이터를 복구할 수 있는 코드를 작성해놨더라면 개발시간이 훨씬 단축되었을 듯 하다.
docker image 배포
프로토타입에서는 ec2 환경에서 docker image를 빌드하고 띄우는 방식을 사용했다. 문제는 서버를 빌드할 때 간헐적으로 cpu 100%를 찍고 ec2가 멈춰버린다는 점이었다. 안그래도 prettier로 빌드하는 데에도 한참 걸리는데, 처음에는 무슨 문제인지 몰라 빌드가 될때까지 빌드하면서 시간을 낭비했다. 만약 이전으로 돌아간다면 아예 로컬에서 빌드하고 image만 올리는 방식으로 빌드시간을 단축시킬 수 있을 것 같다.
넓게 배운 지식
우여곡절이 많았지만, 서버개발과 배포까지 한번에 진행하면서 많은 걸 배웠다. 이번 회고에 적은 것 외에도 정말 많은 것을 배우고 겪고 망쳤는데, 그동안 배운 내용들을 시리즈로 조금씩 작성해볼까 한다. 그리고 이후에 조금 더 발전시킨 프로젝트로 또다른 배우고, 겪고, 망치는 내용을 공유할 예정이다 ^ㅡ^