React SSR Framework Showdown: TanStack Start, React Router, and Next.js Under Load : Platformatic에서 TanStack Start, React Router, Next.js로 이커머스 앱을 만들어서 벤치마크 테스트를 한 결과 자사의 Node.js 애플리케이션 서버인 Watt에서 레이턴시가 개선되고 TanStack이 가장 우수한 성능을 보였고 Next.js는 가장 성능이 떨어졌지만, v15, v16에서 큰 차이가 나서 개선이 계속되고 있다. 이 벤치마크 결과를 해당 팀들과 공유해서 Next.js에서는 RSC의 JSON.parse의 reviver 콜백 사용으로 인한 오버헤드를 찾아 React를 수정해서 모든 RSC가 혜택을 얻을 수 있는 개선을 했고 TanStack팀은 250배 이상의 성능 개선을 해냈다.(영어)
Modal vs. Separate Page: UX Decision Tree : 화면에서 백그라운드와의 인터렉션을 막는 모달과 논모달의 차이를 설명하고 사용자의 행동에 침투적으로 개입하는 모달의 장단점을 설명한다. Ryan Neufeld가 정리한 모달과 페이지 중 어떤 것을 선택할지를 결정한 의사 결정 트리를 소개한다.(영어)
Announcing JetStream 3.0 : Apple, Google, Mozilla 등이 협업해서 브라우저 성능을 추적하고 엔진의 최적화를 이끌기 위해 만드는 벤치마크 중 하나로 웹 애플리케이션의 계산 집약적인 부분에 집중하는 JetStream이 6년 만에 새 버전이 나왔다. JetStream 3는 이전보다 더 큰 애플리케이션에 중점을 주고 최신 기능인 WebAssembly에도 큰 비중을 두고 Promise나 Async 같은 새로운 JavaScript 기능에 대한 부분도 추가되었다.(영어)
그 밖의 개발 관련
Harness design for long-running application development : Anthropic에서 장기 실행 자율 코딩을 실험한 과정을 정리한 글이다. 기획자, 생성자, 평가자의 세 에이전트를 구분해서 피드백 루프를 구성한 후 프론트엔드 어플리케이션을 만들도록 한 뒤 이를 풀스택 개발에 적용해서 레트로 게임 메이커를 만들게 했다. Solo 모드로 만든 것보다 장기 실행을 위한 하네스를 적용한 시도가 토큰도 많이 쓰고 오래 걸렸지만 훨씬 정교한 게임 메이커가 나왔다. 이후 하네스를 효율적으로 만들기 위해 반복해서 축소하고 성능을 비교하는 중에 Opus 4.6이 나왔고, 기존에 스프린트 구조는 제거하고 플래너와 평가자는 유지한 채 여러 번 시도한 결과 한 줄짜리 프롬프트로 전체 명세를 확장하고 핵심 요소를 모두 갖춘 프로그램을 만들 수 있었다.(영어)
Claude Code auto mode: a safer way to skip permissions : Claude Code 사용자는 승인 요청을 93% 승인하는데 --dangerously-skip-permissions가 있지만 안전하지 않은 문제가 있다. 이번에 새로 추가된 Auto mode는 승인을 모델에 의존해서 사용자의 의도에 맞지 않는 위험한 행동을 파악하고 그 외에는 승인 프롬프트 없이 실행되도록 하는 기능이다.(영어)
Codex Use Cases : OpenAI에서 Codex 사용 사례를 공개했다. 이 사용 사례에는 Pull Request 리뷰 빨리 받기, 프론트엔드 반응형 디자인 만들기, macOS 앱 만들기 등의 스킬과 프롬프트를 알려준다.(영어)
Composer 2를 소개합니다 : Cursor가 자체 코딩 모델인 Composer 2를 발표했다. 여러 벤치마크 결과 높은 성능을 보여주면서 저렴한 비용으로 제공할 수 있으며 이 자체 모델이 Kimi-k2.5 기반으로 알려지면서 논란이 되었지만 사전 파트너십으로 진행된 일임이 밝혀졌다.(한국어)
LiteLLM Security Update: Suspected Supply Chain Incident : AI 게이트웨이 Python 패키지 LiteLLM의 1.82.7과 1.82.8이 오염된 상태로 UTC 기준 3월 24일 10:39부터 40분간 배포되었다고 PyPI에서 차단되었다. 이전에 발생했던 Trivy의 보안 침해에서 얻은 크리덴셜을 이용해서 LiteLLM의 릴리스 파이프라인에 접근한 것으로 파악되었고 설치한 곳의 시크릿을 수집해서 공격자의 서버로 보내게 되어 있었다.(영어)
Supply Chain Attack on Axios Pulls Malicious Dependency from npm : JavaScript에서 널리 사용되어 주간 1억 다운로드를 받고 있는 HTTP 클라이언트인 Axios를 노린 공급망 공격이 발생했다. 이번 공격은 최신 버전은 axios@1.14.1과 axios@0.30.4에서 발생했으면 악성 패키지인 plain-crypto-js@4.2.1을 불러와서 감염된 기기에 명령을 실행할 수 있는 원격 접근 트로이목마(RAT)를 설치한다. plain-crypto-js@4.2.1는 UTC 기준 30일 23:59:12에 게시되었고, Axios의 정식 배포 릴리스를 타지 않은 것으로 보이는 axios@1.14.1과 axios@0.30.4에 plain-crypto-js@4.2.1 의존성을 추가해서 이어서 게시되었으며 postinstall 훅을 이용해서 설치 후 바로 RAT가 설치되도록 했다. Google Threat Intelligence Group은 이번 공격이 금전적 동기를 가진 북한 연계 공격자 UNC1069로 판단했다.(영어)
Agent Auth Protocol : 기존의 인증이 인간과 애플리케이션이라는 두 주체를 전제로 하고 있는데 에이전트는 이 양쪽에 속하지 않기 때문에 사용자를 대리한 에이전트가 자율적으로 동작하며 원하는 서비스를 찾을 수 있도록 만들어진 공개 프로토콜이다.(영어)
How DNS Actually Works in Kubernetes? — CoreDNS Explained : Kubernetes에서 트래픽을 라우팅하는 핵심 컴포넌트인 CoreDNS의 동작 방식을 간결하게 설명하는 글이다. DNS 질의가 발생했을 때 /etc/resolv.conf와 CoreDNS가 어떻게 설정되어 있고 ndots 설정이 DNS 질의에 어떤 영향을 주는지 설명하고 간단하게 트러블슈팅할 수 있는 명령어를 알려준다.(영어)
The Invisible Rewrite: Modernizing the Kubernetes Image Promoter : Kubernetes 팀은 새로운 릴리스를 할 때 2018년부터 만들어진 kpromo라는 도구를 통해 스테이징 레지스트리에 있던 이미지를 프로덕션으로 복사하고 서명하고 전 세계에 복제하는 등의 작업을 수행하게 된다. 시간이 지나면서 이 프로덕션 프로모션 작업은 30분 이상 걸렸고, 실패도 많았으며 기능 확장도 어려웠기에 SIG에서 파이프라인 아키텍처를 재작성하고 미뤄두었던 많은 개선 작업을 할 수 있게 되었다.(영어)
ONCE (Again) : 37Signals에서 24년에 ONCE라는 서비스를 한 번의 비용을 내면 자체 호스팅하는 웹 앱을 판매하는 목적으로 공개하고 기존에 가지고 있던 소프트웨어인 Campfire, Writebook, Fizzy 등을 판매했다. 하지만 이는 성공적이지 않았고 요즘 AI로 쉽게 서비스를 만들 수 있게 된 만큼 쉽게 서비스를 배포하고 모니터링할 수 있는 배포 도구로 개념을 바꾸었다.(영어)
Running Agents on Kubernetes with Agent Sandbox : 대부분의 서버는 stateless이지만 에이전트는 지속적으로 실행되고 유휴상태인 경우도 있으며 유지할 수 있는 볼륨이 필요하다는 점에서 Kuberntes의 특성과 잘 맞지 않는 문제가 있다. 이를 해결하기 위해 SIG Apps에서 Agent Sandbox를 만들어서 격리된 환경으로 에이전트에 맞는 수명 관리를 할 수 있는 CRD를 만들고 있다.(영어)
Anthropic goes nude, exposes Claude Code source by accident : Anthropic이 Claude Code의 npm 패키지를 게시하면서 실수로 Source Map을 포함했다. 이 Map 파일에는 난독화되지 않은 TypeScript 소스에 대한 참조가 있었고, 이는 Anthropic이 사용하는 Claudeflare R2 스토리지 버킷을 가리키고 있었는데 이 zip 파일을 다운받으면 1,900개의 TypeScript 파일과 51만 줄의 코드 등이 들어있어서 Claude Code의 소스코드가 모두 유출되었고, Anthropic은 사람의 실수였다고 인정했다.(영어)
LLM Architecture Gallery : GPT-2, Llama, DeepSeek, Wqen, GLM, Kimi, Minimax 등 공개된 LLM 아키텍처를 모아놓은 사이트다.(영어)
볼만한 링크
왜 코딩을 사랑하는 사람들이 코딩에서 밀려나는가 : 장인 기질의 사람들과 일단 돌아가면 된다는 사람들이 이전에는 같이 제품을 만들었는데 LLM 코딩 어시스턴트로 코딩 과정이 달라지면서 다르게 반응하는 이유와 LLM을 써야 하는 상황에 내몰리는 이유를 고찰한 좋은 글이다.(한국어)
Issue tracking is dead : 기존의 이슈 트래커는 인수인계 중심의 소프트웨어 개발을 위해 만들어졌지만, 시간이 지나면서 점점 복잡해졌고 프로세스 자체가 일이 되었는데 Linear는 오버헤드를 제거해서 업무에 집중할 수 있게 했다. 에이전트는 이를 더 전진시키고 있어서 더 이상 인수인계에 맞출 필요가 없고 문맥과 에이전트를 중심으로 설계해야 한다. Linear는 문맥을 실행으로 바꾸는 공유된 제품 시스템으로 발전해 간다고 비전을 밝혔다.(영어)
Is anybody else bored of talking about AI? : AI는 놀랍지만 매일 사용하면서 이제는 일상화되었는데 Hacker News 등에 거의 똑같은 AI 사용법에 대한 글만 올라오는 게 지겹다고 얘기한다. 제품 엔지니어가 유행이던 때가 있는데 엔지니어가 코드보다 제품의 가치에 집중해야 한다는 접근을 좋아했는데 다시 이때로 후퇴한 기분이 든다. 사용하는 도구 말고 어떤 멋진 것을 만들고 있는지 얘기했으면 좋겠다고 호소하는 글이다.(영어)
IT 업계 뉴스
OpenAI to acquire Astral : OpenAI가 Python 생태계의 uv, Ruff, ty 같은 도구를 만드는 Astral을 인수했다. 인수 후에 Astral 팀은 Codex 팀에 합류할 예정이다.(영어)
미 법원 'SNS 중독성' 첫 인정...메타와 유튜브 유죄 판결 받아 : 어린 시절 SNS 중독으로 고통받았다고 Meta와 YouTube를 상대로 제기한 소송이 승소해서 600만 달러(약 90억 원)의 손해배상금을 받게 되었다. Meta와 Google은 항소하겠다고 밝혔다.(한국어)
GitHub backs down, kills Copilot pull-request ads after backlash : GitHub Copilot이 요청받은 작업을 하면서 Pull Request에 Raycast 사용을 권장하는 메시지를 남긴 걸 발견했다. Copiot이 수많은 PR에 광고로 보이는 다양한 팁을 넣은 것이 발견되었고 GitHub 측은 개발자들이 새로운 방법을 배우도록 돕기 위한 것이라고 밝혔지만 커뮤니티의 반응이 좋지 않아 이 기능을 비활성화했다.(영어)
Comments