초기 커뮤니티 반응, 혼란과 기대
제13화
발행일: 2025년 05월 22일
다이시 카토가 Jotai 1.0을 세상에 공개하고, 그 탄생 배경과 철학을 담은 글을 게시한 순간, React 개발자 커뮤니티는 그야말로 벌집을 쑤셔놓은 듯 술렁이기 시작했다. 마치 고요한 호수 표면에 거대한 돌멩이가 던져진 것처럼, 잔잔했던 상태 관리 논의는 다시 한번 격랑 속으로 빠져들었다.
“다이시 카토가 또 일냈다!”
가장 먼저 터져 나온 것은 놀라움과 기대감이었다. Zustand라는 걸출한 작품을 만들어낸 개발자의 새로운 도전. 그것만으로도 충분히 흥미로운 소식이었다. 많은 개발자들이 그의 블로그 포스트와 Jotai의 GitHub 저장소로 몰려들었다.
하지만 이내, 예상했던 대로 혼란의 목소리가 뒤따랐다.
“잠깐, 그래서 Zustand랑 뭐가 다른 건데? 설명은 읽었는데… 솔직히 헷갈리는데?”
“아토믹 스테이트? 그거 Recoil이랑 비슷한 거 아냐? 굳이 또 만들 필요가 있었나?”
“Zustand 잘 쓰고 있었는데… 이제 Jotai로 갈아타야 하는 건가? 아니면 둘 다 써야 하나?”
커뮤니티 포럼, 트위터 타임라인, 레딧 서브레딧은 순식간에 Jotai에 대한 질문과 토론으로 뒤덮였다. 마치 새로운 전학생을 둘러싸고 수군거리는 학생들처럼, 개발자들은 호기심과 의심이 뒤섞인 눈으로 Jotai를 바라보았다.
카토가 아무리 README와 블로그 포스트를 통해 ‘대체재가 아닌 다른 종류의 도구’라고 강조했음에도 불구하고, 많은 이들은 여전히 Jotai를 Zustand의 ‘다음 버전’ 혹은 ‘개선판’으로 받아들이는 경향을 보였다.
“그래서 결론은 Jotai가 더 좋다는 거임?” 이라는 식의 단순화된 질문들이 끊이지 않았다.
GitHub 이슈 트래커는 그야말로 아비규환이었다.
- Zustand와의 비교 질문: “이런 상황에서는 Zustand가 나은가요, Jotai가 나은가요?”, “두 라이브러리의 성능 차이는 어떤가요?”
- Recoil과의 차이점 문의: “Recoil의 selector와 Jotai의 파생 아톰은 정확히 뭐가 다른 거죠?”, “문자열 키 대신 객체 참조를 쓰는 것의 장단점은 뭔가요?”
- 사용법 및 개념 질문: “
atom()
이랑atomWith*
유틸리티는 언제 써야 하나요?”, “의존성 추적은 정말 자동으로 다 되나요? 믿기지가 않는데…” - 비판적인 의견: “너무 마법 같은데? 내부적으로 복잡한 거 아니에요?”, “결국 상태 관리를 더 파편화시키는 것 같은데요?”
카토는 쏟아지는 질문과 의견의 홍수 속에서 정신을 차리기 어려울 정도였다. 마치 혼자서 수백 명의 기자들에게 둘러싸여 질문 세례를 받는 기분이었다. 그는 예상했던 반응이었지만, 그 강도는 상상 이상이었다.
하지만 그는 좌절하지 않았다. 오히려 이 혼란 속에서 가능성을 보았다. 무관심보다는 훨씬 나은 반응이었다. 개발자들이 혼란스러워한다는 것은, 그만큼 Jotai가 기존과는 다른 새로운 개념을 제시하고 있다는 증거이기도 했다.
“괜찮아… 시간이 필요할 뿐이야.”
그는 다시 한번 마음을 다잡고 키보드 앞에 앉았다. Zustand 때와 마찬가지로, 성실하고 꾸준한 소통만이 이 혼란을 잠재우고 신뢰를 구축할 수 있는 유일한 길이었다.
그는 이슈 트래커와 커뮤니티를 넘나들며 질문에 답하기 시작했다. Zustand와의 차이점은 구체적인 코드 예시를 들어 설명했고, Recoil과의 비교에서는 각 라이브러리의 철학적 지향점과 기술적 트레이드오프를 객관적으로 제시하려 노력했다. Jotai의 핵심 개념인 아톰과 파생 상태에 대해서는 비유와 쉬운 설명을 곁들여 이해를 도왔다.
“Zustand는 잘 정돈된 하나의 큰 서재와 같고, Jotai는 필요한 책(원자)들만 모아 자유롭게 나만의 작은 서재를 꾸미는 것과 비슷합니다.”
“Recoil과의 가장 큰 차이 중 하나는 API 디자인 철학입니다. Jotai는 극단적인 미니멀리즘과 타입스크립트 친화성을 추구합니다.”
그의 꾸준한 설명과 답변은 조금씩 효과를 발휘하기 시작했다. 처음에는 혼란스러워했던 개발자들 중 일부는 점차 Jotai의 개념을 이해하고 그 매력을 느끼기 시작했다.
“아… 이제 좀 알겠다. 확실히 Zustand랑은 다른 매력이 있네.”
“코드 스플리팅 관점에서는 이게 훨씬 유리할 수도 있겠는데?”
“API가 정말 미니멀하다. 내 취향인데?”
물론 여전히 비판적인 시각과 의구심은 존재했다. 하지만 커뮤니티의 분위기는 단순한 혼란을 넘어, 새로운 가능성에 대한 기대감으로 서서히 바뀌어가고 있었다. 마치 낯선 재료로 만든 새로운 요리를 처음 맛볼 때의 두려움과 설렘이 공존하는 것 같았다.
Jotai는 세상에 성공적으로 첫인사를 건넸다. 비록 그 과정이 순탄치만은 않았지만, 강력한 존재감을 드러내며 개발자들의 뇌리에 자신의 이름을 각인시키는 데는 성공한 것이다.
이제 남은 것은 이 초기 혼란을 딛고, Jotai만의 명확한 가치와 정체성을 커뮤니티와 함께 만들어나가는 것이었다. 그리고 그 과정에서 필연적으로 마주하게 될 또 다른 라이브러리, Recoil과의 비교는 이제부터가 진짜 시작이었다. 두 아토믹 라이브러리의 관계는 앞으로 어떻게 전개될 것인가? 카토의 여정은 점점 더 흥미진진한 국면으로 접어들고 있었다.