React Native in H2 2021
지난 한 해 동안 우리 세상에는 많은 변화가 있었고, React Native도 예외는 아니었다. 우리 팀에는 새로운 멤버들이 합류했고(얼른 직접 만나고 싶다!), 프로젝트들은 성숙해졌으며 새로운 기회들이 생겨났다. 이 모든 것을 이번 글과 앞으로의 글들을 통해 여러분과 공유하게 되어 기쁘다.
페이스북에서는 팀이 반년 단위로 사이클을 돌며 일한다. 매 반년마다 전략을 검토하고 계획을 세우며 내부적으로 공유한다. 오늘 우리는 커뮤니티를 위해 H2 계획을 공유하고자 한다.
2021년 H2는 React Native에게 흥미로운 시기다. 우리의 주요 관심사는 커뮤니티 육성, 새로운 아키텍처를 오픈소스에 롤아웃하기 시작하는 것, 그리고 기술을 앞으로 나아가게 하는 것이다.
커뮤니티 성공을 위한 준비
React Native의 오픈소스 생태계는 가장 큰 강점 중 하나다. 우리는 커뮤니티와의 협력을 강화하기 위해 다음 영역을 주요 방향으로 설정했다.
커뮤니티 참여 활성화
모두가 같은 방향으로 나아가기 위해, 우리는 지속적으로 비전과 현황을 커뮤니티와 공유한다. 점진적인 진전을 공개적으로 공유하는 것이 아직 익숙하지는 않지만, 이번 기간에는 더 일관된 콘텐츠 일정을 준수하고, 이를 통해 프로세스를 정립해 마찰을 줄이기 위해 노력한다. 업데이트를 공유하는 것 외에도, 이 기회를 통해 커뮤니티의 성과를 보여주고자 한다.
새로운 아키텍처 출시 및 릴리스
H1에는 페이스북 앱 내 모든 React Native 모바일 제품에 새로운 아키텍처를 적용했다. 페이스북은 마켓플레이스 탭이나 데이팅 프로필과 같은 다양한 서피스로 구성되어 있으며, 총 1000개가 넘는 서피스를 마이그레이션했다.
H2에는 이 새로운 아키텍처를 커뮤니티에 공개하기 시작한다. 라이브러리와 애플리케이션을 마이그레이션하는 방법을 담은 플레이북을 준비했다. 이미 인기 있는 React Native 라이브러리를 관리하는 초기 파트너들에게 초안을 공유했다. 이들의 피드백을 받고, 라이브러리 업그레이드를 지원하며, 플레이북과 구현 방식을 개선하는 방법을 배울 예정이다. 작업이 안정화되면 플레이북을 더 널리 공유할 계획이다.
React Native의 릴리스 프로세스 개선에도 집중하고 있다. 새로운 아키텍처를 점진적으로 출시하려면 자주 그리고 안정적으로 릴리스해야 한다. 릴리스 차단 요소를 더 일찍 발견하고, 처리 시간을 줄이는 것이 목표다. 이를 통해 기여자와 개발자에게 부담을 덜면서 예측 가능한 릴리스 일정을 마련할 수 있다.
저장소 건강 상태
개발자가 기술을 평가할 때, 저장소의 건강 상태는 중요한 지표다. 이는 풀 리퀘스트 처리량, 스타 수, 마지막 커밋 시점 등의 정보를 통해 파악할 수 있다. React Native 저장소는 이슈와 풀 리퀘스트가 적시에 검토되도록 보장하는 프로세스가 부족한 상황이었다. 이번 반기 동안 우리는 두 가지 주요 목표를 가지고 작업한다: 첫째는 대기 중인 많은 기여를 처리하는 것이고, 둘째는 새로운 기여를 지속 가능하게 관리할 수 있는 체계를 구축하는 것이다. 우리는 이 작업이 새로운 아키텍처를 사용하기 시작하는 커뮤니티로부터 이슈와 PR을 통해 더 많은 참여를 이끌어내는 데도 도움이 되길 바란다. 대기 중인 작업의 진행 상황은 이 프로젝트 보드에서 확인할 수 있다.
기술의 진보
새로운 아키텍처 기능
앞서 언급했듯이, 새로운 아키텍처가 최근 페이스북 모바일 앱에 적용되었다. 이미 React Native의 성능을 한 단계 끌어올릴 새로운 기능을 개발 중이다. 그중 하나는 React Native에서 Concurrent Rendering을 지원하는 것이다. Concurrent Rendering은 React가 작업을 일시 중지하고 재개할 수 있게 해주며, 터치 제스처와 같은 높은 우선순위의 이벤트에 빠르게 대응할 수 있도록 한다. 또한, Concurrent Rendering을 활용해 화면 밖의 제품 기능을 렌더링할 때 유휴 CPU 자원을 사용하는 것도 기대되는 부분이다. 이를 통해 화면 상의 사용자 인터랙션을 느리게 하지 않으면서도 작업을 효율적으로 처리할 수 있다.
모바일과 그 너머
페이스북에서는 React를 활용해 모바일 경험을 제공하는 데 큰 성과를 거뒀다. 또한 파트너사들도 뛰어난 모바일 제품을 선보이고 있다. 이제 우리는 이러한 성공을 더 많은 플랫폼으로 확장하고자 한다! 다양한 플랫폼을 대상으로 함으로써 새로운 교훈을 얻고 모바일 플랫폼에서의 제공을 더욱 개선할 수 있다고 믿는다. (이에 대한 자세한 내용은 추후 포스트에서 공유할 예정이다.) 흥미로운 소식은 이미 이를 실현하기 위한 첫걸음을 내디뎠다는 점이다!
Messenger 데스크톱
지난 여름, 우리는 모바일을 넘어 더 넓은 영역으로 초점을 확장하기 위해 Microsoft와 협력해 Windows와 macOS에서 React Native 개발 속도를 높였다. Facebook의 Messenger 팀과 협력해 데스크톱에서만 가능한 사용자 경험을 구현하고, 이전 Electron 구현 대비 큰 성능 향상을 달성했다. 우리의 비전은 고품질의 매력적인 네이티브 데스크톱 사용자 경험과 React Native의 뛰어난 개발자 경험을 결합하는 것이다.
Messenger 팀은 데스크톱 플랫폼과 대형 화면의 고유한 기능을 더욱 발휘할 수 있는 새로운 방법을 찾는 등 Messenger 데스크톱 앱을 위한 야심찬 계획을 가지고 있다. 우리는 데스크톱에서 React Native에 더 많은 투자를 통해 이러한 경험을 계속 지원할 수 있게 되어 기쁘게 생각한다.
가상 현실에서의 React Native
오큘러스는 오랫동안 React Native를 사용해 스토어와 같은 핵심 경험을 구현해왔다. 스토어는 사용자가 VR 환경에서 애플리케이션과 게임을 구매하는 공간이다. 올해 하반기에는 React Native와 오큘러스가 협력해 VR에 새로운 흥미로운 경험을 선보일 예정이다. 또한 VR에서 모바일로, 모바일에서 VR로 최적화와 개선 사항을 상호 적용한다. 여기에는 컨트롤러와 같은 새로운 입력 타입부터 메모리 사용 최적화까지, VR의 고유한 요구사항을 지원하기 위해 React Native를 확장하는 작업이 포함된다. 이는 React Native를 활용해 VR을 위한 몰입형 경험을 구축하고 발전시키는 흥미로운 여정의 시작이다.
요약
우리의 H2 계획이 여러분에게도 우리만큼이나 흥미로웠으면 좋겠다. 앞으로 몇 달 동안 더 많은 소식을 공유할 예정이다! 또한 2021년 9월 1일에 열리는 React Native EU에 참석할 예정이다. 이번 행사에서 팀원 Joshua Gross(@joshuaisgross)가 세계에서 가장 큰 React Native 앱의 아키텍처를 어떻게 교체했는지 발표할 예정이다. 아직 등록하지 않았다면 React Native EU에 등록하길 바란다! 그동안 Twitter(@reactnative)에서 우리와 소통하며 이벤트와 로드맵 등 다양한 업데이트를 확인할 수 있다.