한 번은 해야지, 하고 몇 개월을 미루었나 모르겠다.
이 블로그는 원래 React로 만든 앱이고, 빌드 파일을 Node.js 서버로 띄우는 방식을 취했다.
고장 없이 2년 이상 잘 굴러가던 웹사이트를 굳이 뜯어고친 이유는...
어릴 때 전자제품을 모조리 분해했다가 다시 조립하는 것과 다를 게 없다. 재미도 있고, 지식도 얻고, 운 좋으면 개선도 하고.
그래도 굳이 이유를 정리하자면,
첫째, 장기적으로 SSR이 더 낫겠다고 생각했다. CSR 대비 SSR의 장점은 흔한 내용이니 설명 생략.
둘째, 취미 개발자로서 새로운 프레임워크를 경험하고 싶었다.
셋째, 기능을 더하고 싶었다. 사진도 올리고 싶고, 블로그 주인으로서 다양한 지식을 좀 더 쉽게 관리하고 싶었다.
특히 둘째 이유가 컸다. 그냥 즐길 거리가 필요했다. 원래 Rust, Clojure/Scala 등 새로운 언어를 써보거나 Spring Boot를 써볼 생각도 있었는데, 이것저것 고민하다가 "Less is more"라는 생각으로 가장 단순한 걸 골랐다.
경험해보니, 기존 제품을 새 언어나 프레임워크로 바꾸는 rewriting은 생각보다 까다로웠다.
예를 들어 이 블로그는 텍스트 편집기로 Quill을 사용하는데, React 커뮤니티에는 Quill 관련 라이브러리가 풍부하고 사용도 쉬웠으나 Svelte 커뮤니티는 그렇지 않았다.
게다가 SvelteKit 최신 버전은 GPT도 학습을 못한 터라 공식 문서와 Reddit 등을 참고해야 했는데 문서가 다소 부실하다.
끝으로 DB에 직접 접속해서 데이터를 대량으로 조작해야 하는 경우도 있었다.
그리고 CI/CD도 차이가 있었다. 이전에는 앱 빌드 파일만 서버로 전달하면(CodeDeploy) 이미 실행 중인 서버가 곧장 새 파일을 띄워주었는데, SvelteKit은 서버 자체를 다시 구동하는 것이므로 afterinstall.sh에 패키지를 설치하고 pm2를 구동하는 코드까지 작성해주어야 했다.
아무튼, 이러저러한 시행착오 끝에 블로그 재편을 마쳤다.
쓰다 보니 자잘한 버그가 좀 보인다. 시간 될 때 하나씩 고쳐나가야겠다.
이 블로그를 다시 rewrite 하는 날이 올까? 그런 날이 온다면 그 때는 무슨 이유에서일까?
NEXT POST
나는 채식을 하지 않지만, 채식주의자 지인들과 약속 있을 때 참고하기 위해 정리. 더 보기