답수실Log | 230129 | 어쩌다 next13
우리 팀은 프론트엔드 기술로 nuxt2를 사용하고 있다. 최근 nuxt3 stable버전이 릴리즈되었고, 우리도 nuxt2에서 nuxt3로 마이그레이션하려고 준비하고 있었다. 마이그레이션하는 이유로는 다음과 같았다.
vue3와 typescript 도입의 필요성. 현재는 vue2와 JS로 코드가 작성되어 있음. 일부 도메인 경우 데이터의 복잡성이 크기 때문에 TS의 도입이 시급한데, vue2의 경우 TS를 지원하긴 하지만 vue3에 비해 강력하지 않음. 또한 vue2는 점점 흔적이 사라지고 있음
먼저 팀의 리더님께서 시범적으로 마이그레이션을 시도해봤다. 그러나 생각보다 nuxt3로 전환하는데 있어서 문제가 많다고 하셨다. nuxt3같은 경우 Vite, Vue3, Nitro 기반의 프레임워크다. 리더님에 의하면, nuxt2까지는 nitro에 대한 존재감이 크게 드러나지 않았지만 nuxt3에서는 커스텀하는 과정에서 표준적인 라이브러리(path, http 등)이 아닌 unjs가 관리하는 라이브러리로 감싼 애들이 튀어나온다고 하셨다. 또한 nuxt3의 api문서를 보면서 팔로우함에도 불구하고 제대로 작동되지 않고, 직접 nuxt3 소스코드를 뜯어보니 문서에서 나온 것과 다르고 문서 사이에 링크도 연결이 끊어져 있는 부분들이 많다고 하셨다. 이런 측면에서 봤을 때, 이들이 제공하는대로 따라간다고 해서 잘 될 것이라는 신뢰도 들지 않고 커스터마이즈도 굉장히 힘들 것 같다고 판단하셨다.
이는 우리팀만의 문제가 아니었다. 개발바닥 커뮤니티에서도 nuxt3와 관련된 얘기를 나눴는데, 다른 분들도 비슷한 고통을 겪고 있었다.
다른 개발자분도 마찬가지로 nuxt3에 대해 매우 부정적이었다. 우리 리더님과 비슷하게 매뉴얼대로 진행함에도 불구하고 문제가 많아서 마이그레이션에 실패했고, 결국 next를 선택했다고 하셨다.
이런 문제로 결국 우리팀도 장기적인 관점에서 생산성과 채용을 고려했을 때 더 나은 프레임워크를 선정하기로 했다. 선정 방법으로는 우리 웹서비스의 코어 기능들을 압축한 작은 애플리케이션을 nuxt3, svelte, next13으로 각각 구현해보고 비교, 평가한 후 가장 적합한 프레임워크를 선정하기로 했다.
그래서 각 프레임워크별로 인원을 나눴고, 나는 next13을 이용하여 과제를 진행하기로 했다. 이런 이유로 현재 react부터 시작해서 next를 학습하고 있다... 괜히 nuxt한테 적대감이 쌓이는 중...😡
그래도 새로운 지식들 접하면서 꽤 재미를 느끼고 있는 중이여서 긍정적으로 생각해보려고 한다. 공부할 게 많으면 좋은거지!!! 암튼, 오늘 기록 끄읏.