AI 코딩의 맹점 — Artifacts 없이 에이전트는 기억을 잃는다

AI 코딩의 맹점 — Artifacts 없이 에이전트는 기억을 잃는다

PRD, ADR, TDD가 AI 코딩 워크플로우에서 왜 선택이 아닌 필수인지, 실전 구조와 함께 살펴본다.

AI 코딩ArtifactsPRDADRTDDClaude Code
10 min read
Next-Translate 3.0 — Turbopack과 App Router를 위한 i18n 재건

Next-Translate 3.0 — Turbopack과 App Router를 위한 i18n 재건

1년간 공백 후 돌아온 Next-Translate 3.0이 Turbopack 지원, 비동기 params, App Router 안정화를 한 번에 처리하는 방법.

Next.jsi18nNext-TranslateTurbopackApp Router
7 min read
V8 WasmGC 투기적 최적화 — 가상 메서드를 인라인으로 만드는 법

V8 WasmGC 투기적 최적화 — 가상 메서드를 인라인으로 만드는 법

V8이 WasmGC의 가상 메서드 디스패치에 투기적 인라이닝을 도입해 Dart와 Java 앱에서 최대 8% 성능을 끌어낸 방법.

V8WebAssemblyWasmGCJIT성능 최적화
7 min read
Vinext — Vite 위에서 Next.js를 1주일 만에 다시 만든 이야기

Vinext — Vite 위에서 Next.js를 1주일 만에 다시 만든 이야기

Cloudflare가 AI와 함께 단 일주일, $1,100의 API 비용으로 Next.js 호환 프레임워크를 Vite 위에 구축한 과정.

VinextNext.jsViteCloudflare WorkersAI 코딩
6 min read
Tsonic — TypeScript를 네이티브 바이너리로 컴파일하는 실험

Tsonic — TypeScript를 네이티브 바이너리로 컴파일하는 실험

TypeScript → C# → NativeAOT 파이프라인으로 네이티브 실행 파일을 만드는 Tsonic. 어떻게 동작하고, 어떤 한계가 있는지 살펴봤다.

TypeScriptNativeAOT.NET컴파일러성능
6 min read
VS Code 팀의 AI 에이전트 병렬화 — 월간 릴리스를 주간으로 만든 워크플로우

VS Code 팀의 AI 에이전트 병렬화 — 월간 릴리스를 주간으로 만든 워크플로우

VS Code 팀이 월간 릴리스에서 주간 릴리스로 전환한 비결. 에이전트 세션 병렬화, 자동화 파이프라인, 품질 게이트 설계 전반을 공개했다.

VS CodeAIGitHub Copilot에이전트개발 생산성
7 min read
React Compiler의 한계 — 뭘 최적화하고 뭘 못 하는가

React Compiler의 한계 — 뭘 최적화하고 뭘 못 하는가

React Compiler가 자동 메모이제이션으로 해결하는 것과 해결하지 못하는 것. 컴파일러 기반 UI 프레임워크의 능력 경계를 정리했다.

ReactReact Compiler성능메모이제이션프레임워크
6 min read
Native JSON Modules — 번들러 없이 JSON을 import하는 시대

Native JSON Modules — 번들러 없이 JSON을 import하는 시대

Import Attributes와 함께 표준이 된 native JSON module. 어떻게 동작하고, 기존 번들러 방식과 뭐가 다른지 정리했다.

JavaScriptESMJSONImport Attributes웹 표준
6 min read
Babel 7.29.0 — 10년 역사의 마지막 마이너, 그리고 8 RC1

Babel 7.29.0 — 10년 역사의 마지막 마이너, 그리고 8 RC1

2026년 1월 31일, Babel 7의 마지막 마이너 릴리스가 공개됐다. 이 버전이 갖는 역사적 의미와 Babel 8 RC1의 핵심 변화를 정리한다.

BabelJavaScript빌드 도구마이그레이션Tooling
10 min read
Bun이 빠른 건 맞다 — 그런데 당신의 이벤트 루프가 문제다

Bun이 빠른 건 맞다 — 그런데 당신의 이벤트 루프가 문제다

Bun으로 바꿔도 p99가 개선되지 않는 이유. 런타임 선택보다 먼저 봐야 할 진짜 병목 지점들.

BunNode.js이벤트 루프성능데이터베이스
9 min read
Coaction v1.0 — Web Worker로 멀티스레딩 상태 관리하기

Coaction v1.0 — Web Worker로 멀티스레딩 상태 관리하기

JavaScript 단일 스레드 한계를 극복하는 상태 관리 라이브러리 Coaction의 동작 방식, Zustand와의 차이, Standard/Shared 두 가지 모드 사용법을 정리한다.

CoactionWeb Worker상태 관리멀티스레딩React
10 min read
CSS @property — 커스텀 속성에 타입을 부여하는 방법

CSS @property — 커스텀 속성에 타입을 부여하는 방법

CSS @property at-rule로 커스텀 속성에 타입 정의, 상속 제어, 폴백을 추가해 렌더링 안정성과 애니메이션 가능성을 확보하는 방법을 다룬다.

CSS@property커스텀 속성CSS 변수애니메이션
11 min read
Docfind — Rust와 WebAssembly로 만든 서버 없는 브라우저 검색 엔진

Docfind — Rust와 WebAssembly로 만든 서버 없는 브라우저 검색 엔진

Microsoft VS Code 문서 팀이 Rust와 WebAssembly로 구현한 클라이언트 사이드 검색 엔진 Docfind의 내부 설계를 파헤친다.

RustWebAssembly검색VS CodeWASM
11 min read
Error.isError() — realm을 넘나드는 안전한 에러 검사 API

Error.isError() — realm을 넘나드는 안전한 에러 검사 API

instanceof Error가 iframe과 worker에서 실패하는 이유, 그리고 이를 근본적으로 해결하는 Error.isError()의 동작 원리를 정리한다.

JavaScriptError.isErrorTC39Cross-Realm
8 min read
Renderify — LLM이 생성한 JSX를 빌드 없이 브라우저에서 바로 실행하는 런타임 UI 엔진

Renderify — LLM이 생성한 JSX를 빌드 없이 브라우저에서 바로 실행하는 런타임 UI 엔진

Renderify가 @babel/standalone과 JSPM CDN을 이용해 LLM 생성 JSX/TSX를 zero-build로 실행하는 방식과 보안 모델, 스트리밍 렌더링 구조를 분석한다.

RenderifyLLMJSX브라우저 런타임zero-build
12 min read
코드를 치는 손에서 지시를 내리는 입으로 — Spotify가 AI 개발을 증명한 방법

코드를 치는 손에서 지시를 내리는 입으로 — Spotify가 AI 개발을 증명한 방법

Spotify가 내부 AI 시스템 Honk과 Claude Code를 활용해 개발 워크플로우를 근본적으로 바꾼 사례를 분석한다.

SpotifyAIClaude-CodeHonkdeveloper-productivity
10 min read
회의론자의 전향 — Steve Yegge가 그리는 AI 에이전트 시대의 생존 지도

회의론자의 전향 — Steve Yegge가 그리는 AI 에이전트 시대의 생존 지도

실리콘밸리 베테랑 Steve Yegge가 말하는 AI 에이전트 시대의 핵심 주장과 엔지니어에게 주는 시사점을 정리한다.

AI에이전트Steve Yegge미래 전망
11 min read
V8의 Sea of Nodes 탈출기 — 왜 우아한 이론이 실전에서 무너졌는가

V8의 Sea of Nodes 탈출기 — 왜 우아한 이론이 실전에서 무너졌는가

V8 팀이 10년간 사용한 Sea of Nodes IR을 포기하고 Turboshaft로 전환한 7가지 이유와 그 교훈을 정리한다.

V8컴파일러최적화TurboshaftJavaScript
13 min read
VS Code 1.110 — 에이전트가 생각하고, 브라우저를 열고, 터미널을 본다

VS Code 1.110 — 에이전트가 생각하고, 브라우저를 열고, 터미널을 본다

2026년 2월 VS Code 1.110이 AI 에이전트 경험을 한 단계 끌어올린 핵심 기능 6가지를 분석한다.

VS Code1.110AI AgentCopilot2026
11 min read
Long-Distance NES — VS Code Copilot이 커서 너머까지 코드를 고치는 방법

Long-Distance NES — VS Code Copilot이 커서 너머까지 코드를 고치는 방법

VS Code Copilot의 Next Edit Suggestions가 파일 전체로 확장되면서, 멀리 떨어진 코드도 자동으로 제안하는 기술적 배경을 분석한다.

VS CodeCopilotNESAI코드 편집
11 min read
CI/CD의 새 언어는 자연어다 — GitHub Agentic Workflows 해부

CI/CD의 새 언어는 자연어다 — GitHub Agentic Workflows 해부

GitHub이 마크다운 기반 AI 워크플로우를 기술 프리뷰로 공개했다. 구조, 보안 모델, 실전 시나리오를 분석한다.

GitHubAI-agentCI-CDGitHub-Actionsautomation
11 min read
Cursor Cloud Agents — 퇴근해도 코드를 짜는 AI 개발자가 등장했다

Cursor Cloud Agents — 퇴근해도 코드를 짜는 AI 개발자가 등장했다

Cursor가 발표한 Cloud Agents는 독립 VM에서 코드 작성, 브라우저 테스트, PR 제출까지 자율적으로 수행하는 AI 에이전트다.

CursorCloud AgentsAIComputer Useautonomous-agent
17 min read
LCP 28초짜리 React 앱을 1초로 깎아낸 기록 — 4단계 성능 수술 프레임워크

LCP 28초짜리 React 앱을 1초로 깎아낸 기록 — 4단계 성능 수술 프레임워크

번들 분석부터 에셋 최적화까지, React 앱의 LCP를 단계적으로 개선하는 실전 프레임워크를 다룬다.

React성능 최적화LCPSSR
12 min read
Claude Code 원격 제어 — 커피 마시면서 코딩시키는 시대가 열렸다

Claude Code 원격 제어 — 커피 마시면서 코딩시키는 시대가 열렸다

Claude Code의 Remote Control 기능으로 스마트폰에서 로컬 코딩 세션을 제어할 수 있게 되었다.

Claude CodeRemote ControlAI모바일 개발
9 min read
배포 전 출국 심사 — Publint로 npm 패키지 실수를 원천 차단하는 법

배포 전 출국 심사 — Publint로 npm 패키지 실수를 원천 차단하는 법

npm 패키지의 exports, entry points, 모듈 포맷을 배포 전에 검증하는 Publint 도구 사용법.

npmPublint패키지exportsESM
9 min read
새벽 3시의 탐조등 — Google SRE가 Gemini CLI로 장애를 잡는 법

새벽 3시의 탐조등 — Google SRE가 Gemini CLI로 장애를 잡는 법

Google Cloud SRE 팀이 Gemini CLI를 장애 대응 워크플로우에 통합한 방법, 효과, 한계를 분석한다.

SREGoogleGemini장애 대응AI
12 min read
Cloudflare Code Mode — 2,500개 API를 1,000 토큰에 담는 MCP의 새로운 패턴

Cloudflare Code Mode — 2,500개 API를 1,000 토큰에 담는 MCP의 새로운 패턴

Cloudflare가 공개한 Code Mode는 AI 에이전트에게 수천 개의 API 엔드포인트를 단 2개 도구로 제공하는 MCP 서버 설계 패턴이다.

CloudflareMCPAI AgentAPI
8 min read
CSS :near() — 마우스가 '가까이' 오면 반응하는 새로운 의사 클래스

CSS :near() — 마우스가 '가까이' 오면 반응하는 새로운 의사 클래스

CSS Working Group에 제안된 :near() 의사 클래스는 포인터 근접성을 감지해 호버 전에 UI를 활성화하는 새로운 상호작용 패턴을 연다.

CSS:near()CSS SelectorsUX
9 min read
jQuery 4.0 — 10년 만의 메이저 릴리스, 무엇이 바뀌었나

jQuery 4.0 — 10년 만의 메이저 릴리스, 무엇이 바뀌었나

jQuery가 20주년을 맞아 10년 만에 메이저 버전을 출시했다. IE 지원 축소, ES 모듈 전환, Trusted Types 등 핵심 변경 사항을 정리한다.

jQueryJavaScript라이브러리마이그레이션
8 min read
달리는 차의 엔진을 바꾸다 — Nx 모노레포에서 Bun 도입까지의 여정

달리는 차의 엔진을 바꾸다 — Nx 모노레포에서 Bun 도입까지의 여정

Nx 18에서 21까지 버전 업그레이드와 Bun 패키지 매니저 도입을 동시에 진행한 컬리의 마이그레이션 전략과 실전 이슈를 정리한다.

NxBun모노레포마이그레이션
14 min read
Safari 26.3 — Zstandard 압축과 Navigation API가 온다

Safari 26.3 — Zstandard 압축과 Navigation API가 온다

Safari 26.3이 Zstandard 콘텐츠 인코딩, Navigation API AbortSignal 지원, 그리고 다수의 CSS 버그 수정을 가져왔다.

SafariWebKitZstandardNavigation API브라우저
8 min read
V8 Mutable Heap Numbers — 숫자 하나 바꿀 때마다 새 객체를 만들던 비효율을 잡다

V8 Mutable Heap Numbers — 숫자 하나 바꿀 때마다 새 객체를 만들던 비효율을 잡다

V8 엔진이 스크립트 컨텍스트의 숫자 변수를 매번 새 HeapNumber로 할당하던 방식을 제자리 수정(mutable)으로 바꿔 최대 2.5배 성능 향상을 달성했다.

V8JavaScript성능 최적화엔진 내부
9 min read
Claude Code 에이전트 팀 — 여러 AI가 협업하는 새로운 방식

Claude Code 에이전트 팀 — 여러 AI가 협업하는 새로운 방식

Claude Code의 에이전트 팀을 정리했다. 설정법, 사용 사례, 10만 줄 C 컴파일러 구축 실전 사례, 훅을 활용한 품질 관리, 토큰 비용 분석까지 다룬다.

Claude CodeAI에이전트Agent Teams병렬 작업
20 min read
달리는 기차의 엔진을 교체하라 — 네이버 스마트스토어 Oracle→MySQL 이중 쓰기 전환기

달리는 기차의 엔진을 교체하라 — 네이버 스마트스토어 Oracle→MySQL 이중 쓰기 전환기

10년 이상 운영한 Oracle을 서비스 중단 없이 MySQL로 전환한 네이버 스마트스토어 회원 파트의 이중 쓰기(dual write) 전략과 기술적 해결 과정.

MySQLOracleMigrationJPAMyBatis
12 min read
CSS만으로 커스텀 셀렉트 박스 — JavaScript 150줄이 사라지는 순간

CSS만으로 커스텀 셀렉트 박스 — JavaScript 150줄이 사라지는 순간

Chrome 135에 도입된 appearance: base-select와 sibling-index()로 JavaScript 없이 완전한 커스텀 드롭다운을 구현하는 방법을 분석한다.

CSSbase-selectsibling-indexChrome커스텀 셀렉트
10 min read
Google WebMCP — 웹사이트가 AI 에이전트에게 '메뉴판'을 건네는 시대

Google WebMCP — 웹사이트가 AI 에이전트에게 '메뉴판'을 건네는 시대

Chrome 146에 탑재된 WebMCP의 Declarative·Imperative API 구조와 웹 개발자가 준비해야 할 변화를 분석한다.

WebMCPAI AgentChromeMCPGoogle
11 min read
신입사원을 에이스로 — Netflix가 LLM Post-Training을 대규모 엔지니어링으로 만든 과정

신입사원을 에이스로 — Netflix가 LLM Post-Training을 대규모 엔지니어링으로 만든 과정

Pre-training이 LLM에 넓은 언어 능력을 주지만, post-training이 실제 의도와 도메인 제약에 맞추는 단계. Netflix의 스케일링 접근법.

LLMPost-TrainingNetflixRayRLHF
13 min read
Rolldown의 코드 스플리팅 — 비트셋 한 줄로 모듈의 소속을 결정하는 법

Rolldown의 코드 스플리팅 — 비트셋 한 줄로 모듈의 소속을 결정하는 법

Vite의 차세대 번들러 Rolldown이 비트셋 기반 알고리즘으로 코드 스플리팅을 수행하는 원리를 분석한다.

RolldownVite번들러코드 스플리팅Rust
11 min read
V8 Explicit Compile Hints — 주석 한 줄로 JavaScript 시작 속도를 630ms 줄이는 법

V8 Explicit Compile Hints — 주석 한 줄로 JavaScript 시작 속도를 630ms 줄이는 법

Chrome 136에 도입된 V8의 Explicit Compile Hints 기능으로 JavaScript 초기 로딩 성능을 개선하는 원리와 사용법을 분석한다.

V8성능 최적화ChromeJavaScript컴파일
10 min read
Babel 8 Beta — CJS를 버리고 ESM 전용으로 간다

Babel 8 Beta — CJS를 버리고 ESM 전용으로 간다

2년간의 알파를 거쳐 베타에 진입한 Babel 8의 핵심 변경사항과 마이그레이션 전략을 정리한다.

BabelESMJavaScript빌드 도구마이그레이션
8 min read
Accept: text/markdown — AI 에이전트가 HTML 대신 마크다운을 받는 시대

Accept: text/markdown — AI 에이전트가 HTML 대신 마크다운을 받는 시대

Cloudflare가 AI 에이전트를 위해 HTML을 마크다운으로 자동 변환하는 기능의 동작 원리와 의미를 살펴본다.

CloudflareAI AgentMarkdown웹 표준
9 min read
Cloudflare Workers Static Assets 운용 가이드 — 라우팅과 캐시를 안정적으로 잡는 방법

Cloudflare Workers Static Assets 운용 가이드 — 라우팅과 캐시를 안정적으로 잡는 방법

Workers Static Assets를 기준으로 SPA/SSR 혼합 서비스에서 라우팅, 캐시, Worker 실행 순서를 설계하는 실전 패턴을 정리한다.

Cloudflare WorkersStatic AssetsEdge배포
4 min read
ESLint v10 — eslintrc의 시대가 끝났다

ESLint v10 — eslintrc의 시대가 끝났다

ESLint v10.0.0의 레거시 eslintrc 완전 제거, 파일 기반 설정 탐색, JSX 참조 추적 등 주요 변경 사항과 마이그레이션 방법을 정리한다.

ESLintFlat ConfigJavaScript린터
9 min read
JavaScript using 키워드 — try/finally 없이 리소스를 자동으로 정리하는 법

JavaScript using 키워드 — try/finally 없이 리소스를 자동으로 정리하는 법

TC39 Stage 4에 도달한 Explicit Resource Management 제안을 통해 using 키워드와 Symbol.dispose의 동작 원리를 살펴본다.

JavaScriptTC39usingSymbol.dispose리소스 관리
9 min read
GitHub Copilot Agent Skills가 바꾸는 흐름 — 에디터 안에서 작업 자동화하는 법

GitHub Copilot Agent Skills가 바꾸는 흐름 — 에디터 안에서 작업 자동화하는 법

Copilot Agent Mode와 Agent Skills를 기준으로, 반복 작업을 줄이는 실전 워크플로우를 정리한다.

GitHub CopilotAgent ModeJetBrains개발 생산성
5 min read
TypeScript 6.0 Beta — TS 7 가기 전에 tsconfig부터 정리하자

TypeScript 6.0 Beta — TS 7 가기 전에 tsconfig부터 정리하자

TypeScript 6.0 Beta의 주요 변경 사항과 깨지는 기본값들을 정리하고, TS 7(Go 네이티브) 전환을 대비하는 마이그레이션 전략을 다룬다.

TypeScripttsconfig마이그레이션Breaking Changes
9 min read
V8의 JSON.stringify가 2배 빨라졌다 — 6가지 최적화 기법 해부

V8의 JSON.stringify가 2배 빨라졌다 — 6가지 최적화 기법 해부

V8 13.8(Chrome 138)에서 적용된 JSON.stringify 성능 개선의 기술적 배경과 6가지 핵심 최적화 전략을 분석한다.

V8JSON성능 최적화ChromeSIMD
9 min read
validator.js의 isLength가 뚫렸다 — 유니코드 제로 폭 문자가 만든 CVSS 7.5 취약점

validator.js의 isLength가 뚫렸다 — 유니코드 제로 폭 문자가 만든 CVSS 7.5 취약점

CVE-2025-12758로 등록된 validator.js의 isLength() 우회 취약점의 원리, 영향, 대응 방법을 분석한다.

보안validator.jsCVE유니코드npm
7 min read
VS Code 1.109 — 에디터 하나에서 Claude, Codex, Copilot을 동시에 돌리는 시대

VS Code 1.109 — 에디터 하나에서 Claude, Codex, Copilot을 동시에 돌리는 시대

VS Code 1.109가 도입한 멀티 에이전트 개발 환경의 3가지 실행 모드와 MCP Apps 지원을 분석한다.

VS CodeAI AgentMCPCopilotClaude
10 min read
코딩 에이전트 운영 설계 — Rules부터 MCP·Hooks까지 실무 적용 가이드

코딩 에이전트 운영 설계 — Rules부터 MCP·Hooks까지 실무 적용 가이드

코딩 에이전트의 핵심 개념 7가지를 실무 적용 순서대로 정리하고, 팀 운영에 바로 쓸 수 있는 체크리스트를 제공한다.

코딩에이전트Claude CodeMCPHooksAI개발
11 min read
Gemini 입문 가이드 — 비개발자도 바로 쓰는 프롬프트 공략

Gemini 입문 가이드 — 비개발자도 바로 쓰는 프롬프트 공략

처음 AI를 쓰는 사람도 이해할 수 있도록 Gemini 시작 방법, 질문 잘하는 법, 실수 줄이는 팁, 실전 활용 예시를 정리한다.

GeminiAI입문프롬프트생산성
13 min read
4명이 16명처럼 일하는 비밀 — 컬리 OMS팀의 역할 기반 AI 오케스트레이션

4명이 16명처럼 일하는 비밀 — 컬리 OMS팀의 역할 기반 AI 오케스트레이션

PM 1명과 엔지니어 3명이 12개 MSA를 운영하는 OMS팀이 Claude AI를 도입해 16명 규모 조직처럼 일하게 된 과정.

ClaudeAI 워크플로우MSA컬리Vibe Coding
11 min read
불 끄기 전에 원인 조사하는 소방관은 없다 — 장애 복구를 결정짓는 First Action

불 끄기 전에 원인 조사하는 소방관은 없다 — 장애 복구를 결정짓는 First Action

우아한형제들이 70건의 장애 사례를 분석해 도출한 First Action 전략. 장애 복구 시간을 결정하는 건 원인 분석이 아니라 최초 조치다.

장애 대응SREDevOps우아한형제들
12 min read
Temporal API — JavaScript Date의 30년 묵은 저주가 풀린다

Temporal API — JavaScript Date의 30년 묵은 저주가 풀린다

Chrome 144가 Temporal API를 정식 탑재하면서 JavaScript 날짜 처리의 새 시대가 열렸다.

TemporalJavaScriptChromeDateTC39
9 min read
sibling-index()로 만드는 CSS 스크롤 소용돌이 — JavaScript 없이 수백 개 요소 애니메이션

sibling-index()로 만드는 CSS 스크롤 소용돌이 — JavaScript 없이 수백 개 요소 애니메이션

CSS sibling-index()와 scroll-driven animations를 결합해 순수 CSS만으로 텍스트 보텍스 효과를 구현하는 기법을 다룬다.

CSSsibling-indexscroll-driven animationsscrollytelling
7 min read
좀비 TV 400만 대의 35초 — 2025년 DDoS 공격은 어떻게 역대 기록을 갈아치웠나

좀비 TV 400만 대의 35초 — 2025년 DDoS 공격은 어떻게 역대 기록을 갈아치웠나

2025년 DDoS 공격이 전년 대비 두 배 이상 증가하고, 역대 최대 31.4 Tbps 공격이 기록된 Cloudflare Q4 리포트 분석.

DDoSCloudflaresecurityAisuru-Kimwolfnetwork
9 min read
Electrobun v1 — Bun으로 14MB짜리 데스크톱 앱을 만든다

Electrobun v1 — Bun으로 14MB짜리 데스크톱 앱을 만든다

Electron의 번들 크기 문제를 Bun 런타임과 네이티브 웹뷰로 해결하려는 새 프레임워크 Electrobun v1이 출시됐다.

ElectrobunBun데스크톱 앱ElectronTauri
8 min read
Interop 2026 — 브라우저 전쟁이 끝나고 표준 전쟁이 시작됐다

Interop 2026 — 브라우저 전쟁이 끝나고 표준 전쟁이 시작됐다

Chrome, Safari, Firefox가 합의한 20개 웹 표준 집중 영역과 프론트엔드 개발자가 주목해야 할 핵심 기능을 정리한다.

InteropCSS브라우저 호환성웹 표준
9 min read
중앙 교환기를 세워라 — 당근이 AI 난립을 하나의 플랫폼으로 정돈한 전략

중앙 교환기를 세워라 — 당근이 AI 난립을 하나의 플랫폼으로 정돈한 전략

'AI 활용에 가장 앞선 당근' 비전 아래 여러 제품 팀이 AI를 더 잘 활용할 수 있도록 구축한 GenAI 플랫폼.

당근GenAILLM GatewayPrompt StudioAI 플랫폼
10 min read
CSS Stacking Context — z-index: 99999를 줬는데 왜 안 올라올까

CSS Stacking Context — z-index: 99999를 줬는데 왜 안 올라올까

CSS 쌓임 맥락의 생성 조건, z-index의 실제 작동 원리, 그리고 레이아웃 버그를 디버깅하는 실전 전략을 정리한다.

CSSz-indexstacking-context디버깅
9 min read
삽 대신 굴삭기 — Netflix가 400개 PostgreSQL 클러스터를 자동으로 옮긴 방법

삽 대신 굴삭기 — Netflix가 400개 PostgreSQL 클러스터를 자동으로 옮긴 방법

Netflix Online Data Stores 팀이 400개에 가까운 RDS Postgres 클러스터를 Aurora Postgres로 자동 마이그레이션한 셀프서비스 워크플로우 설계 과정.

PostgreSQLAuroraAWSNetflixDatabase Migration
10 min read
Next.js 블로그 만들기 — 정적 블로그에 맞춤 추천 포스트 기능 추가

Next.js 블로그 만들기 — 정적 블로그에 맞춤 추천 포스트 기능 추가

localStorage에 조회 이력을 저장하고, 태그 가중치 스코어링으로 정적 블로그에서도 개인화 추천을 구현하는 방법.

Next.jslocalStorage추천UX
15 min read
뱀의 탈피에서 배운 서버 재시작 — Rust로 커넥션 제로 로스를 구현하는 ecdysis

뱀의 탈피에서 배운 서버 재시작 — Rust로 커넥션 제로 로스를 구현하는 ecdysis

Cloudflare가 5년간 프로덕션에서 검증한 Rust 무중단 재시작 라이브러리 ecdysis를 오픈소스로 공개했다.

RustCloudflaregraceful-restartecdysisopen-source
9 min read
Bun vs Node.js vs Deno — 뭐가 다른지, 그래서 뭘 쓰면 좋은지 (2026 기준)

Bun vs Node.js vs Deno — 뭐가 다른지, 그래서 뭘 쓰면 좋은지 (2026 기준)

런타임 3대장 비교: 호환성(Node), 속도/번들(Bun), 올인원/보안(Deno). 팀/프로덕트 상황별 선택 기준과 체크리스트까지 정리.

BunNode.jsDenoJavaScriptTypeScript
7 min read
번들러(Bundle)란 뭐고, 왜 필요할까? — 요즘 번들러/빌드 툴 비교 가이드

번들러(Bundle)란 뭐고, 왜 필요할까? — 요즘 번들러/빌드 툴 비교 가이드

번들러의 역할(모듈/의존성/트랜스파일/최적화)을 쉽게 설명하고, Vite·Rollup·esbuild·Webpack·Rspack·Turbopack 같은 도구를 상황별로 비교합니다.

BundlerViteWebpackRollupesbuild
9 min read
메시지는 보냈는데 DB는 롤백됐다면? — 아웃박스 패턴과 재시도 토픽으로 만드는 자가 치유 파이프라인

메시지는 보냈는데 DB는 롤백됐다면? — 아웃박스 패턴과 재시도 토픽으로 만드는 자가 치유 파이프라인

아웃박스 패턴과 Spring Kafka RetryableTopic으로 외부 채널 입고 정보를 안전하게 동기화하는 컬리의 방법.

KafkaOutbox PatternSpring BootKurlyEvent-Driven
12 min read
드롭다운의 정체를 밝혀라 — Combobox, Multiselect, Listbox 완전 해부

드롭다운의 정체를 밝혀라 — Combobox, Multiselect, Listbox 완전 해부

Combobox, Multiselect, Listbox, Dual Listbox의 차이점과 접근성 요구사항, 선택 기준을 ARIA 패턴 기반으로 정리한다.

UI컴포넌트접근성ARIAComboboxListbox
10 min read
Next.js 블로그 만들기 — 검색엔진 등록 4종 완전 정복

Next.js 블로그 만들기 — 검색엔진 등록 4종 완전 정복

Google Search Console, Bing Webmaster Tools, 네이버 서치어드바이저, 다음 검색등록까지. Next.js 블로그를 검색엔진에 노출시키는 전체 과정을 정리했다.

SEO검색엔진Next.js
9 min read
분류 번호 없는 도서관 — 당근이 행동 로그의 카오스를 정리한 방법

분류 번호 없는 도서관 — 당근이 행동 로그의 카오스를 정리한 방법

코드 곳곳에 하드코딩되던 사용자 행동 로그를 중앙화된 이벤트센터 플랫폼으로 정리한 당근의 개발기.

Event TrackingData PlatformDaangnProtobufKafka
10 min read
JiTTesting — AI가 코드를 쓰는 시대, 테스트는 누가 하나

JiTTesting — AI가 코드를 쓰는 시대, 테스트는 누가 하나

Meta가 제안한 Just-in-Time Testing은 에이전트가 생성한 코드를 LLM이 그때그때 테스트하는 새로운 패러다임이다.

테스팅AIMetaJiTTesting에이전트
10 min read
Next.js 블로그 만들기 — GitHub Pages에서 Cloudflare Pages로 이전하기

Next.js 블로그 만들기 — GitHub Pages에서 Cloudflare Pages로 이전하기

GitHub Pages의 한계를 넘어 Cloudflare Pages로 블로그를 이전한 과정. 비교, 설정, SEO까지 한 번에 정리.

Cloudflare배포SEO
9 min read
볼링 핀 배치의 비밀 — CSS Grid auto-placement로 피라미드 레이아웃 구현하기

볼링 핀 배치의 비밀 — CSS Grid auto-placement로 피라미드 레이아웃 구현하기

CSS Grid의 자동 배치 알고리즘과 nth-child 셀렉터를 조합해 반응형 피라미드 그리드를 구현하는 방법을 다룬다.

CSS Grid레이아웃nth-child반응형auto-placement
9 min read
Next.js 블로그 만들기 — 정적 블로그에 검색 기능 추가

Next.js 블로그 만들기 — 정적 블로그에 검색 기능 추가

빌드 타임 검색 인덱스 생성과 클라이언트 사이드 필터링으로 정적 블로그에 검색 기능을 구현하기. Cmd+K 단축키, 오버레이 UI까지.

검색UXNext.js
10 min read
죽지 않는 배포 파이프라인 — Netflix가 Temporal로 실패율을 40,000배 낮춘 이야기

죽지 않는 배포 파이프라인 — Netflix가 Temporal로 실패율을 40,000배 낮춘 이야기

Netflix Spinnaker 팀이 Temporal Durable Execution을 도입해 Cloud Operation의 일시적 장애를 사실상 제거한 마이그레이션 이야기.

TemporalNetflixSpinnakerDurable ExecutionCloud Operations
11 min read
Next.js 블로그 만들기 — 스크롤 프로그레스 바와 Canvas 렌더링 이슈 해결

Next.js 블로그 만들기 — 스크롤 프로그레스 바와 Canvas 렌더링 이슈 해결

스크롤 진행률 프로그레스 바 구현과 Canvas 커서 효과가 GNB backdrop-blur와 충돌하며 발생한 깜빡임 이슈 해결기.

CanvasUX디버깅
6 min read
OHP 필름을 겹치듯 — conic-gradient와 attr()로 순수 CSS 파이 차트 만들기

OHP 필름을 겹치듯 — conic-gradient와 attr()로 순수 CSS 파이 차트 만들기

conic-gradient, CSS 커스텀 프로퍼티, 새로운 attr() 타입 구문을 활용해 JavaScript 없이 시맨틱한 파이 차트를 구현하는 방법을 다룬다.

CSSconic-gradientattr()데이터 시각화접근성
9 min read
Next.js 블로그 만들기 — TOC와 커서 효과로 디테일 살리기

Next.js 블로그 만들기 — TOC와 커서 효과로 디테일 살리기

IntersectionObserver 기반 TOC(Table of Contents)와 Canvas 커서 트레일 효과 구현기. 스크롤 하이라이팅, fixed 레이아웃 처리까지.

TOCCanvasUX
12 min read
세 번의 리모델링 — 당근페이가 아키텍처를 갈아엎은 진짜 이유

세 번의 리모델링 — 당근페이가 아키텍처를 갈아엎은 진짜 이유

당근페이 백엔드가 Layered에서 Hexagonal을 거쳐 Clean Architecture + Monorepo로 진화한 과정과 각 단계의 트레이드오프를 다룬다.

Clean Architecture당근백엔드아키텍처
12 min read
배경색이 바뀌면 글자색도 따라가야 한다 — contrast-color() 없이 살아남는 법

배경색이 바뀌면 글자색도 따라가야 한다 — contrast-color() 없이 살아남는 법

브라우저 지원이 부족한 CSS contrast-color()를 color-mix(), relative color syntax, custom properties로 근사 구현하는 방법을 정리한다.

CSScontrast-color접근성색상
10 min read
Next.js 블로그 만들기 — giscus로 댓글 기능 추가

Next.js 블로그 만들기 — giscus로 댓글 기능 추가

서버 없이 GitHub Discussions 기반 댓글 시스템 giscus를 Next.js 블로그에 연동하기. 다크모드 자동 전환까지.

giscusGitHub댓글
5 min read
OOM이 터지고 나서야 깨달은 것들 — Webpack4에서 Vite로 갈아탄 5년 묵은 CMS

OOM이 터지고 나서야 깨달은 것들 — Webpack4에서 Vite로 갈아탄 5년 묵은 CMS

CI 빌드가 OOM으로 터진 뒤, 5년 동안 방치된 Webpack4 기반 CMS를 Vite로 전환하며 빌드 시간 48%, 번들 크기 81%를 줄인 과정.

ViteWebpack마이그레이션컬리빌드
11 min read
포크레인 없이 못 박기 — CSS 수학 함수만으로 바 차트 그리기

포크레인 없이 못 박기 — CSS 수학 함수만으로 바 차트 그리기

CSS 수학 함수와 커스텀 프로퍼티, 시맨틱 HTML을 조합해 JavaScript 없이 반응형 바 차트를 구현하는 방법을 다룬다.

CSScalc()clamp()데이터 시각화커스텀 프로퍼티
9 min read
Next.js 블로그 만들기 — 카드 그리드와 포스트 상세 페이지

Next.js 블로그 만들기 — 카드 그리드와 포스트 상세 페이지

Velog 스타일 카드 UI와 MDX 렌더링 상세 페이지 구현. 반응형 그리드, SEO 메타데이터, 정적 사이트 생성까지.

Next.jsReactMDX
6 min read
Action-Reducer-State의 귀환 — 프론트엔드 패턴이 서버를 점령한 이유

Action-Reducer-State의 귀환 — 프론트엔드 패턴이 서버를 점령한 이유

프론트엔드에서 익숙한 Redux의 Action-Reducer-State 패턴을 서버 사이드에 적용한 당근마켓의 이벤트 소싱 라이브러리 Ventyd를 분석한다.

이벤트 소싱Redux당근Node.js
12 min read
Next.js 블로그 만들기 — 다크모드와 Tailwind CSS v4 테마

Next.js 블로그 만들기 — 다크모드와 Tailwind CSS v4 테마

Tailwind CSS v4의 CSS-first 설정과 next-themes를 활용한 다크/라이트 모드 구현. 커스텀 프로퍼티 기반 테마 시스템 구축기.

Tailwind CSS다크모드next-themes
7 min read
CSS @scope — 울타리 치는 네이티브 스코핑의 시대가 왔다

CSS @scope — 울타리 치는 네이티브 스코핑의 시대가 왔다

CSS @scope의 도넛 스코핑과 근접성 우선순위를 파헤치고, BEM·CSS Modules·CSS-in-JS와 정면 비교한다.

CSS@scopeBEM스타일링
9 min read
Next.js 15로 개인 블로그 만들기 — 프로젝트 셋업

Next.js 15로 개인 블로그 만들기 — 프로젝트 셋업

왜 직접 블로그를 만들었는지, 기술 스택 선정 이유와 프로젝트 초기 구성까지. Next.js 15 + Tailwind CSS v4 + MDX 기반 블로그의 시작.

Next.js블로그Tailwind CSS
7 min read
38년 된 RFC의 복수 — DNS 레코드 순서가 뒤집히자 리눅스가 멈췄다

38년 된 RFC의 복수 — DNS 레코드 순서가 뒤집히자 리눅스가 멈췄다

1987년 RFC 문서의 모호한 한 문장이 2025년 Cloudflare 1.1.1.1 장애로 이어진 과정과 그 기술적 원인을 파헤친다.

DNSCloudflareRFCCNAMEoutagepostmortem
12 min read