최신 글

14페이지 중 9페이지
  1. 백엔드/API설계

    JavaScript 타임존 함정 피하기: UTC vs Local 날짜 처리

    1월 31일을 선택했는데 1월 30일로 저장되는 버그를 발견했습니다. JavaScript Date 생성자의 타임존 해석 방식을 이해하고, 정오(12:00) 패턴으로 해결한 방법을 공유합니다.

    8분 읽기
  2. 백엔드/API설계

    Next.js API에 Rate Limiting 구현하기 (메모리 기반)

    API 보안을 위해 Rate Limiting이 필요했습니다. Redis 없이 메모리 기반으로 구현하고 HTTP 429 표준을 준수한 방법을 공유합니다.

    9분 읽기
  3. 도구/GitHub

    GitHub Issues 완전 가이드: Epic, Sub-Issues, Labels로 프로젝트를 체계적으로 관리하는 법

    GitHub Issues를 단순한 버그 트래커가 아닌, 프로젝트 전체 로드맵을 관리하는 도구로 활용하는 실전 가이드. 2025년 GA된 Sub-Issues를 포함해 Epic, Labels, Pin, Projects 통합까지 다룹니다.

    20분 읽기
  4. 백엔드/Prisma

    Prisma 일괄 업데이트에서 동시성 이슈 해결하기 ($transaction 활용)

    두 사용자가 동시에 일괄 상태 변경을 실행했을 때 데이터가 꼬이는 버그를 발견했습니다. Prisma $transaction으로 TOCTOU 취약점을 해결한 방법을 공유합니다.

    10분 읽기
  5. 백엔드/Prisma

    Prisma Extension으로 민감 데이터 암호화 자동화하기

    개인정보보호법 준수를 위해 DB 민감 데이터를 암호화해야 했습니다. Prisma Extension으로 투명한 암호화를 구현하고, Blind Index로 검색 문제까지 해결한 경험을 공유합니다.

    12분 읽기
  6. 프론트엔드/React

    Vitest와 MSW로 React Hook 테스트하기 (실전 가이드)

    Jest 테스트가 느려서 Vitest로 마이그레이션했습니다. MSW와 함께 Custom Hook을 테스트하는 실전 가이드를 공유합니다.

    9분 읽기
  7. 개발환경/Python

    pyenv rehash 락 파일 에러 해결: "couldn't acquire lock" 60초 멈춤 문제

    pyenv rehash가 "couldn't acquire lock" 에러와 함께 60초 동안 멈추는 문제의 원인은 스테일 락 파일입니다. 소스 코드의 noclobber 메커니즘을 분석하고, 해결 방법과 --no-rehash를 활용한 예방법을 정리했습니다.

    13분 읽기
  8. 프론트엔드/크롬확장

    크롬 확장 공유 모듈 설계: 중복 코드 470줄 제거기

    popup, options, manager, onboarding 4개 페이지에 복사된 동일한 코드를 발견했습니다. shared/ 폴더에 기능별 모듈로 추출하여 총 215줄을 줄이고, DOM 메서드로 XSS를 방지하는 아이콘 팩토리까지 구현한 과정을 공유합니다.

    16분 읽기
  9. 프론트엔드/크롬확장

    크롬 확장 프로젝트 구조 정리하기: popup, options 폴더 분리

    크롬 확장 루트 디렉토리에 뒤섞인 파일들을 기능별 폴더로 정리했습니다. manifest.json 경로 업데이트, git mv로 히스토리 보존, 트러블슈팅 팁까지 리팩토링 전 과정을 공유합니다.

    9분 읽기
  10. AI/Claude Code

    Astro Starlight + Vercel: 코드 없이 만드는 프로젝트 문서 사이트 실전 가이드

    오픈소스 프로젝트 문서 사이트를 Astro Starlight로 구축하고 Vercel에 배포한 실전 가이드. 코드라고 할 만한 것이 거의 없이, 마크다운과 설정 파일 3개만으로 전문적인 다국어 문서 사이트를 완성한 경험을 공유합니다.

    19분 읽기