401 vs 403 차이 — 인증과 인가를 구분하는 기준
401 이름이 Unauthorized인데 인증 실패고, 403 이름이 Forbidden인데 인가 실패다. 헷갈리는 이름의 역설과 실무 판단 기준, JWT 만료를 401로 처리해야 하는 이유, 보안 목적으로 404를 쓰는 패턴까지 Express 코드로 정리했다.
401 이름이 Unauthorized인데 인증 실패고, 403 이름이 Forbidden인데 인가 실패다. 헷갈리는 이름의 역설과 실무 판단 기준, JWT 만료를 401로 처리해야 하는 이유, 보안 목적으로 404를 쓰는 패턴까지 Express 코드로 정리했다.
DELETE /deleteUser/123 같은 URL을 짠 적 있다면 이 글이 필요하다. URL 명사 규칙, HTTP 메서드 구분, 상태 코드 정확하게 쓰기, 응답 포맷 일관성, 에러 응답 구조, 버저닝까지. 잘못된 예와 올바른 예 코드로 한 번에 정리했다.
HTTPS 없이 배포하면 Geolocation, Service Worker, Secure 쿠키가 조용히 동작을 멈춘다. 보안 이전에 기능 문제다. Let’s Encrypt 무료 인증서 설정, HSTS, Cloudflare 주의 사항까지 실무 기준으로 정리했다.
TypeScript type vs interface`의 차이는 세 가지 상황에서 갈린다. Declaration merging, Discriminated Union, 유니온 타입 지원 여부를 코드로 비교하고 실무에서 뭘 선택할지 기준을 정리했다.
Cannot read properties of undefined는 JavaScript에서 가장 자주 뜨는 TypeError다. 미초기화 변수, 잘못된 객체 경로, React API 타이밍 세 가지 케이스별 원인과 옵셔널 체이닝 실전 패턴을 코드로 정리했다.
XSS 방어를 코드로 정리했다. innerHTML 대신 textContent 쓰는 이유, React에서 DOMPurify 사용법, Express HttpOnly 쿠키 설정, CSP 헤더 설정까지. 개념 말고 바로 적용할 수 있는 6가지 체크리스트.
CORS 에러가 뜨는 이유와 환경별 해결법을 코드와 함께 정리했다. Express cors 패키지 설정, React·Vite 개발 환경 프록시, Preflight OPTIONS 처리, credentials 주의 사항까지. Postman은 되는데 브라우저만 막힐 때 바로 적용하자.
모놀리식 vs 마이크로서비스 선택은 기술이 아니라 팀 규모의 문제다. 개발자 10명 이하라면 MSA는 오버 엔지니어링이다. CNCF 조사에서 42%가 되돌아간 이유, 모듈러 모놀리스 옵션, 전환 시점 판단 기준까지 실무 관점에서 명확하게 한 번에 정리한다.
npm start 시 port already in use 에러가 뜨면 포트를 점유한 프로세스를 찾아서 죽이면 된다. macOS는 lsof, Windows는 netstat 명령어로 해결. Docker, PM2, nodemon 환경 포함. 재발 방지 팁까지 정리했다.
async/await에서 자주 발생하는 실수 5가지를 코드 예시와 함께 설명합니다. await 누락, 에러 처리, Promise.all 활용법까지 실전 가이드.