Outsider's Dev Story

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

기술 뉴스 #294 : 26-05-16

웹개발 관련

  • Container Timing origin trial : Chrome 148부터 Container Timing performance API를 실험적으로 사용할 수 있다. Container Timing은 요소가 언제 로드되는지 알 수 있는 Element Timing을 확장해서 콘텐츠 블록이 사용할 수 있는 시점을 파악할 수 있다. 이은 HTML 요소에 containertiming 속성을 지정해서 해당 요소가 측정해야 함을 알려주고 PerformanceObserver로 관찰할 수 있다.(영어)

그 밖의 개발 관련

  • QUIC and HTTP/3 Come To Node.js (finally) : 아직 릴리스에 포함되진 않았지만 코드에 --experimental-quic 플래그를 통한 QUIC, HTTP/3 지원이 Node.js에 들어왔다. 실험적이지만 사용할 수 있게 되었으므로 Node.js에서 Quic을 어떻게 사용할 수 있는지를 설명한다.(영어)
  • Redis array type: short story of a long development : antirez가 Redis의 새로운 Array 데이터 타입을 구현했다. LLM을 이용해서 4개월 동안 작업했는데 LLM 없이도 4개월 정도면 구현했겠지만, LLM 덕에 훨씬 더 많은 일을 할 수 있게 되었다. 첫 달에는 사양 문서만 작성했는데 AI와 논의하면서 훨씬 더 진화할 수 있게 되었고 두 번째 달부터 자동 프로그래밍으로 구현을 시작했고, 코드를 한 줄씩 익으면서 비효율이나 오류를 수동이나 AI로 고쳤고 세 번째 달에는 다양하게 스트레스 테스트를 했다. 이러한 과정을 통해서 고품질 시스템 프로그래밍 작업에 여전히 관여해야 하지만 AI가 없었다면 하지 않았을 복잡성 수준에 도전할 수 있었는데 AI는 매우 피곤한 대규모 작업과 복잡한 알고리즘에 버그가 없는지 확인하는 데에 안전망을 제공해 준다는 것을 깨달았다.(영어)
  • An Overview of Spinel, Matz's AOT Ruby Compiler : Matz가 예전부터 가지고 있던 아이디어를 최근 Claude Code를 이용해서 한달 만에 Ruby AOT 컴파일러인 Spinel을 만들었다. Spinel은 Ruby 소스코드를 단독으로 실행할 수 있는 바이너리로 변환하는 AOT 컴파일러로 CRuby보다 상당한 속도를 보여준다. CRuby의 계승자는 아니지만 Ruby 4.0.2와 비교해 봤을 때 YJIT 비활성화 상태보다는 3%, YJIT 활성화 상태보다는 18% 정도의 시간 만에 컴파일이 되는 상당한 속도 차이를 보여주고, 이는 타입 추론을 통해 최적화된 C 코드를 생성하기 때문이다.(영어)
  • Formatting an entire 25 million line codebase overnight: the rubyfmt story : Fable Tales이 과거 RubyConf에서 Ruby 포매터에 대한 논의를 듣고 와서 혼자서 설정이 필요하지 않은 자동 포매터인 rubyfmt를 만들기 시작했고, 작업에 영향을 주지 않으려고 100ms라는 엄격한 기준을 두고 만들었다. 처음에는 Ruby로 만들었지만 점점 느려져서 Rust로 전환하게 되고 rubyfmt가 완성되진 않았지만, 세계에서 가장 큰 Ruby 코드 베이스를 가진 Stripe에 입사하게 된다. Stripe는 prettier-ruby를 도입하려고 했지만 너무 느렸기에 Fable Tales에게 rubyfmt를 적용할 수 있는지 논의를 시작했고, Stripe는 전담 엔지니어를 할당해서 rubyfmt를 오픈소스로 완성하게 되었다. 처음에는 옵트인 방식으로 포매팅을 적용하고 충돌이 생기지 않게 주말에 작업했지만 결국 Stripe의 4,200만 라인 전체를 rubyfmt로 포맷했고 아무런 문제가 발생하지 않았다.(영어)
  • Agent Harness Engineering : Google Gemini 팀의 Addy Osmani가 하네스 엔지니어링을 설명한 글이다. 모델 + 하네스를 에이전트라고 할 수 있고 모델을 감싸는 도구, 파일시스템, Git, 랄프 루프, 검증 방법 등이 모두 하네스이고 모델이 실패할 때마다 하네스에 추가해서 실수를 막아야 한다. 하네스를 잘 설계하려면 원하는 동작에서 출발해서 그 동작을 제공하는 컴포넌트를 만드는 것이다.(영어)
  • Karpathy's 4 CLAUDE.md rules cut Claude mistakes from 41% to 11%. After 30 codebases, I added 8 more : Andrej Karpathy가 1월 초에 Claude에 대한 불만을 올렸고 Forrest Chang이 이를 보고 CLAUDE.md 파일에 4가지 규칙을 정리해서 올렸다. 여기에 8개의 규칙을 더 추가해서 비슷한 성능으로 실수를 크게 줄였다. 각 규칙에 대한 설명과 기존 4개로는 충분하지 않은 상황, 시도했지만 효과가 없었던 방법 등을 설명한다.(영어)
  • SPZ 4 is here: leaner, faster, and more future-proof : 2024년 Niantic이 3D의 Gaussian spalt의 파일 형식인 SPZ를 공개했는데 더 큰 데이터셋을 지원하는 SPZ 4를 공개했다. SPZ 4는 압축과 로딩속도가 개선되어 인코딩이 3~5배 빨라졌고, 로딩은 1.5~2배가 빨라지고 저장 파일인 PLY 대비 더 작은 파일을 유지한다.(영어)
  • Using Claude Code: The Unreasonable Effectiveness of HTML : Anthropic에서 Claude Code를 만드는 Thariq Shihiparrk가 기존에는 마크다운을 문서로 많이 사용했지만, 표현력의 한계를 느껴서 이젠 HTML을 더 선호한다고 한다. HTML을 훨씬 읽기 쉽게 구성할 수 있기 때문에 만들어진 문서를 보기도 쉽고 공유하기도 쉬운 데다가 상호작용을 하게 만들 수도 있다. 이해를 돕기 위해 예시로 The unreasonable effectiveness of HTML 페이지도 공개했다.(영어)
  • Agent Skills : 시니어 엔지니어의 업무는 코드 변경 이력에 드러나지 않는 것들이 많은데 이러한 경험을 에이전트에도 적용될 수 있도록 Google Gemini 팀의 Addy Osmani가 스킬을 만들어서 공개했다. 이 스킬에는 소프트웨어 개발 생명주기의 단계를 포함하고 있으면 다음 5가지 원칙을 따르고 있고 이러한 접근은 Google의 관행을 따르고 있다.(영어)

    1. 서술보다는 프로세스
    2. 하기 싫은 부분을 건너뛰지 않는 합리화지 않도록 반합리화 테이블 작성
    3. 검증은 협상할 부분이 아니다.
    4. 점진적 공개
    5. 범위 규율
  • Notion 개발자 플랫폼을 소개합니다 : Notion에서 호스팅 런타임을 Worker로 제공해서 ntn CLI로 커스텀 로직을 작성하고 배포할 수 있게 되었다. 비즈니스와 엔터프라이즈 플랜에서는 공개 베타를 8월까지 무료로 사용할 수 있다.(한국어)
  • Agent view in Claude Code : Claude Code에서 세션을 한곳에서 관리할 수 있는 Agent View 기능이 추가되었다.(영어)
  • Claude Code: Keep Claude working toward a goal : Claude Code가 /goal 명령어를 통해 완료 조건을 설정하면 조건을 충족할 때까지 작업을 계속 진행할 수 있게 지원한다.(영어)
  • GitHub Copilot app is now available in technical preview : GitHub Copilot 데스크톱 앱이 테크니컬 프리뷰로 공개되었다. 현재는 대기 리스트에서 승인받아야 사용할 수 있다.(영어)
  • Introducing Grok Build : xAI에서 터미널에서 사용할 수 있는 코딩 에이전트 Grok Build를 베타로 공개했고 SuperGrok Heavy 사용자를 대상으로 제공된다.(영어)

AI 관련

인프라 관련

  • State of Routing in Model Serving : Netflix에서 중앙 모델 서빙 플랫폼이 필요했는데 상용 솔루션으로는 요구사항을 만족하지 못해서 Switchboard라는 서비스를 직접 구축해서 클라이언트를 통일하고 컨텍스트 인식 라우팅 동적 트래픽 분리, 모델 라이프사이클 관리, 섀도우 테스트 등의 기능을 제공하고 Objectives 개념과 규칙을 도입해서 실험 구성을 서빙 플랫폼 코드와 분리할 수 있게 되었다. 이후 라우팅 제어를 더 세밀하게 하고 싶은데 Envoy만으로는 충분하지 않아서 Lightbulb를 만들어서 개선했다.(영어)
  • Introducing Trusted Remote Execution: Policy-Enforced Scripts for AI Agents and Humans : AWS에서 서버에 원격 실행을 안전하게 할 수 있는 Trusted Remote Execution(Rex)을 공개했다. 이는 Rust용 스크립트 언어와 엔진인 rhai를 사용하고 정책 관리는 Cedar를 사용해서 사람이든 에이전트든 허용된 동작만 원격으로 실행할 수 있게 관리할 수 있다.(영어)
  • Kubernetes production readiness checklist : Kubernetes에 애플리케이션을 프로덕션으로 배포하기 전에 동작, 매니페스트 구성, 보안 등 확인해야 할 부분을 체크리스트로 만들었다.(영어)
  • Introducing the Claude Platform on AWS : Claude Platform이 AWS에서 제공되어 AWS 사용자가 AWS 인증과 인프라를 이용해서 Claude 기능을 사용할 수 있게 되었다.(영어)
  • Introducing Prempti: Falco meets AI coding agents : 클라우드 보안 도구인 Falco에서 코딩 에이전트의 액션을 감시하거나 차단하는 등의 액션을 할 수 있는 Prempti를 실험적으로 공개했다.(영어)

보안 및 장애

  • TeamPCP's Mini Shai-Hulud Is Back: A Self-Spreading Supply Chain Attack Compromises TanStack npm Packages : TeamPCP가 OIDC 토큰을 사용해서 GitHub Actions 릴리스 파이프라인을 통해 Mini Shai-Hulud 웜을 포함한 악성 버전을 배포했다. 이는 유효하게 증명된 악성 패키지를 생성한 최초의 npm 웜으로 TanStack을 포함해서 UiPath, DraftLab 등의 170여 개의 패키지를 공격했고, 메모리를 읽어 시크릿과 크리덴셜 등 100개가 넘는 파일 경로에서 자격 증명을 수집하고 리부팅 후에도 훅을 설치했다. TanStack의 공격을 살펴보면 PR의 pull_request_target 워크플로우를 이용해서 GitHub Actions의 캐시를 오염시키고 이후 메인테이너가 릴리스를 할 때 오염된 캐시를 복원하고 OIDC 토큰을 이용해서 오염된 패키지를 게시했는데 이때 SLSA Level 3 신뢰 증명까지 포함되었다. Tanstack에서 Postmortem을 공개했다.(영어)
  • Mythos finds a curl vulnerability : Anthropic의 차세대 모델인 Mythos를 Project Glasswing을 통해 Linux 재단에 제공하면서 curl을 만든 Diniel Stenberg도 Mythos로 분석한 보고서를 받게 되었다. 기존에도 AI 도구를 사용해서 curl을 분석하고 취약점을 10건 이상 수정한 상태였는데 Mythos의 분석으로 5개의 취약점이 나왔지만, curl 보안팀에서는 이를 분석한 결과 3건을 오탐이고 1건은 버그로 판단해서 낮은 심각도로 분류한 1개만 취약점으로 분류했고 Mythos 모델은 약간 과대광고로 보인다고 한다.(영어)
  • Introducing deepsec: The security harness for finding vulnerabilities in your codebase : Vercel에서 코딩 에이전트로 코드 베이스에서 취약점을 찾아내는 보안 하네스 Deepsec을 오픈소스로 공개했다. Deepsec에서는 Claude와 Codex를 사용할 수 있고 플러그인 시스템으로 사용자 환경에 맞는 규칙을 적용할 수 있다.(영어)
  • Active attack: Dirty Frag Linux vulnerability expands post-compromise risk : Linux에서 새로운 로컬 권한 상승 취약점 Dirty Frag가 발견되었다. Dirty Frag는 rxrpc, esp/xfrm 네트워킹 및 메모리 단편화 처리 구성 요소를 통해 루트 권한을 획득할 수 있는 취약점이다.(영어)
  • NGINX Rift : 웹서버 NGINX의 ngx_http_rewrite_module에서 힙 버퍼 오버플로우를 이용해서 원격 코드 실행을 할 수 있는 취약점이 발견되었다.(영어)
  • Let's Encrypt Is Down. Renewals Are Next : Let's Encrypt에서 지난 5월 8일 UTC 기준 18:37부터 21:00까지 ACME 엔드포인트가 503을 반환하면서 인증서의 신규 발급과 갱신이 중단되었다.(영어)

볼만한 링크

  • Going Full Time on Open Source : 로컬 개발 환경 관리 도구인 mise를 만든 Jeff Dickey가 mise에 더 집중하기 위해서 Figma에서 퇴사하고 en.dev라는 만들어서 풀타임 오픈소스 개발을 하기로 했다. 수입은 문서 광고와 GitHub Sponsors로 약간 벌지만, 충분치 않기 때문에 멤버십과 스폰서십을 통해 지원받고 컨설팅을 할 것이라고 한다.(영어)
  • Vibe coding and agentic engineering are getting closer than I’d like : Simon Willison이 코드를 전혀 들여다보지 않고 작성하는 vibe coding과 보안, 유지보수성, 운영, 성능을 고려해서 고품질로 프로덕션 시스템을 만드는 agentic engineering을 구분하고 있었고 vibe coding은 개인 도구라면 괜찮지만, 다른 사람이 사용하는 프로덕션 시스템에 사용하면 무책임하다고 생각해 왔다. 하지만 코딩 에이전트가 더 신뢰할 수 있게 되면서 죄책감이 들면서도 프로덕션 수준의 코드도 모두 검토하지 않게 되고 vibe coding과 agentic engineering의 경계가 모호해지고 있다.(영어)
  • OpenSource is still art : Node.js 커미터인 James Snell의 글로 오픈소스와 소프트웨어 개발은 기존에도 단순한 엔지니어링이 아니라 공예이자 예술이었다. AI는 유용한 도구이지만 문제 이해, 설계 판단, 취향, 시스템적 사고는 여전히 숙련된 개발자의 몫이다. 하지만 AI로 인해서 일자리가 줄어들고 코드 학습, 저작권, 편향 같은 윤리적 문제는 커질 수 있다.(영어)
  • Cognitive Surrender : 인지적 오프로딩(cognitive offloading)은 AI에 위임하되 답에 대한 소유권을 유지하는 것이고 인지적 항복(cognitive surrender)은 AI의 출력물을 그대로 받아들이는 것을 의미하고 논문의 실험에서 대다수가 AI에 인지적 항복을 하는 것으로 나타났다. 소프트웨어 개발에서 인지 항복을 통해 인지 부채를 떠안게 되는데 이는 AI가 부채를 만드는 것이 아니라 AI를 대하는 태도에서 생기는 것이라 인지적 항복을 거부하는 조치를 설명한다.(영어)

IT 업계 뉴스

프로젝트

  • ds4.c : Redis의 창시자 Salvatore Sanfilippo가 만든 DeepSeek V4 Flash의 소형 추론 엔진
  • Oz Skills : Warp 터미널의 AI 에이전트와 Oz에서 사용하는 에이전트 스킬을 오픈소스로 공개했다.(영어)
  • serve-sim : Expo 개발자가 만든 Apple 시뮬레이터로 에이전트에서 사용할 수 있다.
  • Ghostty Config : Ghostty 터미널의 웹 기반 설정 생성기.
  • zero-native : Zig 언어와 웹 UI를 사용해서 데스크톱 앱이나 모바일 앱을 만들 수 있게 하는 도구로 Vercel에서 공개했다.
  • waza : 구조화된 벤치마크로 AI 에이전트 스킬을 평가하는 Go CLI로 Microsoft에서 만들었다.
  • rustdesk : 오픈소스 원격 데스크톱 애플리케이션.
  • Scion : 각 에이전트가 컨테이너 안에서 자신만의 워크스페이스 안에서 실행하게 하는 멀티에이전트 테스트베드.
  • Starpak : 코드를 계속 배포할 수 있는 오픈소스 에이전트.
  • Nelm : werf의 배포 엔진이면서 Helm 4의 대체제로, Helm으로 할 수 있는 걸 다 할 수 있으면서 terraform plan같은 2 스테이지 배포 지원과 CRD 관리, 시크릿 관리 등의 기능을 지원한다.
  • Better-Notify : 이메일, SMS, 텔레그램, Slack, Discord에 메시지를 보낼 수 있는 자바스크립트 라이브러리.
  • X For You Feed Algorithm : X의 For You 탭에서 사용하는 추천 시스템

버전 업데이트

2026/05/16 17:06 2026/05/16 17:06