개발자 소식으로 돌아가기

개발자와의 만남 - React @ Meta Edition(Vitalii Topoliuk)

2023년 6월 28일제작:Suraj Subramanian

이 문서는 Meta 소프트웨어 엔지니어 Vitalii Topoliuk와 Meta 개발자 성공 멤버인 Sean Keegan이 공동으로 작성하였습니다.

오늘 인터뷰에서는 Meta의 Messenger 데스크톱 앱 팀에서 일하는 소프트웨어 엔지니어인 Vitalii Topoliuk를 모셨습니다. Vitalii의 팀은 컴퓨터에서 직접 문자를 보내고, 전화를 걸고, 연락을 할 수 있는 Messenger의 데스크톱 버전을 개발합니다.

자기소개를 부탁드립니다.

저는 Vitalii Topoliuk이고 Messenger 데스크톱 앱 팀의 소프트웨어 엔지니어입니다. 지난 3년 동안 Messenger 앱의 Windows 및 macOS 버전을 개발해 왔으며, 최근 2년 동안은 React Native를 사용해 왔습니다.

Messenger 데스크톱은 React를 어떤 용도로 사용하나요?

우리 앱은 React Native 프레임워크를 기반으로 합니다.

Meta에서 React를 사용하여 작업했던 프로젝트는 무엇인가요?

Messenger 데스크톱과 여기에서 파생된 프로젝트인 데스크톱용 Work Chat과 데스크톱용 Workrooms입니다.

팀에서 React를 사용하기로 결정한 이유는 무엇이고 React를 사용하고 나서 개발 목표를 달성하는 데 본인과 팀에게 어떤 도움이 되었나요?

우리 앱은 Electron 프레임워크를 기반으로 했는데 처음에는 많은 도움이 되었습니다. 하지만 안타깝게도 Electron의 용량 한계에 상당히 빠르게 도달했고 성능, 안정성 및 효율성(PRE) 요구 사항을 달성하기 위해 많은 투자를 해야 했습니다. 게다가 Electron은 앱의 기능도 제한했습니다.

최근 들어 기쁘거나 자부심을 느낄 만한 성과가 있었나요?

React Native로 전환하고 나서 여러 가지 PRE 이슈를 해결했고 개발자 경험을 상당히 개선했습니다. React Native를 사용한 덕분에 코드베이스의 80%를 다시 사용하고 PRE 지표를 대폭 개선할 수 있었습니다. 3개월 이상 PRE 개선에 주력했던 기존의 Electron 앱보다 추가적인 PRE 투자 없이 앱을 React Native로 옮긴 것만으로 얼마나 성능이 향상되었는지 아래를 보면 알 수 있습니다.

Windows 앱:

충돌 도달 범위: -60%

콜드 시작 성공률: 97%(Electron의 경우 88%)

P90 콜드 시작 지연: -50%

바이너리 용량: -80%

MacOS 앱:

충돌 도달 범위: +59%

콜드 시작 성공률: 99%(Electron의 경우 95%)

P90 콜드 시작 지연: -60%

바이너리 용량: -70%

Meta와 같은 기업에서 React 개발자로 일하면서 특별히 흥미로운 부분이 있나요?

네, Meta에서는 React Native를 사용하여 여러 플랫폼에서 지원되는 데스크톱용 앱을 구현할 수 있다는 것을 커뮤니티에 보여줄 기회가 있습니다.

React의 미래에서 기대되는 점은 무엇인가요?

향후에는 React Native가 Electron을 대체하기를 바랍니다. 하지만 이를 위해서는 더 많은 엔드 투 엔드 프로덕션 도구를 포함하도록 프레임워크를 개선해야 합니다. 예를 들어 Electron은 웹 기반 앱의 셸일 뿐만 아니라 설치 프로그램, 자동 업데이트 프로그램, 충돌 보고 등을 생성하는 도구도 포함합니다.


이 인터뷰에 응해 주신 Vitalii에게 감사드립니다. React를 사용하여 주요 앱을 어떻게 개선하는지와, Meta에서 빌드하는 과정을 통해 배우고, 그 지식을 React 커뮤니티에 다시 기여하는 방식을 알 수 있어 좋았습니다. 여러분께도 유익한 인터뷰가 되었기를 바라며 React가 Meta에서 어디에 어떻게 사용되는지 약간의 인사이트를 얻으셨기를 바랍니다. 이 주제에 대해 Meta 엔지니어를 만나고 그들의 생각을 들어보는 더 많은 인터뷰 블로그를 확인하세요.

개발자와의 만남 소개 - React @ Meta 시리즈

React는 가장 인기 있는 오픈 소스 프로젝트 중 하나이고 최근 몇 년 동안 '가장 사랑받는' 웹 프레임워크에 꾸준히 이름을 올리고 있습니다. Meta에서는 React가 개발자로 하여금 대규모로 사용자 인터페이스를 쉽게 빌드하는 데 도움을 주는 우수한 라이브러리라고 생각합니다. 간단한 웹사이트에서부터 엔터프라이즈 앱에 이르기까지 전 세계적으로 수많은 개발자가 사용하는 React는 누구나 사용할 수 있는 오픈 소스 라이브러리입니다.

이 블로그는 개발자와의 만남 시리즈 중 하나로서, React를 정기적으로 사용하는 Meta 엔지니어를 초대하여 경험을 공유하도록 하고 이들이 빌드하는 멋진 제품에 대한 이야기를 듣고 있습니다. 이 주제에 대해 다른 엔지니어를 만나고 그들의 생각을 들어보는 더 많은 인터뷰 블로그를 확인하세요.

Meta 오픈 소스에 대해 자세히 알아보려면 오픈 소스 사이트를 방문하거나 YouTube 채널을 구독하거나 Twitter, FacebookLinkedIn을 팔로우하세요.