세바스티안이 제시한 ‘동시성 모드’라는 거대한 비전은 팀에 새로운 목적의식을 불어넣었다. 그들은 자신들이 단순히 과거의 문제를 해결한 것이 아니라, 리액트의 미래를 위한 초석을 다졌다는 사실에 자부심을 느꼈다.
하지만 소피 알퍼트의 생각은 조금 달랐다.
그녀는 동시성 모드라는 미래의 약속도 중요했지만, 훅이 ‘지금 당장’ 개발자들의 세계에 가져온 변화에 더 깊은 의미를 두었다. 그녀는 엔지니어링 매니저로서, 최전선에서 코드를 작성하는 개발자들의 희로애락을 그 누구보다 가까이에서 지켜봐 온 사람이었다.
그녀는 훅이 도입된 이후, 팀의 분위기가 어떻게 바뀌었는지를 떠올렸다.
이전에는 복잡한 클래스 컴포넌트의 버그를 잡기 위해 며칠 밤을 새우던 개발자들이 있었다. this가 갑자기 사라지는 문제, 생명주기 메서드가 꼬여 발생하는 미묘한 경쟁 상태(race condition) 때문에 좌절하던 모습이 생생했다.
하지만 훅이 도입된 후, 코드 리뷰 과정이 눈에 띄게 즐거워졌다.
더 이상 래퍼 지옥의 깊은 들여쓰기를 해독하려 애쓰지 않아도 되었다. 상태 로직은 명료한 커스텀 훅으로 분리되었고, 컴포넌트 자체는 UI를 그리는 데만 집중했다. 코드는 짧아졌고, 읽기 쉬워졌으며, 무엇보다 추론하기 쉬워졌다.
소피에게 가장 큰 보람을 느끼게 한 것은 개발자들의 피드백이었다.
“소피, useFetch 커스텀 훅 하나 만들었더니, 모든 팀원이 데이터 통신 코드를 10분 만에 작성하네요. 예전 같았으면 반나절은 걸렸을 텐데요.”
“useEffect 의존성 배열 때문에 처음엔 고생했는데, ESLint 플러그인 덕분에 이제는 오히려 버그를 미리 잡는 안전장치가 되었어요.”
“무엇보다… 다시 코딩이 즐거워졌어요.”
마지막 그 한마디가 소피의 마음을 울렸다.
개발자 경험(DX, Developer Experience).
그녀가 언제나 가장 중요하게 여겼던 가치였다. 훌륭한 도구는 단지 버그만 적은 것이 아니라, 그것을 사용하는 사람을 행복하게 만들어야 한다고 그녀는 믿었다.
동시성 모드는 훅의 탄생을 이끈 기술적인 ‘이유(Why)’였을지도 모른다.
하지만 훅이 개발자들에게 사랑받게 된 진짜 이유는, 그것이 개발이라는 행위 자체를 더 인간적이고, 더 창의적이며, 더 즐거운 활동으로 만들어주었기 때문이었다.
소피는 생각했다.
‘결국, 우리는 사용자를 위해 제품을 만든다. 그리고 우리 리액트 팀에게 ‘사용자’란, 바로 전 세계의 개발자들이다.’
그녀에게 훅의 성공은 미래의 빠른 렌더링 속도나 부드러운 UI가 아니었다.
그것은 지금 이 순간, 한 명의 개발자가 복잡성의 미로에서 벗어나, 창조의 즐거움을 느끼며 미소 짓는 바로 그 모습이었다.


