TextField 포커스가 자꾸 풀립니다 (재렌더링의 함정)
글자 하나 칠 때마다 키보드가 내려가고 포커스가 풀리나요? 당신이 저지른 '컨트롤러 초기화' 실수를 찾아드립니다. TextEditingController와 build() 메서드의 관계를 완벽하게 파헤칩니다.

개발과 기술에 대한 이야기를 기록합니다.
글자 하나 칠 때마다 키보드가 내려가고 포커스가 풀리나요? 당신이 저지른 '컨트롤러 초기화' 실수를 찾아드립니다. TextEditingController와 build() 메서드의 관계를 완벽하게 파헤칩니다.

사용자가 올린 사진이 찌그러져서 오이가 되었습니다. 디자이너는 화를 냅니다. BoxFit.cover, contain, fill의 차이를 명확히 이해하고, AspectRatio 위젯으로 완벽한 프레임을 짜봅시다.

아이폰 X 이후, 직사각형 화면의 시대는 끝났습니다. 노치와 홈 인디케이터로부터 당신의 UI를 지키는 방법, 그리고 SafeArea를 쓰지 말아야 할 때를 정리해봤습니다.

로그인 화면을 만들었는데 키보드가 올라오니 노란 줄무늬 에러가 뜹니다. resizeToAvoidBottomInset부터 스크롤 뷰, 그리고 채팅 앱을 위한 reverse 팁까지, 키보드 대응의 모든 것을 정리해봤습니다.

Column 안에 ListView를 넣으면 왜 화면이 하얗게 변하거나 에러가 날까요? '무한한 높이'의 역설을 이해하고, Expanded와 Slivers로 우아하게 해결하는 방법을 정리해봤습니다.

Flutter 개발자라면 피할 수 없는 노란색/검은색 줄무늬 에러. 단순히 Expanded로 감싸는 게 답이 아닐 수 있습니다. 플러터의 제약 조건(Constraints) 시스템을 완벽하게 이해해봤다.

TypeScript 타입 에러가 개발 중에는 보이는데 빌드할 때는 무시되는 문제와 해결 방법을 정리했습니다.

개발 중 CORS 에러를 프록시로 해결하는 방법과 주의사항을 정리했습니다.

"Named export not found" 에러의 원인인 CommonJS와 ES Modules의 충돌을 파헤칩니다. package.json의 exports 필드부터 transpilePackages 설정까지 완벽 가이드.

TypeScript/JavaScript에서 절대 경로 import 설정이 안 될 때의 원인을 '지도와 택시 기사' 비유로 설명합니다. CJS vs ESM 역사적 배경과 모노레포 설정, 팀 컨벤션까지 총정리.

Next.js 빌드 로그에 나오는 동그라미(○)와 람다(λ) 기호의 의미를 아시나요? 실수로 모든 페이지를 동적으로 만들어버리지 않는 방법을 확인하세요.

Vercel에서는 잘 되던 ISR이 AWS나 Docker 환경에서는 왜 작동하지 않을까요? 파일 시스템 캐시의 함정과 해결책을 파헤쳐봤습니다.

Vercel 대신 AWS S3에 정적 배포(Static Export)를 시도했다가 겪은 세 가지 악몽(이미지 최적화, API 라우트, 동적 라우팅)과 그 해결책을 공유합니다. '서버 없는 Next.js'가 어떤 제약이 있는지 확실히 이해하게 될 것입니다.

React 개발 초기, 데이터를 5단계 깊이로 전달하다가 멘붕에 빠진 경험을 공유합니다. Prop Drilling이 왜 유지보수의 적인지, 그리고 Context API, Composition(합성), Zustand를 사용해 이 지옥에서 우아하게 탈출하는 3가지 실제 패턴을 정리합니다.

React에서 DOM에 직접 접근해야 할 때 useRef를 사용하는 방법과 주의사항, 그리고 forwardRef와 useImperativeHandle을 이용한 고급 패턴까지 완벽하게 정리했습니다.

Vite에서 환경 변수가 제대로 로드되지 않는 문제의 원인과 해결 방법을 심층 분석합니다. bundler의 동작 원리, 보안 모델, Docker/CI 환경에서의 동적 주입, 그리고 Monorepo 설정까지 완벽하게 가이드합니다.

React의 데이터 흐름은 단방향(부모->자식)이지만, 가끔은 거꾸로 명령을 내려야 할 때가 있습니다. useImperativeHandle과 forwardRef를 사용해 캡슐화를 유지하면서 자식의 함수를 호출하는 법을 정리해봤습니다.

z-index가 작동하지 않는 문제와 stacking context 이해하기

컴포넌트가 사라진 후 setState를 호출해서 생기는 메모리 누수 경고 해결

부모에서 전달한 props가 undefined로 나와서 앱이 크래시되는 문제 해결
