최신 글

14페이지 중 8페이지
  1. 프론트엔드/크롬확장

    크롬 확장 다국어(i18n) 구현하기: 런타임 언어 전환까지

    크롬 확장에서 다국어를 지원하려면 Chrome i18n API만으로는 부족합니다. 런타임 언어 전환, 선언적 번역 적용, 여러 페이지 동기화까지 지원하는 커스텀 i18n 모듈을 구현했습니다.

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

    Chrome Storage로 실시간 상태 동기화 구현하기

    popup에서 잠금 해제했는데 options 페이지는 여전히 잠금 화면? chrome.storage.onChanged 이벤트로 여러 페이지 간 상태를 실시간 동기화하는 패턴을 정리했습니다.

    10분 읽기
  3. AI/Claude Code

    Claude Code iMessage 채널 연동: 터미널 없이 핸드폰으로 AI 코딩 어시스턴트 사용하기

    Claude Code에 iMessage 채널을 연동해서 터미널 없이 핸드폰으로 AI 코딩 어시스턴트를 사용하는 방법. 설정 과정에서 만나는 bun 미설치, FDA 권한 등 흔한 함정과 해결법을 정리했습니다.

    16분 읽기
  4. 인프라/네트워크

    Tailscale VPN 적용 후 GitHub Actions SSH 배포 복구하기

    Oracle Cloud 서버에 Tailscale SSH를 적용했더니 CI/CD 배포가 깨졌습니다. appleboy/ssh-action에서 tailscale ssh로 전환하여 SSH 키 없이 안전하게 배포하는 전체 과정을 공유합니다.

    13분 읽기
  5. 백엔드/API설계

    API 에러 처리 표준화: withErrorHandler 패턴으로 중앙집중화하기

    API 엔드포인트가 늘어나면서 에러 처리 코드가 중복되고 응답 형식도 제각각이었습니다. withErrorHandler 래퍼와 세분화된 에러 클래스로 문제를 해결한 경험을 공유합니다.

    11분 읽기
  6. 백엔드/API설계

    TypeScript Branded Types로 타입 안전성 높이기

    모든 ID가 string 타입이라 인자 순서를 바꿔도 컴파일 에러가 안 났습니다. Branded Types 패턴으로 런타임 오버헤드 없이 타입 안전성을 확보한 방법을 공유합니다.

    10분 읽기
  7. 인프라/Docker

    폐쇄망에서 pip install 사용하기: pypiserver + Docker로 PyPI 미러 서버 구축

    외부 인터넷이 차단된 폐쇄망 환경에서도 `pip install`로 Python 패키지를 설치할 수 있습니다. pypiserver + Docker를 활용한 PyPI 미러 서버 구축 방법을 단계별로 설명합니다.

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

    Promise.all vs Promise.allSettled: 부분 실패를 허용하는 벌크 처리

    100명에 대해 데이터를 생성하는데 1명이 실패하면 전체 99명도 실패로 처리되었습니다. Promise.allSettled로 부분 실패를 허용하는 벌크 처리를 구현한 방법을 공유합니다.

    9분 읽기
  9. AI/Claude Code

    Rust CLI 배포 자동화: Homebrew, Scoop, Shell Installer를 GitHub Actions로 한 번에 구축하기

    Rust CLI 도구를 태그 하나로 6개 플랫폼에 자동 배포하는 방법. Homebrew tap, Scoop bucket, Shell installer를 GitHub Actions로 구축한 실전 경험을 공유합니다.

    14분 읽기
  10. 백엔드/API설계

    API 에러 추적 개선하기: errorId 패턴으로 디버깅 시간 단축

    "서버 오류가 발생했습니다" 메시지만으로는 어떤 에러인지 특정할 수 없었습니다. errorId 패턴으로 디버깅 시간을 90% 단축한 방법을 공유합니다.

    8분 읽기