본문으로 건너뛰기

Blog

기술 기록

Frontend

검색 색인 차단과 OG 미리보기 유지 정리

크롤링·색인·Open Graph를 분리해 검색 결과에서는 감추고 링크 미리보기는 살리는 설정을 정리했다.

DevTools

pnpm 모노레포 공통 의존성 관리 — catalog와 up -r 비교

세 앱이 공유하는 dev CLI의 버전 선언을 한 곳으로 모으려고 root 설치·공용 패키지·pnpm catalog를 차례로 실측했고, 결국 npm script alias 두 줄로 되돌렸다.

DevOps

Vercel vs AWS Amplify vs ECS, 어떤 배포 방식을 선택할까

Vercel, AWS Amplify Hosting, ECS/Fargate의 배포 방식과 운영 난이도, 비용 구조를 비교하고 서비스 상황별 선택 기준을 정리한다.

Frontend

Portal과 createRoot의 차이 — pubuilder 하이드레이션 이슈 정리

Next.js 개발 오버레이의 useId 하이드레이션 경고를 추적하며 createPortal과 독립 React Root의 차이를 정리했다.

Web

HttpOnly 쿠키와 XSRF-TOKEN, 세션 식별 트러블슈팅

다른 기기 로그인 시 세션 종료 모달이 조용히 안 뜨던 버그를 쫓다가, HttpOnly 세션 쿠키를 document.cookie로 읽으려던 게 원인임을 실측으로 확인했다.

Frontend

Next.js Middleware rewrite로 인증 서비스 OG 크롤링 정상화

인증이 걸린 Next.js 서비스에서 OG 크롤러가 로그인 페이지로 redirect돼 미리보기가 깨지는 문제를 Middleware의 rewrite로 풀었다.

Frontend

SSO·SLO 개념과 프론트엔드 경계 정리

로그인·로그아웃을 다루며 만난 SSO, SLO, IdP, SP 용어의 실제 담당 영역과, 프론트엔드가 제어할 수 있는 것과 없는 것을 구분했다.

Frontend

BFF vs 미들웨어, 쿠키 도메인과 401

같은 계정으로 로그인했는데 한 앱만 계속 401이 떴다. 범인은 내 서버가 요청 길목에 끼어 있느냐였다.

Frontend

ResizeObserver CSS 변수 직접 갱신 vs React state + rAF 선택 기준

레이아웃 측정값을 UI에 반영할 때 ResizeObserver로 CSS 변수를 직접 갱신할지, React state로 올릴지 그 기준을 정리했다.

TypeScript

TypeScript 메서드 bivariance와 배열 공변성 정리

메서드 문법과 함수 프로퍼티 문법의 매개변수 검사 차이, 메서드가 느슨하게 검사되는 이유, 배열 공변성이 만드는 런타임 구멍과 그 해결책을 정리했다.