May Reading List

Alex O'Callaghan

5월 독서 목록

원문은 Alex O'Callaghan님이 에 게재했습니다. 이 블로그 구독하기

이번 달에 읽은 흥미로운 글들을 모은 5월호입니다. 지난달 글은 여기에서 읽을 수 있습니다.

또 다시 침해된 npm 패키지

한 달이 또 지나고 공급망 공격이 또 발생했습니다. 여러 TanStack 패키지가 침해됐습니다 — 이른바 "Mini Shai-Hulud" 공격입니다. Tanner Linsley는 상세한 포스트모템을 공유하며 GitHub Actions 설정 취약점을 통해 공격이 어떻게 이루어졌는지 설명했습니다. 이후 동일한 자격 증명 탈취 스크립트를 이용해 317개의 npm 패키지가 추가로 침해됐는데, 이 스크립트는 확보한 npm 자격 증명을 이용해 패키지 간에 스스로 복제됩니다.

공급망 보안을 강화해야 한다는 강력한 경고이기도 합니다. 공급망 보안을 강화하기 위한 조치를 취해야 한다는 것을 다시 한번 일깨워 줍니다. 최근 출시된 pnpm v11로 모든 프로젝트를 업그레이드했는데, 이 버전은 기본적으로 minimumReleaseAge를 1일로 설정합니다. 대부분의 공격은 빠르게 발견되는 만큼, 어느 정도 버퍼 시간을 두는 것이 이러한 공격을 방어하는 데 도움이 될 것입니다.

비슷한 보안 맥락에서 이번 달에 Varlock이라는 도구를 알게 됐습니다. 에이전트에게 어떤 시크릿을 사용할 수 있는지에 대한 컨텍스트는 제공하면서도 실제 시크릿 값에는 접근하지 못하게 하는 흥미로운 도구입니다. 시크릿이 평문으로 기기에 저장되지 않도록 하는 것만으로도, 혹시라도 이런 패키지를 설치하게 되더라도 자격 증명 탈취 공격으로부터 보호하는 데 도움이 될 수 있습니다.

모델 학습과 Opus 4.8

Anthropic은 얼라인먼트 학습 방식의 변화에 대한 블로그 글을 게시했는데, 윤리적 선택 뒤에 있는 원칙과 추론 과정을 Claude에게 학습시킨 것이 에이전트 얼라인먼트를 어떻게 개선했는지 자세히 설명했습니다. 우리가 만드는 스킬에도 이를 어떻게 적용할 수 있을지 생각해 보는 것도 흥미롭습니다. 원하는 행동의 구체적인 예시만 나열하는 것으로는 에이전트가 새로운 상황에 마주했을 때 충분하지 않기 때문입니다.

OpenAI는 "고블린은 어디서 왔는가"라는 재미있는 글을 게시했습니다. "nerdy" 성격 기능을 학습시키는 과정에서 의도치 않게 생물 은유에 높은 보상을 주게 되었고, 결국 모델에게 고블린에 대해 이야기하지 말라는 시스템 프롬프트를 추가해야 할 정도에 이르렀습니다.

Anthropic은 4.7 출시 후 한 달여 만인 이달 말에 Claude Opus 4.8도 출시했습니다.

에이전트로 개발하기

Addy Osmani는 장시간 실행되는 에이전트를 위한 다양한 전략에 대한 글을 게시했습니다. 다만 프로덕션 코드를 작성하는 데 이 전략이 적합한지는 여전히 확신이 서지 않습니다.

Birgitta Böckeler의 글 코딩 에이전트를 위한 유지보수성 센서는 에이전트의 자가 교정을 가능하게 하는 데 필수적인 다양한 가드레일과 검사에 대해 다룬 좋은 글입니다.

Helio Medeiros가 쓴 DORA 메트릭을 활용해 AI 도입 효과를 측정하는 방법에 대한 글도 읽었습니다. Mintel에서 회고 에이전트 만들기 작업을 통해 체계적으로 시도하고 있는 접근 방식과 유사합니다.

흥미로운 생각들

Mark Erikson은 긴 글을 공유하며 AI 코딩 도구에 대한 회의감과 두려움을 거쳐 도입에 이르기까지의 경험을 풀어냈습니다.

Tuhin Nair는 시니어 개발자가 전문성을 소통하는 방법에 대한 글을 썼습니다. 엔지니어가 어떻게 사고하고 비즈니스 내 다른 구성원들과 소통하는지에 대해 공감되는 좋은 지적들이 담겨 있습니다. 빠른 실험을 위한 "speed" 시스템 제안은 매력적으로 들릴 수 있지만, 실제로 그 주변에 충분한 가드레일을 어떻게 두는지, 그리고 이미 고객에게 판매된 "speed" 버전을 되돌리는 데 얼마나 많은 추가 작업이 필요한지에 대한 세부 사항은 빠져 있습니다.

Lalit Maganti는 첫 번째 질문에 답하지 않기에 대한 글을 공유했습니다. 플랫폼 팀에서 일하거나 다른 엔지니어를 위한 도구를 만드는 사람이라면 누구나 공감할 만한 내용이라고 생각합니다.

웹 플랫폼과 프론트엔드

Chrome 팀은 Declarative Partial Updates에 대한 글을 게시했습니다. 이 제안은 순서에 상관없는 HTML 스트리밍과 더 효율적인 HTML 삽입을 웹 플랫폼의 일부로 만들려는 시도입니다. 본질적으로 islands 아키텍처를 웹의 일등 시민으로 만드는 것입니다.

Storybook 10.4가 출시됐습니다. 개인적으로 가장 흥미로웠던 점은 TanStack React에 대한 정식 지원이 추가된 것이었습니다.

Yangshun Tay는 프론트엔드 개발의 변화에 대해 다루며, 프론트엔드 개발자가 학습과 성장을 어디에 집중해야 할지에 대한 제안을 제시합니다.

D2도 알게 됐습니다. 블로그에서 다이어그램을 그릴 때 Mermaid를 사용해 왔는데 커스텀 스타일링에 어려움을 겪고 있었습니다. D2는 한번 시도해 보고 싶은 강력한 대안으로 보입니다.

흥미로운 기술 읽을거리

2004년 RuneScape가 56k 다이얼업 환경에서 멀티플레이어 RPG를 구현한 방법은 2004년 RuneScape 클라이언트가 브라우저의 Java 애플릿에서 효율적인 클라이언트-서버 통신을 위해 어떻게 설계되었는지에 대한 기술적 심층 분석 글입니다. 흥미로운 글이었고, 어린 시절 게임 추억 중 하나이자 웹이 얼마나 강력할 수 있는지를 처음 알게 해 준 경험이기도 합니다.

Netflix 기술 블로그는 실시간 서비스 맵 구축에 대한 글을 게시했습니다. 기술적 구현에 대한 설명은 다소 부족하고 AI로 생성된 느낌이 강하지만 접근 방식 자체는 흥미롭습니다. 직장에서 에이전트가 여러 시스템을 넘나들 수 있도록 하려는 시도를 하고 있는데, 시스템 간 의존성이 제대로 문서화된 곳이 얼마나 적은지, 그리고 그 지식 중 얼마나 많은 부분이 그저 사람들의 머릿속에만 존재하는지를 깨닫고 있어 공감이 갔습니다.

마지막으로 Google 블로그의 코드 리뷰 답변에 맥락 더하기에 대한 짧은 글입니다. 코드 리뷰 피드백에 어떻게 대응해야 하는지, 피드백을 어떻게 혹은 왜 그렇게 처리했는지에 대한 맥락을 제공하는 방법에 대한 매우 유용한 가이드입니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글