
10년 된 에디터 코어를 Froala에서 Lexical로 교체하기
10년 된 에디터 코어를 Froala에서 Lexical로 교체한 마이그레이션 사례를 소개했습니다. AI를 활용해 구현 부담을 줄이고, 기존 결과와의 대조 검증으로 6주 만에 전환을 마쳤습니다.

10년 된 에디터 코어를 Froala에서 Lexical로 교체한 마이그레이션 사례를 소개했습니다. AI를 활용해 구현 부담을 줄이고, 기존 결과와의 대조 검증으로 6주 만에 전환을 마쳤습니다.

React Query의 staleTime, gcTime, 키 팩토리, 무효화 전략을 중심으로 캐시 운영법을 정리했습니다. 전역 기본값과 직접 갱신을 통해 불필요한 재요청과 화면 깜빡임을 줄이는 방법을 제안했습니다.

Keycloakify의 라운드트립 구조 때문에 `page_hint`를 단순히 React 상태처럼 다루면 새로고침 시 화면이 바뀌는 문제가 있었습니다. 마운트 시 무조건 삭제하던 로직을 진입 흐름에 맞게 조정해 직원 계정 최초 설정 화면을 유지했습니다.
당근 레슨/과외가 숨은 수요를 발견하고 PMF를 찾기까지의 과정을 공유했습니다. 수요자 중심 실험과 진입점 개선으로 전국 오픈 단계까지 확장한 사례입니다.

웹과 모바일 UI의 차이를 타이포그래피, Safe Area, 내비게이션, 버튼 배치 중심으로 정리했습니다. 모바일에서는 공간 배치보다 우선순위와 엄지 조작성을 더 중요하게 봐야 한다는 점을 설명했습니다.

다이얼로그 수정 폼에서 useEffect 기반 수동 바인딩으로 발생한 상태 꼬임 문제를 정리했습니다. React Hook Form의 values로 선언적 동기화를 적용해 잔상과 레이스 컨디션을 줄였습니다.

React Query 쿼리 키를 도메인별 factory로 관리해 캐시 구조와 무효화 범위를 명확히 정리하는 방법을 소개했습니다. queryOptions와 useQueries까지 함께 묶어 재사용성과 유지보수성을 높이는 흐름을 설명했습니다.

커스텀 ESLint 플러그인으로 다국어 번역 누락과 오역을 탐지해 해결했습니다. 사람과 AI 검수의 한계를 보완하기 위해 린트와 AI를 나눠 적용했습니다.

미리캔버스 프론트엔드 모노레포의 CI/CD와 배포 구조를 설명했습니다. 빌드 아티팩트 분리와 Module Federation, manifest 기반 독립 배포, 관측 지표를 함께 다뤘습니다.
토스의 es-toolkit이 lodash 대체를 목표로 성능과 번들 크기를 개선하며 성장한 과정을 소개했습니다. 국내외 커뮤니티 기여와 대형 오픈소스 채택으로 주간 다운로드 2천만 회를 넘겼습니다.
왓챠 웹에 Document PiP를 적용한 과정과 원리를 설명했습니다. React 상태 유지, 재생 정체 복구, 종료 제어 같은 실서비스 이슈를 함께 다뤘습니다.
왓챠 웹에서 PiP 기능을 지원하게 된 소식을 소개했습니다. 기존 미니플레이어 한계와 브라우저별 PiP 차이도 함께 안내했습니다.