개발블로그 변천사
2018년부터 운영해 온 개발 블로그의 기술 스택 변천사를 흥미롭게 정리해 보았습니다.
개요 개발블로그 변천사 RubyOnRails+Vue.jsSpringBoot+JSPNest.js+React.jsPDF 기반의 컨텐츠 작성 정리 2018년부터 개발블로그를 운영하고 있습니다. 게시판을 만들어 AWS 에 배포하게 되면 FE/BE 를 모 두 공부할 수 있겠다는 생각이 들어, 공부삼아 만들었던 것이 개발블로그의 시작이었습니다. 개발블로그 의 기술 스택은 저의 관심사에 따라 변화하기도 했습니다. 이 글에서는 저의 개발블로그의 변천사를 재미 삼아 정리해 보도록 하겠습니다. FE BE UIDesign 2018~2018 Vue.js RubyOnRails MaterialDesign2019~2021 JSP SpringBoot 직접 구현 2021~ 현재 React.js Nest.js AntDesign 2018 년부터 현재까지 개발블로그의 기술 스택 변화 기술 스택을 변화시켰던 이유는 그 당시에 기술 스택의 관심사가 바뀌었기 때문 입니다.2018년에는 학교 를 휴학한 후 인썸니아 에 재직하고 있었는데, 당시에 사내에서 사용하고 있던 기술스택이 RubyOnRails 였습니다. 당시에는 RubyOnRails 와 Framework7 라는 FE 라이브러리를 사용하여 프로젝트 개요 개발블로그 변천사 RubyOnRails+Vue.js를 진행하였습니다.RubyOnRails 는 오늘날까지 많은 BE 프레임워크들에게 영감을 준 프레임워크로 유명하며, 해외에서는 아직까지도 많이 사용되는 백엔드 기술 스택입니다. 개인적으로는 스타트업과 같이 빠른 개발과 검증의 과정을 거쳐야 하는 환경에서는,RubyOnRails 는 여전히 좋은 선택지라고 생각합 니다. 채용이 어렵다는 단점을 제외하면요 개인적으로는 Ruby 라는 언어에도 관심이 많았습니다.Ruby 는 제가 처음으로 배웠던 프로그래밍 언어였습니다.AboutRuby 페이지에 들어가 보면, Rubyissimpleinappearance,butisverycomplex inside,justlikeourhumanbody 라고 Ruby 언어를 소개하고 있는 것을 확인할 수 있습니다. 이러한 Ruby 의 철학은 서버 프레임워크인 Rails 에도 닮아있습니다. 오늘날 대다수의 BE 프레임워크의 방향성 이 되는 ConventionoverConfiguration 는 Rails 가 다양한 언어에 영향을 끼친 대표적인 사례입니다. 저는 인간 중심적인 언어/프레임워크인 RubyOnRails 에 빠져있었고,Rails를 이용하여 개발블로 그를 만들었습니다. Ruby 의 철학.2000년대의 클래식한 UI 가 마음에 든다.SPA 는 오늘날 널리 사용되는 FE 기술이지만,2016~2018년에는 따끈따끈하고 혁신적인 기술이었습 니다. 지식은 많이 없었지만 유행에 뒤쳐지기 싫었던 저는, 이슈가 되었던 FE 프레임워크/라이브러리를 공부했었습니다. 가장 빠르게 배울 수 있을 것 같았던 Vue.js 를 선택하여 개발블로그의 UI 어플리케이션 을 만들었습니다. AngularvsReactvsVue2022 년을 기점으로 React 가 확실히 승기를 잡기 시작했다. 당시 개발블로그의 UI 는 SPA 의 장점을 최대한 살리기 위해, 하나의 화면을 컴포넌트로 나누어, 최대 한 적은 화면에 많은 기능을 넣어보려 노력했던 것으로 기억합니다. SpringBoot+JSP대학교를 졸업한 후 취업한 회사는 유통업계에 있는 전통적인 대기업이었습니다. 당연하게도(?) 회사에 서 사용하던 기술스택은 Java+JSP 였습니다. 회사에서 사용하던 BE 프레임워크는 Spring 을 기반으 로 Fujitsu 에서 만든 상용 프레임워크를 사용하였습니다.InterstageBusinessApplicationServer 를 사용했었는데, 간단히 설명드리자면 "유지보수가 되는 구형 스프링 프레임워크" 정도였습니다. 이 때에 처음 Spring 프레임워크를 접하게 되었고, 개발블로그도 SpringBoot 를 이용하여 다시 만들어보게 되 었습니다.RubyOnRails 를 기반으로 개발을 했었을 때에는 프로그래밍 입문 단계의 개발자였습니다. 당시에는 SQL 에 대해서도 제대로 알지 못한 채 개발을 했었습니다.SQL 을 제대로 알지 못한 상태에서도 BE 개 발을 할 수 있었던 이유는 Rails 의 자체 내장 ORM 이 훌륭했기 때문입니다.Spring 을 기반으로 개발 블로그를 다시 만들 때에는 DB와 관련된 라이브러리를 일절 사용하지 않고 직접 구현해서 쓰자 라는 목표를 가 지고 있었습니다. 순수 POJO 로 SQLQueryBuilder 를 만들어서 사용했었는데, 재미있었지만 많은 시 간을 투자했던 기억이 납니다. 당시 FE 또한 회사에서 사용하던 스택인 JSP 를 기반으로 다시 만들었던 기억이 있는데, 이러한 선택 을 한 후 후회했던 기억이 있습니다. 현대적인 FE 라이브러리에 익숙해진 상태에서 다시 HTML/CSS/JS 를 기반으로 화면을 그리니, 비효율적이라는 생각이 많이 들었습니다. 당연하지만,jQuery 를 이용하여 화면의 상태관리를 시키는 것은 많은 노동을 필요로 합니다. 만들 때에 많은 시간을 투자했던 것이 기억에 납니다. 만드는 과정에서 당시의 저에게 필요했던 지식들 을 많이 얻을 수 있었지만, 결과물은 만족스럽지는 못했습니다. 왜냐하면 대부분의 코드를 직접 작성했기 때문에, 기본적인 기능 구현에 시간을 많이 투자해야 했기 때문입니다. 특히 UI 가 이쁘지 않게 나와 불만 족했던 기억이 있습니다. 두 차례의 개발블로그 개편을 해보니, 개발블로그 자체개발의 장점과 단점을 명확하게 느낄 수 있었습니다. 먼저 자체개발의 장점은 무엇보다 자유도 입니다. 개발블로그 자체가 개인의 만족을 위해 운영하는 것 이기 때문에, 자신의 취향대로 블로그를 만들 수 있는 것이 장점이었습니다. 지금은 기본적인 블로그 기능 뿐만아니라, 배치까지 만들어 돌리고 있습니다. 이에 비해 단점은, 시간투자를 많이 해야한다는 점입니다. 원하는 기능을 만들어야 쓸 수 있고,BE/FE 모두 스스로 관리해야 한다는 점입니다. Nest.js+React.js개발블로그를 계속 운영하고 싶었기 때문에, 어떻게 하면 개발블로그 유지보수 비용을 최소화할 수 있을 까? 를 고민하였습니다. 스스로 고민을 해 본 결과,FE/BE 를 같은 언어인 Typescript 로 관리하는 것으 로 결론을 내렸습니다. 그동안은 BE/FE 를 다른 언어로 개발하다 보니, 두 프로젝트의 ContextSwitching 비용이 발생하고 있었습니다.FE/BE 모두 Node.js/Typescript 을 기반으로 개발환경으로 통일하였고, 빠른 속도로 개발을 진행할 수 있도록 프로젝트를 세팅하였습니다.UI 는 AntDesign 을 이용하여 최소한의 노력으로 완성도있는 디자인을 적용할 수 있도록 하였습니다. 블로그가 시각적으로 마음에 들어야 자주 사용하는 것 같아, 굳이 퍼블리싱은 직접 만드는 노력을 하지 않 기로 정했습니다. 노력해도 잘 안된다는 사실을 전의 경험을 통해 깨달았습니다. 이와 같은 점들을 고려하여, 세 번째 개발블로그의 기술스택은 Nest.js+React.js+AntDesign 으로 정하고, 빠른 속도로 다시 개발하였습니다. 또한 블로그의 컨텐츠 작성 방식을 WYSIWYG 에서 Markdown 으로 변경하였습니다. 마지막 개발블로그 개편 이후로, 스스로 만족하며 3년동안 개발블로그를 운영하고 있었습니다. 그러던 와중에 노트 작성 앱 (Bear,Obsidian) 에 관심을 가지게 되었습니다. 그동안 온라인 에디터에서 블로그글을 작성하고 있었는데, 온라인 에디터가 노트 작성 네이티브 앱의 성능과 기능을 따라갈 수는 없었습니다. 오프라인 환경에서도 자유롭게 글을 작성할 수 있다는 것도 큰 장점으로 느껴졌습니다. 또한 Obsidian 에서는 Vim 모드를 지원하고 있어서, 글을 더 효율적으로 작성할 수 있다는 장점도 있었습니다. 또한 블로그에 작성했던 글을 자유롭게 공유하기에는 PDF 형식이 좋다는 생각을 가지고 있었는데,Obsidian 에 ExporttoPDF 기능이 있는 것을 발견했습니다. 보통 컨텐츠 생성 앱의 PDF 추출 기능은 만족스럽지 못했던 기억이 많은데,Obsidian 의 PDF 추출 기능은 꽤 만족스러웠습니다. 이러한 점들을 종합적으로 고려해 본 후, 다음과 같이 개발블로그 글 작성방식을 바꿔보기로 했습니다. PDF 기반의 컨텐츠 작성PDF 기반의 기술블로그 이용계획 물론 기존에도 블로그의 이미지/비디오 저장을 위해 S3 를 사용하고 있었지만, 위와 같은 개편 이후에는 블로그의 주된 컨텐츠를 PDF 로 관리하게 됩니다. 위와 같은 계획을 세운 이후,PDF 뷰어 기능과 PDF 업로드 기능을 추가로 개발하였습니다. 돌아보니 6년동안 개발블로그를 운영해 오면서 많은 변화가 있었던 것 같습니다. 지금은 나름 안정화된 상태라고 생각하고 있지만, 앞으로도 더 좋은 방법이 있다고 생각되면 개발블로그를 바꿔나갈 예정입니다. 물론 이런 변화를 도입하는 것에도 많은 시간적 비용이 들지만, 원하던 기능을 온전히 내 마음대로 구 현해보는 좋은 기회인 것 같습니다. 정리
이것도 읽어보세요