논란의 불씨 - "Just the V?"
제24화
발행일: 2025년 05월 03일
JSConf EU 2013에서의 발표는 분명 성공적인 '데뷔'였다. 리액트라는 이름은 순식간에 전 세계 자바스크립트 개발자 커뮤니티의 뜨거운 화두로 떠올랐다. 트위터 타임라인은 리액트에 대한 이야기로 넘실거렸고, 개발자 포럼과 블로그에는 발표 영상과 슬라이드를 분석하는 글들이 쏟아져 나왔다.
"페이스북에서 내놓은 새 UI 라이브러리 봤어? 가상 DOM이라니, 완전 신박한데?"
"JSX 문법, 처음엔 이상했는데 보다 보니 은근 편할 것 같기도 하고…"
"상태 변경 시 전체를 다시 렌더링한다는 발상 자체가 혁신적이야. 성능만 받쳐준다면 대박일 듯."
긍정적인 반응과 기대감은 분명 존재했다. 하지만 그 못지않게, 아니 어쩌면 그보다 더 거센 비판과 논란의 불길이 타오르기 시작했다. 마치 신대륙을 발견한 탐험가에게 원주민들이 의심과 경계의 눈초리를 보내듯, 기존 웹 개발의 질서에 익숙했던 개발자들은 리액트의 '낯설음'과 '이단성'에 격렬한 거부감을 드러냈다.
논란의 핵심은 크게 두 가지였다.
첫 번째 불씨: JSX - 신성모독인가, 혁신인가?
// 논란의 중심, JSX
const element = <h1>Hello, {name}!</h1>;
// 많은 개발자들에게 이것은...
// "HTML 안에 자바스크립트를 넣는 것도 모자라,
// 자바스크립트 안에 HTML 비슷한 걸 넣는다고? 이건 미친 짓이야!"
오랫동안 웹 개발의 '성역'처럼 여겨져 온 원칙이 있었다. 바로 '관심사의 분리(Separation of Concerns)'. 구조(HTML), 표현(CSS), 행동(JavaScript)은 각자의 파일에 명확하게 분리되어야 한다는 믿음. 그런데 리액트의 JSX는 이 신성한 경계를 무너뜨리는 것처럼 보였다. 자바스크립트 코드 안에 HTML과 유사한 문법이 뒤섞여 있는 모습은 많은 개발자들에게 혼란과 혐오감을 불러일으켰다.
"이건 퇴보야! 유지보수 지옥문이 열릴 거라고!"
"마크업 디자이너랑 어떻게 협업하라는 거지? 이건 순수한 자바스크립트도 아니고, HTML도 아니잖아!"
"90년대 웹 개발 방식으로 돌아가자는 건가? 끔찍하다!"
온라인 커뮤니티는 JSX에 대한 성토장으로 변했다. 리액트 팀은 "JSX는 단지 문법적 편의(Syntactic Sugar)일 뿐이며, 실제로는 React.createElement()
함수 호출로 변환된다", "UI 컴포넌트는 구조와 로직이 긴밀하게 연결되어 있으므로 한곳에서 관리하는 것이 더 효율적이다"라고 해명했지만, 이미 불붙은 논란은 쉽게 사그라들지 않았다. JSX는 리액트의 가장 강력한 무기 중 하나였지만, 동시에 가장 큰 진입 장벽이자 비판의 표적이 되었다.
두 번째 불씨: "Just the V?" - 반쪽짜리 라이브러리 논쟁
"그래서 리액트는 MVC에서 딱 '뷰(View)'만 다루겠다는 거잖아? 그럼 나머지 모델(Model)이랑 컨트롤러(Controller)는 어쩌고?"
이것은 발표 Q&A에서도 나왔던 질문이자, 많은 개발자들이 가진 근본적인 의문이었다. 당시 유행하던 앵귤러JS(AngularJS)나 엠버(Ember.js) 같은 프레임워크들은 라우팅, 데이터 바인딩, 서버 통신, 의존성 주입 등 웹 애플리케이션 개발에 필요한 거의 모든 기능을 제공하는 '풀 스택(Full-stack)' 프레임워크를 지향했다.
그런데 리액트는 오직 UI를 렌더링하는 '뷰' 레이어에만 집중했다. 상태 관리? 라우팅? 서버 통신? 그건 "리액트가 신경 쓸 바 아니다, 알아서 다른 라이브러리를 쓰든 직접 구현하든 하라"는 식이었다.
"이건 뭐… 엔진 없는 자동차를 파는 격 아닌가?"
"결국 리액트 쓰려면 상태 관리 라이브러리 따로, 라우터 라이브러리 따로… 이것저것 조합해서 써야 한다는 거잖아? 배보다 배꼽이 더 크겠네!"
"앵귤러 하나면 다 되는데, 왜 굳이 리액트를 써야 하지? 장점을 모르겠어."
리액트 팀은 "뷰 레이어에만 집중함으로써 유연성을 높이고, 다른 라이브러리와 쉽게 통합될 수 있으며, 배우기 쉽다"고 주장했지만, 많은 개발자들에게 이것은 '미완성된 반쪽짜리' 라이브러리라는 인상을 주기에 충분했다. 특히 '페이스북 정도 되는 회사가 고작 뷰 라이브러리 하나 내놓고 혁신이라고 떠드는 건가?' 하는 비아냥 섞인 반응도 적지 않았다.
폭풍 속으로
JSConf EU 발표 이후 몇 달간, 리액트는 그야말로 '뜨거운 감자'였다. 칭찬과 비난, 기대와 우려가 뒤섞인 논쟁이 끊이지 않았다. 어떤 이들은 리액트에서 웹 개발의 미래를 보았지만, 다른 이들은 위험하고 잘못된 길로 치부했다.
조던 워크와 리액트 팀은 이 격렬한 논란의 폭풍 한가운데 서 있었다. 그들은 블로그 포스팅, 컨퍼런스 발표, 온라인 커뮤니티 활동을 통해 끊임없이 리액트의 철학을 설명하고 오해를 바로잡으려 노력했다. JSX의 필요성, 가상 DOM의 효율성, 'Just the V' 철학이 가진 유연성의 가치를 알리기 위해 애썼다.
하지만 여전히 많은 개발자들은 회의적이었다. 익숙함의 관성, 새로운 것에 대한 두려움, 그리고 페이스북이라는 거대 기업에 대한 반감까지 뒤섞여 리액트가 넘어야 할 벽은 높아 보였다.
과연 리액트는 이 거센 논란의 불씨를 딛고 일어설 수 있을까? 아니면 수많은 자바스크립트 라이브러리들처럼 반짝 관심을 받다가 역사 속으로 사라지게 될까? 리액트의 운명은 이제 막 시작된 이 '커뮤니티의 시험'에 달려 있었다.