상태 관리의 본질에 대한 회고

19

발행일: 2025년 05월 25일

밤은 깊었고, 도쿄의 스카이라인은 보석처럼 빛나고 있었다. 다이시 카토는 자신의 작업실 창가에 서서, 멀리 반짝이는 도시의 불빛들을 응시했다. 그의 손에는 따뜻한 차가 담긴 잔이 들려 있었지만, 그의 마음은 그보다 더 뜨거운 상념으로 가득 차 있었다.

Zustand와 Jotai. 그가 낳은 두 개의 창조물. 하나는 중앙집권적인 왕국처럼 질서정연하고 예측 가능했으며, 다른 하나는 자유로운 도시 연합처럼 유연하고 분산적이었다. 각기 다른 철학과 구조를 가졌지만, 이제는 React 생태계라는 거대한 정원에서 각자의 아름다움을 뽐내며 공존하고 있었다.

두 개의 정원을 가꾸는 메인테이너로서 보낸 시간들은 그에게 많은 것을 가르쳐주었다. 단순히 기술적인 난관을 극복하는 법이나 커뮤니티를 관리하는 요령뿐만이 아니었다. 그것은 상태 관리라는 문제 자체의 본질에 대해 더 깊이 성찰하게 만드는 계기가 되었다.

‘나는… 무엇을 찾고 있었던 걸까?’

처음 Context API의 벽 앞에서 좌절했을 때, 그는 더 나은 ‘해결책’을 갈망했다. 그래서 Zustand를 만들었다. 하지만 Zustand의 성공 이후에도 만족하지 못하고, 더 근본적인 ‘우아함’을 찾아 Jotai를 탄생시켰다. 마치 끊임없이 더 높은 봉우리를 향해 나아가는 등반가 같았다.

하지만 이제 그는 깨닫고 있었다. 어쩌면 상태 관리의 세계에는 ‘단 하나의 완벽한 정상’이란 존재하지 않을지도 모른다는 것을.

Zustand가 빛을 발하는 상황이 있었고, Jotai가 압도적인 효율을 보여주는 상황이 있었다. 때로는 여전히 Redux의 강력한 통제가 필요할 수도 있었고, 어떤 경우에는 아예 상태 관리 라이브러리 없이 순수 React만으로 충분할 수도 있었다.

마치 목수의 연장통과 같았다. 망치, 톱, 대패, 끌… 각 도구는 저마다의 용도와 쓰임새를 가지고 있다. 톱으로 못을 박으려 하거나, 망치로 나무를 깎으려 한다면 어리석은 일이 될 것이다. 가장 뛰어난 목수는 모든 작업을 단 하나의 만능 도구로 해결하려는 사람이 아니라, 작업의 성격에 맞춰 가장 적합한 도구를 선택하고 능숙하게 다루는 사람이다.

“결국… 도구가 문제가 아니었어.”

카토는 나지막이 중얼거렸다. 진짜 중요한 것은 라이브러리 그 자체가 아니라, ‘풀어야 할 문제’를 얼마나 깊이 이해하고 있느냐였다.

  • 우리 애플리케이션의 상태는 얼마나 복잡한가?
  • 상태 간의 의존성은 어떤 형태인가?
  • 데이터의 흐름은 예측 가능한가, 아니면 동적인가?
  • 팀의 규모와 개발 문화는 어떠한가?
  • 성능 요구사항과 코드 스플리팅 전략은 무엇인가?

이런 질문들에 대한 명확한 답을 얻는 과정이야말로, 상태 관리의 진짜 시작이었다. 그리고 그 답을 바탕으로, 세상에 존재하는 수많은 도구들(Zustand, Jotai, Redux, Recoil, 혹은 그 외의 것들) 중에서 가장 적합한 것을 선택하고 조합하는 지혜와 용기. 그것이야말로 개발자가 갖춰야 할 진정한 역량이었다.

그동안 그는 더 나은 ‘도구’를 만드는 데 집착해왔는지도 모른다. 하지만 이제 그는 알았다. 세상을 바꾸는 것은 궁극의 도구 하나가 아니라, 그 도구들을 올바르게 사용하는 사람들의 손에 달려 있다는 것을.

이 깨달음은 그에게 새로운 종류의 평온함을 가져다주었다. 더 이상 완벽한 라이브러리를 만들어야 한다는 강박감에 시달릴 필요가 없었다. 대신, 자신이 얻은 경험과 통찰을 다른 개발자들과 나누고 싶다는 열망이 샘솟았다.

그는 자신의 블로그에 새로운 글을 쓰기 시작했다. 제목은 ‘상태 관리 라이브러리 선택의 미학’이었다. 그는 Zustand와 Jotai를 만들면서 겪었던 고민과 깨달음을 솔직하게 담아냈다. 완벽한 해결책을 찾으려 하기보다, 문제의 본질을 정확히 파악하는 것이 우선이라고 강조했다.

“가장 중요한 것은 문제를 정확히 이해하고, 가장 적합한 도구를 선택하는 용기입니다. 때로는 익숙한 것을 버리고 새로운 것을 시도해야 할 수도 있고, 때로는 화려한 신기술 대신 검증된 안정성을 택해야 할 수도 있습니다. 정답은 여러분의 문제 속에 있습니다.”

글을 게시하자, 커뮤니티의 반응은 뜨거웠다. 많은 개발자들이 그의 솔직한 회고와 통찰에 공감하며 감사를 표했다. 그의 경험은 단순한 기술 공유를 넘어, 개발자로서 가져야 할 태도와 지혜에 대한 깊은 울림을 주었다.

카토는 창밖의 밤하늘을 다시 바라보았다. Zustand와 Jotai. 그가 애정을 쏟아 가꾼 두 개의 별은 여전히 밝게 빛나고 있었다. 하지만 이제 그의 시선은 그 별들 자체를 넘어, 그 별들이 비추는 더 넓은 우주, 즉 웹 개발이라는 광활한 세계의 본질을 향하고 있었다. 그의 성장은 멈추지 않았고, 그의 탐구 정신은 이제 또 다른 미지의 영역을 향해 나아갈 준비를 하고 있었다.