Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

기술 뉴스 #255 : 24-10-01

웹개발 관련

  • Speed Brain 소개: 웹 페이지 로딩 속도 45% 향상 : Speed Brain이라는 기능을 통해서 사용자가 다음번에 탐색할 가능성이 높은 콘텐츠를 미리 프리패치해서 더 빠르게 콘텐츠를 제공할 수 있게 되었다. Cloudflare의 가장 공격적인 실험실 테스트에서는 LCP가 최대 75% 줄어들었고 모든 무료 도메인에 적용 결과 LCP가 45% 감소했다. 그동안 프리 패치에 대한 많은 시도가 있었지만 아무 만족스럽진 않았는데 Speculation Rules API가 나와서 Speed Brain이 가능해졌다. 이 기능을 활성화하면 Speculation-Rules 헤더가 응답에 추가되고 이를 통해 프리패치 요청을 지시하게 된다.(한국어)
  • New standards for a faster and more private Internet : 새로운 압축 알고리즘인 Zstandard(zstd)는 Brotli와 압축 수준은 비슷하면서도 42% 더 빠르게 압축하고 Gzip보다는 11.3% 크기를 줄이면서도 속도는 비슷하다. 이는 즉각적으로 웹 성능에 영향을 줄 수 있으므로 Cloudflare에서 Zstandard를 지원하게 되었다.(영어)
  • Introducing Ephemeral IDs: a new tool for fraud detection : IP를 보통 단일 사용자로 식별하지만, 요즘은 공유 IP 주소를 사용하는 경우가 많아서 IP로만 차단하는 것은 그리 효과적인 방법이 아니다. CAPTCHA의 대안으로 Turnstile을 제공하고 있지만 이제 네트워크 수준 정보를 의존하지 않도록 Ephemeral ID을 제공한다. Turnstile을 사용할 때 사용자의 Ephemeral ID를 계산해서 다른 IP를 사용하게 되더라도 사용자를 식별할 수 있게 되었다.(영어)
  • Instant Purge: invalidating cached content in under 150ms : Cloudflare가 업계에서 가장 빠른 캐시 퍼지를 구축해서 글로벌 퍼지 시작인 평균 150ms 미만으로 2022년 대비 90% 개선했다.(영어)

그 밖의 개발 관련

  • The Nine Node Pillars : Platformatic에서 수년간의 Node.js 애플리케이션 설계 경험과 Node.js TSC의 경험을 바탕으로 Node.js 엔터프라이즈 애플리케이션에 적용해야 할 9가지 원칙을 공개했다.(영어)

    1. Event Loop를 차단하지 마세요.
    2. Node에 특화된 메트릭을 모니터링하고 그에 따라 조치하세요.
    3. 프로덕션에서는 Node LTS 버전을 사용하세요.
    4. 가능한 한 테스트, 코드 리뷰, 적합성을 자동화하세요.
    5. 의존성 증가를 피하세요.
    6. 의존성 위험을 줄이세요.
    7. 전역 변수, 설정, 싱글톤을 피하세요.
    8. 오류를 처리하고 의미 있는 로그를 제공하세요.
    9. API 명세를 사용하고 클라이언트를 자동 생성하세요.
  • Leveraging benchstat Projections in Go Benchmark Analysis! : Go에서 내장 벤치마크 도구와 benchstat의 비교하면서 설명하는 글이다. 기존에는 내장 벤치마크 도구를 사용해서 결과를 저장하고 변경 사항이 있을 때 새로운 벤치마크 결과를 만들어서 benchstat으로 비교해 보았는데 이 방법은 변경 사항 추적이 어렵고 협업도 쉽지 않은 문제가 있었습니다. 작년 새로 작성된 benchstat에는 필터링 및 제어 기능이 추가되어 한 번의 실행으로 b.Run() 하위의 사례를 비교할 수 있게 되었다.(영어)
  • Rearchitecting: Redis to SQLite : 오픈소스 웹 애플리케이션 방화벽 회사인 Wafris에서 데이터 저장을 위해 Redis를 사용하다가 SQLite로 바꾼 과정이다. 범용적인 성능비교가 필요하진 않았기 때문에 자신들의 데이터 기반으로 Redis와 SQLite를 벤치마크를 실행한 결과 네트워크 지연을 무시하고 로컬에 설치한 Redis 보다 3배 더 빠른 것으로 나타났다. SQLite를 Rails 앱 인스턴스에 같이 배포할 것이므로 Write의 구조도 달라져야 했기에 Write 경로를 새로 구성했다.(영어)
  • Now available for free on all public repositories: Copilot Autofix for CodeQL code scanning alerts : GitHub에서 CodeQL 코드 스캐닝을 사용하는 모든 공개 저장소에서 Copilot Autofix를 무료로 사용할 수 있게 되었다. Copilot Autofix는 CodeQL의 보안 알림을 해결하는 수정사항을 자동으로 Pull Request로 만들어서 올려준다.(영어)
  • Announcing Hotwire Native : Rails World 2024에서 JSON 대신 HTML을 보내서 모든 웹 애플리케이션을 만드는 Hotwire 기술로 iOS, Android 네이티브 앱을 만드는 Hotwire Native를 발표했다. 이는 기존 Turbo, Stimulus, Native를 포함하기 때문에 더는 iOS, Android용 Turbo Native, Strada 라이브러리는 사용하지 않을 예정이다.(영어)

인프라 관련

  • We made Workers KV up to 3x faster — here’s the data : Cloudflare가 키-밸류 스토리지인 Workers KV의 읽기 레이턴시를 3배 빠르게 개선했다. 외부 요청을 처리하는 Front Line(FL) 서비스를 스토리지에 캐시를 읽을 때도 사용하고 있었기 때문에 FL을 흐름에서 완전히 제거해서 20ms를 단축했다. 또한 캐시 요청이 중앙 스토리지까지 오늘 일을 줄이기 위해 Tiered Cache를 사용해서 백엔드까지 도달하는 요청의 30%를 줄이고 Tiered Cache를 KV Worker에 직접 바인딩해서 10ms를 더 줄였다.(영어)
  • Zero-latency SQLite storage in every Durable Object : Cloudflare의 오브젝트 스토리지인 Durable Object에서 그동안은 키-밸류 저장소만 제공했지만 이제 SQLite를 사용해서 SQL 쿼리 인터페이스를 지원하기 시작했다. SQLite가 애플리케이션과 같은 스레드에서 실행되므로 SQL이 동기적으로 실행되면서도 출력 게이트를 이용해서 성능에 문제없이 처리될 수 있도록 지원한다.(영어)
  • 5 Advanced Kubernetes Operators Every DevOps Engineer Should Know About : Kubernetes Operator 패턴이 무엇인지 설명하고 OperatorHub.io에서 정의하는 기본 설치, 원활한 업그레이드, 전체 생명주기, 깊은 인사이트, 오토파일럿 5가지 단계의 역량에서 고급이라고 할 수 있는 전체 생명주기 이상의 오퍼레이터 5가지를 Operator Lifecycle Manager(OLM)으로 설치해 보면서 살펴본다.(영어)
  • Why we skipped SRE and switched to Platform Engineering : 가전 회사인 Electrolux에서 SRE 직군을 운영하고 있다가 회사가 성장한 뒤 SRE 업무가 병목이 되어서 해결해 나간 과정을 설명한다. 소규모일 때는 가능하면 SaaS를 최대한 사용하면서 얻은 시간으로 개발자들이 요청하는 작업을 자동화하기 시작하면서 Backstage를 도입했다. 하지만 새로운 플러그인 적응이 쉽지 않다는 걸 깨닫고 내부 개발자 플랫폼(IDP)을 만들기로 결정하고 Scaffolder Backstage 플러그인으로 UI까지 작성해서 만든 리소스를 만들 수 있게 개선했다. 하지만 IDP가 처리 못 하는 리소스도 필요하다는 것을 깨달아 InfraKitchen이라는 오픈소스 제품으로 IDP를 재구축해서 SRE에서 플랫폼 엔지니어링으로 전환하게 되었다.(영어)

AI 관련

볼만한 링크

  • FSL: A Better Business/Open Source Balance Than AGPL : Armin Ronacher가 Elasticseach가 최근 다시 AGPL로 바꾼 것을 언급하며 비즈니스 목표와 오픈 소스의 이상 사이의 균형을 잡기 위해서는 AGPL보다 FSL(Functional Source License)가 좋은 선택이라고 설명하는 글입니다. 특정 회사가 프로젝트의 책임을 지는 단일 벤더 모델을 가지고 있으며 FSL은 공급업체가 상당한 권한을 가지지만 시간이 지나면 권한이 약화되어 오픈소스가 되므로 Sentry가 망하더라도 누군가 다시 프로젝트를 이어서 할 수 있게 되고 어느 회사든 없어질 수 있는데 이러면 FSL이 훨씬 효과적이라고 설명한다. AGPL이라고 하더라도 CLA가 있냐 없냐에 따라 큰 차이가 있는데 CLA가 있는 AGPL은 2년 뒤에는 FSL보다 저작권자가 훨씬 강력한 권한을 가지게 된다.(영어)
  • The 2024 Tidelift state of the open source maintainer report : Tidelift에서 400여 명의 오픈소스 메인테이너들에게 설문 조사를 진행하고 오픈소스 메인터이너의 현황을 정리한 보고서를 공개했다.(영어)

    1. 메인테이너 중 60%는 여전히 작업 보수를 받지 못한다.
    2. 메인테이너가 더 많은 보수를 받을수록 프로젝트에는 더 많은 개선이 이루어진다.
    3. 32%는 다른 조직이나 개인으로부터 보수를 받고 고용주로부터 보수를 받는 메인테이너는 24%로 소폭 감소했다.
    4. 메인테이너는 몇년전보다 보안에 3배 더 많은 시간을 쓰고 있다.
    5. 메인테이너가 보수를 받는 경우 OpenSSF 스코어카드에 부합할 가능성이 훨씬 더 높다.
    6. 보수를 받는 메인테이너는 보수를 받지 않는 메인테이너에 비해 중요한 보안 관행을 구현할 가능성이 더 높다.
    7. 보수를 받는 메인테이너는 보수를 받지 않는 메인테이너에 비해 더 많은 유지 보수 작업과 문서화 작업을 한다.
    8. 거의 절반의 메인테이너가 자신의 작업이 과소 평가되고 무의미하다고 느낀다.
    9. xy utils 해킹 사건 이후 메인테이너의 2/3는 컨트리뷰터를 덜 신뢰한다.
    10. AI 기반 코딩 도구는 번창하고 있지만 메인테이너들은 코드 품질과 스팸 PR 등으로 이한 우려를 하고 있다.
    11. 더 젊은 오픈소스 메인테이너는 AI 기반 코딩 도구를 사용할 가능성이 훨씬 더 크다.
    12. 오픈소스 메인테이너 커뮤니티가 점점 나이가 들어가고 있다.
  • 기술부채의 원래 의미는? : 기술 부채라는 용어를 많이 사용하는데 기술 부채라는 용어의 유래와 그 의미를 다시 한번 강조하는 글이다. 기술 부채는 워드 커닝햄이 OOPSLA 92에서 처음 사용하게 되는데 당시 워드 커닝햄의 말처럼 단기적인 성과를 위해 장기적인 품질을 희생하거나 일단 대충 만들고 나중에 땜빵하자는 의미가 아니라 불확실성 속에서 아는 내용을 기반으로 개발하고 시간이 지나면서 더 알게 되는 내용을 바탕으로 지속적인 개선을 통해 더 높은 품질의 소프트웨어를 만들어가는 방식이다.(한국어)

IT 업계 뉴스

  • Oracle, it’s time to free JavaScript. : 2년 전 Ryan Dahl이 Dear Oracle, Please Release the JavaScript Trademark라는 글을 쓰며 Oracle이 소유한 JavaScript 상표권을 포기해 주길 요청했지만, 대답을 받지 못했다. 위 사이트에서 서명을 받고 있으며 법에 따라 상표권을 소유했는데도 사용하지 않는다면 취소되기 때문에 이를 취소 청원을 제출할 예정이다.(영어)
  • WP Engine is not WordPress : WorkPress를 만든 Matt Mullenwegrk WP Engine의 사모펀드인 Silver Lake는 WordPress로 약 5억 달러를 벌면서도 주당 40시간 밖에 기여 안 하고 있다고 하며 WordPress를 해킹해서 자신들이 제어할 방법으로 제공하며 더 큰 비용을 청부하고 있다고 비판하는 글을 올렸다. 이후 법적 소송 동안 WP Engine이 WordPress.org에 접근할 수 없도록 지난 25일 WordPress.org에서 WP Engine을 차단했다. WP Engine 측은 Automattic에 중지 서한을 보냈고 Automattic은 상표권 침해를 고발했다.(영어)
  • 20 years later, real-time Linux makes it to the kernel - really : 2004년부터 만들어지기 시작한 리얼타임 Linux PREEMPT_RT가 만들어진 뒤 시간에 민감한 작업처리를 지원하는 RTOS가 필요한 경우 PREEMPT_RT를 많이 사용했다. 보통 Linux 메인라인에 들어가기 위한 기준이 너무 높고 그동안 자금 지원이 불규칙해서 2015년에서야 PREEMPT_RT를 메인라인에 넣기 위한 협업 프로젝트를 만들었다. 이후 메인라인에 넣기 위한 노력을 거쳐서 드디어 메인라인 커널에 병합되어 Linux 6.12 커널에 내장되었다.(영어)
  • Linux Foundation Announces OpenSearch Software Foundation to Foster Open Collaboration in Search and Analytics : AWS가 Elasticsearch의 포크로 만든 OpenSearch를 Linux 재단에서 관리하기 위해 OpenSearch Software Foundation 을 출범시켰다. AWS가 가지고 있던 OpenSearch의 소유권을 Linux 재단으로 이전했다.(영어)
  • IBM acquires Kubernetes cost optimization startup Kubecost : IBM이 Kubernetes 비용 최적화 업체인 kubecost를 인수했고 가격은 공개되지 않았다.(영어)
  • 최악의 위기 인텔···“퀄컴이 인수 타진” : 아직 정확히 밝혀진 것은 없지만 반도체기업인 Qualcomm이 Intel 인수를 타진하고 있다는 소식이 나오고 있다.(영어)

프로젝트

  • Atkinson Hyperlegible : 저시력자도 읽기 쉽게 가독성을 향상하도록 개발된 폰트로 상업용에서도 무료로 사용할 수 있다.
  • MiniSim : macOS용 iOS, Android 에뮬레이터
  • Scramble : 영어 문법을 교정해 주는 Grammarly의 크롬 익스텐션의 오픈소스 대체제
  • NotebookLM : 문서를 올리면 Gemini 1.5 Pro 기반으로 즉시 AI 리서치 도우미가 된다.
  • OperatorHub : Kubernetes Operator 공유 서비스
  • Cyclops : Kubernetes 클러스터를 관리하는 UI

버전 업데이트

2024/10/01 19:56 2024/10/01 19:56