GitHub 에서 소식 보기:
https://github.com/naver/fe-news/blob/master/issues/2026-08md
매년 진행되는 CSS 생태계 설문 조사인 State of CSS의 2026년 결과다. 2026년 5월 15일부터 6월 29일까지 진행되었고 4,902명이 응답했으며, 결과 페이지는 한국어를 포함한 다국어 번역을 제공한다. 새로 등장한 기능의 사용률과 만족도, 브라우저 지원 현황, 개발자들의 도구 선택 경향을 한자리에서 확인할 수 있다.
가장 눈에 띄는 결과는 앵커 포지셔닝(Anchor Positioning)이다. “가장 마음에 드는 신규 기능”과 “브라우저 지원 때문에 쓰지 못해 아쉬운 기능” 양쪽에서 1위를 차지했다. :has(), CSS 중첩(Nesting), @container, View Transition API가 그 뒤를 잇는데, 새로운 기능에 대한 기대와 실제 도입을 가로막는 브라우저 지원 격차가 여전히 이번 조사의 핵심 주제로 남아 있다.
또 하나 흥미로운 지점은 CSS가 AI 자동화에 상대적으로 덜 잠식되었다는 응답이다. 응답자들이 밝힌 AI 생성 비율은 평균 28%에 그쳤고, 서술형 응답에서는 AI가 품질 있는 스타일시트를 만들어 내지 못한다는 이유가 주로 언급되었다. 다음 프로젝트에서 어떤 CSS 기능과 도구를 채택할지 판단하려는 개발자에게 참고할 만한 자료다.
Matt Smith가 JavaScript에서 습관처럼 모든 객체를 구조 분해 할당(destructuring)하던 방식을 멈추게 된 이유를 정리한 글이다. 구조 분해가 나름의 쓸모가 있지만, 남용하면 읽기보다 쓰기의 편의만을 위해 코드를 최적화하게 된다고 지적한다.
저자는 나중에 구조 분해된 코드를 이해하는 데 든 시간이 작성할 때 아낀 시간보다 많았다는 경험에서 출발한다. post.title처럼 원본 객체 참조를 남겨 두면 변수의 출처라는 맥락이 유지되는 반면, title로 분해하면 독자가 매번 어디서 온 값인지 되짚어야 한다는 것이다. 특히 중첩 구조 분해는 당장 필요하지 않은 객체 구조 전체를 미리 파악하도록 강요한다고 본다.
그렇다고 구조 분해를 전면 배격하지는 않는다. 변수가 의미 있는 개념을 나타내거나, map 콜백처럼 수명이 짧은 맥락이거나, 이름을 바꿔 의도를 명확히 할 때는 여전히 사용한다. 핵심은 “객체를 없애는 것이 이해를 쉽게 하는가, 아니면 그저 짧게 만들 뿐인가”를 묻는 습관이며, 가독성과 간결함 사이에서 균형을 고민하는 개발자에게 좋은 참고가 된다.
이벤트 기반 워크플로 플랫폼 Inngest의 Dan Farrelly가 AI Engineer World’s Fair 2026 발표를 글로 옮긴 것으로, AI 에이전트 아키텍처를 어떻게 설계해야 잦은 패턴 교체에도 버틸 수 있는지를 다룬다. 함수 호출 → 도구 사용 → MCP → CLI, LangChain → LangGraph → SDK 직접 사용처럼 “올바른 방법”이 6개월마다 바뀌는 현실에서, 특정 패턴에 인프라를 결합하면 매번 재작성을 반복하게 된다는 문제의식에서 출발한다.
저자는 에이전트 아래에 세 개의 층이 있다고 정리한다. 매주 바뀌는 모델·프롬프트·도구·RAG의 컨텍스트(지식), 샌드박스·컨테이너 등 몇 달 주기로 교체되는 컴퓨트(손), 그리고 재시도·상태 지속·조율·관측성처럼 수년간 안정적인 실행(두뇌) 층이다. 각 층은 서로 다른 반감기(half-life)를 가지므로, 변화가 잦은 층은 교체 가능하게 만들고 가장 안정적인 실행 층에 투자해야 한다는 것이 핵심 주장이다.
실행 층이 갖춰야 할 조건으로는 실패 지점에서 재시작이 아닌 재개(resume), 이벤트·크론·API·휴먼인더루프 등 유연한 호출과 조율, 전체 세션을 관통하는 관측성을 든다. 샌드박스는 “손이지 두뇌가 아니”라며 상태나 내구성을 샌드박스에 맡기는 것을 안티패턴으로 지적하는데, 장시간 실행되는 백그라운드 에이전트와 자기 개선형 루프 아키텍처를 준비하는 팀이라면 참고할 만한 관점이다.
기술 컨설턴트로 일하는 저자가 현장에서 목격한 조직들의 AI 광풍과 그로 인한 의사결정 왜곡을 신랄하게 비판하는 에세이다. 관측한 도입 사례에서 “1년 반 동안 성공률 0%”였다며, 아무도 쓰지 않는 사내 챗봇이나 사용자를 실망시키는 고객 응대 봇 같은 실패가 반복된다고 주장한다.
핵심은 기술 자체가 아니라 조직 문화다. AI에 대한 회의적 발언이 “이단”으로 취급되어 승진에는 “신앙 고백”이 필요해졌고, LLM 없이 성과를 낸 인재가 해고되거나 직원들이 생존을 위해 AI를 쓰는 척하는 AI-워싱이 벌어진다고 지적한다. 경영진은 실적 부진을 인정하면 무능해 보이거나 계약이 취소될까 두려워 침묵하고, 그 결과 일상적인 DB 마이그레이션에도 ‘AI’ 딱지를 붙이는 상황이 이어진다.
저자는 도머리즘(doomerism)에 빠지지 않으면서도 이 현상이 결국 다른 형태로 반복될 것이라 전망한다. AI 도입을 검토하거나 조직 내에서 관련 압박을 겪는 개발자에게, 과열된 분위기 속에서 무엇을 냉정하게 봐야 하는지 되짚게 하는 글이다.
이벤트 기반 백그라운드 작업 플랫폼 Inngest가 Connect SDK에 Worker Threads를 프로덕션 수준으로 도입하며 얻은 실전 교훈을 정리한 글이다. 간단한 예제를 넘어 스레드 격리·통신·생명주기 관리에서 실제로 마주치는 복잡성을 다룬다.
핵심 원칙은 “워커 스레드 경계는 API 경계이므로 그렇게 다루라”는 것이다. postMessage를 즉흥적으로 쓰는 대신 명시적인 메시지 타입을 정의하고, 사용자 함수 실행을 요청-응답 흐름의 RPC로 전환하며, 리치 객체 대신 protobuf로 인코딩한 “지루한 데이터”를 주고받는다. 로거처럼 경계를 넘을 수 없는 객체는 메시지를 보내는 프록시로 대체하고, 워커 파일은 published 패키지에 존재한다고 가정하지 말고 명시적 빌드 엔트리포인트로 포함해야 한다고 강조한다.
크래시 시 지수 백오프로 워커를 재생성하되 연속 크래시 횟수에 상한을 두어 타이트 루프를 방지하고, 연결 상태를 주기적으로 메인 스레드에 반영하며, 강제 종료 대신 진행 중인 작업을 마치도록 드레인(drain) 프로토콜을 구현하는 등 생명주기 관리 노하우를 공유한다. Node.js에서 워커 스레드를 실제 서비스에 적용하려는 개발자에게 구체적인 설계 체크리스트가 되는 글이다.
[참고] Inngest의 워커 스레드 도입 배경은 2026-04 소식에서 Node.js worker threads are problematic, but they work great for us로 먼저 소개한 바 있다.
웹 렌더링 전략의 진화를, 화면이 시각적으로 준비되는 시점과 실제로 상호작용 가능해지는 시점 사이의 간극을 줄인다는 관점에서 정리한 글이다. SSG·ISR부터 CSR, SSR, 스트리밍 SSR, 아일랜드 아키텍처, React Server Components까지 주요 전략을 계보순으로 훑는다.
각 전략이 서로 다른 비용(설정 복잡도, 번들 크기, 하이드레이션 지연, 빌드 시간)을 맞바꾼다는 점을 짚으며, 아일랜드와 RSC가 성공한 이유를 “필요한 컴포넌트에만 상호작용 JavaScript를 실어 보내기 때문”으로 설명한다. 나아가 SolidJS·Svelte 5의 세밀한 반응성(fine-grained reactivity), Qwik의 재개성(resumability), TanStack Start, Next.js 16.3의 인스턴트 내비게이션까지 최신 접근을 함께 다룬다.
저자는 “서버에서 HTML을 렌더링하고 하이드레이션했다고 느려진 사이트는 없다”며 진짜 문제는 불필요한 JavaScript를 실어 보내는 것이라고 짚는다. 콘텐츠 사이트에는 정적 생성과 아일랜드를, 앱에는 Server Components를 쓰고, 이색적인 방식은 측정 가능한 성능 문제가 있을 때만 도입하라는 결론은 렌더링 전략을 고민하는 프런트엔드 개발자에게 좋은 지침이 된다.
AI 에이전트용 메모리 레이어를 만드는 Mem0가, 2026년 4월 Andrej Karpathy가 GitHub Gist에 제안한 “LLM Wiki” 개념과 그 뒤 여러 팀이 만든 에이전트 위키(agent wiki) 구현들을 정리한 글이다. 질의 때마다 원본을 다시 검색하는 RAG 대신, 소스를 한 번 읽어 마크다운 페이지로 “컴파일”해 두고 소스가 바뀔 때만 갱신한다는 것이 핵심 아이디어다.
시스템은 소스 문서, LLM이 작성·유지하는 마크다운 위키, 구조와 작업을 지시하는 스키마 파일(CLAUDE.md·AGENTS.md)의 3계층으로 구성되며 ingest·query·lint 세 가지 연산을 수행한다. 사람이 위키를 방치하게 만드는 원인은 유지보수 노동인데, 모델은 이 일을 지치지 않고 한 번에 수십 개 파일을 고칠 수 있다는 점을 짚는다. Cognition의 DeepWiki, Factory의 AutoWiki, LangChain의 OpenWiki, Garry Tan의 GBrain이 몇 달 사이 같은 구조에 도달했다는 사실을 강한 방증으로 든다.
동시에 한계도 명확히 한다. 임베딩 없이는 약 100개 소스 규모까지만 유효하고(그 이상은 BM25·벡터 검색 병행 필요), ingest 시점의 요약이 원본 디테일을 잃을 위험이 있으며, 갱신이 늦으면 틀린 위키가 없느니만 못하다는 것이다. 특히 “위키는 문서 집합에 대한 지식일 뿐 사용자에 대한 기억(memory)이 아니”라며, 문서 지식과 사용자 기억을 혼동하지 말라는 구분이 이 글의 핵심 통찰이다.
Netflix의 최고 제품·기술 책임자(CPTO) Elizabeth Stone이 Lenny’s Podcast에 출연해, AI 시대에 Netflix가 어떤 인재와 역량을 중시하는지 이야기하는 인터뷰다. 엔지니어링·제품·디자인을 총괄하는 관점에서 조직과 직무의 변화를 다룬다.
Stone은 이제 가장 중요하게 보는 역량으로 특정 분야의 전문성보다 “시스템 사고(systems thinking)”를 꼽는다. AI가 쏟아내는 산출물의 홍수 속에서 품질과 신호를 잃지 않고 관리하는 법, AI 유창성(AI fluency)을 직급별 스킬이 아니라 전 구성원의 보편적 기대치로 삼는 방식, 그리고 “운영체제로서의 탁월함(excellence as an operating system)”이라는 개념을 설명한다.
특정 기술 스택보다 AI 시대에 개발자·조직이 갖춰야 할 사고방식과 역량 변화에 관심 있는 사람에게 참고가 되는 대담이다.
NVIDIA 창업자이자 CEO인 Jensen Huang이 Startup School 2026에서 Y Combinator의 Garry Tan과 나눈 대담이다. 잘못된 기술로 시작해 회사가 벼랑 끝에 몰렸던 초창기부터, 현대 컴퓨팅의 주요 돌파구 대부분을 만들어 내기까지의 여정과 그 바탕이 된 사고방식을 다룬다.
Huang은 현실을 직시하는 것(confronting reality), 낯선 영역을 스스로 학습해 파고드는 태도, 그리고 “하루하루를 버텨 내는” 회복탄력성(resilience)이 무엇보다 중요하다고 말한다. NVIDIA가 AlexNet을 남들과 다르게 해석해 풀스택을 재발명한 과정, 제1원리(first-principles)에 기반한 조직을 어떻게 세웠는지, 그리고 “시스템 사고가 새로운 코딩(systems thinking is the new coding)”이라는 관점을 풀어낸다.
에이전트를 조직 내부에서 어떻게 활용하는지, AI와 일자리 창출, 로봇의 “ChatGPT 모먼트”, 물리적 AI(physical AI)의 초기 적용처처럼 기술 산업 전반을 조망하는 이야기가 이어진다. 특정 프레임워크보다 기술 격변기에 개발자·창업자가 갖춰야 할 사고방식과 학습 태도에 관심 있는 사람에게 참고가 되는 인터뷰다.
Ron Goldin이 Shopify, Meta, Google, Adobe, Blue Origin 등에서 일한 디자이너 9명에게 AI 보조 코딩에 대한 생각을 물어 정리한 글이다. 디자이너가 직접 프로덕션 코드를 작성하는 흐름을 두고 상반된 관점이 어떻게 갈리는지를 인용 중심으로 보여 준다.
긍정적인 쪽은 디자이너가 다시 “무언가를 직접 만드는” 감각을 되찾았다는 점을 든다. 실제 코드에 접근할 수 있으면 누구나 실제로 동작하는 것을 만들 수 있다는 것이다. 반대편에서는 “코드는 내 업무의 마지막 5%”라며 실행보다 문제를 발견하는 일이 먼저라고 반박한다. “엔지니어에게 필요한 건 코드를 더 밀어 넣을 도움이 아니라 무엇을 만들지 정하는 일에 대한 도움”이라는 지적도 나온다.
협업 측면의 관찰도 담겨 있다. 디자이너가 만든 코드가 엔지니어에게 부수적인 정리 작업을 떠넘긴다는 불만, 속도 압박 속에서도 품질 가드레일을 유지해야 한다는 주문, LLM이 반복 작업을 처리하는 대기 시간을 다루는 “합리적 멀티태스킹”이 새로운 역량으로 떠오른다는 관찰이 이어진다. AI 코딩 도구를 사이에 두고 디자이너와 프런트엔드 개발자의 역할 경계가 어떻게 재조정되는지 고민하는 팀에 참고가 되는 글이다.
Dan Abramov가 Syntax 팟캐스트에 출연해 소셜 웹을 다시 설계하는 개방형 표준 AT Protocol을 설명하는 에피소드다. Wes Bos와 Scott Tolinski가 진행하며, 프로토콜이 실제로 어떻게 동작하는지, 왜 Bluesky 하나에 국한된 이야기가 아닌지를 다룬다.
핵심 주제는 AT Protocol과 Bluesky의 관계다. Bluesky는 프로토콜 위에 올라간 하나의 애플리케이션일 뿐이며, 사용자의 정체성(identity)과 데이터 호스팅이 앱과 분리되어 있다는 점이 출발점이다. 이어서 콘텐츠가 어떻게 저장·관리되는지, 스키마(Lexicon)가 어떤 유연성을 제공해 서로 다른 종류의 앱이 같은 공개 데이터를 활용할 수 있는지를 설명하고, pds.ls·Standard.site·UFOs·Stream.place 같은 실제 구현 사례를 짚는다. 미디어·데이터 통합의 기술적 난점과 일반 사용자 관점의 접근성 문제도 함께 다룬다.
후반부에서는 Mastodon의 연합(federation) 모델과의 구조적 차이, 탈중앙화를 이야기할 때 따라붙는 암호화폐와의 연관성 문제, 어뷰징·스팸 대응과 커뮤니티 신뢰 확보 방안을 논의한다. 플랫폼에 종속되지 않는 소셜 데이터 계층 위에서 무엇을 만들 수 있을지 궁금한 프런트엔드 개발자에게 참고가 되는 대담이다.
샌프란시스코 전역 약 121km²를 아이소메트릭 픽셀 아트로 옮긴 지도 Isopolis의 제작 과정을 정리한 기술 기록이다. 최종 결과물은 약 22기가픽셀 규모이며, 데이터 수집부터 모델 학습, 타일링, 뷰어 구현까지 단계별 시행착오를 함께 담고 있다.
입력 데이터는 Google Photorealistic 3D Tiles를 Playwright로 헤드리스 브라우저를 구동해 three.js로 정사영(orthographic) 렌더링한 1024² 블록 440장이다. 카메라는 방위각 22.5°, 고도 30°로 도시 전체에 하나만 사용해 좌표계를 고정했다. 스타일 변환은 Apache 2.0 라이선스의 20B 이미지 편집 모델 Qwen-Image-Edit-2511에 LoRA를 얹어 학습했는데, 학습 쌍 101개를 4분할하고 “이미 생성된 사분면” 조합 15가지를 비트마스크로 만들어 1,515개 샘플을 구성한 점이 핵심이다. 인접 블록 간 스타일·팔레트가 끊기는 문제를 학습 목표 자체에 넣어, 추론 시 반 블록씩 슬라이딩 윈도우로 이동하며 기존 픽셀 아트를 컨텍스트로 이어 그리게 만든 설계다. 결과적으로 440장이 67개 웨이브에 걸친 1,519회 생성으로 늘어났고, 물 위 영역처럼 학습 분포를 벗어난 구간은 별도 워터 마스크로 스탬프 처리했다.
프런트엔드 관점에서는 뷰어 구현이 눈에 띈다. 이 지도는 메르카토르 도법이 아닌 고정 로컬 ENU(East-North-Up) 접평면 기반 다이메트릭 투영이라 MapLibre나 deck.gl로는 타일 인덱싱과 리샘플링이 맞지 않아, 캔버스 기반 엔진을 직접 작성했다. 하단에 CARTO 다크 베이스맵을 45% 알파로 같은 투영에 맞춰 깔고 그 위에 9단계 타일 피라미드(3,570장, 287MB)를 한 번의 패스로 그린다. 표지판·회사 코인·동네 폴리곤·투어 같은 요소는 코드가 아니라 GeoJSON 데이터로 분리했고, 앱 상태 전체를 URL 해시(#@lat,lon,scalez/…)에 담아 모든 시점과 투어 지점이 공유 가능한 링크가 된다. 전체는 정적 파일로 S3 + CloudFront에 올렸다. 저자는 코드 대부분을 코딩 에이전트가 작성했다고 밝히며, 에이전트를 활용한 대규모 사이드 프로젝트의 실제 작업 흐름을 함께 보여준다.
[참고] 이 프로젝트가 참고한 선행 사례
Netflix가 호스팅 API에 의존하지 않고 모델 배포부터 추론까지 LLM 서빙 스택 전체를 자체 운영하면서 내린 설계 결정과, 그 결정이 프로덕션에서 드러낸 트레이드오프를 정리한 글이다. AI Platform의 Model Runtime 팀과 Inference 팀이 함께 작성했다.
구조는 기존 JVM 기반 서빙 시스템을 그대로 재사용하는 방향이다. LLM을 특별 취급하지 않고 XGBoost·TensorFlow 모델과 동일한 gRPC 경로로 호출하되, LLM 생태계의 사실상 표준이 된 OpenAI 호환 API를 추가 프런트엔드로 함께 노출해 호스팅 모델에서 자체 호스팅 모델로 넘어갈 때의 코드 변경을 최소화했다. 추론 엔진은 TensorRT-LLM에서 vLLM으로 전환했는데, 성능 격차가 좁혀진 상황에서 커스텀 모델 아키텍처를 컴파일 파이프라인 없이 로드할 수 있고 디코딩 로직 확장 훅이 있으며 디버깅과 연구-프로덕션 이전 비용이 낮다는 운영상의 적합성을 이유로 들었다. 패키징은 I/O 텐서 스펙을 배포 시점에 동적으로 생성하는 Triton의 vLLM 백엔드를 기본으로 삼되, Triton과 vLLM의 버전 불일치로 백엔드 로드 자체가 실패한 사례와 커스텀 전·후처리가 필요한 모델은 Python 백엔드가 계속 필요했던 사례를 함께 공개했다.
가장 깊이 들어간 부분은 제약 디코딩(constrained decoding)이다. 추론 후 검증·재시도로 잘못된 출력을 걷어내는 대신 디코딩 루프 안에서 제약을 적용해 유효한 출력만 생성되게 하는 방식으로, 각 제약을 생성 토큰 이력에 따라 진화하는 상태 기계로 모델링해 vLLM의 커스텀 logits processor로 구현했다. 초기 Python 구현은 vLLM V0에서 요청별로 순차 실행되어 GIL 때문에 배치 크기에 비례해 CPU 시간이 늘어나는 병목을 만들었고, 단일 요청 벤치마크에서는 보이지 않던 문제였다. 로짓 처리가 배치 단위로 옮겨진 V1에서 배치 자료구조 기반으로 재작성하고 핫 패스를 C++ 멀티스레딩으로 옮겨 처리 시간을 배치 크기와 무관하게 평탄화했다. 청크 프리필로 인한 부분 프리필 추적, 메모리 압박 시 선점(preemption)으로 토큰 이력이 줄어들 때 상태 기계를 리셋하는 처리 등 운영 단계에서 추가한 방어 로직도 함께 설명한다. 자체 인프라에서 LLM을 서빙하려는 팀이 엔진·패키징·API·롤아웃 순서로 의사결정을 훑어볼 수 있는 자료다.
AI 코딩 어시스턴트가 낯선 코드를 설명하고 정리해 주는 환경에서 JavaScript 난독화(obfuscation)가 여전히 의미가 있는지 따져 본 글이다. 저자는 난독화가 보안 장치가 아니라 분석 비용을 높이는 “마찰(friction)”로서만 유효하다고 정리한다.
글은 AI가 리버스 엔지니어링의 진입 장벽을 낮췄다는 점을 인정하면서도, 코드의 동작을 짐작하는 일과 원본 소스를 정확히 복원하는 일을 구분한다. 최소화(minify)만 된 코드라면 AI가 _0x91c3이 기능 플래그를 검사한다는 정도는 어렵지 않게 짚어 내지만, 이름 제거·문자열 은닉·제어 흐름 평탄화가 겹친 프로덕션 번들에서 원본을 충실하게 되살리지는 못한다고 본다. 체크아웃 페이로드를 만드는 함수를 예로 들어, AI가 코드의 의도는 맞히면서도 기본 통화값을 빠뜨리거나 방어적 검사를 불필요하다고 보고 지우는 등 그럴듯하지만 의미가 달라진 결과를 내놓는다고 설명한다.
난독화로 가릴 수 없는 것도 분명히 한다. 서명 키나 데이터베이스 자격 증명, 권한·과금 판정처럼 서버에 있어야 하는 값은 어떤 난독화 도구로도 안전해지지 않는다는 것이다. 브라우저가 쓸 수 있는 값이면 사용자도 결국 꺼낼 수 있기 때문이다. 반면 클라이언트 라이선스 검사, 어뷰징 방지 로직, 로컬에서 돌아야 하는 독자 알고리즘, 브라우저 확장 내부 구현처럼 구현 노력 자체를 지켜야 하는 코드에는 여전히 쓸 만하다고 보고, 일반 UI 코드나 단순 폼 검증에는 실익이 없다고 구분한다. 서버 검증과 API 레이트 리밋을 바탕에 두고 브라우저로 보내는 로직을 줄인 뒤, 테스트와 소스맵 결정이 끝난 마지막 단계에서 난독화를 적용하고 오류 리포팅·접근성·성능 예산이 깨지지 않는지 확인하라는 권고는 빌드 파이프라인에 바로 옮길 수 있는 지침이다.
지식 그래프와 에이전트 그래프를 하나의 백본으로 엮어 설명하는 한국어 기술 서적 「그래프 엔지니어링」의 공개 저장소다. 본문 35장과 부록 6편으로 구성되며, PDF를 릴리즈에서 내려받을 수 있고 CC BY 4.0으로 배포된다.
1 ~ 2부에서 그래프로 다시 읽는 AI의 역사와 노드·엣지·순회·중심성 같은 기초 문법을 다룬 뒤, 트랙 1(지식 그래프)과 트랙 2(에이전트 그래프)로 갈라진다. 트랙 1은 온톨로지 설계, SHACL 제약과 OWL 추론, 엔티티 해상도, 비정형 문서에서의 트리플 추출, GraphRAG·LightRAG·HippoRAG를 비교하는 하이브리드 검색을 다룬다. 트랙 2는 상태 그래프와 리듀서, 체크포인트와 내구성 있는 실행, 보상 트랜잭션, Human in the Loop 중단점, 컨텍스트 압축과 서브에이전트 격리, 멀티 에이전트 위상과 MCP, 가드레일과 관측성을 다룬다. 5부에서 두 트랙을 합쳐 참조 아키텍처로 정리하고, 6~8부는 이벤트 소싱·낙관적 잠금·스키마 마이그레이션 같은 구현과 운영을 이어 간다.
Cypher·SPARQL·Gremlin·GQL을 비교하고 대부분의 장에 실행 가능한 Python 예제를 붙였으며, 각 개념을 [표준]/[사실상 표준]/[실험]으로 표시하고 “내가 아직 모르는 것” 절로 불확실한 부분을 명시하는 서술 방식을 택했다. 에이전트 애플리케이션의 상태와 기억을 그래프로 설계하려는 개발자가 한국어로 참고할 수 있는 자료다.
Y Combinator의 디자인 총괄 Eve Bouffard가 General Partner Aaron Epstein과 함께 AI 우선(AI-first) 워크플로로 제품·웹사이트·이벤트를 디자인하는 방법을 시연하는 영상이다. AI가 디자이너가 쓰는 도구만이 아니라 사고하고 프로토타이핑하고 만드는 방식 자체를 바꾸고 있다는 문제의식에서 출발한다.
Paxel, SOTA Zine, YC Startup School 2026 같은 실제 프로젝트를 예로 들며, 코딩 에이전트가 빠른 프로토타이핑·브랜딩·디자인 시스템 구축을 어떻게 바꾸는지 설명한다. 한 번의 프롬프트로 16개의 웹사이트 변형을 만들어 내거나, soul.md 파일을 단일 진실 공급원(source of truth)으로 삼는 방식, 셰이더 파인튜닝, 개인화된 티켓 자동 생성 등 구체적인 사례가 담겨 있다.
이제 병목은 소프트웨어가 아니라 “상상력”이라는 메시지가 핵심이다. AI 도구를 디자인·프로토타이핑 워크플로에 결합하려는 프런트엔드 개발자와 디자이너에게 실무적인 아이디어를 제공한다.
하나의 HTTP 요청이 약 200밀리초 동안 거치는 여정을 단계별로 보여 주는 인터랙티브 시각화 도구다. 순식간에 끝나는 것처럼 느껴지는 웹 요청 이면에서 실제로 어떤 계층들이 동작하는지 눈으로 따라갈 수 있다.
DNS 도메인 해석, TCP 연결 수립, TLS 암호화 협상, 커널, Node의 이벤트 루프, Postgres 데이터베이스 작업, 그리고 응답이 클라이언트로 되돌아오는 경로까지 요청의 생애주기 전체를 시각적으로 추적한다. 각 단계가 전체 지연 시간에서 차지하는 비중을 직관적으로 파악할 수 있다.
평소 추상화 뒤에 감춰져 있던 네트워크·시스템 계층을 구체적으로 이해하고 싶은 개발자에게, 웹 요청의 내부 동작을 학습하기 좋은 교육용 자료다.
기존 엔진을 감싸지 않고 자체 엔진 위에 처음부터 만든 경량 JavaScript 런타임이다. Node 호환 API, VM으로 격리된 샌드박스, WebAssembly 지원을 기본으로 내장한다.
가장 큰 특징은 V8·JSC·SpiderMonkey를 래핑하지 않고 직접 구현한 “Ant Silver” 엔진과, 경량 백엔드 MIR을 포크한 JIT 컴파일러다. 9MB 단일 바이너리로 실제 npm 패키지와 TypeScript를 실행할 수 있어, 50MB가 넘는 런타임을 감당하기 어려운 서버리스 함수, 엣지 컴퓨팅, 임베디드 시스템, CLI 도구처럼 크기와 시작 시간이 중요한 환경을 겨냥한다. 자체 패키지 매니저, ants.land 레지스트리, 배포 플랫폼, Ant Desktop 프레임워크까지 하나의 생태계로 구성된다.
Node.js·Deno·Bun에 이어 등장한 새로운 런타임으로, 작고 빠른 실행 환경이 필요한 경계 영역에서 JavaScript를 쓰려는 개발자가 눈여겨볼 만한 프로젝트다.
온톨로지(ontology)와 Microsoft Fabric IQ를 학습하고 직접 만들어 볼 수 있는 오픈소스 웹 애플리케이션이다.
Cytoscape.js 기반의 인터랙티브 그래프 시각화로 온톨로지를 탐색하고, 실시간 미리 보기·실행 취소·검증을 갖춘 비주얼 디자이너로 온톨로지를 직접 편집할 수 있다. 리테일, 이커머스, 헬스케어, 금융, 제조, 교육 6개 도메인의 큐레이션된 카탈로그를 제공하며, Microsoft Fabric IQ와 호환되는 RDF/XML 형식의 가져오기·내보내기를 지원한다. 아티클·퀴즈·실습을 담은 9개 강좌의 “Ontology School” 학습 허브와, 외부 사이트에 삽입할 수 있는 임베드 위젯도 포함한다.
백엔드 의존성이 없는 완전한 정적 사이트로 구성되어 있어, 시맨틱 데이터 모델링을 배우거나 자연어 기반 데이터 질의를 준비하려는 개발자가 부담 없이 시작할 수 있는 MIT 라이선스 프로젝트다.
IP 패킷을 UDP 위에 안전하게 캡슐화하는 현대적인 VPN 프로토콜로, 시스템에 네트워크 인터페이스를 추가하고 SSH처럼 공개 키를 교환해 암호화 터널을 구성한다.
WireGuard는 IPsec이나 OpenVPN 대비 극도로 단순한 설계를 지향한다. Curve25519, ChaCha20, Poly1305, BLAKE2 같은 최신 암호 기법을 사용하면서도 코드베이스가 작아 개인 보안 연구자도 감사(audit)할 수 있고, Linux 커널에 내장되어 스마트폰부터 백본 라우터까지 높은 성능을 낸다. 복잡한 연결 상태 관리 대신 공개 키와 허용 IP를 연결하는 “Cryptokey Routing” 방식을 채택해, 방화벽 규칙을 단순화하고 엔드포인트가 바뀌어도 자동으로 로밍을 처리한다.
프런트엔드 작업에서도 쓰임새가 있다. 로컬 개발 서버를 실기기 모바일 브라우저나 팀원에게 열어 확인받는 경우, 사내망에만 있는 스테이징 API·목 서버에 붙어야 하는 경우처럼 터널이 필요한 상황이 적지 않은데, 인터페이스 하나와 공개 키 교환만으로 구성되므로 별도 터널링 서비스를 거치지 않고 같은 사설 네트워크에서 작업할 수 있다. 설정이 간단하면서도 성능과 보안을 함께 챙기려는 개발자가 참고할 만한 선택지다.
세션이 끝나면 모든 맥락을 잊어버리는 AI 코딩 에이전트를 위해, 세션 간에 지속되는 영속 메모리를 제공하는 도구다.
Go로 작성된 단일 바이너리로 배포되어 Node.js·Python·Docker가 필요 없으며, MCP(Model Context Protocol) 호환 도구라면 Claude Code, Cursor, Windsurf, Gemini CLI, VS Code 등과 폭넓게 연동된다. mem_save, mem_search, mem_context, mem_timeline 등 20개의 MCP 도구를 제공하고, 아키텍처 결정·버그 수정·학습된 패턴을 SQLite + FTS5 전문 검색으로 저장·검색한다. 로컬 SQLite를 단일 진실 공급원으로 유지하면서 Git 기반으로 여러 머신 간 메모리를 동기화할 수 있고, 메모리를 탐색·관리하는 터미널 UI도 갖췄다.
brew install gentleman-programming/tap/engram
claude plugin marketplace add Gentleman-Programming/engram
engram setup claude-codeAI 에이전트가 프로젝트의 맥락을 반복해서 다시 설명하지 않아도 되도록, 로컬 우선(local-first)으로 지속적 메모리를 구축하려는 개발자에게 유용한 MIT 라이선스 프로젝트다.
여러 운영체제에 걸쳐 컴퓨터 사용(computer-use) 자동화를 확장하기 위한 오픈소스 프레임워크다. AI 에이전트가 화면을 보고, 버튼을 클릭하고, 데스크톱 애플리케이션을 조작하며 작업을 자율적으로 수행하도록 돕는다.
macOS·Windows·Linux에서 커서나 포커스를 빼앗지 않고 백그라운드로 네이티브 앱을 제어하는 Cua Drivers, Linux·macOS·Windows·Android의 VM과 컨테이너를 로컬(QEMU)과 클라우드에서 통합 관리하는 Cua Sandbox, OSWorld·ScreenSpot·Windows Arena 벤치마크를 지원하는 평가 프레임워크 Cua-Bench, Apple Silicon에서 Virtualization Framework로 VM을 관리하는 Lume로 구성된다.
from cua import Sandbox, Image
async with Sandbox.ephemeral(Image.linux()) as sb:
await sb.screenshot()
await sb.mouse.click(100, 200)
await sb.keyboard.type(“Hello from Cua!”)컴퓨터 사용 에이전트를 실험하거나, 격리된 환경에서 에이전트의 UI 자동화를 벤치마킹·학습시키려는 개발자에게 적합한 MIT 라이선스 프로젝트다.
복잡한 설정 파일이나 파이프라인 없이 애플리케이션을 빌드·배포·관리할 수 있는 오픈소스 셀프 호스팅 배포 플랫폼이다.
저장소를 지정하면 기술 스택을 자동으로 감지해 빌드하고, 데이터베이스·도메인·SSL·CDN·메일까지 인프라를 구성해 배포한다. Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker 등 다양한 스택을 지원하며, 푸시 기반 배포(CI/CD), Let’s Encrypt 자동 SSL, DKIM/SPF/DMARC를 갖춘 메일 서버, Postgres·MySQL·MongoDB·Redis 관리, HTTP/3 엣지 캐싱 CDN, 자동 백업·복원, 실시간 모니터링을 제공한다. 데스크톱 앱, 웹 대시보드, CLI, REST API와 MCP까지 여러 접점을 지원한다.
YAML이나 파이프라인을 직접 작성하지 않고 자체 인프라에 애플리케이션을 올리고 싶은 개발자에게, Vercel이나 Heroku 같은 경험을 셀프 호스팅으로 구현하는 Apache 2.0 라이선스 대안이다.
코드베이스의 구조적 지도를 영속적으로 구축해, AI 코딩 도구가 코드 리뷰 시 관련 파일만 읽도록 돕는 로컬 우선(local-first) 코드 인텔리전스 시스템이다.
코드가 변경되면 영향을 받는 함수·클래스·파일을 추적하는 영향 반경(blast-radius) 분석을 수행하고, 변경된 파일만 2초 이내에 다시 파싱하는 증분 업데이트를 지원한다. Tree-sitter로 Python, JavaScript/TypeScript, Go, Rust, Java 등 20여 개 언어의 AST를 추출하고, SQLite + FTS5에 로컬로 저장하며, MCP(Model Context Protocol)를 통해 30개의 도구를 AI 어시스턴트에 노출한다. 커뮤니티 탐지를 위한 Leiden 알고리즘, D3.js 기반 그래프 탐색기, 위험도 점수를 매기는 PR 리뷰용 GitHub Action도 포함한다.
pip install code-review-graph
code-review-graph install # 에디터에 맞게 자동 설정
code-review-graph build # 코드베이스 파싱
code-review-graph detect-changes --brief # 변경 사항 분석프로젝트는 여섯 개의 실제 오픈소스 저장소에서 토큰 사용량을 중앙값 기준 약 82배 줄였다고 밝힌다. 대규모 코드베이스에서 AI 리뷰 도구의 토큰 비용과 컨텍스트 낭비를 줄이려는 팀이 시도해 볼 만한 MIT 라이선스 도구다.
런타임 관리, 패키지 관리, 프런트엔드 도구를 하나의 일관된 워크플로로 통합하는 웹 개발 툴체인 Vite+의 베타 출시 소식이다. Vite, Vitest, Rolldown, tsdown, Oxlint, Oxfmt 등 검증된 도구들을 하나의 스택으로 묶어 “웹 개발의 단일 진입점”을 제공하는 것을 목표로 한다.
vp dev(개발 서버), vp check(포매팅·린팅·타입 체크 통합), vp test(단위 테스트), vp build(프로덕션 빌드), vp pack(라이브러리 번들링), vp run(캐싱 기반 태스크 실행)의 명령 체계로 구성된다. 알파 이후 500개 이상의 PR이 반영되어, 데이터 추적을 자동화한 스마트 캐싱, 기존 프로젝트 마이그레이션 강화, 조직 템플릿·프록시 지원 등 엔터프라이즈 기능이 추가되었다. Dify, BlockNote, vinext 등 1,300개 이상의 공개 저장소가 이미 이를 사용하고 있다고 한다.
프로젝트를 시작할 때마다 도구 체인을 매번 손수 조합해야 하는 파편화 문제를 겨냥하며, 알파에서 베타로 넘어오며 실제 도입 사례가 늘고 있어 프런트엔드 툴체인의 통합 흐름을 지켜보는 개발자에게 참고가 된다.
[참고] Vite+는 2025-11 소식에서 알파 발표(Announcing Vite+)로 처음 소개한 바 있다.
Mozilla의 Gecko 엔진을 WebAssembly로 컴파일해, Firefox 브라우저를 다른 브라우저 안에서 통째로 실행하는 실험적 프로젝트다.
Emscripten으로 Gecko 엔진 전체를 WASM으로 포팅하고, 네트워킹은 WISP 프로토콜을 통해 지원한다. GECKO_NOWASMJIT=1 환경 변수로 켜고 끌 수 있는 실험적 JS-to-WASM JIT 컴파일러도 포함한다. 현재는 Linux 기반 시스템에서만 빌드할 수 있으며(macOS 미지원), Emscripten SDK, Node.js, pnpm, wasm32-unknown-emscripten 타깃의 Rust가 필요하다.
브라우저 엔진 전체를 WASM으로 옮길 수 있다는 것을 보여 주는 사례로, WebAssembly의 한계를 실험하는 흐름에 관심 있는 개발자가 라이브 데모로 직접 확인해 볼 만하다. Gecko를 기반으로 하므로 라이선스도 Firefox와 같은 MPL-2.0이다.
PostgreSQL의 내부 동작을 가상 도시로 시각화한 인터랙티브 3D 학습 도구다.
클라이언트, 백엔드 프로세스, 공유 버퍼, WAL, 스토리지, 체크포인트, autovacuum, 스탠바이 복제 같은 데이터베이스 구성 요소를 도시의 구역과 건물로 표현한다. clock-sweep 페이지 교체, WAL 처리, 체크포인트 페이싱, autovacuum 임계값, 트랜잭션 가시성 등 실제 메커니즘을 모델링하고, 장시간 트랜잭션·체크포인트 스톰·동기 커밋 효과 같은 여러 시나리오로 DB 동작을 보여 준다. 가이드 투어, 커맨드 팔레트, orbit·fly·walk 세 가지 카메라 모드도 갖췄다. 다만 에뮬레이터가 아닌 축소 모델로, 실제 PostgreSQL 코드가 브라우저에서 돌지는 않는다.
Three.js(r185)와 TypeScript·Vite로 만들어졌고, 데이터베이스나 서버 없이 브라우저에서 완전히 동작하는 단일 정적 번들이다.
npm install
npm run dev # localhost:5173
npm run build # 정적 번들 생성프레임워크나 CDN 없이 Three.js만으로 복잡한 시스템을 교육용으로 시각화한 사례로, PostgreSQL 내부 구조를 배우거나 WebGL 기반 인터랙티브 학습 도구를 만들려는 개발자가 참고할 만한 Apache 2.0 라이선스 프로젝트다.
기존 TypeScript 코드를 수정 없이 작고 빠른 네이티브 실행 파일로 컴파일하는 TypeScript-to-native 컴파일러다.
바이너리 안에 Node.js·V8 같은 JavaScript 엔진을 담지 않고 네이티브로 컴파일하는 것이 핵심이다. 기본은 정적 네이티브 컴파일이고, 컴파일이 어려운 코드는 약 620KB의 QuickJS를 임베드한 동적 실행으로 처리하거나 상세 진단과 함께 명시적으로 거부하는 3단계 모델을 쓴다. 문자열·배열·Map·Set·JSON·타입 배열·Buffer는 물론 Node의 fs/path/process와 net/http/https/tls 서버 스택, fetch와 WHATWG 표준까지 폭넓게 지원한다. 800개가 넘는 테스트 프로그램을 Node.js와 바이트 단위로 대조하는 차등 테스트(differential testing)와 AddressSanitizer 기반 메모리 안전성 검증을 병행한다.
프런트엔드는 TypeScript 컴파일러 API로 파싱·타입 체크하고, 타입이 있는 IR(중간 표현)을 거쳐 LLVM(기본)이나 C 백엔드로 코드를 생성하며, refcounting과 이벤트 루프를 갖춘 자체 C 런타임 위에서 돈다. 시작 시간 약 2.4ms(Node 약 47ms), 170200KB 정적 바이너리, 14MB 메모리 사용을 내세운다.
npm install -g scriptc
scriptc run fib.ts # 즉시 실행
scriptc build fib.ts # 네이티브 바이너리 생성
scriptc coverage app.ts # 컴파일 가능성 분석clang(Xcode Command Line Tools 포함)이 필요하고 현재는 macOS arm64가 주 플랫폼이다. TypeScript로 작성한 CLI나 서버를 가볍고 빠른 단독 실행 파일로 배포하려는 개발자가 눈여겨볼 만한 Apache 2.0 라이선스 프로젝트다.
MemGPT에서 이름을 바꾼 프로젝트로, 세션이 끝나도 유지되는 메모리를 갖고 시간이 지날수록 스스로 개선되는 상태 저장(stateful) AI 에이전트를 만드는 오픈소스 플랫폼이다.
크게 두 갈래로 쓸 수 있다. 하나는 터미널·데스크톱 앱·Slack 같은 채널에서 에이전트를 직접 구동하는 Letta Agent CLI로, npm install -g @letta-ai/letta-code로 설치하고 letta 명령으로 실행한다(Node.js 22.19 이상 필요). 다른 하나는 TypeScript로 작성된 Letta Agent SDK로, 자신의 애플리케이션에 상태 저장 에이전트를 심을 수 있다. 에이전트는 Letta의 에이전트 클라우드인 Constellation, 로컬 머신, 셀프 호스팅 App Server 중 어디서든 실행할 수 있으며, 특정 모델에 종속되지 않는다.
import { LettaAgentClient } from “@letta-ai/letta-agent-sdk”;
const client = new LettaAgentClient({ backend: “cloud”, apiKey: process.env.LETTA_API_KEY });
const agentId = await client.createAgent({ model: “...”, persona: “...” });
await using session = client.resumeSession(agentId);
await session.send(”What do you know about me?”);backend: "local"로 바꾸면 SDK가 Letta Code를 서브프로세스로 띄워 동일한 에이전트를 로컬에서 실행한다. 다만 이 저장소는 현재 V1 API를 제공하던 레거시 서버를 담고 있고, 활발한 개발은 letta-code 저장소로 옮겨 갔다는 점은 참고할 필요가 있다. 대화 맥락을 매번 다시 채워 넣지 않아도 되는 장기 실행 에이전트를 애플리케이션에 붙이려는 개발자에게 참고가 되는 Apache 2.0 라이선스 프로젝트다.
사용자와 AI 에이전트가 같은 브라우저를 나눠 쓰면서 각자 병렬로 작업하도록 설계된 에이전트용 브라우저다.
Browser Use나 Vercel의 agent-browser 같은 기존 자동화 프레임워크는 구동할 브라우저가 따로 필요하고 로그인 세션이 깔끔하게 이어지지 않으며, 결국 사용자와 에이전트가 같은 탭을 두고 다투게 된다는 문제의식에서 출발한다. ego lite는 에이전트마다 격리된 “Space”를 제공해 여러 에이전트가 동시에 여러 작업을 돌리는 동안에도 사용자의 탭과 마우스는 그대로 유지된다. 첫 실행 시 Chrome 데이터 마이그레이션을 선택하면 기존 로그인·쿠키·확장·북마크를 그대로 물려받고, 브라우징 데이터는 로컬에 저장된다.
에이전트와의 연결은 ego-browser 스킬이 담당하며, Claude Code·Codex·Cursor 등 어떤 에이전트 CLI에서도 쓸 수 있다. 브라우저 기능을 CLI 명령이 아니라 snapshot·fill·click·wait·navigate·capture 같은 인페이지 JavaScript 도구로 노출하고, 에이전트가 이를 호출하는 코드 조각을 작성해 한 번에 실행하는 방식이다. 명령을 몇 개씩 주고받는 루프를 줄여 복잡한 워크플로가 더 적은 토큰으로 처리되며, 자체 벤치마크에서는 agent-browser 대비 최대 2.5배 빠르게 완료했다고 밝힌다. 중첩 iframe처럼 까다로운 구조까지 처리하는 페이지 스냅샷 품질도 특징으로 내세운다.
npx skills add citrolabs/ego-lite현재는 macOS만 지원하며 Windows·Linux는 로드맵에 있다. 브라우저 자동화를 에이전트에 맡기면서도 자신의 브라우징 작업을 계속하고 싶은 개발자가 시도해 볼 만한 MIT 라이선스 프로젝트다.
Rust로 작성된 터미널 기반 AI 코딩 에이전트 하네스로, 여러 세션을 동시에 띄우는 작업 방식에서 메모리와 기동 시간을 줄이는 데 초점을 맞춘 프로젝트다.
특징은 에이전트 메모리 시스템이다. 각 대화 턴을 의미 벡터로 임베딩해 그래프에 저장하고, 매 턴 코사인 유사도로 관련 기억을 찾아 대화에 주입한다. 에이전트가 메모리 도구를 명시적으로 호출하지 않아도 맥락이 따라오는 방식이며, 의미적 이탈이나 세션 종료 같은 시점에 별도 사이드 에이전트가 기억을 추출·정리한다. 이 밖에 실시간 파일 뷰어·Mermaid 다이어그램 인라인 렌더링을 지원하는 사이드 패널, 같은 저장소에서 여러 에이전트가 충돌을 조정하며 함께 작업하는 스웜(swarm) 모드, Firefox 기반 브라우저 자동화, 에이전트가 자기 소스를 고치고 재빌드해 다시 불러오는 자기 개선 루프를 갖췄다. Claude, OpenAI, GitHub Copilot, Gemini, Azure, Ollama, LM Studio 등 20여 개 제공자를 네이티브 로그인 또는 OpenAI 호환 엔드포인트로 연결한다.
curl -fsSL https://jcode.sh/install | bash # macOS, Linux
jcode # 인터랙티브 TUI 실행
jcode run “say hello” # 단발성 명령
jcode --resume fox # 이전 세션 이어서저장소는 자체 측정 벤치마크로 세션 추가당 상주 메모리 약 9.9MB, 첫 프레임까지 14.0ms를 제시하며 다른 CLI 하네스와 비교한 표를 함께 공개하고 있다(수치는 프로젝트가 자사 Linux 환경에서 측정해 밝힌 값이다). 여러 코딩 에이전트를 동시에 굴리면서 리소스 부담을 줄이고 싶은 개발자가 살펴볼 만한 MIT 라이선스 프로젝트다.
개인 비서형 에이전트를 조직 전체로 확장할 때 생기는 복잡도를 겨냥해, 여러 사람이 함께 쓰는 것을 전제로 설계한 멀티플레이어 에이전트 하네스다. Slack과 웹 두 가지 접점을 제공하며, 구성원마다 격리된 작업 공간을 갖되 채널·그룹 메시지·프로젝트에서는 같은 에이전트와 협업할 수 있다.
사람과 방(room)마다 메모리, 파일, 키체인 뷰, 권한, 크론, 웹 앱, 지속형 샌드박스가 각각 스코프 단위로 분리된다. 스킬도 스코프가 소유하고 권한 부여로 공유하며, 관리자 승인을 거쳐 조직 전체로 승격하거나 git 저장소에서 스킬 팩을 가져올 수 있다. 조직 단위로는 보안 태세를 Strict(모든 도구 호출을 사람이 승인)·Auto(외부 데이터와 도구 결과를 분류기가 사전 검사, 기본값)·Dangerous(검사·중단 없음) 중에서 고르고, 재귀 삭제나 파괴적 SQL 같은 명령 정책은 어느 태세에서도 적용된다.
구조는 헤드리스 코어를 중심으로 한다. 코어는 Node에서 TypeScript를 직접 실행하고 HTTP에 Fastify를 쓰며, Postgres가 세션 이력과 메모리를 보관한다. 웹 UI는 Vite로 빌드하고 Lit으로 렌더링하며, 웹 UI·관리자 패널·포털은 코어 HTTP API 위의 선택적 플러그인이고 Slack 플러그인은 Bolt를 사용한다. 하네스·세션 저장소·샌드박스·메모리 같은 기반 요소가 모두 인터페이스 뒤에 있어 Pi, OpenCode, Codex, Claude Code 중 무엇을 쓰든 같은 코어가 돌아간다.
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install조직 고유 설정과 샌드박스 이미지, 인프라는 CLI가 검증·배포하는 별도의 배포 디렉터리에 두어 코어와 분리하는 방식이다. 사내용 에이전트 플랫폼을 특정 벤더에 묶이지 않고 자체 클라우드에 올리려는 팀이 참고할 만한 MIT 라이선스 프로젝트다.

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.