May 7, 2022

React의 역사

당신이 보고 있는 웹페이지는 아마도 React로 작성될 가능성이 높다. 프론트엔드(웹서비스 UI)에서 가장 유명한 라이브러리, React를 소개해보려고 합니다.

2011, 페이스북이 이슈에 봉착하다

페이스북이 급성장하면서 팀의 규모가 커졌고, 앱은 기능이 다양해졌다. 사람이 많아지면 기능 개발 속도가 빨라질 것으로 예상하지만, 실제로는 각자의 개발 스타일이 다르고 기능 하나를 추가할 때에도 다른 곳에 영향이 가는지 체크해야 한다. 이 과정을 개발자는 Human-Error 친화적이라고 이야기하는데, 문서화를 잘하고 개발자들끼리 친목을 다져도 어느 순간 한계에 봉착 한다.
2011년, 페이스북 개발자들은 이 문제를 기술적으로 해결해야 한다고 여겼던 것 같다. 2011년 React의 전신인 FaxJs가 Jordan Walke에 의해 탄생했다.

2012, 인스타그램과 React.js

2012년 페이스북은 인스타그램을 인수했다. 인스타그램 개발자들은 Jordan Walke가 FaxJs의 다음 프로토타입으로 제작한 ReactJs를 사용하고 싶어했다. React는 Facebook Ads를 위한 프로토타입으로 만들고 있었는데, 인스타그램 덕분에 React는 오픈 소스, 모든 개발자가 사용할 수 있는 라이브러리로 탄생할 수 있게 되었다. 사내에서 사용하는 라이브러리를 오픈 소스로 제공하기 위해선 정말 많은 작업이 필요한데(How-to-use, Contributing guide 등) 이 부분은 Pete Hunt가 이끌게 된다.

2013, 세상에 공개되다

2013년은 프론트엔드 프레임워크에 있어서 역사적인 해다. 2013년 5월 Jordan Walke가 React를 JS Conf US에서 최초로 공개하고 2013년 9월 Pete Hunt가 React를 JS Conf EU에서 React를 소개했다.
Gruntjs를 만든 Ben Alman은 2013년 React에 대해 비판적인 트윗을 작성했는데 이곳에는 매해 "아직도 그렇게 생각하냐"는 댓글이 달린다.
부정적인 평가 속에서도 소수의 얼리 어댑터들이 React의 가치를 알아보고 글을 쓰고 자신들의 프로젝트에 도입하기 시작했고, 특히 David Nolen(ClojureScript 개발자)의 글]이 React가 퍼지는 데에 기여했다.
David Nolen의 2013년 글, Future of Javascript MVCs에는 Immutable 데이터 구조와 React는 좋은 시너지를 낼 것이라고 예측했다. Redux, ImmutableJs, ImmerJs 같은 Immutable한 데이터 구조를 향한 프론트엔드 에코시스템의 성장을 정확히 본 것이다.
If you’re a JavaScript developer, I think taking a hard look at React is a really good idea. I think in the future, coupling React with a persistent data structure library like mori could bring JS applications all the way to the type of flexible yet highly-tuned architecture that Om delivers. While it’s true immutable data structures tend to generate more garbage, we strongly believe modern JS engines are up to the task and the hardware we carry around in our pockets is improving at a rapid clip.

2014-2015, 확장

React의 혁신(변화가 발생할 때마다 View를 갈아끼운다)은 분명 울림은 있었지만, 개발자와 회사에서 React를 도입하기 위해선 더 확실한 지표가 필요했다. **"그래서 React 누가 실제 프로덕션 환경에서 사용하나요?"
외부에 React를 알리고, 헤이터들을 매니아로 바꾸기 위해서 React 개발자들은 컨퍼런스에 발표자로 나가기도 하고, 2014년 7월엔 React London 행사를 열었다.
React London 영상을 보면 React의 철학에 대해 소개하고 사람들을 설득하기 위해 노력하는 게 보인다.
2015년엔 Flipboard가 React 생태계에 기여하기 시작했으며, Netflix에서 React에 대한 글, Netflix Likes React을 발행했고 Airbnb가 React를 사용하기 시작했다. 2015년은 이처럼 이름만 들어도 아는 IT 회사들이 React 개발에 함께 참여하고 생태계에 기여한 해이자, GraphQL, React Native 같은 굵직한 기술들이 발표된 해이기도 하다.
아마도 페이스북 내에서 프로토타입을 기반으로 하는 실험이 React 이후로 폭발적으로 증가하고, 회사도 적극 권장하다 보니 쏟아져 나온 것이 아닐까 생각한다
무엇보다 2015년은 Redux가 탄생한 해이다.

2015 - 현재

The rest is history
어느덧 React가 프론트엔드 생태계를 뒤집어 놓은 지 10년이 되어간다. React 덕분에 나도 개발자로 먹고 살 수 있었으며, 특히 디자인을 하다 개발자로 넘어갈 때에도 큰 어려움 없이 웹 서비스를 만들 수 있었다. 그래서 페이스북은 내게 웹 서비스이기 이전에 프론트엔드의 성지로 여겨지며, 이 짧은 역사 속에서 등장하는 인물들(Jordan Walke, Pete Hunt, Dan Abramov)은 한 번 같이 일해보고 싶은 스타 같은 존재다.
최근에 프론트엔드 십년 주기설? React도 이제 역사의 뒤안길로 보내줘야 할 때가 왔다는 글들이 종종 보인다. React를 5년 넘게 써오는 동안 프론트엔드는 개발 분야에서는 가장 빠른 속도로, 하루가 멀다 하고 새로운 라이브러리가 자신의 모습을 드러내는 곳이 되었다. 변화들을 놓치면 안된다는 강박과 피로가 React에 대한 부정적인 생각으로 이어지는 게 아닐까 조심스럽게 예측해보며, 나는 이 글에서 세상을 바꾼 라이브러리가 어떻게 탄생했고, 어떤 과정으로 지금의 위치에 오르게 됐는지 다뤄보고 싶었다.
기술보다는 역사적인 관점에서 React를 들여다 보았다.