당신의 마우스는 데이터베이스: 비동기 데이터 스트림과 Rx

2025-04-10

이 글에서는 Rx(Reactive Extensions)를 사용하여 비동기 데이터 스트림을 처리하는 방법을 탐구합니다. 저자는 현대 웹 및 모바일 애플리케이션이 비동기 및 실시간 데이터 스트림에 크게 의존하고 있으며, Rx가 이러한 스트림을 조정 및 오케스트레이션하기 위한 우아한 방법을 제공한다고 주장합니다. 기존 데이터베이스 기술과 Rx를 비교하여 Rx가 비동기 계산을 퍼스트 클래스 시민으로 어떻게 처리하는지, 그리고 효율적인 데이터 스트림 구성 및 변환을 위해 유창한 API를 사용하는 방법을 설명합니다. 마지막으로, 저자는 간단한 Ajax 자동 완성 예제를 사용하여 Rx의 강력한 기능을 보여주고, Rx와 모나드의 관계를 간략하게 언급합니다.

더 보기
개발

50년간의 오픈소스 소프트웨어 공급망 보안: Multics부터 xz 공격까지

2025-04-07

이 글에서는 지난 50년간 오픈소스 소프트웨어 공급망 보안이 직면한 과제를 살펴봅니다. 1974년 Multics 시스템 보안 평가에서 발견된 잠재적인 백도어부터 2024년 xz 압축 라이브러리 백도어 공격까지 문제는 여전히 지속되고 있습니다. Go 프로그래밍 언어의 핵심 개발자인 Russ Cox는 자신의 경험과 업계 사례를 바탕으로 소프트웨어 공급망 공격 및 취약성의 정의, 소프트웨어 공급망의 복잡성, 방어 강화 방법에 대해 논의합니다. 여기에는 소프트웨어 인증, 재현 가능한 빌드, 취약성의 신속한 발견 및 수정, 취약성 예방 전략 등이 포함됩니다. 이 글에서는 오픈소스 소프트웨어의 자금 부족 문제를 강조하고 xz 공격을 예로 들어 악의적인 행위자에 대한 프로젝트의 취약성을 설명합니다. 결론적으로 저자는 진화하는 위협에 대처하기 위해 오픈소스에 대한 자금 지원 증가와 보안 강화를 촉구합니다.

더 보기
기술

AWS의 시스템 정확성: 공식 및 준공식 방법 활용

2025-04-01

Amazon Web Services(AWS)는 고객이 완전히 신뢰할 수 있는 안정적인 서비스를 제공하기 위해 노력하고 있습니다. 이를 위해서는 보안, 내구성, 무결성, 가용성에 대한 최고 수준의 표준을 유지해야 하며, 시스템 정확성이 이러한 우선 순위 달성의 초석입니다. 초기에는 중요한 시스템 모델링에 TLA+ 언어를 사용하여 개발 초기 단계에서 미묘한 버그를 식별하고 제거했습니다. 성장과 함께 AWS는 개발자에게 더욱 사용자 친화적인 상태 머신 언어인 P 언어를 도입하여 Amazon S3의 강력한 일관성으로의 마이그레이션 등 분산 시스템의 모델링 및 분석에 사용했습니다. 또한 속성 기반 테스트, 결정적 시뮬레이션, 퍼징과 같은 경량 방법도 광범위하게 사용됩니다. 또한 시스템의 견고성을 강화하기 위해 FIS(Fault Injection Service)를 출시했습니다. 중요한 보안 경계에 대해서는 Cedar 및 Firecracker의 개발에서 볼 수 있듯이 공식 증명을 사용하여 정확성을 보장합니다. 이러한 다각적인 접근 방식은 안정성을 보장할 뿐만 아니라 성능 최적화 및 비용 절감으로 이어집니다.

더 보기