React Native: 모던 웹 기술을 모바일로 가져오다
React를 세상에 소개한 지 2년이 지났다. 그동안 Facebook 내외에서 React의 성장은 놀라웠다. 오늘날 Facebook에서는 아무도 React를 강제로 사용하지 않지만, 새로운 웹 프로젝트는 다양한 형태로 React를 활용해 구축된다. 또한 React는 업계 전반에서 널리 채택되고 있다. 엔지니어들은 매일 React를 선택한다. React가 프레임워크와 싸우는 시간을 줄이고 제품에 집중할 수 있게 해주기 때문이다. 하지만 React로 구축을 시작한 지 한참이 지나서야, 우리는 React가 왜 이렇게 강력한지 이해하기 시작했다.
React는 애플리케이션을 개별 컴포넌트로 분리하도록 강제한다. 각 컴포넌트는 단일 뷰를 표현한다. 이 컴포넌트 덕분에 제품을 반복적으로 개선하기가 쉬워진다. 전체 시스템을 머릿속에 담아두지 않고도 일부를 변경할 수 있기 때문이다. 더 중요한 것은 React가 DOM의 명령형 API를 선언형 API로 감싸 추상화 수준을 높이고 프로그래밍 모델을 단순화한다는 점이다. React로 구축할 때 코드가 훨씬 예측 가능해진다는 사실을 발견했다. 이 예측 가능성은 빠르고 자신 있게 반복할 수 있게 해주며, 결과적으로 애플리케이션의 신뢰성이 크게 향상된다. 또한 React로 구축된 애플리케이션은 확장하기 쉬울 뿐만 아니라, 팀 규모를 확장하는 것도 더 쉽다는 것을 알게 되었다.
웹의 빠른 반복 주기와 함께 React로 Facebook.com의 많은 컴포넌트를 포함한 멋진 제품들을 구축할 수 있었다. 또한 React 위에 Relay와 같은 훌륭한 프레임워크를 자바스크립트로 구축했다. Relay는 대규모 데이터를 가져오는 작업을 크게 단순화한다. 물론 웹은 이야기의 일부일 뿐이다. Facebook은 널리 사용되는 Android와 iOS 앱도 보유하고 있다. 이 앱들은 분리된 독점 기술 스택 위에 구축되었다. 여러 플랫폼 위에 앱을 구축해야 하는 것은 엔지니어링 조직을 분리시키는 한 가지 문제일 뿐이며, 네이티브 모바일 애플리케이션 개발을 어렵게 만드는 여러 요소 중 하나이다.
이 글은 발췌문이다. 전문은 Facebook Code에서 확인할 수 있다.