근본부터 다시 생각해야 해.

152025년 08월 30일4

며칠 뒤, 늦은 오후.
댄, 소피, 세바스티안 세 사람은 페이스북 캠퍼스의 작은 회의실에 다시 모였다. 지난번 전체 회의 이후, 각자 흩어져 고민했던 생각들을 공유하기 위한 자리였다. 창밖으로는 노을이 지고 있었지만, 그들의 얼굴에는 피곤함보다 팽팽한 긴장감이 감돌았다.

소피가 먼저 입을 열었다.
“몇 가지 아이디어를 생각해 봤어요. HOC와 렌더 프롭의 단점을 보완할 수 있는 새로운 컴포넌트 패턴 같은 것들 말이죠. 예를 들어, prop의 이름을 명시적으로 바꾸거나, 여러 HOC를 더 쉽게 조합할 수 있는 유틸리티 함수를 만드는 방법도…”

그녀는 여러 가지 현실적인 개선안을 제시했다. 모두 당장의 고통을 줄여줄 수 있는 영리한 방법들이었다. 하지만 그녀의 목소리는 점점 힘을 잃어갔다. 그녀 스스로도 이것이 근본적인 해결책이 아님을 알고 있었다.

댄이 그녀의 말을 받았다.
“저도 비슷한 고민을 했습니다. 클래스의 생명주기 메서드를 더 세분화하거나, 로직을 모듈처럼 가져올 수 있는 새로운 문법을 클래스에 추가하는 방법도 생각해 봤습니다. 하지만 결국… 그것들은 모두 기존의 벽에 페인트칠을 새로 하는 것과 같더군요.”

그의 말에 소피는 조용히 고개를 끄덕였다.
점진적인 개선. 그것은 리액트를 더 복잡하게 만들 뿐이었다. 이미 거대해진 클래스라는 개념 위에 또 다른 규칙과 예외를 덧붙이는 것은, 문제를 해결하는 것이 아니라 뒤로 미루는 행위였다.

회의실에는 잠시 침묵이 흘렀다. 그 침묵을 깬 것은 줄곧 창밖을 바라보고 있던 세바스티안이었다.

“우리가 허물어야 할 것은 벽이 아닙니다.”

그의 말에 댄과 소피의 시선이 그에게로 향했다.

“우리가 허물어야 할 것은, 벽을 세운 ‘땅’ 그 자체입니다.”

세바스티안은 자리에서 일어나, 두 사람을 마주 보았다.
“우리의 모든 문제는 ‘클래스 컴포넌트가 상태를 가진다’는 기본 전제에서 출발합니다. 이 전제가 바뀌지 않는 한, 우리는 영원히 그 파생 문제들과 싸우게 될 겁니다. HOC, 렌더 프롭, 생명주기 혼란… 전부 다요.”

그는 잠시 숨을 골랐다. 그의 눈빛은 그 어느 때보다 진지했다.

“질문을 바꿔야 합니다. ‘어떻게 하면 클래스를 더 잘 쓸 수 있을까?’가 아닙니다. 질문은 이것이어야 합니다. ‘만약, 클래스가 없다면?’”

‘만약, 클래스가 없다면?’

그 말은 댄과 소피의 머릿속을 강하게 때렸다.
클래스는 리액트의 심장이자 뼈대였다. 상태를 가지고, 생명주기를 통해 UI를 관리하는, 리액트의 모든 것이었다. 그것 없이 리액트를 상상하는 것은, 엔진 없이 자동차를 상상하는 것과 같았다.

댄이 반문했다.
“클래스가 없다면… 상태는 어디에 저장하죠? 생명주기 로직은 어디서 처리하나요? 그냥 평범한 자바스크립트 함수는 상태를 가질 수 없잖아요. 렌더링이 끝나면 그 안의 모든 변수는 사라지는데.”

그것은 너무나도 당연한 자바스크립트의 기본 원칙이었다. 함수는 호출될 때마다 새로운 실행 컨텍스트를 만들고, 실행이 끝나면 그 안의 모든 것은 사라진다. 상태를 ‘기억’할 수 있는 능력은 오직 클래스 인스턴스만이 가진 고유한 특권이었다.

“바로 그겁니다.”
세바스티안의 목소리에 희미한 흥분이 섞였다.
“만약… 만약 그럴 수 있다면요? 만약 평범한 함수가, 리액트의 도움을 받아 자신의 상태를 기억할 수 있다면 어떻게 될까요?”

그 순간, 회의실의 공기가 변했다.
불가능하다고 여겼던 영역, 금기의 경계선을 넘는 아이디어였다.
이것은 더 이상 개선이나 보수가 아니었다. 기존의 질서를 완전히 파괴하고, 폐허 위에서 새로운 질서를 창조하는 일이었다.

판을 뒤집어야 한다.
지금까지의 모든 가정을 버리고, 근본부터 다시 생각해야 한다.

댄과 소피는 세바스티안의 눈을 바라보았다. 그의 눈에는 불확실한 미래에 대한 두려움이 아닌, 새로운 가능성을 향한 확신이 담겨 있었다.

그날 밤, 세 사람은 아무런 결론도 내리지 못한 채 회의실을 나섰다. 하지만 그들의 머릿속에는 이전과는 전혀 다른, 거대하고도 위험한 질문 하나가 뿌리내리고 있었다.

“어떻게 하면, 함수가 상태를 가질 수 있을까?”

리액트 혁명의 서막을 여는, 제2부의 막이 오르고 있었다.