홈은 최근 글 피드, 여기는 전체 116편을 연도별로 본다.

2026 (71)

새 웹 기능과 옛 WebView — HTML-in-Canvas가 보여준 것
공부가 멈춘 게 아니다 — 배울 것과 쓸 것을 나누며 읽은 것을 글로
스킬은 외우지 않는다 — Cursor 자연어로 Playwright smoke PR을 만든 방법
빨리 고쳤는데, 왜 위험했는지 — Mini Shai-Hulud와 npm 설치 경계
WebView와 UA — 채널보다 브라우저 스펙을 보는 쪽이 낫다
Harness 글을 읽고 — 무엇을 고칠지, Cursor는 무엇을 덜어주는지
사람 UI + 에이전트 인터페이스 시대, FE 설계 체크리스트
문구 하나, 도메인 여럿 — 끝난 작업을 어떻게 회고할 것인가
리뷰 큐를 기다리는 동안 — 아래에서 실행해 본 습관과 Approve 병목
Chrome User-Agent 변경 안내 — 무엇이, 언제, 어떻게 바뀌었는지
선언적이라는 말이 두 겹이다 — React·RSC와 Declarative Partial Updates
AI 코딩 생산성, LOC·설문·Tab 수락률로 재지 마라 — FE 팀이 대신 보는 것
RSC 보안 사태 이후, FE가 먼저 볼 것 — CVE·패치·영향 범위
아르고를 본 날 — 가짜 영화, 진짜 구조, 팀의 신뢰
아메리칸 스나이퍼를 본 날 — 응원과 혼란 사이, 글을 쓰는 이유
CSS 성능 글 4편 읽고 FE가 남긴 체크리스트 — Style·DOM·Web Vitals
에이전트 없는 날 실험 — 도구 의존이 아니라 레버리지 위치를 확인하기
「더 위자드 오브 라이즈」와 「인턴」 사이 — AI 과신을 피하고 어시스턴트를 쓰는 법
스레드 합의를 티켓 한 문단으로 옮기는 습관 — 휘발을 줄이는 운영
주니어의 첫 레버 — 이번 주는 PR 3단락만 통일해도 충분하다
비밀번호 이후의 로그인: WebAuthn Immediate UI를 붙일 때 놓치기 쉬운 것들
로컬에서 확인할 것, QA에서 확인할 것 — Browser MCP E2E의 판단
비싼 실수는 AI가 아니라 검증 부재 — geohot의 Sloptember를 읽고
Harness engineering을 읽었을 때 — 계층·중앙·도구 의존은 왜 틀린가
문제 퍼스트 — AI 시대에 툴보다 먼저 정의할 것
테스트와 CI가 진짜 생산성인 이유 — 빠르게 쓰는 것보다 빠르게 안심하는 것
208초의 판단, 208분의 재심 — 「설리」가 말해주는 장애 대응의 역설
「하네스 다 했어요」는 아직 시작 — Claude Code가 대규모 코드베이스에서 말하는 것
AI 보조 코딩 생산성 — 잘못 재는 12가지 (읽을거리)
브라우저 MCP가 오면 웹 개발은 어떻게 바뀔까
Universal Cart 시대, 커머스 FE 운영 체크리스트
Google I/O 2026, FE가 진짜 봐야 할 6가지
AI 스킬은 코드다 — 쓰면서 고쳐야 산다
리뷰 스레드 운영 체크리스트 — Approve와 Comment를 헷갈리지 않는 방법
MCP가 메인스트림으로 내려온 주간 — 연결성에서 런타임·안전 운영으로
my-cursor를 어떻게 구성했는가 — 실제 운영 사례로 보는 개인 자동화 레이어
에이전트는 빨라졌고, 팀은 더 엄격해져야 한다 — 이번 주 발표를 운영 체크리스트로 번역하기
PR은 쪼개고, 규칙은 ~/.cursor에 — 레거시 API 에픽과 Cursor 스킬
임시 기능에서 과공용화로 번진 날: AI 리뷰 추종의 비용 회고
프론트엔드 알람 대응 30분 점검표
리뷰어가 먼저 읽는 횡단 PR — 코드보다 의도를 먼저 합의하기
샘플링 1% 미만에서 p99를 읽는 법 — 장바구니 tail 지표가 튀었을 때
생산성은 어디에서 생기나 — 에이전트 이전과 이후, 횡단 작업을 기준으로
SSOT(Single Source of Truth)가 합법성이 되는 순간 — 문서 중심주의의 그림자
Cursor 완벽(?) 가이드 — 코드 생성기가 아니라 작업 운영체제로 쓰기
헤드라인 두 개를 같이 읽기 — 대체가 아니라 재배치
티켓, 브랜치, 채팅을 한 줄로 잇기 (성과 정리용 루프)
작은 프론트엔드 수정이 긴 리뷰로 번질 때
작은 프론트엔드 수정은 Cursor와 잘 맞는다
“글 써줘” 한 줄로는 안 된다 — 커서에 넣는 요청 스펙
장기 메모리가 올라오면, 하네스에서 빼야 할 줄
하네스보다 빈 스킬 — 의도 분석과 스킬이 없으면 줄은 허공이다
GitHub merge queue — 우리 자리의 임계점
AI 는 제안한다, 사람은 선택한다
prototype 에 스펙이 없으면, 완성도가 스펙을 대신 가져간다
우선순위가 매일 정해지면, 그건 우선순위가 없다는 뜻이다
hook 은 추상화가 아니다 — lifecycle 의 한 슬롯이다
버저비터 증후군 — 정책 검토를 건너뛰는 24시간
공포는 한 칸으로 보내지 말고, 두 칸으로 보낸다
API 가정에 기댄 영역 — 빈틈없이 돌아간다, 살짝만 무너지지 않으면
공유 UI 패키지의 함정 — 후일담: 결국 합치지 않았다
시간을 빌려 쓰는 하루
공유 UI 패키지의 함정 — 결국 동작만 남았다
검증환경에 최신 main 을 반영하자
QA 중에 생긴 일
밖에서 오는 본문 데이터, 서버나 빌드에서 한 번 거르면 — 청구서는 거기에 있다
프롭스 드릴링을 좋아해도 된다 — 다만 청구서는 따라온다
넛지에서 랜딩까지: pathname과 data-*로 위치를 남기기로 한 이유
훅이 무거울 때 생기는 일
PRD와 구현, 오토메이션으로 한 번에 — 대략 사 딸라
리뷰는 자동화하고, 판단은 사람이 한다

2025 (2)

선언적 조건부 렌더링 컴포넌트 패턴 분석
누수 민사 소송, 나는 300만원을 배상했지만 원고는 얼마가 남았을까?

2024 (9)

안드로이드 앱 업데이트 실패
헤드헌팅과 고민
건조기 콘덴서 청소로 돌아보는 문서 중요성
Jekyll 빌드가 안되서...
가장 적은 힘으로 가장 잘 전달 될만한 이력서 쓰는 법
선별적(?) package 설치가 될까?
어떤 것에 집중하고 있는가?
얼마나 많은 Props 가 필요한가?
디자인 시스템의 함정

2023 (12)

나의 회사의 첫 날들 3
나의 회사의 첫 날들 2
나의 회사의 첫 날들 1
유닉스의 탄생을 읽고 나서
서울의 봄 - 12.12
근 3년 가량의 나의 경력 회고
재택하는 주부 개발자에게 필요한 로봇청소기
FE 에게 얼마나 많은 타이포그래피 선택지가 필요한가?
Svelte 하자
Svelte 는 먹고 하자
Svelte 를 해야 할까?
열정은 항상 조용하게 식어 간다.

2022 (5)

정확하게 소통하기
내가 쓰려고 정리한 Git Tag 사용 방법
React Query 와 친해지기 -2- (쿼리 키)
React Query 와 친해지기 -1- (쿼리 키)
아....

2021 (13)

이제 뭘할까?2
Redis-cli 를 TLS 와 함께 꼭 쓰고 싶을때
이제 뭘할까?
Azure ARM Template 사용하여 배포하기
토이 프로젝트 안되나요? - 늦은 건가? #4
토이 프로젝트 안되나요? - 늦은 건가? #3
토이 프로젝트 안되나요? - 늦은 건가? #2
Azure Blob 에서 Blobfuse 사용하기
토이 프로젝트 안되나요? - 늦은 건가? #1
토이 프로젝트 안되나요? - 늦은 건가? #0
Azure Blob 에서 Blobfuse 사용하기
시니어 개발자는 누구인가요?
Azure Blob 에서 NFS 사용하기

2019 (4)

BFCache 동작에서 발견된 iframe 내 비정상적 이벤트 발생 현상
BFCache 에 대해서
Mac 입력 방식
Yarn을 처음 접하면서