astro

7 개의 포스트

cloudflare

Cloudflare 앰배서더와 커뮤니티 엔지니어, 그리고 오픈 소스에 대한 추가 100만 달러 지원 발표 (새 탭에서 열림)

Cloudflare는 개발자들이 서로 가르치고, 오픈소스에 기여하며, 커뮤니티를 성장시키는 활동을 체계적으로 지원하기 위해 커뮤니티 프로그램을 개편한다. 프로그램은 커뮤니티 행사를 이끄는 **Cloudflare Ambassadors**와 오픈소스 프로젝트에 기여하는 **Cloudflare Community Engineers**의 두 축으로 운영된다. 또한 빠르게 성장한 Discord 커뮤니티를 자동화 도구와 새로운 운영위원회로 개선할 계획이다. ## 커뮤니티 프로그램 개편 - Cloudflare는 개발자 교육, 행사 운영, 오픈소스 유지보수처럼 인터넷 생태계에 기여하는 사람들을 지원하고 인정하려 한다. - 새 프로그램의 두 가지 트랙은 다음과 같다. - **Cloudflare Ambassadors**: 각자의 지역·학교·온라인 커뮤니티에 Cloudflare를 알리고 활동을 확산 - **Cloudflare Community Engineers**: 인터넷과 Cloudflare 생태계를 개선하는 오픈소스 프로젝트에 기여 - 프로그램 관련 정보와 참여 신청은 `cloudflare.com/community`에서 제공된다. ## Cloudflare Ambassadors의 역할 - 앰배서더는 Cloudflare를 자신의 커뮤니티에 소개하고, 다른 개발자들이 실제로 제품을 활용하도록 돕는다. - 활동 사례는 다음과 같다. - 밋업, 해커톤, 워크숍, 강연 개최 - 대학 내 학생 그룹 운영 - 개발자가 함께 학습할 수 있는 공간 조성 - 튜토리얼 작성과 온라인 콘텐츠 공유 - Cloudflare의 활용 가능성을 설명하는 기술 지원 - 선정된 앰배서더는 최대 2년 동안 활동할 수 있어, 단기 이벤트가 아니라 지속적인 커뮤니티 성장을 추진할 수 있다. ## 앰배서더 지원 내용 - 커뮤니티 행사를 개최할 때 다음과 같은 지원을 신청할 수 있다. - Cloudflare 크레딧 - 마케팅 자료 - 기술 리소스 - 행사 운영에 필요한 추가 지원 - Discord 등 Cloudflare 온라인 커뮤니티에서 공식적인 역할과 식별 표시를 제공한다. - 당시 지원서 접수 기간은 9월 6일까지이며, 선정 결과는 10월 5일까지 통보될 예정이었다. - 미시간대학교 학생 Sruthi Pereddy의 사례처럼, 학생과 개발자들이 리소스 부족 때문에 아이디어를 실행하지 못하는 문제를 Cloudflare 인프라로 해결하려는 활동을 장려한다. ## Cloudflare Community Engineers와 오픈소스 지원 - Cloudflare Developer Platform은 `workerd`, `quiche` 등 오픈소스 프로젝트에 크게 의존하거나 직접 오픈소스로 제공된다. - 유지보수자와 기여자는 장기간 핵심 라이브러리, 문서, 도구, 커뮤니티를 관리하지만 그 기여가 충분히 보상받지 못하는 경우가 많다. - Cloudflare는 기존 TanStack 후원에 이어 Community Engineers 프로그램을 통해 오픈소스 기여자에게 직접적인 지원을 제공한다. - 향후 2년 동안 오픈소스 프로젝트 후원과 지원에 **추가 100만 달러**를 투입하고, 자격을 갖춘 Community Engineer에게 보조금을 지급한다. - 프로그램에는 최대 활동 기간이 없다. - 오픈소스 유지보수는 연 단위 일정에 맞지 않을 수 있다. - 어떤 프로젝트는 수년간 관리가 필요하고, 어떤 기여는 특정 시점에 집중적으로 발생하기 때문이다. - 초기 지원 대상은 Cloudflare 오픈소스 생태계와 가까운 프로젝트다. - Astro - Agents SDK - EmDash - Hono - Vinext - Community Engineer에게는 Cloudflare Discord와 기타 온라인 공간에서 특별한 표식이 부여된다. - 보조금 신청은 추후 시작될 예정이다. ## Cloudflare Discord 커뮤니티 개선 - 2020년 개설된 Cloudflare Discord에는 약 10만 명의 사용자가 참여했다. - Discord는 질문, 프로젝트 공유, 제품 피드백이 이루어지는 주요 공간으로 성장했다. - 커뮤니티가 커질수록 스팸, 악성 링크, 운영 부담도 증가하기 때문에 다음과 같은 개선을 추진한다. - Cloudflare 직원과 앰배서더가 참여하는 새로운 Discord 위원회 구성 - 스팸과 악성 링크를 차단하는 자동화 도구 도입 - 운영 자동화 도구를 향후 오픈소스로 공개 - 위원회의 핵심 역할은 단순한 관리자 업무나 채팅방 감시가 아니다. - 질문자를 적절한 도메인 전문가에게 연결 - Cloudflare 내부 팀과 커뮤니티 간 대화 주선 - 기술 세션과 협업 기회 마련 - 커뮤니티 콘텐츠와 성장 기회에 집중 - 제공된 글은 Discord를 “더 쉽게…” 개선하겠다는 대목에서 끝나므로, 이후 구체적인 계획은 확인할 수 없다. Cloudflare의 방향은 단순히 제품 사용자를 늘리는 데서 벗어나, 교육자·행사 주최자·오픈소스 유지보수자를 장기적으로 지원하는 생태계를 만드는 데 있다. Cloudflare를 활용하는 개발자라면 앰배서더 프로그램을, 관련 오픈소스 프로젝트를 유지하거나 기여한다면 Community Engineer 보조금 프로그램을 검토할 만하다.

cloudflare

Astro의 GitHub 이슈를 0개로 만들기 위해 소프트웨어 팩토리를 구축한 방법 (새 탭에서 열림)

AI 에이전트를 소프트웨어 생산 파이프라인처럼 조합하면 오픈소스 이슈 triage를 상당 부분 자동화할 수 있다는 글이다. Astro는 GitHub Actions 안에서 격리된 에이전트들이 이슈 재현·원인 분석·수정·검증을 수행하도록 구성해 열린 이슈를 200개 이상에서 약 30개까지 줄였다. 이 경험은 특정 플랫폼에 종속되지 않는 에이전트 워크플로 프레임워크인 Flue와 재사용 가능한 GitHub Action으로 발전했다. ## 오픈소스 유지보수와 이슈 폭증 - AI 때문에 이슈, pull request, 보안 보고서를 생성하는 비용은 크게 낮아졌다. - 반면 유지보수자가 각 보고서를 읽고 재현하고 검토하는 비용은 증가했다. - 기존의 수동 triage 방식만으로는 늘어나는 입력량을 감당하기 어려워졌다. - Astro 팀은 이슈를 자동으로 닫거나 “issue bankruptcy”를 선언하지 않고, 실제 문제를 해결하는 방향을 택했다. ## 에이전트 스킬로 시작한 자동화 - 첫 자동화 대상은 개발 과정 중 시간이 많이 들고 보상이 적은 이슈 triage였다. - 유지보수자는 로컬 코딩 하네스에서 에이전트 스킬을 개발·테스트한 뒤, 동일한 워크플로를 GitHub Actions에서 실행했다. - 수동 이슈 처리 절차를 다음 단계로 분리했다. - **재현:** 제보자가 제공한 재현용 저장소를 복제하고 문제 발생 여부 확인 - **진단:** 코드에 로깅과 계측을 추가해 근본 원인 파악 - **검증:** 테스트, 주석, 문서를 검토해 실제 버그인지 의도된 동작인지 판단 - **수정:** 재현 사례를 실패하는 단위 테스트로 변환하고 적절한 수정안을 구현 - 각 단계는 서로 격리된 서브에이전트가 담당한다. - 에이전트 간 정보는 `report.md`에 기록해 순차적으로 전달한다. - 단계별 격리는 LLM이 실제 버그가 아닌데도 해결책을 억지로 만들려는 편향을 줄인다. ## GitHub 이슈 라벨 기반 상태 머신 - 자동화 파이프라인은 사실상 이슈 라벨로 구동되는 상태 머신이다. - 새 이슈에는 `triage needed` 라벨이 붙고, 사용자가 수정 사항을 확인하면 `fix verified`로 이동한다. - 별도의 복잡한 내부 상태 저장소 없이, 이슈의 라벨과 기존 댓글을 읽어 현재 상태와 다음 작업을 판단한다. - 수정이 완료되면 다음 작업을 자동 수행한다. - `pkg.pr.new`를 이용해 프리뷰 릴리스 생성 - 분석 결과와 전체 로그를 이슈에 게시 - 제보자가 자신의 프로젝트에서 프리뷰 패치를 설치하도록 안내 - 제보자가 수정 사항을 확인하면 관련 pull request 생성 ## Flue로의 일반화 - 초기에는 GitHub 이슈에 맞춘 시스템처럼 보였지만, 핵심 구조는 플랫폼과 무관한 워크플로였다. - 이벤트를 받고, 격리된 서브에이전트를 순차 실행하며, 추론과 실제 실행 권한을 분리하는 방식은 Slack, cron, webhook 등에도 적용할 수 있다. - 이 구조를 특정 플랫폼이나 모델에 종속되지 않는 런타임으로 확장한 결과가 오픈 프레임워크 **Flue**다. - Flue는 지속적으로 실행 가능한 에이전트와 워크플로를 구축하기 위한 프레임워크를 지향한다. ## 자동화가 커뮤니티에 미친 영향 - 팀은 자동화된 봇 응답이 유지보수자와 사용자 사이를 더 멀어지게 만들 수 있다고 우려했다. - 실제로는 반복적인 이슈 처리에 쓰는 시간이 줄면서 더 가치 있는 커뮤니티 활동에 참여할 수 있었다. - Discord에서 사용자와 직접 소통 - RFC 논의와 신규 기능 요청 검토 - 기여자와 협업해 아이디어를 프레임워크에 통합 - 자동화가 사람과의 소통을 없앤 것이 아니라, 소통의 초점을 더 유용한 논의로 옮겼다는 설명이다. ## 에이전트 실패를 코드베이스 개선 신호로 활용 - 에이전트가 문제를 해결하지 못하면 단순히 모델의 실패로 보지 않고 코드베이스의 결함을 점검한다. - 주요 원인은 다음 세 가지다. - **불투명한 추상화:** 컴포넌트 간 경계가 불명확함 - **부족한 문서화:** 구현 이유와 핵심 로직을 설명하는 주석이 없음 - **불충분한 테스트:** 특히 특정 조건과 회귀 사례를 검증하는 단위 테스트 부족 - HMR 버그 사례에서 에이전트는 특정 `if` 조건을 반복 수정했지만, 다른 곳에 회귀를 일으켰다. - 해당 조건의 의미를 설명하는 주석과 테스트를 추가하자 에이전트는 올바른 설계 의도를 이해하고 잘못된 수정을 반복하지 않게 됐다. - 따라서 에이전트 자동화는 코드 구조, 문서, 테스트 품질을 개선하는 피드백 루프로도 작동한다. ## 독립적인 GitHub Action으로 분리 - 초기 triage 로직은 Astro 모노레포 내부에 직접 들어 있어 변경과 Flue 업그레이드가 어려웠다. - 팀은 이를 `triagebot-action`이라는 독립 저장소로 분리했다. - 분리 후 다음이 가능해졌다. - 자동화 로직의 독립적인 테스트 - 기존 코드베이스에 영향을 주지 않는 안정성 검증 - 여러 프로젝트에서 재사용 - 다른 팀이 그대로 사용하거나 포크해 자체 자동화 공장을 구축 - Astro에서 시작한 이 Action은 다른 팀으로도 확산되고 있다. 실용적으로는 처음부터 모든 개발 과정을 자동화하기보다, 재현·진단·검증처럼 절차가 명확한 좁은 영역부터 시작하는 것이 적절하다. 또한 에이전트의 실패를 숨기기보다 테스트, 문서, 추상화 경계를 개선하는 신호로 활용해야 자동화 품질과 사람 개발자의 생산성을 함께 높일 수 있다.

cloudflare

Cloudflare가 AI를 활용해 엔지니어링 표준을 시행하는 방법 (새 탭에서 열림)

Cloudflare는 흩어져 있던 엔지니어링 지침을 통합·관리하는 표준 저장소인 **Cloudflare Codex**를 구축했다. Codex는 RFC 형식의 표준을 사람과 AI 에이전트가 작업 시점에 검색하고 적용할 수 있게 하며, 코드 리뷰·기술 설계 검토·사고 보고서 검토 등에 공통으로 활용된다. 도입 후 AI 코드 리뷰어는 약 23만 건의 위반을 발견했고, 그중 약 1만 6천 건의 병합을 차단했다. ## Codex가 필요했던 이유 - Cloudflare의 기존 지침은 공식 문서, 저장소 파일, 채팅 기록, 개인의 경험 등 여러 위치에 분산돼 있었다. - 개발자는 문제 해결보다 관련 지침을 찾는 데 많은 시간을 써야 했다. - 지침을 찾더라도 최신 정보인지, 권위 있는 기준인지, 현재 상황에 적용 가능한지 판단하기 어려웠다. - 조직이 커지면서 모든 표준을 읽고 모든 요구사항을 검토하는 것이 불가능해졌다. - 팀 이동이나 인력 변화로 조직의 지식이 유실되기 쉬웠고, 지침이 일관되게 노출·강제되지 않아 프로젝트 간 품질 편차가 발생했다. ## 도메인과 RFC 기반 거버넌스 - Codex는 아키텍처, 프런트엔드, 컨트롤 플레인, 보안, 신뢰성, TypeScript, Rust 등 여러 도메인으로 나뉜다. - 각 도메인에는 담당자가 있어 문서의 내용·일관성·품질을 관리한다. - 표준은 RFC 2119의 의미에 따라 `SHOULD`와 `MUST` 키워드를 사용한다. - `SHOULD`: 특별한 이유가 없다면 따라야 하는 권고 - `MUST`: 반드시 지켜야 하는 필수 요구사항 - RFC에는 도메인과 상태 같은 메타데이터를 담은 front matter가 포함된다. - 도메인 역량과 관심이 있는 직원은 정해진 형식의 merge request로 RFC를 제안할 수 있다. - 제안서는 점점 더 넓은 범위의 리뷰를 거치며, 도메인 담당자가 최종 승인하면 Codex에 편입되고 Astro 기반 내부 사이트에 게시된다. ## 승인과 강제를 분리한 표준 수명주기 - 승인된 RFC는 Codex 클라이언트와 에이전트가 즉시 읽고 코드·설정·문서의 위반을 탐지하는 데 사용할 수 있다. - 다만 승인 직후부터 병합을 차단하지는 않는다. - RFC가 `approved`에서 `enforced` 상태로 승격된 뒤에야 관련 요구사항이 차단 근거가 된다. - 이 단계 분리를 통해 팀이 새로운 요구사항을 받아들일 시간을 확보하고, 자동화나 예외 처리 등 강제에 필요한 준비도 마칠 수 있다. - 승인된 RFC의 위반은 일반적으로 비차단 권고로 처리되며, 강제 상태 RFC의 `MUST` 위반은 심각도에 따라 승인 보류 또는 병합 차단으로 이어진다. ## LLM을 위한 구조화와 점진적 공개 - 60개가 넘는 RFC 전체를 매번 LLM에 제공하면 컨텍스트 윈도우 부담이 커지고 결과 품질이 떨어질 수 있다. - 이를 해결하기 위해 별도의 에이전트가 RFC에서 `SHOULD`와 `MUST` 문장을 추출해 JSON 구조로 압축한다. - 각 표준 문장에는 다음 정보가 포함된다. - RFC 번호와 제목 - RFC 상태와 도메인 - 적용 수준(`SHOULD` 또는 `MUST`) - 문장이 속한 섹션 - 원문으로 연결되는 링크 - 안정적인 `slug` 식별자 - 에이전트는 우선 관련 표준 문장만 검색하고, 추가 설명이 필요할 때만 RFC 전체 내용을 불러온다. - 안정적인 slug는 RFC가 수정돼도 같은 요구사항을 추적할 수 있게 해 모니터링, 분석, 예외 처리에 활용된다. - 초기에는 간결한 Markdown을 사용했지만, 더 정확한 필터링을 위해 구조화된 JSON으로 전환했다. - 향후에는 설계·구현·런타임 등 소프트웨어 개발 생명주기 단계별 적용 범위도 메타데이터에 포함할 계획이다. ## AI 코드 리뷰 적용 - AI 코드 리뷰어는 merge request를 여러 기준으로 검사하며 Codex 준수 여부도 평가한다. - 리뷰마다 관련 RFC와 추출된 표준 문장을 검색하고, 필요한 경우에만 RFC 본문을 추가로 읽는다. - 대부분의 위반은 압축된 표준 문장만으로도 문제와 근거를 설명할 수 있다. - Codex 도입 이후 약 23만 건의 위반을 발견했다. - 이 중 약 1만 6천 건은 강제 상태 RFC의 `MUST` 요구사항 위반으로 승인 보류를 발생시켰다. ## AI 리뷰를 보완하는 빠른 린터 - AI 리뷰는 코디네이터와 여러 하위 에이전트를 실행하므로 보통 수 분이 걸린다. - 수정 후 다시 리뷰를 받아야 하는 추가 왕복과 대기 시간이 개발자 경험을 저하시킬 수 있다. - Cloudflare는 기계적으로 검증 가능한 언어별 요구사항을 별도 린터 설정 패키지로 제공하는 방식을 마련했다. - 이 린터는 Codex 표준과 정렬되며 문제를 밀리초 단위로 표시할 수 있다. - TypeScript가 첫 번째 대상 언어였고, 동시에 `oxlint`를 표준화하는 방향으로 진행됐다. ## 여러 엔지니어링 단계로의 확장 - Codex는 코드 리뷰에만 한정되지 않는다. - 기술 설계가 구현되기 전에 표준을 검토하는 spec reviewer가 이미 약 600개의 설계를 평가했다. - incident report reviewer 등 사고 분석과 운영 프로세스에도 같은 기준을 적용할 수 있다. - 하나의 관리된 표준 원천을 여러 에이전트가 공유함으로써 설계부터 구현, 운영까지 일관된 엔지니어링 기준을 적용할 수 있다. 새로운 표준은 먼저 `approved` 상태로 도입해 팀의 적응과 자동화 준비 시간을 확보한 뒤, 충분히 검증되면 `enforced`로 승격하는 방식이 실용적이다. 또한 LLM에는 전체 문서를 무작정 제공하기보다, 안정적인 식별자와 메타데이터를 갖춘 핵심 규칙을 먼저 검색하게 하고 필요할 때만 원문을 공개하는 구조가 효과적이다.

github

GitHub 에이전틱 워크플로로 리포지토리 간 문서화 자동화 (새 탭에서 열림)

Aspire 팀은 GitHub Agentic Workflows를 활용해 제품 코드 저장소와 문서 저장소가 분리된 환경에서도 기능 변경 직후 문서 PR을 자동 생성하는 시스템을 구축했다. 에이전트가 변경 사항과 이슈를 분석해 문서를 작성하지만, 실제 쓰기 작업은 제한된 별도 핸들러가 수행하도록 분리해 보안을 확보했다. 그 결과 Aspire 13.3·13.4에서 82개의 문서 PR이 제품 PR 병합 후 중앙값 44.8시간 내 생성됐고, 모두 해당 기능을 구현한 엔지니어의 검토를 받았다. ## 교차 저장소 문서화가 어려운 이유 - 제품 코드는 `microsoft/aspire`, 문서 사이트는 `microsoft/aspire.dev`에 있어 저장소와 배포 대상, 리뷰 절차가 분리되어 있다. - 기존 방식은 문서 작성자가 몇 주 뒤 닫힌 PR을 찾아 변경 내용을 역추적하는 구조였다. - 기능 작성자는 이미 다음 작업으로 넘어간 상태라 문서 작성에 필요한 맥락을 충분히 제공하기 어려웠다. - 저장소 전체에 쓰기 권한을 가진 광범위한 토큰은 보안상 부적절하므로, 단순한 크로스 리포지토리 자동화도 권한 설계가 병목이 된다. ## GitHub Agentic Workflows의 구조 - 워크플로를 YAML 대신 하나의 Markdown 파일로 작성한다. - YAML 형식의 frontmatter에 설정을 작성한다. - 아래에는 에이전트가 수행할 작업을 자연어 프롬프트로 작성한다. - 컴파일하면 일반 GitHub Actions 워크플로인 `.lock.yml` 파일이 생성된다. - 실행 시 에이전트는 제한된 도구와 프롬프트를 바탕으로 변경 사항을 분석한다. - 에이전트가 GitHub에 직접 쓰지 않는 점이 핵심이다. - 에이전트는 생성하려는 PR, 이슈, 댓글을 JSON 형태의 의도로 출력한다. - 별도의 `safe-outputs handler`가 허용된 작업만 실제로 실행한다. - 저장소와 작업 종류를 명시적으로 제한할 수 있어 보안 검토와 자동화의 균형을 맞춘다. ## 기능 PR에서 문서 PR로 이어지는 자동화 흐름 - `microsoft/aspire`의 `main` 또는 `release/*` 브랜치에 병합된 PR을 `pull_request: closed` 이벤트로 감지한다. - `merged == true` 조건을 적용해 실제 병합된 PR만 처리한다. - 에이전트가 실행되기 전에 Bash 기반의 결정론적 로직으로 문서 대상 브랜치를 결정한다. 1. 제품 PR의 마일스톤 제목을 확인한다. 예를 들어 `13.4`는 문서 저장소의 `release/13.4`로 매핑된다. 2. PR 본문에서 `Fixes`, `Closes`, `Resolves`로 연결된 이슈를 찾고, 해당 이슈의 첫 번째 비어 있지 않은 마일스톤을 확인한다. 3. PR의 base ref가 `release/X.Y` 또는 `release/X.Y.Z` 형식이면 이를 사용한다. 4. 어느 조건에도 해당하지 않으면 `main`을 사용한다. - 마일스톤과 문서 브랜치를 명확히 매핑해 에이전트가 대상 브랜치를 추측하지 않도록 한다. - 에이전트는 제품 diff와 연결된 이슈를 읽고 문서화가 필요한 변경인지 판단한다. - 문서가 필요하면 체크아웃된 `microsoft/aspire.dev` 작업 공간에 기존 문서 작성 규칙에 맞춰 초안을 작성한다. - 문서의 문체 - MDX 규칙 - Astro Starlight 컴포넌트 사용법 - 이후 `create_pull_request` safe output을 생성해 문서 PR 생성을 요청한다. ## 제한된 권한으로 PR 생성하기 - safe-outputs 핸들러는 실제 PR 생성 시 다음 제약을 적용한다. - PR 제목에 `[docs]` 접두사 사용 - `docs-from-code` 라벨 부착 - 자동 병합 없이 항상 draft PR로 생성 - base 브랜치는 `main` 또는 `release/*`로 제한 - 대상 저장소는 `microsoft/aspire.dev`로 고정 - 제품 PR의 리뷰 기록에서 해당 기능을 승인한 SME를 찾아 문서 PR 리뷰어로 요청한다. - 문서 리뷰가 기능 구현자의 맥락과 분리되지 않도록, 실제 기능을 승인한 사람이 문서도 검토하게 한다. - 별도 작업은 원본 제품 PR에 문서 PR 링크를 댓글로 남긴다. - 재실행 시 이전 `pr-docs-check` 댓글을 최소화해 중복 알림을 줄인다. - 기능을 병합한 엔지니어는 몇 분 안에 문서 초안을 확인할 수 있다. ## 보안 설계와 safe-outputs 계약 - GitHub 도구 세트를 `repos`, `issues`, `pull_requests` 등 필요한 범위로 제한한다. - `min-integrity: approved` 설정으로 무결성이 검증된 작업만 실행하도록 한다. - 허용 저장소를 `microsoft/*`처럼 제한할 수 있다. - 전용 GitHub App의 App ID와 private key를 사용해 일반적인 광범위 토큰 대신 작업별 권한을 부여한다. - App이 접근할 수 있는 저장소도 `aspire.dev`, `aspire`로 한정한다. - 에이전트의 분석 권한과 실제 변경 권한을 분리해, 에이전트가 임의로 저장소에 쓰거나 병합하지 못하게 한다. - 최종 문서 반영은 여전히 draft PR과 사람의 리뷰를 거친다. ## 측정된 결과 - Aspire 13.3과 13.4에서 문서 기능 PR 82개가 병합됐다. - 문서 PR은 제품 PR 병합 후 중앙값 44.8시간 뒤에 생성됐다. - 모든 문서 PR을 해당 기능을 구현한 엔지니어가 검토했다. - 별도의 인력 충원이나 새로운 프로세스 교육 없이 운영됐다. - 문서 작성 시점이 기능 출시 후 수 주가 아니라 기능 병합 직후로 앞당겨졌다. 기능 저장소와 문서 저장소가 분리되어 있다면, 에이전트에게 광범위한 쓰기 권한을 주기보다 **결정론적인 브랜치 선택 로직, 제한된 safe outputs, 초안 PR, 담당 엔지니어 리뷰**를 결합하는 방식이 실용적이다. AI가 문서를 작성하더라도 최종 병합은 사람이 담당하도록 설계하는 것이 안전성과 문서 품질을 함께 확보하는 방법이다.

cloudflare

EmDash를 소개합니다 — 플러그인 보안 문제를 해결한 워드프레스의 정신적 후속작 (새 탭에서 열림)

EmDash는 24년 된 워드프레스(WordPress)의 구조적 한계를 극복하고 현대적인 웹 환경에 최적화하기 위해 등장한 오픈소스 CMS입니다. 기존 워드프레스의 가장 큰 취약점인 플러그인 보안 문제를 '다이나믹 워커(Dynamic Worker)'를 통한 샌드박스 격리 방식으로 해결했으며, TypeScript와 Astro 프레임워크를 기반으로 설계되었습니다. 이를 통해 서버리스 환경에서 안전하고 빠른 성능을 보장하며, MIT 라이선스를 채택해 개발자들에게 더 높은 자유도를 제공하는 것을 목표로 합니다. ### 워드프레스의 유산과 현대적 재구성 * **전통의 계승과 한계:** 워드프레스는 인터넷의 40% 이상을 점유하며 출판의 민주화를 이루었으나, AWS EC2조차 없던 시절에 설계되어 현대의 서버리스 및 글로벌 분산 네트워크 환경을 충분히 활용하지 못하고 있습니다. * **현대적 기술 스택:** EmDash는 전체 코드가 TypeScript로 작성되었으며, 콘텐츠 기반 웹사이트에 최적화된 프레임워크인 Astro를 기반으로 구동됩니다. * **서버리스 최적화:** 가상 프라이빗 서버(VPS)에 의존하던 방식에서 벗어나, Cloudflare와 같은 서버리스 플랫폼이나 Node.js 환경 어디서든 유연하게 배포할 수 있습니다. * **완전한 오픈소스:** 워드프레스의 코드를 전혀 사용하지 않고 밑바닥부터 새로 작성하여, GPL보다 허용 범위가 넓은 MIT 라이선스를 적용해 생태계 참여를 독려합니다. ### 플러그인 보안 위기의 근본적 해결 * **직접 접근의 위험성 제거:** 워드프레스 취약점의 96%는 플러그인에서 발생하며, 이는 PHP 스크립트가 데이터베이스와 파일 시스템에 직접 접근할 수 있는 구조 때문입니다. * **다이나믹 워커(Dynamic Worker) 격리:** EmDash는 각 플러그인을 독립된 샌드박스(Isolate)에서 실행합니다. 플러그인은 핵심 시스템에 직접 접근할 수 없으며 선언된 범위 내에서만 작동합니다. * **역량 기반 권한 모델 (Capability-based Model):** 플러그인은 매니페스트 파일에 필요한 권한(예: `read:content`, `email:send`)을 명시적으로 선언해야 합니다. 관리자는 설치 전 플러그인이 어떤 권한을 요구하는지 OAuth 승인 과정처럼 명확히 확인할 수 있습니다. * **네트워크 제어:** 플러그인은 외부 네트워크 접근이 기본적으로 차단되며, 필요한 경우 특정 호스트네임에 대해서만 접근 권한을 정적으로 부여받아 실행됩니다. ### 시장 종속성 탈피와 개발자 생태계 혁신 * **신뢰 구조의 변화:** 기존 워드프레스는 보안 위험 때문에 마켓플레이스의 수동 검토와 평판에 의존해야 했으나, EmDash는 기술적 격리를 통해 코드 수준에서 신뢰를 보장합니다. * **비즈니스 유연성:** 보안 이슈로 인해 강제되었던 마켓플레이스 종속성과 라이선스 제약에서 벗어나, 개발자들이 자신의 코드를 더 자유롭게 배포하고 상용화할 수 있는 환경을 제공합니다. * **정적 선언을 통한 자동화:** 플러그인의 권한 요구 사항이 정적으로 정의되어 있어, 관리자는 특정 권한을 요구하는 플러그인의 설치를 그룹별로 제한하는 등 정책 기반의 관리가 가능해집니다. 현재 EmDash는 v0.1.0 프리뷰 버전을 공개하고 초기 개발자 베타를 진행 중입니다. 클라우드플레어 계정이나 Node.js 서버에 직접 배포하여 테스트할 수 있으며, 기존 워드프레스의 운영 편의성은 유지하면서도 최신 보안 표준과 성능이 필요한 프로젝트에 강력한 대안이 될 것으로 보입니다.

cloudflare

Cloudflare 플랫폼에서 수직적 마 (새 탭에서 열림)

Cloudflare는 단일 도메인 내에서 여러 독립적인 Cloudflare Workers를 특정 URL 경로에 매핑하여 팀별로 자율성을 보장하는 '버전별 마이크로프론트엔드(VMFE)' 템플릿을 발표했습니다. 이 방식은 기존의 수평적 마이크로프론트엔드와 달리 경로별로 전체 기술 스택을 분리함으로써, 팀이 프레임워크 선택부터 배포 파이프라인까지 독립적으로 제어할 수 있게 합니다. 결과적으로 사용자에게는 하나의 매끄러운 서비스로 보이지만, 내부적으로는 여러 팀이 서로의 간섭 없이 독립적으로 기능을 개발하고 배포할 수 있는 환경을 제공합니다. ### 수직적 마이크로프론트엔드(VMFE)의 정의와 이점 * **경로 기반의 독립성**: `/blog`, `/docs`, `/dash`와 같은 URL 경로별로 개별 Worker를 할당하며, 각 경로는 프레임워크, 라이브러리, CI/CD 파이프라인을 포함한 전체 스택을 독립적으로 소유합니다. * **기술 선택의 유연성**: 마케팅 페이지에는 Astro를 사용하고 대시보드에는 React를 사용하는 등, 서비스의 특성에 가장 적합한 도구를 팀별로 자유롭게 선택할 수 있습니다. * **배포 리스크 감소**: 모놀리식 구조에서 발생하던 '한 팀의 오류로 인한 전체 배포 중단' 문제를 해결하며, 특정 기능의 업데이트나 롤백이 다른 서비스에 영향을 주지 않습니다. ### URL 기반의 정교한 라우팅 구조 * **세분화된 관리**: 단순한 최상위 경로뿐만 아니라 `/dash/product-a`와 `/dash/product-b`처럼 세부 경로별로 다른 Worker를 매핑하여 대규모 애플리케이션 내의 개별 제품군을 독립적으로 관리할 수 있습니다. * **코드 공유 제로**: 각 경로는 서로 코드를 공유하지 않는 완전히 독립된 프로젝트로 운영되어 프로젝트 간의 의존성을 완벽히 차단합니다. * **실제 적용 사례**: Cloudflare는 이미 자사 대시보드에 이 전략을 적용하고 있으며, 사용자가 대시보드에서 ZeroTrust 제품으로 이동할 때 실제로는 별개의 프로젝트로 라우팅되도록 구현했습니다. ### 사용자 경험을 통합하는 기술적 전략 * **CSS View Transitions**: 서로 다른 Worker 간의 이동 시 발생하는 브라우저의 흰색 공백(interstitial loading state)을 방지하고, 내비게이션 바와 같은 공통 요소를 화면에 유지시켜 SPA(Single Page Application)와 같은 부드러운 전환 효과를 제공합니다. * **Speculation Rules API**: 사용자가 다음에 방문할 가능성이 높은 경로를 브라우저가 미리 사전 페치(prefetch)하거나 사전 렌더링하도록 설정하여, 멀티 페이지 아키텍처임에도 불구하고 즉각적인 페이지 로딩 속도를 구현합니다. * **시각적 일관성**: CSS의 `view-transition-name` 등을 활용하여 기술적인 구현 세부 사항(여러 개의 Worker 사용)을 사용자에게 노출하지 않고 단일한 애플리케이션 경험을 유지합니다. 독립적인 개발 속도와 일관된 사용자 경험이라는 두 마리 토끼를 잡고 싶은 성장하는 조직에게 이 VMFE 아키텍처는 매우 강력한 솔루션입니다. Cloudflare가 제공하는 새로운 Worker 템플릿과 최신 브라우저 API(View Transitions, Speculation Rules)를 결합하면, 기술적 복잡성을 관리하면서도 고성능의 웹 애플리케이션을 구축할 수 있습니다.

cloudflare

Astro가 Cloudflare (새 탭에서 열림)

웹 프레임워크 Astro를 개발하는 Astro Technology Company가 Cloudflare에 합류합니다. 이번 인수를 통해 Astro는 독립적인 오픈 소스 프로젝트로서의 정체성을 유지하는 동시에, Cloudflare의 강력한 인프라 지원을 받아 콘텐츠 중심 웹 사이트 구축을 위한 최적의 프레임워크로 거듭날 전망입니다. 특히 Vite 기반의 새로운 개발 서버를 탑재한 Astro 6 출시를 앞두고 있어 기술적 진보와 생태계 확장이 더욱 가속화될 것으로 보입니다. **오픈 소스 생태계 및 이식성 유지** - Astro는 여전히 MIT 라이선스를 유지하며, 공개 로드맵과 개방형 거버넌스 체제 하에 누구나 기여할 수 있는 오픈 소스로 남습니다. - 기존 Astro 팀원 전원이 Cloudflare 소속으로 옮겨가 개발을 지속하며, 특정 클라우드에 종속되지 않고 어디서나 실행될 수 있는 '플랫폼 이식성' 원칙을 고수합니다. - Webflow, Netlify, Wix 등 주요 파트너들과 함께 'Astro 에코시스템 펀드'를 통해 커뮤니티와 오픈 소스 기여자에 대한 지원을 계속 이어갑니다. **Astro의 핵심 철학과 아일랜드 아키텍처** - 콘텐츠 중심(Content-driven), 서버 우선(Server-first), 기본 성능 최적화(Fast by default) 등 5가지 설계 원칙을 통해 웹 개발의 복잡성을 해결합니다. - '아일랜드 아키텍처(Islands Architecture)'를 핵심 기술로 활용하여, 페이지의 대부분을 정적 HTML로 구성하고 필요한 부분에만 선택적으로 자바스크립트를 실행해 웹사이트 속도를 극대화합니다. - React, Vue, Svelte 등 다양한 UI 프레임워크를 한 페이지 내에서 혼합하여 사용할 수 있는 유연성을 제공하여 개발자 경험을 높였습니다. **Cloudflare와의 시너지 및 플랫폼 활용** - Webflow Cloud, Wix Vibe 등 많은 플랫폼이 이미 Cloudflare 인프라 위에서 Astro를 기반으로 고객 서비스를 구축하고 있어 기술적 결합도가 높습니다. - 최근 부상하는 AI 코딩 에이전트와 LLM 환경에서, 잘 구조화되고 단순한 Astro의 코드 베이스는 더 효율적인 자동화 구축의 기반이 됩니다. - Cloudflare의 글로벌 네트워크와 Astro의 빠른 렌더링 성능이 결합되어 전 세계 사용자에게 더 나은 웹 경험을 제공하는 것을 목표로 합니다. **Astro 6의 주요 기술적 변화** - **새로운 개발 서버:** Vite Environments API를 기반으로 재설계되어, 로컬 환경에서도 실제 운영 환경(Cloudflare workerd 런타임 등)과 동일한 API(Durable Objects, D1, KV 등)를 사용할 수 있습니다. - **실시간 콘텐츠 컬렉션(Live Content Collections):** 사이트를 다시 빌드하지 않고도 재고 현황과 같은 실시간 데이터를 실시간으로 업데이트할 수 있는 기능이 정식 버전으로 포함됩니다. - **보안 및 편의성 강화:** 커뮤니티 요청이 가장 많았던 콘텐츠 보안 정책(CSP)을 퍼스트 클래스로 지원하며, Zod 4 업그레이드 및 API 단순화가 이루어집니다. 콘텐츠 중심의 고성능 웹사이트를 구축하려는 개발자라면 Cloudflare와의 협업으로 더욱 강력해질 Astro 생태계에 주목할 필요가 있습니다. 현재 Astro 6 베타 버전이 공개되어 있으므로, 새로운 Vite 기반 개발 서버와 실시간 콘텐츠 관리 기능을 미리 경험해 보는 것을 추천합니다.