그냥 블로그

[Recoil] Recoil 과연 괜찮을까? 본문

Front-End

[Recoil] Recoil 과연 괜찮을까?

코딩하는 공대생 2024. 8. 16. 22:44
반응형

 

이 글은 단지 프로젝트를 하면서 봤던 내용과 생각을 정리한 글입니다 : ) 

전문가는 아니기 때문에 오류가 있을 수 있고, 저 또한 확실하게 알고 있지 못한 상황이기도 합니다. 

혹시, 더 알고 있는 내용이 있다면 코멘트 남겨주시면 감사하겠습니다 !!

 

 

 

이번 프로젝트는 기존에 안써봤던 다양한 기술 스택을 써보고 싶었다. 

사실 이런 기준으로 선택하면 안될 것 같지만, 한번 써보자 싶었기에 공고에서 많이 보이는 유명한 기술 스택들을 써보고자 했다. 

 

그렇게 선택한게 

1) Next.js : CSR과 SSR을 제대로 경험해 보기

2) Recoil, React Query : 기존 Redux의 Boiler plate 단점을 극복하기 위한 기술 스택으로 많이 언급되고 많은 곳에서 사용됨. 

3) TypeScript : JavaScript의 형변환, Type의 불명확 등의 단점을 극복할 수 있고 거의 필수임. 

 

이런 기술 스택들이 었는데.... React Query를 적용하고 Recoil을 적용하기 위해 찾아보면서 보게 된 글이 하나 있었다. 

 

Recoil, 이제는 떠나 보낼 시간이다

개요

medium.com

 

처음에 제목을 보곤 당황했다. 한창 Recoil이 핫하던 2023년에 머물러 있던 내 기술 스택이었기에 선택했는데, Recoil에 대한 단점이 언급되어 있는 글을 보게 되었으니....ㅎㅎ... 

 

개발자들이 점점 Recoil을 이탈하고 있단 것이었는데....

위 글에서 언급하는 단점은 

 

1) Recoil이 타 라이브러리에 비해 짧은 업데이트 주기를 가짐. -> Isuue에 대한 대응이 늦다.

2) Memory leak 문제 : 
이전부터 꾸준히 메모리 누수에 대한 이슈가 있어왔고 특히나 ssr에서는 더 치명적이라 한다. 

3) SSR에 대한 지원 :
2번의 이유 + useHydrate 같은 타 라이브러리에서 지원하는 기능을 미지원함.

4) 메인테이너가 페이스북에서 퇴사하게 됨.. -> 영향이 갈 진 확실치 않다.

 

위 글이 2023.12에 작성되었고, 최근에는 어떻게 되었는지 찾아보고 싶어서 여러방면으로 검색해봤지만, 최근에 논의된 커뮤니티 글은 찾을 수가 없었다. 

 

다만, https://www.reddit.com/r/reactjs/comments/15tseap/is_recoil_still_actively_maintained_or_used_at/

 

From the reactjs community on Reddit

Explore this post and more from the reactjs community

www.reddit.com

위 커뮤니티에서 1년전 다뤄진 글에서 블로그 포스팅과 관련된 내용들만 가득할 뿐... 다시보니 레딧이넹ㅎ

 

Recoil 공식문서 

에 나와있는 최근 업데이트도 2023.05.01이기 때문에 별로 신뢰가 가지 않기도 했다.

redux는 23.12.24임. 

 

 

그래도 최근 업데이트(23.05.01)에 SSR에 관련된 내용이 있기도 하고

  • Fix resolving suspense of async selectors used with SSR (#2073, #1960)
  • Fix SSR with some versions of React DOM used with Next.JS 13 (#2082, #2086)

2022에 memory leak에 관련된 내용도 있긴 하다.

  • Cleanup memory leak when using atoms with selector defaults. (#1821, #1840, #1844)

 

그래도 솔직히 판단을 잘 못하겠다.... '-`... 

이런건 어떻게 알아봐야 할까...

 

이런 이유로 Nextjs를 사용하고 있는 우리 프로젝트...(SSR 기능은 거의 쓰지 못하고 있지만 ㅎ..) 에서 Recoil은 떠나보내게 되었다.... ㅂㅂ...

 

대안으로 zustand나 react Query 단일로도 state 관리에 사용되는 듯 하니 ( 캐시 ) 사용하지 않을까 생각한다. 

 

Zustand에 관해 우연히 우와콘 관련 내용을 보게 됐는데 추천합니당 
https://www.youtube.com/watch?v=nkXIpGjVxWU&t=12s