Async Solid: Fetch High, Block Low : 곧 릴리스될 Solid 2.0이 비동기 처리를 다루는 방식을 설명하는 첫 번째 글이다. 비동기 데이터를 다룰 때는 보통 상위 컴포넌트가 렌더링된 뒤 네트워크 요청이 시작된다. Solid는 컴포넌트 트리 상단에서 fetch를 시작해(Fetch High) UI를 구성하는 동안 네트워크 요청을 처리하고, 데이터가 필요한 UI까지 대기를 최대한 늦출 수 있도록 지원한다(Block Low). (영어)
Intent to Ship: JPEG XL : 2020년대 새로운 이미지 포맷으로 AVIF와 JPEG XL이 있다. Firefox는 2021년에 AVIF를 지원했고 이제 JPEG XL 출시 계획을 발표했다. JPEG XL은 프로그레시브 렌더링이 가능해 전체를 로드하지 않아도 이미지를 어느 정도 보여 줄 수 있고, 화질 손실 없이 JPEG를 압축할 수 있다. (영어)
Running a Software Factory Efficiently at Uber Scale : Uber에서 AI 코딩 비용을 엔지니어링으로 해결해서 사용량을 7배 늘리면서 단위 비용은 절감하고 출력 품질은 유지했다. 비용 구조를 파악하고 측정 방법을 만들 뒤에 기본 모델을 선택하고 토큰/요청을 최적화했다. 프롬프트를 캐싱하고 MCP 도구를 CLI로 이용했으며, Code Mode로 토큰 사용을 최적화하고 내부 정보를 쉽게 찾을 수 있도록 AI 컨텍스트 그래프를 개발했다. (영어)
Origin 코드 호스팅 : 기존에 예고한 대로 Cursor가 코드 호스팅 기능인 Origin을 유료 플랜 사용자에게 베타로 순차 출시한다고 발표했다.(한국어)
Projects in Buzz : Block에서 사람과 AI 에이전트가 함께 활동할 수 있는 채팅 앱으로 공개한 Buzz의 실험 기능인 Projects를 소개한다. 프로젝트에서 Git 저장소를 제공하고 Pull Request와 이슈를 관리할 수 있으며, 에이전트에게 이런 작업을 맡기고 어떤 활동이 있었는지 볼 수 있다. (영어)
모든 규모의 Git : Git은 운영하기 쉬워 보일 수 있지만, 분산형이라는 특성 때문에 대규모 운영은 쉽지 않다. Git은 서버에서는 어떻게든 운영할 수 있지만, 네트워크로 주고받을 때는 packfile을 사용해야 한다. 이전에 분산 해시 테이블로 최적화하는 JGit의 방법도 packfile의 성능 한계로 사용할 수 없었다. GitHub도 처음에는 분산 파일 시스템을 사용했지만 곧 한계에 이르렀다. 2013년에 공개한 Spokes는 데이터를 NVMe 디스크에 저장하고 Git 자체를 분산하지 않은 채 복제본을 만들어 3단계 커밋으로 동기화한다. 오랫동안 잘 사용됐지만, 현재는 다시 한계에 부딪히고 있다. Cursor에서는 Spokes에서 배워서 Continuity라는 Git 스토리지 시스템을 만들었다. Continuity는 S3 호환 객체 스토리지에 WAL을 기록해 Push를 선형적으로 처리한다. Spokes처럼 로컬 디스크에 NVMe를 쓰지만, Spokes와 달리 리포지토리를 추적하거나 합의할 필요가 없고 S3를 이용해 무한히 복제할 수 있다. (한국어)
Twenty Years of S3: How It Became the Default Persistence Layer for Modern Data Infrastructure : 오브젝트 스토리지 기반 옵저버빌리티 데이터베이스인 GreptimeDB를 만든 Dennis Zhuang이 S3의 발전 과정을 정리한 글이다. 2006년에 등장한 S3는 계속 기능을 추가해 왔다. 2020년에는 강한 일관성을 도입했고, 2023년에는 Express One Zone 지원과 Mountpoint for S3로 지연 시간 문제도 해결했다. 다만 NVMe와는 여전히 거리가 멀었다. 2024년에는 조건부 쓰기가 도입돼 원자적 직렬화를 수행할 수 있게 됐고, Cursor의 Continuity도 이를 사용한다. 20년 동안 S3가 디스크만큼 빨라진 것은 아니지만, 데이터 인프라 시스템이 S3를 source of truth로 사용할 만큼 발전했다. (영어)
Simulating Real Workloads with valkey-benchmark : Valkey는 사용자 환경에서 여러 클라이언트가 명령을 전송하는 상황을 시뮬레이션해 성능을 테스트할 수 있는 valkey-benchmark CLI를 제공한다. Valkey 자체의 속도보다 서버가 부하 상태에서 어떻게 작동하는지 확인하는 데 쓰는 도구다. (영어)
Incident with GitHub.com : UTC 기준 지난 17일에 7시간 47분간 발생한 GitHub 장애 보고서다. 트래픽이 급증해 Istio 사이드카 Pod의 동시 실행 제한에 도달했지만, 사이드카를 모니터링하지 않도록 정책이 잘못 설정돼 오토스케일링이 작동하지 않았다. 트래픽을 버티지 못해 장애가 확산되면서 HAProxy 노드 4대도 제한을 초과해 지연과 오류가 발생했다. 여기에 낙관적 재시도 로직이 내부 로드 밸런서에 과부하를 걸어 상황이 더 악화됐다. HAProxy를 중지시켜 문제를 복구했다. (영어)
볼만한 링크
Good Culture is the Biggest Productivity Hack, Not AI : AI로 생산성이 올라가면서 다들 AI 도구에 집중하지만 그 도구가 놓인 환경에는 관심을 기울이지 않는다. AI 도구보다 중요한 것은 훌륭한 문화다. 생산성을 높이는 가장 좋은 방법은 훌륭한 기업 문화이고, 문화가 갖춰지지 않으면 아무것도 제대로 돌아가지 않는다. 많은 회사가 생산성이 10배 올랐다고 말하면 C레벨은 FOMO를 느끼지만, AI는 오히려 훌륭한 문화를 더 가치 있게 만들므로 좋은 문화를 구축하는 데 노력해야 한다.(영어)
Anger, Anxiety and Agency : AI로 많은 변화가 일어나는 상황에서 혼란과 불안을 느끼는 건 당연하지만, 분노는 어딘가로 향하기 때문에 좋지 않다. 이때 분노는 아무런 도움이 안 되고, 불확실성을 호기심으로 연결하면 호기심을 넘어 흥분까지 느낄 수 있다.(영어)
Comments