#설계

웹뷰 브릿지를 WebMessageListener로 마이그레이션하기

Android 브릿지를 addJavascriptInterface에서 WebMessageListener로 옮기자 동기 호출이 알아서 해 주던 요청·응답 맞추기와 실패 감지를 웹이 떠안았다. 요청과 응답을 맞추는 네 가지 방법을 비교하고, 메서드 이름 키와 토큰 요청 합치기를 고른 이유와 requestId가 필요해지는 경우를 정리했다.

페이지네이션 컴포넌트 · 3편

페이지네이션 컴포넌트, 포커스를 잃지 않게 하기

노드를 지우지 않고 상태만 바꾼다

페이지네이션 컴포넌트 · 2편

페이지네이션 컴포넌트, 헤드리스로 다시 설계하기

커스텀 엘리먼트와 compound 구조, 그리고 SSR

페이지네이션 컴포넌트 · 1편

페이지네이션 컴포넌트, 모듈 경계부터 그리기

라이브러리를 쓰지 않기로 하고 처음부터 설계한 기록

앱 배포 없이 바뀌는 모달 웹뷰를 설계한 이야기

최초 도입은 앱 배포가 필요했다. 그 이후를 웹 배포만으로 바꾸는 것이 목표였다

FSD에서 배럴 파일 사용 가이드

배럴 파일은 FSD에서 Public API 역할을 하지만, 잘못 쓰면 순환 import와 tree shaking 실패를 부른다. 계층별 사용 기준과 성능 함정을 정리했다

FSD 아키텍처 소개

모노레포 구조의 서비스마다 폴더 구조가 너무 달랐다. 공통 컨벤션이 필요한 상황에서 왜 FSD인가에 대한 이야기

Vanilla Web: You don't need that library

라우팅·상태 관리·템플릿팅·컴포넌트를 라이브러리 없이 브라우저 표준만으로 푸는 방법을 짚은 발표 정리다. 도구를 고르기 전에 그 도구가 가리고 있는 웹 플랫폼을 먼저 보자는 이야기다.

React useState를 언제 작별해야 할까?

useState가 나쁜 게 아니라, 너무 간단해서 복잡한 자리에 잘못 놓인다. 다섯 가지 문제 상황과 각각의 대안을 실무 경험과 함께 정리했다

Next.js 미들웨어의 복잡성을 해결하는 파이프라인 라이브러리 개발기

인증 체크 하나로 시작한 middleware.ts가 500줄이 됐다. Express의 next() 패턴을 Next.js Edge Runtime에 맞게 다시 만들면서 어댑터 패턴과 fail-open을 고른 기록