authentication2026년 7월 29일·23분 읽기2026년 모던 인증: JWT, 세션, OAuth, 그리고 Passkey전체 인증 환경: 세션 vs JWT 선택, OAuth 2.0/OIDC 플로우, 리프레시 토큰 로테이션, Passkey(WebAuthn), 그리고 실제로 사용하는 Next.js 인증 패턴.securitynext.jsweb-developmentbackend더 읽기 2026년 모던 인증: JWT, 세션, OAuth, 그리고 Passkey
css2026년 7월 28일·20분 읽기2026년 모던 CSS: 스타일 작성 방식을 바꾼 기능들컨테이너 쿼리, CSS 레이어, :has(), color-mix(), 네스팅, 스크롤 기반 애니메이션, 앵커 포지셔닝. JavaScript 없이도 가능하게 만들어준 CSS 기능들.web-developmentfrontenddesign더 읽기 2026년 모던 CSS: 스타일 작성 방식을 바꾼 기능들
performance2026년 7월 17일·19분 읽기2026년 Core Web Vitals: 실제로 성능을 바꾸는 방법이론은 잊으세요. 실제 Next.js 프로덕션 사이트에서 LCP를 2.5초 이하로, CLS를 0으로, INP를 200ms 이하로 만들기 위해 제가 실제로 한 작업들입니다. 구체적인 기법들을 다룹니다.web-developmentnext.jsseo더 읽기 2026년 Core Web Vitals: 실제로 성능을 바꾸는 방법
web32026년 1월 20일·10분 읽기프로덕션에서의 온체인 데이터: 아무도 말해주지 않는 것들블록체인 데이터는 깨끗하지도, 신뢰할 수 있지도, 쉽지도 않습니다. RPC 속도 제한, 체인 재구성, BigInt 버그, 인덱싱 트레이드오프 — 실제 DeFi 제품을 출시하며 얻은 뼈아픈 교훈들.blockchaintypescriptdefiethereum더 읽기 프로덕션에서의 온체인 데이터: 아무도 말해주지 않는 것들
ethereum2026년 1월 13일·26분 읽기웹 개발자를 위한 Ethereum: 과대광고 없는 스마트 컨트랙트모든 웹 개발자가 알아야 할 Ethereum 개념: 계정, 트랜잭션, 스마트 컨트랙트, ABI 인코딩, ethers.js, WAGMI, 자체 노드 없이 온체인 데이터 읽기.web3blockchaintypescriptweb-development더 읽기 웹 개발자를 위한 Ethereum: 과대광고 없는 스마트 컨트랙트
tailwind2026년 1월 9일·16분 읽기Tailwind CSS v4: 실제로 무엇이 바뀌었고 마이그레이션해야 할까CSS 우선 설정, @layer 통합, 내장 컨테이너 쿼리, 새로운 엔진 성능, 브레이킹 체인지, v3에서 v4로의 솔직한 마이그레이션 경험.cssweb-developmentfrontend더 읽기 Tailwind CSS v4: 실제로 무엇이 바뀌었고 마이그레이션해야 할까
bun2026년 1월 2일·21분 읽기프로덕션에서의 Bun: 무엇이 되고, 안 되고, 놀라웠는지런타임, 패키지 매니저, 번들러, 테스트 러너로서의 Bun. 실제 벤치마크, Node.js 호환성 격차, 마이그레이션 패턴, 그리고 현재 프로덕션에서 Bun을 사용하는 곳.node.jsjavascriptruntimeperformance더 읽기 프로덕션에서의 Bun: 무엇이 되고, 안 되고, 놀라웠는지
edge2025년 12월 18일·14분 읽기Edge Functions: 무엇인지, 언제 사용하고, 언제 사용하지 말아야 하는지Edge 런타임, V8 Isolate, 콜드 스타트의 진실, 지역 기반 라우팅, A/B 테스팅, Edge 인증, 그리고 일부를 다시 Node.js로 옮긴 이유. Edge 컴퓨팅에 대한 균형 잡힌 시각.next.jsperformancearchitectureweb-development더 읽기 Edge Functions: 무엇인지, 언제 사용하고, 언제 사용하지 말아야 하는지
node.js2025년 12월 8일·16분 읽기Node.js 옵저버빌리티: 복잡함 없는 로그, 메트릭, 트레이스Pino로 구조화된 로깅, Prometheus로 메트릭, OpenTelemetry로 분산 트레이싱. 제로부터 완전한 가시성까지, Node.js 프로덕션 앱을 위한 옵저버빌리티 스택.observabilitydevopsmonitoringbackend더 읽기 Node.js 옵저버빌리티: 복잡함 없는 로그, 메트릭, 트레이스
turborepo2025년 11월 27일·30분 읽기Turborepo 모노레포: 실제로 확장 가능한 설정패키지를 공유하는 여러 앱을 위한 Turborepo 모노레포 구조. 워크스페이스 설정, 파이프라인 캐싱, 공유 TypeScript 설정, 그리고 첫 달에 했던 실수들.monorepotypescriptarchitecturedeveloper-tools더 읽기 Turborepo 모노레포: 실제로 확장 가능한 설정
trpc2025년 11월 26일·21분 읽기tRPC: 번거로움 없는 엔드투엔드 타입 안전성tRPC가 API 계약 문제를 어떻게 해결하는지, Next.js App Router와의 연동, 인증 미들웨어, 파일 업로드, 서브스크립션 처리. 처음부터 구축하는 실전 tRPC 설정.typescriptnext.jsapifullstack더 읽기 tRPC: 번거로움 없는 엔드투엔드 타입 안전성
testing2025년 11월 24일·26분 읽기Vitest 테스팅 가이드: 제로에서 프로덕션 확신까지유닛 테스트, 통합 테스트, Testing Library를 활용한 컴포넌트 테스트, 모킹 전략, 커버리지 설정, 그리고 실제로 더 나은 소프트웨어를 만드는 테스팅 철학.vitesttypescriptreactweb-development더 읽기 Vitest 테스팅 가이드: 제로에서 프로덕션 확신까지
security2025년 11월 18일·26분 읽기API 보안 모범 사례: 모든 프로젝트에서 실행하는 체크리스트인증, 인가, 입력 유효성 검사, 레이트 리미팅, CORS, 시크릿 관리, OWASP API Top 10. 모든 프로덕션 배포 전에 확인하는 항목들.apibackendnode.jsweb-development더 읽기 API 보안 모범 사례: 모든 프로젝트에서 실행하는 체크리스트
devops2025년 11월 14일·10분 읽기진짜 작동하는 VPS 설정: Node.js, PM2, Nginx, 그리고 무중단 배포제가 프로덕션에서 사용하는 정확한 VPS 배포 설정 — Ubuntu 보안 강화, PM2 클러스터 모드, Nginx 리버스 프록시, SSL, 그리고 한 번도 실패하지 않은 배포 스크립트. 이론 없이, 작동하는 것만.vpsnginxpm2deploymentinfrastructure더 읽기 진짜 작동하는 VPS 설정: Node.js, PM2, Nginx, 그리고 무중단 배포
github-actions2025년 11월 12일·26분 읽기GitHub Actions CI/CD: 실제로 작동하는 무중단 배포완전한 GitHub Actions 설정: 병렬 테스트 작업, Docker 빌드 캐싱, VPS SSH 배포, PM2 reload 무중단 배포, 시크릿 관리, 검증된 워크플로우 패턴.cicddevopsdeploymentinfrastructure더 읽기 GitHub Actions CI/CD: 실제로 작동하는 무중단 배포
docker2025년 11월 10일·24분 읽기Node.js를 위한 Docker: 아무도 말해주지 않는 프로덕션 설정멀티 스테이지 빌드, 비루트 사용자, 헬스 체크, 시크릿 관리, 이미지 크기 최적화. 모든 Node.js 프로덕션 배포에서 사용하는 Docker 패턴들.node.jsdevopsdeploymentinfrastructure더 읽기 Node.js를 위한 Docker: 아무도 말해주지 않는 프로덕션 설정
postgresql2025년 11월 6일·17분 읽기PostgreSQL 쿼리 최적화: 느린 쿼리에서 밀리초 미만까지프로덕션 데이터베이스에서 사용하는 PostgreSQL 최적화 기법. EXPLAIN ANALYZE, 인덱스 전략, 쿼리 리라이트, 그리고 쿼리 시간을 초 단위에서 마이크로초 단위로 줄인 정확한 변경 사항들.databaseperformancebackend더 읽기 PostgreSQL 쿼리 최적화: 느린 쿼리에서 밀리초 미만까지
database2025년 11월 4일·27분 읽기데이터베이스 스키마 설계: 시간이 지나도 견디는 패턴들정규화 규칙, 명명 규칙, 소프트 삭제, 감사 추적, 멀티테넌시 패턴, 버전 관리 전략, 그리고 후회한 스키마 결정들. PostgreSQL 중심.postgresqlarchitecturebackendsql더 읽기 데이터베이스 스키마 설계: 시간이 지나도 견디는 패턴들
redis2025년 11월 4일·28분 읽기프로덕션에서 실제로 동작하는 Redis 캐싱 전략Cache-aside, write-through, 캐시 스탬피드 방지, TTL 전략, 무효화 패턴. 실제 코드 예제와 함께 프로덕션 Node.js 앱에서 사용해 온 Redis 패턴들.cachingbackendnode.jsperformance더 읽기 프로덕션에서 실제로 동작하는 Redis 캐싱 전략
git2025년 11월 4일·17분 읽기Git 기본을 넘어서: 매주 시간을 절약하는 워크플로우인터랙티브 리베이스, 체리픽, bisect, worktree, reflog 복구, 그리고 실제로 작동하는 브랜칭 전략. 대부분의 개발자가 모르는 매일 사용하는 Git 명령어들.devopsworkflowdeveloper-tools더 읽기 Git 기본을 넘어서: 매주 시간을 절약하는 워크플로우
next.js2025년 11월 3일·9분 읽기대규모 Next.js 프로젝트 구조화: 뼈아프게 배운 것들자체 무게에 무너지지 않는 Next.js 코드베이스 정리법에 대해 힘들게 얻은 교훈들. 기능 기반 아키텍처, 라우트 그룹, 서버/클라이언트 경계, 배럴 파일 함정, 그리고 바로 가져다 쓸 수 있는 실제 폴더 구조.typescriptarchitectureweb-development더 읽기 대규모 Next.js 프로젝트 구조화: 뼈아프게 배운 것들
typescript2025년 11월 3일·17분 읽기TypeScript 고급 타입: 조건부 타입, 매핑된 타입, 템플릿 리터럴 타입의 마법TypeScript의 가장 강력한 타입 기능을 심층 분석합니다. 조건부 타입, 매핑된 타입, infer 키워드, 템플릿 리터럴 타입까지. 실무에서 실제로 사용하는 패턴들을 다룹니다.web-developmentjavascript더 읽기 TypeScript 고급 타입: 조건부 타입, 매핑된 타입, 템플릿 리터럴 타입의 마법
general2025년 11월 3일·1분 읽기Hello World: 이 블로그를 시작한 이유이 블로그의 탄생 배경: 왜 글을 쓰기로 했는지, 어떤 주제를 다룰 건지, 그리고 이 사이트를 처음부터 어떻게 만들었는지에 대한 이야기.web-development더 읽기 Hello World: 이 블로그를 시작한 이유
react2025년 11월 3일·26분 읽기React Server Components: 멘탈 모델, 패턴, 그리고 함정들제가 처음 시작할 때 있었으면 했던 React Server Components 실전 가이드. 멘탈 모델, 실제 패턴, 경계 문제, 그리고 여러분이 겪지 않도록 제가 먼저 저지른 실수들을 다룹니다.next.jsweb-developmentarchitecture더 읽기 React Server Components: 멘탈 모델, 패턴, 그리고 함정들