티스토리 뷰

최근 Nuxt 3가 정식 버전이 공개됐다. rc7쯤부터인가, 개인 영문 블로그를 만들려고 계속 테스트해오고 있었는데, 여전히 불안정한 부분이 있는것 같다. 그래서 결론부터 먼저 말하자면, 현 시점에 프로덕트 수준으로 사용하는 것은 No다. 필자는 지금 개인 영문 블로그를 Nuxt3로 운영중이기 때문에 불가능하다는 이야기는 아니다.

 

개인적으로 생각하는 이유는 많지만, 너무 주관적이라는 생각이 들어서 딱 하나만 짚어보려고 한다. Vue3 생테계 자체가 불안정하다는 점이다. 2020년 9월 19일, 원피스라는 이름으로 Vue3가 공개된 뒤 장기간에 걸쳐 Vue2에서 Vue3로 생태계가 바뀌어 왔음에도, 정식 버전으로 Vue3가 채택되기 전까지 이를 지원하지 않는 라이브러리가 꽤 많았다. 지원했더라도, 발생한 이슈를 적극적으로 대처하는 라이브러리가 많지 않았다.

왜 그랬을까 뇌피셜을 굴려보자면, 프론트엔드 개발 기조가 SPA에서 SSR 지원으로 옮겨가면서 Next, Nuxt, Svelte kit등 SSR 프레임워크로 개발하는 사람들이 많아지다보니, Nuxt가 Vue3를 지원하지 않는 시점에 굳이 일을 만들어서 할필요가 없던 것이 아닐까 생각해본다. 현재로 넘어와서, Vue3가 이전부터 갖고 있던 이슈가, 활발히 사용되기 시작하는 지금에 와서야 알려지다보니 생테계가 전반적으로 불안정하다.

한가지 예로, Nuxt3로 onMouted()에서 Dom에 접근하는데, nextTick()이 작동을 안해서 undefined가 반환됐다. API가 Vue3에서 바뀌었나 싶어서 찾아보니 Nuxt3가 아닌 upstream 이슈로, Vue3에서 Suspend+Transition을 사용하면 문제가 생기는 것이었다. 지금도 해당 이슈로 인해, nextTick()을 사용하는 부분에는 setTimeout()을 사용해서 트랜지션을 사용 유무에 따라 여유 시간을 줘야한다.

 

Nuxt2에서 사용하던 공식 라이브러리들도 아직 열심히 개발 단계이거나, 이슈를 묵혀둔채 Nuxt3쪽으로 인력이 몰려있는 것으로 보인다. 덕분에 블로그 개발하다가 몇번을 '그냥 만들어진 플랫폼 써야겠다'라고 생각하며 도망갔는지 기억이 나지 않는다.

주요 라이브러리 로드맵

 

물론 필자와 달리, 이슈 자체에 대해 내성이 강한 개발자들은 본인이 직접 개발해서 대처할 수 있으니 크게 관련없는 이야기일 수 있다. 필자는 휘몰아치는 프론트엔드 기술 폭풍속에서 '이게 Vite 문제인지, Nuxt3 문제인지, Vue3문제인지' 파악하는 과정이 너무도 고통스럽기 때문에, 공감하는 개발자가 있다면 당분간은 Nuxt2 기반으로 프로젝트를 진행하되, Nuxt3 변경점은 계속 주시하라고 권하고 싶다.

 

사례가 많지는 않은데, Svelte로 넘어가는 사례가 보여서 이를 공부하고 정리해보고자 한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함