Kangaroo: 수십억 개의 작은 객체를 효율적으로 캐싱하는 플래시 캐시

2025-05-22
Kangaroo: 수십억 개의 작은 객체를 효율적으로 캐싱하는 플래시 캐시

페이스북과 카네기멜론대학교는 수십억 개의 작은 객체(약 100바이트 이하)를 효율적으로 캐싱하도록 설계된 새로운 플래시 캐시인 Kangaroo를 공동 개발했습니다. Kangaroo는 기존 플래시 캐시 설계의 한계를 해결하여 DRAM 사용량과 쓰기 증폭을 최소화합니다. 페이스북의 오픈소스 캐싱 엔진인 CacheLib에 구현되어 있어 쉽게 통합할 수 있습니다. 페이스북과 트위터의 운영 데이터를 사용한 테스트 결과, Kangaroo는 캐시 미스를 29% 줄이고 백엔드 스토리지의 부하를 크게 줄이는 것으로 나타났습니다. 이는 소셜 미디어와 같이 많은 수의 작은 객체를 처리하는 애플리케이션에 매우 효과적입니다.

더 보기

Meta, Rust 기반 Python 타입 체커 Pyrefly 오픈소스로 공개

2025-05-17
Meta, Rust 기반 Python 타입 체커 Pyrefly 오픈소스로 공개

Meta는 Rust로 구축된 오픈소스 Python 타입 체커 및 IDE 확장 프로그램인 Pyrefly의 알파 버전을 출시했습니다. Pyrefly는 Python 코드의 타입 일관성을 개선하고 런타임 전에 오류를 조기에 감지하는 것을 목표로 합니다. IDE 통합 및 CLI 사용을 지원하며, 성능과 타입 추론을 우선시하여 주석이 없는 코드에서도 효율적으로 작동합니다. Meta의 Pyre를 발전시킨 Pyrefly는 더욱 강력하고 확장성 높은 타입 체커를 목표로 하며, Python 커뮤니티와 협력하여 Python 타입 시스템을 개선하고 있습니다.

더 보기
개발

WhatsApp의 개인 정보 처리: 엔드투엔드 프라이버시를 갖춘 AI

2025-05-02
WhatsApp의 개인 정보 처리: 엔드투엔드 프라이버시를 갖춘 AI

WhatsApp은 안전하고 기밀이 보장되는 환경에서 AI를 이용한 메시지 처리를 가능하게 하는 선택적 기능인 개인 정보 처리 기능을 공개했습니다. 신뢰 실행 환경(TEE)을 활용하여 사용자는 메시지 요약과 같은 AI 기능을 요청할 수 있지만, Meta나 WhatsApp은 사용자 데이터에 접근할 수 없습니다. 선택성, 투명성, 사용자 제어라는 원칙에 기반하여 구축되었으며, 기밀 처리, 검증 가능한 투명성, 비대상화와 같은 강력한 보안 조치가 시행됩니다. WhatsApp은 개인 정보 처리 구성 요소를 공개하고 버그 바운티 프로그램을 확대하여 독립적인 보안 연구를 장려하고 사용자 개인 정보 보호를 최우선으로 보장합니다.

더 보기
개발

Meta의 Strobelight: 15,000대 서버를 절약하는 프로파일링 오케스트레이터

2025-03-07
Meta의 Strobelight: 15,000대 서버를 절약하는 프로파일링 오케스트레이터

Meta는 대규모 서버 시스템의 효율성을 높이기 위해 여러 기술(대부분 오픈소스)을 통합한 강력한 프로파일링 오케스트레이터인 Strobelight를 공개했습니다. Strobelight는 단일 프로파일러가 아니라 CPU 사용률, 메모리 할당 등 다양한 성능 지표를 수집하는 여러 프로파일러를 조정하는 시스템입니다. Scuba와 Tracery와 같은 도구를 통해 시각화되며, Strobelight는 연간 15,000대 서버에 해당하는 막대한 비용 절감을 이미 달성했습니다. 코드 한 줄의 간단한 변경(& 기호 추가)으로 이러한 놀라운 결과를 얻었습니다. Strobelight는 효율적인 eBPF 기술, 유연한 사용자 지정 프로파일러, 자동 데이터 수집, 동적 샘플링 등을 활용합니다.

더 보기

Meta의 Glean: 대규모 코드 인덱싱 시스템

2025-01-01
Meta의 Glean: 대규모 코드 인덱싱 시스템

Meta는 효율성과 확장성을 중시하여 설계된 오픈소스 코드 인덱싱 시스템인 Glean을 공개했습니다. Glean은 소스 코드에서 정보를 수집하여 Angle이라는 유연한 쿼리 언어를 통해 개발자 도구에 제공합니다. 혁신적인 증분 인덱싱을 통해 대규모 코드베이스의 과제를 해결하고 코드 탐색, 검색, 문서 생성 등의 기능을 구현합니다. Glean의 다용도성은 다양한 언어와 사용자 정의 데이터 스키마를 지원하여 개발자에게 귀중한 자산이 됩니다.

더 보기

Meta, Haskell을 사용한 대규모 스팸 방지

2024-12-22
Meta, Haskell을 사용한 대규모 스팸 방지

스팸과 멀웨어 방지에 중요한 역할을 하는 Meta의 Sigma 시스템은 2년간의 전면적인 개편을 거쳐 새롭게 탄생했습니다. 이 시스템은 대규모 프로덕션 시스템에서는 드문 선택인 Haskell로 다시 작성되었으며, 초당 백만 건 이상의 요청을 처리할 수 있게 되었습니다. Haskell로의 전환을 통해 순수 함수형 및 강력한 타입 지정 특성을 활용하고, Haxl 프레임워크를 통해 데이터 페치의 자동 배치 처리 및 병렬 처리가 가능해졌습니다. 이전 FXL 기반 시스템과 비교하여 처리량이 20~30% 향상되었습니다. 이 프로젝트는 GHC 컴파일러에 대한 상당한 기여를 통해 여러 버그를 수정했습니다.

더 보기
개발 스팸 방지

Meta의 대규모 Java에서 Kotlin으로의 마이그레이션: 수백만 줄의 코드 극복

2024-12-22
Meta의 대규모 Java에서 Kotlin으로의 마이그레이션: 수백만 줄의 코드 극복

Meta는 방대한 Android 코드베이스를 Java에서 Kotlin으로 마이그레이션하기 위해 수년간 노력해 왔습니다. 이 게시물에서는 Meta가 Kotlinator라는 자동화 도구를 구축하여 빌드 속도 저하 및 부족한 린터와 같은 과제를 극복하고 코드의 절반 이상을 성공적으로 변환한 방법을 자세히 설명합니다. Kotlinator는 사전 처리, 헤드리스 J2K 변환, 사후 처리, 오류 수정 등 여러 단계로 구성됩니다. Meta는 JetBrains와도 협력하여 J2K를 개선하고 커뮤니티 협업을 촉진하기 위해 프로세스의 일부를 오픈소스로 공개했습니다. 이 기사에서는 null 안전성 처리 및 변환 중 발생한 다양한 코드 문제와 해결책에 대해 중점적으로 설명합니다.

더 보기