전체 글
글 49개를 최신순으로 모았어요. 블로그로 돌아가기
2026
- 웹 보안 기본 3대 공격: SQL Injection, XSS, CSRF 원리와 방어법
- API 에러 응답 형식 설계하기: 제각각인 에러 응답을 RFC 9457 Problem Details로 통일하는 법
- CORS 에러 완전 정리: 왜 막히는지부터 preflight, credentials까지 올바르게 해결하기
- CSS :has() 선택자 실전 가이드: 자바스크립트 없이 부모를 선택하는 법
- 자바스크립트 없이 HTML만으로 되는 것들: 아직도 div로 다 만들고 있다면
- HTTP 캐시 제대로 쓰기: Cache-Control, ETag, no-cache와 no-store의 차이
- HTTP 상태 코드 올바르게 쓰기: 400 vs 422, 401 vs 403, 200 vs 201 vs 204 헷갈릴 때 보는 정리
- 자바스크립트 비동기 에러 올바르게 처리하기: try/catch가 못 잡는 경우부터 Promise.all vs allSettled까지
- 자바스크립트 이벤트 루프 완전 정복: 마이크로태스크와 매크로태스크의 실행 순서
- 자바스크립트 고차 함수 완전 정복: map, filter, reduce부터 직접 만드는 once, memoize까지
- 자바스크립트 ?? vs || 완벽 정리: null, undefined, 0, 빈 문자열을 올바르게 처리하는 법
- JWT vs 세션 인증 비교: 무엇을 써야 할까? 저장 위치, 로그아웃, 보안까지 정리
- 글 주소 프리픽스를 통째로 바꿔야 할 때: Nitro wildcard 리다이렉트로 안전하게 옮기기
- Node.js 서버 안전하게 종료하기 (Graceful Shutdown): 배포할 때마다 요청이 끊기는 이유
- 의미 있는 HTML 쓰기: 대부분이 하는 시맨틱 HTML 실수 7가지
- 배포만 하면 블로그 글이 하나도 안 보이던 버그: Nuxt Content와 Vercel의 /tmp 문제
- DIKW 피라미드 정리: 데이터가 지혜가 되기까지
- 애드센스 ads.txt 경고를 받고 파헤치다가 찾은 진짜 색인 버그
2025
- MinIO 완벽 가이드: 설치부터 Node.js 연동까지
- 라즈베리파이4에 저장장치 마운트 시키기
- 복잡한 CSV 데이터를 안전하게 파싱하는 방법
- Nuxt 설정 runtimeConfig vs app.config 완전 정복
- Vue Query에서 데이터가 안 보이는 이유? Nuxt 3와 Ref 구조의 함정
- 선언적 프로그래밍 vs 절차형 프로그래밍
- TanStack Query란 무엇인가?
- 리엑티 컴포넌트를 패키지 빌드 시 CSS 같이 적용시키기
- 로그인
- Nuxt3 다크모드 적용하기
- nuxt3 Pinia 적용하기
- 미치광이 카드 컴포넌트
- debounce와 throttle이란??
- Let's Encrypt를 이용해서 HTTPS 적용하기
- 로컬에서 커밋 시 도커 빌드 후 컨테이너 시작하기
- 프로세스 매니저 PM2
- JavaScript 데이터01
- JavaScript 데이터02
- Nuxt 프로젝트에 유닛 테스트 코드 추가하기
- 마크다운 문법
- 깃허브 액션으로 커밋 로그를 블로그에 띄우기: Nuxt와 Vercel 활용법
- 리엑트 상태관리 useContext()
- Node.js 간단한 서버 만들기
- React createPortal 완벽 가이드
- CSS Flexbox 완전 정복 가이드
- HTML이란 무엇인가
- Vue의 <component :is /> 완벽 정리: 동적 렌더링의 모든 것
- useAsyncData 캐싱 문제와 Key 동적 설정으로 해결하기
- Nuxt 3에서 Vercel 배포 시 발생한 md 파일 로딩 문제 해결기
- Routing
- Design-Guide