개발자 소식으로 돌아가기

Meta 오픈 소스: 2022년 한 해 돌아보기

2023년 1월 17일제작:Philip Bell

지난 2022년은 전 세계적으로 많은 사람이 인간적 유대와 커뮤니티의 중요성을 새롭게 느끼는 한 해였습니다. 공동 작업자, 사용자 및 조직이 오픈 소스의 영향을 더욱 확대하기 위해 모이면서 이러한 풍조는 Meta에서의 오픈 소스 작업으로 이어졌습니다.

Meta에서 공개한 프로젝트는 차세대 AI를 지원하는 것부터 혁신적이고 사용하기 편리한 웹 앱과 경험을 빌드하는 것에 이르기까지 개발자의 요구 사항과 당면 과제를 다루며, 오픈 소스 커뮤니티는 기술을 공유하고 이를 기반으로 공동 작업을 수행하기 위한 통로를 제공합니다.

이 게시물에서는 Meta 오픈 소스의 핵심 내용이 무엇이고, Meta가 2022년에 오픈 소스 커뮤니티를 빌드하는 데 어떤 도움을 주었는지 살펴봅니다. 또한 Meta와 소속 엔지니어들이 공유한 도구와 코드에 대한 업데이트도 소개합니다. 예를 들어 PyTorch용 주요 개발 사항, React 18의 릴리스, Sapling 소스 관리 클라이언트 도입 등과 같은 소식이 포함되어 있습니다.

섹션 소개:

재단으로의 이동: 개방성, 협업 및 도달 범위 확대

다양한 관점과 기여는 오픈 소스를 강화합니다. 그래서 Meta는 기존의 재단과 협력하여 공동의 목표를 달성할 수 있는 기회를 적극적으로 모색합니다. 재단에서 제공하는 오픈 소스 리소스를 더욱 민주화하고 거버넌스를 확대하기 위해, 지난 한 해 동안 다수의 Meta 프로젝트가 재단으로 이동했습니다.

지난 9월에 새로운 PyTorch 재단이 설립되면서 AI를 위한 PyTorch 프레임워크가 리눅스 재단으로 합쳐졌습니다. 업계 리더가 포함된 위원회는 장기적으로 확장될 계획이며, 기술 관련 비즈니스 및 제품 마케팅은 물론이고 지원 활동까지 관리하는 역할을 맡을 것입니다.

Meta가 2022년 기준으로 아카이브되지 않은 활성 오픈 소스 프로젝트를 1,034건 보유하고 있음을 나타내는 그래픽입니다.

지난해부터 Jest가 OpenJS 재단으로 이동되기 시작했습니다. 이 오픈 소스 프로젝트는 가장 널리 사용되는 JavaScript 테스트 프레임워크 중 하나입니다. 이 재단의 목표에는 새로운 사용자를 위한 프로젝트의 접근성을 개선하고 새로운 기능을 개발하는 것도 포함됩니다.

Meta는 재단에 기부하는 오픈 소스 프로젝트를 더욱 혁신하고자 최선을 다합니다. 2022년에 Meta는 Presto 재단과의 협업을 강화하여 재단의 최우수 회원으로 레벨이 업그레이드되었습니다. 또한 Meta는 PrestoCon Day와 Presto 재단의 첫 번째 대면 컨퍼런스인 PrestoCon을 후원했습니다.

오픈 소스 지원을 통한 영향력 강화

2022년 10월, All Things Open 컨퍼런스에서 팀 사진을 찍기 위해 모인 Meta 오픈 소스 팀원들.

캡션: 지난 10월에 All Things Open에 참여한 Meta 개발자 지원 인력 및 다른 Meta 오픈 소스 팀원들.

Meta 개발자 지원 인력 및 엔지니어들은 1년 동안 효과적인 지원 기회를 모색하였고, 커뮤니티에 속한 전문가와 조직들로부터 배우는 한편 Meta에서 공개한 오픈 소스 프로젝트에 대한 지식을 공유했습니다.

Meta 개발자 지원 인력이 만든 콘텐츠 둘러보기:

Meta 개발자 지원 인력과 오픈 소스 팀원들이 Meta 오픈 소스를 대표하여 All Things Open 10주년 이벤트에 참석했습니다. 이벤트를 시작하기 전에 엔지니어링 디렉터인 Killian Murphy는 Meta가 어떻게 오픈 소스 공동 작업자에 대한 장벽을 낮추고 모든 사람에게 오픈 소스를 제공하기 위해 노력하는지에 대해 발표했습니다. Meta는 오픈 소스로 공개한 기술을 사용하고 이에 기여하고자 하는 모든 사람을 환영하는 데 있어 좋은 본보기가 되고자 최선을 다하고 있습니다.

"오픈 소스 커뮤니티의 규모가 그 어느 때보다 커진 지금, Meta는 오픈 소스가 포용성을 더 키우고 더 많은 지원을 제공할 잠재력에 대해 낙관하고 있습니다"라고 적힌 그래픽입니다. Killian Murphy, 엔지니어링 디렉터

또한 Meta 오픈 소스 팀은 All Things Open에서 Meta 프로젝트에 대한 인식을 확대하고 연구 분야와 산업계에서 관련 기술을 사용하는 개발자를 만나기 위한 부스 운영을 지원했습니다. 또한 개발자 지원 인력과 엔지니어들이 이벤트 발표자로 참여했습니다.

2022년 All Things Open의 개발자 지원 인력팀의 발표 살펴보기:

Meta 리눅스 커널팀의 블로그 게시물에 이들의 지속적인 연구 개발 노력이 나와 있습니다. 이 게시물에는 리눅스 커뮤니티에 참여하는 방법이 포함되어 있습니다. 보다 규모가 큰 Meta 커널팀에 속한 11명이 2022년 Linux Plumbers Conference에서 발표했습니다. 이벤트 웹사이트에서 전체 발표 리스트를 확인할 수 있습니다. 또한 이 팀에서는 컨퍼런스에서 발표했던 여러 Meta 엔지니어가 참여한 Meet the Developers 시리즈도 공개했습니다. 이 시리즈에서는 Meta의 BPF 네트워킹 후크 및 사용자 경험 개요, 규모에 따른 커널 라이브 패치 등의 주제를 다룹니다.

2022년에 Meta에서 252개의 신규 오픈 소스 프로젝트와 리포지토리를 공개했음을 보여주는 그래픽.

Meta 리눅스 커널팀은 Meta에서의 커널 사용을 개선하고 커뮤니티 전체의 건전성을 향상하는 방식으로 커널의 방향성을 지원합니다. 이들은 업스트림 리눅스 커널 커뮤니티와 긴밀히 협력하여 프로젝트가 포함 업스트림 및 랜드 업스트림 커널을 우선하도록 설계합니다.

Meta 오픈 소스 블로그에 공개된 Hasher-Matcher-Actioner Contributor’s Story에서는 MLH 펠로우십을 받은 Franklin PhanSamyak Mehta의 성과를 설명합니다. Meta는 GitHub 및 Major League Hacking과 파트너십을 맺고 이 펠로우십을 지속적으로 지원했습니다.

Meta Contributor’s Story 시리즈에서는 커뮤니티 참여에 관한 모범 사례와 더불어 성공적인 오픈 소스 기여 경험과 극복해야 할 과제를 공유했습니다. 2022년 블로그 게시물 둘러보기:

오픈 소스 커뮤니티에서 VR/AR을 위한 모멘텀 구축

메타버스는 새롭고 혁신적인 방식으로 사람들이 모이고 상호작용할 수 있는 장소가 되고자 합니다. 모두에게 성공적인 메타버스를 구현하기 위해서는 다양한 아이디어를 포함하면서도 강력한 커뮤니티를 기반으로 해야 합니다.

"함께 구축한다"는 정신을 뿌리로 삼는 오픈 소스 커뮤니티는 메타버스를 형성할 중요한 대화를 이끌어 가는 데 도움이 되는 자연스러운 출발점이며, Meta 개발자 지원 인력들이 이 대화에 참여했습니다. Navyata Bawa는 6월에 개최된 Global Women in Tech Network Conference에서 “VR에서 포용성 강화” 시리즈를 이어갔으며, VR/AR에 대한 연구가 발전함에 따라 접근성과 포용성을 갖춘 VR 앱을 빌드하는 방법에 대해 살펴보았습니다.

Stack Overflow 팟캐스트 에피소드 “Meta의 VR 개발 방법”에서 개발자 지원 인력 관리자 Cami Williams는 Reality Labs가 React 커뮤니티로부터 배우고 이 커뮤니티와 연결하는 다리 역할을 하는 방법을 공유하고 VR 개발을 시작하기 위한 도구와 리소스도 몇 가지 소개했습니다.

"안에서부터 다양성을 빌드하세요. 사용자와 게임 테스터뿐만 아니라 개발자들 사이에서요. 그래야만 다양한 삶의 경험을 통해 배움으로써 대규모 타겟을 정확하게 대표하고 이들을 수용하는 앱을 설계할 수 있을 것입니다"라고 적힌 그래픽입니다. Navyata Bawa, 개발자 지원 인력, Reality Labs

Meta는 커뮤니티의 입지를 확장하고 VR 에코시스템 내에서 창작할 수 있는 도구를 제공하려는 노력의 일환으로 Quest 쇼케이스 샘플을 GitHub에 공개했습니다. 이러한 도구를 널리 알리는 데 도움을 주기 위해 Bawa는 Oculus Platform SDK 및 Unity SharedSpaces 샘플을 위한 “멀티플레이어 VR 경험 빌드” 시리즈와 Interaction SDK 및 First Hand 샘플을 위한 “VR을 위한 직관적인 상호작용 빌드” 튜토리얼을 제작했습니다.

오픈 소스의 여름: 가상 현실의 발전” 블로그 게시물에서는 Meta가 이 분야에서 이룬 최신 혁신을 몇 가지 소개하고 The Diff 에피소드 14에서 진행한 소프트웨어 엔지니어 Eric Le Saux와의 인터뷰를 실었습니다. Meta 개발자와의 최신 대화와 이 분야의 튜토리얼 및 리소스에 대한 자세한 내용은 AR & VR 재생 목록을 확인하세요.

AI/ML의 발전

2022년은 PyTorch와 연구자부터 크리에이터까지 모든 사람을 지원하도록 설계된 Meta AI의 신규 모델에 중요한 한 해였습니다. Meta가 AI 모델의 훈련, 최적화, 배포를 발전시킨 몇 가지 방법을 소개합니다.

PyTorch 업데이트

PyTorch 2.0은 PyTorch 재단(리눅스 재단 산하)으로 옮긴 후, 12월에 뉴올리언스에서 개최된 PyTorch Conference에서 소개되었습니다. 컨퍼런스에서 공유된 수치를 통해 2022년에 PyTorch와 커뮤니티가 얼마나 성장했는지 알 수 있었습니다(AI 연구 구현의 63%가 PyTorch 사용을 선택). GitHub 데이터에 따르면 PyTorch를 사용하는 GitHub 리포지토리의 수가 전년 대비 45% 증가했습니다.

PyTorch 2.0은 사용자가 이미 익숙하고 즐겨 사용하는 PyTorch 경험을 그대로 유지하면서 컴파일러 성능을 개선하기 위한 다년간의 연구가 반영된 결과물입니다. 업데이트에는 torch.compile을 사용한 한 줄 코드로 속도 향상, 구버전과의 완벽한 호환, Python으로만 구성된 컴파일러 등이 포함됩니다.

Meta 개발자 지원 인력과 공동 작업자가 소개하는 2022년 PyTorch 콘텐츠 자세히 알아보기:

Meta AI 모델의 새로운 마일스톤 달성

모델 훈련과 최적화 프레임워크는 인간의 기술을 보완하는 방식으로 실제 작업을 수행할 수 있는 AI 모델을 창조하는 데 도움이 됩니다. 이러한 상호성은 언어 번역을 통해 입증됩니다. AI 모델은 소수의 사람들이 사용하는 언어까지도 포함하여 수백 가지 언어를 학습할 수 있습니다. 2022년에 Meta AI는 200가지의 서로 다른 언어를 우수한 결과로 번역하는 No Language Left Behind AI 모델과 더불어 평가 데이터 세트와 각 오픈 소스 코드를 공개했습니다. 이러한 오픈 소스 활동은 중요한 문서를 번역하고 리소스가 적은 언어를 보존하도록 모델을 개선하는 데 도움이 될 수 있습니다.

2022년에 공개 Meta 리포지토리에 186,210회 커밋이 이루어졌음을 나타내는 이미지. 159,723회는 내부에서 발생하고 26,487회는 외부에서 발생했습니다.

Meta는 복잡한 자연어 전략 게임 Diplomacy에서 인간 수준의 성과를 달성한 최초의 AI 에이전트인 CICERO를 오픈 소스로 공개했습니다.* 언어 모델에 계획 및 강화 학습 알고리즘을 통합한 덕분에 CICERO는 게이머의 동기 부여 요소를 추론하고 전략을 세운 뒤 언어를 사용하여 합의에 도달함으로써 공동의 목표를 달성하고 연합을 형성하고 계획을 조율하는 능력을 얻게 되었습니다. 이 밖에도 AI와 오픈 소스 분야에서 많은 변화가 있었으며, AI와 관련된 자세한 정보는 Meta AI 블로그에서 확인할 수 있습니다.

2022년 Meta AI의 다른 발전 소식 둘러보기:

* Diplomacy의 모든 권리는 Hasbro, Inc.의 소유입니다.

웹/모바일 분야의 React 18 및 기타 업데이트

Jest OpenJS 재단으로 이동한다는 소식이 있고 난 이후, Jest 29가 8월에 릴리스되었습니다. 이 프로젝트는 2022년 하반기에 GitHub에서 40,000개가 넘는 별점을 받았습니다. 웹과 모바일 분야에서 일어난 또 다른 중요한 변화는 공개 React 18 실무 그룹의 지원을 받아 React 18이 출시되었다는 것입니다. 여기에는 추가적인 기능 및 지원 API와 함께 동시성 렌더링에 대한 업데이트가 포함됩니다. 효과 문서빠른 시작을 비롯하여 릴리스와 함께 공개된 React Docs Beta 업데이트 활동에 대해 알아보세요.

9월에는 Meta의 React Technologies 팀이 React Native Core Contributor Summit에서 주요 공동 작업자와 라이브러리 유지 관리자를 만났습니다. 서밋에서는 React Native와 Metro 에코시스템의 현재와 미래에 대해 살펴보는 논의를 진행하였고 참석자들은 React Native 에코시스템을 개선하기 위한 능동적 이니셔티브를 수립했습니다.

2022년에 Meta 오픈 소스 프로젝트의 총 공동 작업자 수가 7,353명임을 나타내는 이미지. 내부 공동 작업자는 3,727명, 외부 공동 작업자는 3,626명입니다.

Meta에서 웹 및 모바일용으로 오픈 소스로 공개한 기타 프로젝트 중 Js-flipper는 JavaScript 앱에 Flipper 클라이언트를 노출하고 개발자들이 새로운 Flipper 플러그인을 손쉽게 생성하거나 기존 플러그인을 재사용하도록 하는 NPM 패키지입니다. 또 다른 프로젝트인 MemLab은 메모리 누출 탐지를 자동화하는 JavaScript 메모리 테스트를 제공합니다.

마지막으로 Meta 개발자들은 오픈 소스 웹 및 모바일 기술로 빌드하는 방법과 이를 대상으로 빌드하는 방법에 대한 인사이트를 공유했습니다. 어떤 블로그 게시물은 Hermes 버그 신고에 대해 조사하였고 대응 팀이 어떻게 이 신고를 통해  Hermes 내에서 Doom의 1993년 버전을 실행한 익스플로잇을 프로그래밍했는지 알아보았습니다. 또 다른 게시물에서는 Android에서 Facebook 앱 내 브라우저 사용자에게 더 나은 경험을 제공하는 새로운 Chromium 기반 웹 보기를 소개했습니다.

개발자와의 만남: 모바일 에디션 시리즈 둘러보기:

개발자 도구: 소스 관리, 문서화 도구 및 기타 개선 사항

Meta 개발자는 사내에서 빌드한 오픈 소스 도구를 사용하여 인프라를 지원합니다. 많은 경우 이들 도구는 Meta에서 일상적인 작업을 진행하는 동안 테스트 및 개선을 거쳐 규모와 속도에 대한 고유한 문제를 해결해주는 오픈 소스 프로젝트로 발전합니다.

2022년에 Sapling 팀은 새로운 Git 호환 소스 관리 클라이언트를 출시했습니다. Sapling은 사용성과 규모를 고려한 소스 관리 시스템으로, Meta 개발자가 10년 이상 다듬어 온 기술을 공유함으로써 이 분야에서 추가적인 연구를 장려하고 개발자들에게 소스 관리 시스템의 잠재적 미래를 보여주는 것을 목적으로 합니다. 8월에는 성능이 우수한 고정 사이트 생성기인 Docusaurus 2.0이 릴리스되었고 React 사용과 웹사이트 지원이 문서화 이상으로 확대되었습니다.

"2022년에 Meta 오픈 소스는 GitHub에서 133,854개의 별점을 추가로 얻어 별점을 준 사용자 수가 총 1,563,562명에 도달했습니다"라고 적힌 그래픽입니다.

그 외에도 새로운 Android용 교착 상태 탐지 도구가 출시되었고 Cinder에 지연된 가져오기가 추가되었으며, 차세대 OpenStreetMap 편집기 RapiD 2.0 미리 보기가 공개되었습니다. 또 다른 프로젝트인 Hermit에서는 실용적인 결정론적 운영 체제를 소개하여 개발자들이 불안정한 테스트와 같은 문제를 해결하고 암시적 입력(예: 스레드 일정 관리, 난수 생성)을 제어할 수 있도록 했습니다.

좀 더 포괄적인 내용을 다룬 게시물 중 하나는 상당수가 오픈 소스로 공개된 Meta 개발자 도구가 개발자 워크플로의 일부로서 함께 작동하는 방식에 대해 공유했습니다. 여기에는 Buck 빌드 시스템, SuperConsole, EdenFS(Sapling과 긴밀하게 통합된 파일 시스템), Jest 테스트 프레임워크와 기타 도구와 같은 프로젝트가 포함됩니다.

2022년에 공개된 개발자 도구와 관련된 추가 아티클과 릴리스에 대해 알아보세요.

데이터: Velox, Presto 및 RocksDB 관련 업데이트

오픈 소스 C++ 라이브러리 Velox가 2022년 8월에 공개되었습니다. Velox는 데이터 엔진에 사용되는 에너지를 낮추고 성능을 향상한 혁신적 라이브러리입니다. 이 라이브러리는 네이티브 실행을 사용하며, Meta에서 통합 실행 엔진 계층으로서 여러 도구와 통합되고 있습니다.

Velox는 코드 유지 관리를 대폭 낮추고 다양한 사용 사례에서 성능을 2배에서 10배까지 향상하도록 설계되었습니다. Velox 커뮤니티의 성장과 Velox가 빅데이터 엔진과 데이터베이스에서 데이터 쿼리를 실행하는 방법을 혁신적으로 리팩터링한 비결을 VLDB 2022에 공개된 “Velox: Meta의 통합 실행 엔진” 논문에서 확인해 보세요.

작년에만 GitHub의 Presto 오픈 소스 프로젝트가 21건의 릴리스를 했고 새로운 별점을 2,000개 가까이 받았으며, 새로운 포크가 600건, 새로운 공동 작업자가 152명이 생겨났습니다. Presto 재단은 첫 번째 대면 이벤트인 PrestoCon을 캘리포니아주 마운틴뷰의 컴퓨터 역사박물관에서 개최했습니다. Tim Meehan이 TSC 의장으로서 키노트를 발표하였고 Philip Bell이 내년에 Presto가 나아갈 방향에 대해 발표했습니다.

12월에는 RocksDB 팀이 멘로 파크에 있는 Meta 본사에서 연례 대면 모임을 재개했으며 Meta 엔지니어와 외부 공동 작업자가 참여해 프로젝트와 관련된 사용 사례, 새로운 혁신, 포부를 논의했습니다.

보안 및 하드웨어

보안과 하드웨어는 개발자의 작업을 지원하는 데 중요한 역할을 합니다. 디버깅 도구에서 네트워킹 하드웨어에 이르기까지, Meta 오픈 소스는 시스템과 코드가 안정적이고 안전하며 신뢰할 만하도록 보장하는 데 도움을 줄 수 있습니다.

2022년 초에는 공동 작업자 스토리에서 Pysa(Pyre-check 프로젝트에 속한 Python 고정 분석 도구)에 대한 연구를 공유했습니다. 이 스토리에서는 건강한 오픈 소스 커뮤니티의 구축이 어떻게 Pysa와 같은 프로젝트의 성공에 직접적인 영향을 미치는지(Pysa의 경우, 코드의 보안 향상)에 대해 집중적으로 다루었습니다.

하드웨어와 관련해서는 Meta의 네트워크와 데이터 센터 전반에 걸쳐 정밀 시각 프로토콜이 배포되었습니다. 이 기술은 분산 시스템에서 시계 동기화의 정확도와 정밀도를 한 차원 끌어올립니다. 오픈 컴퓨팅 프로젝트와 함께, 이 프로토콜을 지원하도록 설계된 하드웨어와 소프트웨어는 모두 업계 도입을 지원하기 위해 오픈 소스로 공개되었습니다.

2022년에 Meta는 WhatsApp 및 Messenger와 같은 제품 내에서 오픈 소스 공개 작업을 이어갔습니다. 3월에 오픈 소스로 공개된 코드 검증은 웹 페이지의 코드가 조작되거나 변경되었는지 여부를 시각화하여 개발자들이 WhatsApp 웹과 Messenger에서 코드 무결성을 보호할 수 있는 브라우저 확장 기능입니다.

오픈 소스 커뮤니티에 대한 감사말

이 게시물에서는 2022년에 있었던 1,000개 이상의 Meta 오픈 소스 프로젝트와 업데이트 중 일부를 소개했습니다. 이러한 오픈 소스 프로젝트에 대한 자세한 내용을 확인하려면 Meta 오픈 소스 웹사이트를 방문하고 Meta의 Facebook, Instagram, TwitterLinkedIn 계정을 팔로우하세요. 오픈 소스 프로젝트에서 Meta와 협력하는 공동 작업자, 사용자, 조직, 파트너 커뮤니티에 깊은 감사를 드립니다.

Meta는 오픈 소스가 전 세계에서 혁신의 속도를 가속화한다고 생각합니다. Meta의 코드, 스택은 물론이고 하드웨어 설계까지 공유함으로써 다른 기업과 개인이 당사의 솔루션을 사용하여 더 빠르게 확장하고 우수한 제품을 빌드할 기회를 제공하고 업계를 발전시키고자 합니다.

이 게시물은 Meta 개발자 지원 인력 Dmitry Vinnik, Suraj Subramanian 및 Cami Williams와의 협업을 통해 작성되었습니다.