Jotai vs Recoil
제14화
발행일: 2025년 05월 22일
초기의 혼란과 질문 세례 속에서도, 개발자 커뮤니티는 놀라운 속도로 새로운 기술을 학습하고 분석하는 자정 능력을 보여주었다. Jotai에 대한 논의는 점차 ‘Zustand와의 차이’를 넘어, 훨씬 더 흥미롭고 본질적인 비교 대상으로 옮겨가고 있었다. 바로 Recoil이었다.
“이거… 아무리 봐도 Recoil이랑 너무 비슷한데?”
“아토믹 스테이트 모델은 Recoil이 먼저 아니었나?”
“둘 다 써본 사람? 실질적인 차이가 뭐야?”
아토믹 스테이트라는 공통분모. 상태를 원자 단위로 관리하고, 파생 상태를 통해 관계를 맺으며, 자동 의존성 추적을 지향한다는 핵심 철학의 유사성 때문에, Jotai는 필연적으로 Recoil과 나란히 비교될 운명이었다. 마치 같은 스승 아래서 동문수학했지만 각기 다른 길을 걷게 된 두 명의 무림 고수처럼, 두 라이브러리는 끊임없이 서로를 비추는 거울이 되었다.
GitHub 이슈 트래커, 기술 블로그, 트위터 타임라인은 ‘Jotai vs Recoil’이라는 제목의 비교 분석 글로 넘쳐났다. 개발자들은 마치 스포츠 경기를 분석하듯 두 라이브러리의 장단점을 파헤치고, 각자의 선호도를 기반으로 열띤 토론을 벌였다.
- API 디자인: Recoil의 명시적인 문자열 키(string key) 방식과 Jotai의 객체 참조(object reference) 방식. 전자는 디버깅이 용이하다는 의견, 후자는 더 자바스크립트 네이티브하고 간결하다는 의견이 맞섰다.
- 번들 사이즈: 경량성을 중시하는 개발자들은 Jotai의 훨씬 작은 번들 사이즈에 열광했다. “Recoil은 기능이 많은 만큼 좀 무겁지. Jotai는 진짜 가볍네!”
- 타입스크립트 지원: 두 라이브러리 모두 타입스크립트를 잘 지원했지만, Jotai의 API가 타입 추론에 더 유리하고 보일러플레이트가 적다는 평가가 나오기 시작했다.
- 철학의 차이: Recoil은 페이스북(메타)이라는 거대 기업의 필요에 의해 탄생하여 풍부한 기능과 안정성을 우선시하는 느낌이라면, Jotai는 미니멀리즘과 유연성, 개발자 경험의 극대화를 추구하는 인디 개발자의 철학이 느껴진다는 분석도 있었다.
다이시 카토는 이 모든 논쟁을 흥미롭게 지켜보았다. 처음 Recoil의 존재를 알았을 때 느꼈던 허탈감은 이미 사라진 지 오래였다. 그는 이 비교를 결코 부정적으로 생각하지 않았다. 오히려… 긍정적으로 받아들였다.
‘이것이야말로 건강한 경쟁이지.’
그는 생각했다. 하나의 문제에 대해 서로 다른 접근 방식이 존재한다는 것은, 결국 개발자들에게 더 넓은 선택지를 제공하는 일이다. 마치 다양한 종류의 망치가 존재하듯, 각자의 쓰임새와 장단점을 가진 도구들이 서로에게 배우며 발전해나갈 수 있는 기회였다.
Recoil 커뮤니티에서 나온 좋은 아이디어가 Jotai에 영감을 줄 수도 있고, 반대로 Jotai의 간결한 접근 방식이 Recoil 사용자들에게 새로운 시각을 제공할 수도 있었다. 중요한 것은 ‘누가 더 우월한가’가 아니라, ‘어떤 상황에 어떤 도구가 더 적합한가’였다.
하지만 그렇다고 마냥 손 놓고 있을 수만은 없었다. 커뮤니티의 비교 분석이 활발해질수록, Jotai만의 고유한 강점과 차별점을 더욱 명확히 부각해야 할 필요성을 느꼈다. 단순히 ‘Recoil과 비슷하지만 가벼운 라이브러리’로 인식되어서는 안 되었다.
“Jotai만의 강점… 그래, 역시…”
카토는 Jotai의 핵심 가치를 다시 한번 되짚었다.
- 극단적인 미니멀리즘과 작은 번들 사이즈: 성능이 중요하고, 라이브러리 자체의 무게를 최소화해야 하는 환경에서의 압도적인 이점.
- 타입스크립트 우선 설계: 복잡한 타입 설정 없이도 강력한 타입 추론을 제공하여 개발 경험을 향상시키는 것.
- 유연성과 확장성: 최소한의 코어로 시작하여 필요한 기능만 미들웨어나 유틸리티를 통해 점진적으로 추가할 수 있는 구조.
그는 앞으로 공식 문서나 커뮤니티 소통에서 이 부분들을 더욱 강조하며 Jotai만의 색깔을 명확히 해야겠다고 다짐했다. Recoil과의 비교를 피하는 것이 아니라, 오히려 적극적으로 그 차이를 설명하고 각자의 장점을 인정함으로써 개발자들이 현명한 선택을 할 수 있도록 돕는 것이 메인테이너로서의 역할이라고 생각했다.
‘경쟁은… 성장을 위한 최고의 자양분일지도 몰라.’
Jotai와 Recoil. 아토믹 스테이트라는 새로운 지평을 함께 열어가고 있는 두 라이브러리. 그들의 건강한 경쟁 관계는 앞으로 React 상태 관리 생태계를 더욱 풍성하고 다채롭게 만들어갈 터였다. 카토는 이 흥미진진한 경쟁 속에서 Jotai를 어떻게 더욱 발전시켜 나갈지 고민하며, 다시 한번 키보드 위에 손을 올렸다. 이론적인 비교를 넘어, 이제는 실제 사용 사례 속에서 Jotai의 진가를 증명해야 할 시간이 다가오고 있었다.