Next.js 15에서 fetch 기본 캐시가 no-store로 바뀌면서 생기는 성능 문제와 해결법
Docker Compose로 Nginx 컨테이너를 띄워서 정적 HTML/CSS/JS 사이트를 서빙하는 가장 간단한 방법.
Claude Code로 반나절 만에 학원 일정 관리 앱을 만들었다. 근데 양대 스토어 등록에는 3일이 걸렸다.
Cookie 기반 인증으로 마이그레이션하면서 기존 localStorage 사용자도 호환되게 처리하는 패턴.
pnpm workspace로 프론트엔드, 인프라, 모바일 프로젝트를 하나의 레포에서 관리하는 모노레포 구성법.
Next.js rewrites 기능으로 여러 백엔드 서비스를 하나의 도메인 뒤에 숨기는 API 프록시 설정법.
useRef의 제네릭 타입에 null을 넣느냐 안 넣느냐에 따라 완전히 다른 타입이 된다
정확한 토크나이저 없이 LLM API 비용을 추정하는 간단한 토큰 수 추정 알고리즘. 한국어는 영어보다 토큰을 더 많이 소비한다.
API 호출할 때마다 as로 타입 단언하고 있었다면, 제네릭으로 한 번에 정리하는 방법.
TypeScript 타입은 런타임에서 사라진다. Zod로 API 응답을 런타임에서도 검증하는 법
requestAnimationFrame을 사용해 웹 앱의 실시간 FPS를 측정하고 성능 저하를 감지하는 방법.
as 대신 satisfies를 쓰면 타입 안전성과 추론을 동시에 잡을 수 있다
useEffect가 멈추지 않고 계속 실행되는 원인 3가지와 각각의 해결법.
영어 포스트 URL이 /slug-en/ 이렇게 생긴 게 거슬려서 /en/slug/ 으로 바꿨다. 140개 파일 수정. 그리고 페이지네이션도 갈아엎었다.
1M context가 좋긴 좋은데... $50 무료 크레딧이 3시간 만에 사라졌다. 끝으로 갈수록 쿼리 하나에 $2~3씩 빠지는 현실.
Claude Code에 1M context 모델이 추가됐다. Compacting 눈치 보면서 쓰던 답답함이 싹 사라졌다.
AI로 딸깍이면 다 되는 시대에, 개발자는 뭘 만들어야 할까. 문서 편집 하나 못 하는 AI를 보면서 찾은 답.
브라우저 콘솔에 CORS 에러가 뜨면 당황하지 말고 이 글을 보면 된다.
push하면 자동으로 Docker 이미지 빌드하고 ECR에 올리는 워크플로우 설정법.
FastAPI에서 SQLAlchemy 비동기 세션을 설정하고 의존성 주입으로 사용하는 패턴.
CDK가 생성한 Lambda 함수명을 자동으로 찾아서 코드를 배포하는 쉘 스크립트 패턴.
OpenClaw에 영감 받아서, 한국 환경에 최적화된 AI 에이전트 OKAIBOX를 만들기 시작했다. 하드웨어부터 다르다.
어제 AI랑 대화하다가 하드웨어 케이스 3D 도면을 부탁했는데, 5분도 안 돼서 완성된 모델이 나왔다. 이건 좀 충격이었다.
S3 presigned URL과 DynamoDB TTL을 조합해서 만료 시간과 다운로드 횟수를 제한하는 일회용 다운로드 링크 구현.
AI 시장은 너무 빨리 변한다. 연간 구독권을 질러놨더니 몇 달 만에 더 좋은 게 나와서 돈만 날렸다. 이건 내 경험담이다.
DynamoDB의 ConditionExpression을 활용해 동시 요청 시 데이터 충돌(race condition)을 방지하는 방법.
AWS CDK로 SES 이메일 전송 Lambda를 구성하는 코드. API Gateway + Lambda + SES 조합.
터미널 기반 AI 코딩 도구 Opencode를 써봤다. 좋긴 한데... 이미 쓰고 있는 Claude Code가 대부분의 기능을 갖추고 있었다.
AI가 코딩도 해주고 디자인도 해주는 시대. 그러면 개발자는 뭘 만들어야 하나. 고민 끝에 내린 결론은 결국 '데이터'였다.
Vite 모노레포에서 상위 디렉토리 파일 접근이 차단되는 문제를 server.fs.allow로 해결하는 방법.
ES Modules에서 __dirname과 __filename을 사용하는 방법. import.meta.url과 fileURLToPath 조합.
Redis key를 체계적으로 관리하는 네이밍 컨벤션과 TypeScript 헬퍼 함수 패턴.
Electron에서 contextIsolation과 preload 스크립트로 렌더러 프로세스의 Node.js 접근을 안전하게 제한하는 방법.
Node.js에서 --expose-gc 플래그로 수동 GC를 트리거하고 메모리 누수를 찾는 방법.
S3에서 설정 파일을 fetch할 때 브라우저/CDN 캐시 때문에 업데이트가 반영 안 되는 문제를 해결하는 3가지 방법.
Prisma schema에서 단일 인덱스, 복합 인덱스, 정렬 방향 인덱스를 설정해서 쿼리 성능을 올리는 방법.
Next.js App Router에서 시스템 상태를 확인하는 Health Check API 엔드포인트를 만드는 방법.
Node.js net 모듈로 TCP 포트가 열려있는지 확인하는 비동기 포트 스캐너를 만드는 방법.
Node.js os.networkInterfaces()로 플랫폼별 로컬 IP를 정확하게 가져오는 방법. VMware, VirtualBox 가상 인터페이스 제외 포함.
JWT를 localStorage 대신 HttpOnly 쿠키에 저장해서 XSS 공격으로부터 토큰을 보호하는 Next.js 패턴.
Docker Compose에서 Redis가 완전히 준비된 후에 앱을 시작하도록 healthcheck와 depends_on을 설정하는 방법.
라즈베리 파이로 매장용 키오스크를 만들었다. 웹 개발자한테 하드웨어는 새로운 세계인데, 예상 못한 삽질도 많았다.
매번 Authorization 헤더를 수동으로 넣는 대신, fetch 래퍼 함수로 Bearer Token을 자동 주입하는 패턴.
람다 함수별로 레파지토리 만들던 과거를 벗어나 CDK + Lambda + Cursor로 혼자서도 전체 프로젝트 개발이 가능해진 경험담
Firebase에 네이버/카카오 OIDC 프로바이더 추가하려다가 밤샜던 이야기
JavaScript 내장 Intl.NumberFormat으로 통화, 천단위 구분, 퍼센트 포맷팅을 라이브러리 없이 처리하는 방법.
비회원도 회원도 자연스럽게! Firebase Anonymous Auth부터 Account Linking까지 실제 구현 과정의 시행착오와 해결책
Claude Desktop MCP로 블로그 생성부터 다국어 지원까지 - 5편으로 완성하는 AI 기반 기술 블로그 구축 완전 가이드
Jekyll 다국어 시스템부터 시리즈 전체 회고까지, MCP로 완성하는 글로벌 기술 블로그의 최종 단계
CSS 변수부터 utterances 동기화까지 MCP로 완전한 테마 전환 시스템을 자동 구축하는 포괄적 가이드
GitHub Issues 설정부터 Jekyll 통합까지 MCP 한 번의 명령으로 완전한 댓글 시스템 구축
아이디어만 제시하면 MCP가 SEO 메타데이터부터 이미지까지 완전한 기술 포스팅을 자동 생성하는 혁신적 워크플로우
RAG는 벡터DB만이 아닙니다. VectorDB + RDS + RawData + LocalFile + API를 모두 연결하는 지능형 플랫폼의 진정한 의미를 제조업 MES 시스템 예시로 완전 해부합니다.
며칠간 깃헙 페이지 블로그를 AI로 만들면서 깨달은 현실적인 이야기. AI 개발의 명과 암
복사/붙여넣기 없이 MCP 서버로 로컬 파일시스템에 완전한 Jekyll 블로그를 직접 생성하는 혁신적 방법
블로그 포스팅 시 필요한 이미지를 AI로 자동 생성하는 완전한 워크플로우 구축기. Python 패키지 개발부터 MCP 서버 통합까지
Google Vertex AI의 Imagen 이미지 생성 API를 더 쉽게 사용할 수 있는 Python 패키지를 소개합니다. 복잡한 설정 없이 간단한 코드로 AI 이미지 생성을 시작하세요.
이미 설치된 filesystem, desktop-commander MCP를 활용해 새로운 MCP를 Claude가 직접 자동 설치하는 실전 방법을 알아보세요.
수년간 미뤄왔던 기술 블로그를 Claude Desktop + MCP 서버와 함께 하루 만에 완성했습니다. MD 포맷의 번거로움, 설정의 복잡함, 유지보수의 부담... 모든 걸림돌이 AI 페어 프로그래밍으로 해결...
GitHub Pages와 Jekyll을 사용해서 나만의 기술 블로그를 만드는 방법을 단계별로 알아보겠습니다.
PM2 cluster mode 설정으로 멀티코어를 활용해 Next.js 앱의 처리량을 높이는 방법.
Python에서 timestamp 값을 얻고 변환하는 방법부터 실제 프로젝트 활용까지. 바로 사용 가능한 코드 예시와 함께 설명합니다.
Node.js에서 Redis 연결을 싱글톤으로 관리하고, 지수 백오프로 자동 재연결하는 패턴.
20년간 코드를 한 줄 한 줄 직접 쳤는데, 이제 AI한테 말로 시키니까 웹사이트가 나온다. 감회가 새롭다.
Docker Compose에서 YAML 앵커(&)와 병합(<<)을 사용해 서비스 설정 중복을 제거하는 방법.
AI한테 코딩 시키면 대충 나오고, 잘 시키면 잘 나온다. 1년간 AI 코딩 도구를 쓰면서 배운 실전 팁을 정리했다.
Cursor AI 에이전트를 한 달 동안 실무에 써봤다. 생산성은 확실히 올랐는데, 맹신하면 큰코다친다.
Docker 멀티스테이지 빌드로 Next.js 이미지를 1GB에서 200MB 이하로 줄이는 실전 Dockerfile.
로컬에서 LLM을 돌려보고 싶어서 Ollama를 설치했다. 생각보다 쉽게 돌아가긴 하는데, 클라우드 API와 비교하면 한계가 명확하다.
로그인 없이 접근 가능한 API를 안전하게 보호하는 방법. CORS만으로는 부족하고, 그렇다고 인증을 강제할 수도 없는 상황에서의 현실적인 대책.
Next.js 개발 모드에서 Prisma 클라이언트 연결이 계속 쌓이는 문제를 싱글톤 패턴으로 해결하는 방법.
JavaScript에서 UTC와 한국시간(KST) 사이를 변환하는 실무 코드. toLocaleString 없이 직접 변환하는 방법.
AI 서비스를 만들다 보면 벡터 데이터베이스가 필요하다는 얘기를 많이 듣는다. 근데 진짜 필요한 건지, 기존 DB로도 되는 건지 고민해봤다.
요즘 화두인 생성형 AI 기술을 활용해서 그누보드 전용 질문 답변 사이트를 만들면 어떨까? 비용과 수익에 대한 고민과 함께 아이디어를 정리해본다.
Vue.js 배운 지 얼마 안 됐는데 또 새 프레임워크가 눈에 들어온다. SvelteKit이 가상 DOM 없이 빠르다는데, 한번 해보기로 했다.
SSH 키 생성부터 활용까지! ssh-keygen 명령어로 안전한 서버 접속 환경을 구축하는 완벽 가이드
기존 온프레미스 서버의 복잡성을 해결하고 AWS 서버리스 아키텍처로 네이버 블로그 자동 포스팅 시스템을 구축하는 완전한 가이드
Thingplug 2.0 플랫폼 기반 IoT 보안 시스템 설계 - AWS Serverless와 CoreCrypto를 활용한 하이브리드 아키텍처 구현
마이크로서비스 아키텍처 설계에 ChatGPT를 활용해봤다. 만능은 아니지만 러버덕 디버깅 상대로는 최고다.
htop을 활용한 리눅스 시스템 리소스 실시간 모니터링 완전 가이드. CPU, 메모리, 프로세스 상태를 효율적으로 분석하는 방법
AWS EC2로 원격 데스크탑을 구축하여 월 5만원으로 10만원 PC 대체하기! 실제 비용 분석과 구축 가이드
네이버 블로그, 티스토리, 워드프레스, GitHub Pages... 블로그 플랫폼을 전전하다가 드디어 정착했다. 개발자의 블로그 유목 생활 종결기.
디렉토리는 무시하되 특정 파일만 포함시키는 .gitignore 설정 방법. ** 패턴 활용으로 즉시 해결 가능
Bitbucket Private Repository에 SSH Key를 사용하여 비밀번호 없이 안전하게 push하는 완전한 설정 가이드
Ubuntu 18.04LTS에서 LEMP 스택을 빠르게 설치하는 완벽 가이드. 원클릭 스크립트와 멀티사이트 호스팅 설정까지 한번에 해결하세요.
MariaDB 외부 접속을 위한 bind-address 설정 변경과 사용자 권한 설정 방법을 단계별로 설명합니다.
nginx에서 limit_rate와 limit_rate_after 지시어를 사용하여 대역폭을 효과적으로 제한하는 방법과 실제 테스트 가이드
GitKraken에서 조직 계정의 private 레파지토리가 안 보이는 문제를 OAuth 권한 설정으로 해결하는 방법
CSS만으로 포토샵 블랜딩 효과를 구현하는 방법. background-blend-mode와 mix-blend-mode의 실무 활용법과 반응형 레이아웃 적용 예시까지.
그누보드 bbs 폴더 수정 없이 코드 삽입하는 훅 기능 사용법과 모든 이벤트 종류를 정리했습니다. extend 폴더 활용부터 실제 구현까지
JavaScript에서 숫자 앞에 0을 붙이는 모든 방법! padStart() 메서드부터 커스텀 함수까지 바로 사용 가능한 코드와 실무 예시를 제공합니다.
GUI 툴 없이 콘솔에서 MySQL/MariaDB 데이터베이스를 백업하고 복구하는 방법. 호스팅 환경에서 바로 사용 가능한 명령어 모음집
크롬 자동완성 중복 입력 버그를 실험실 기능 리셋과 한글 입력기 재설정으로 완전히 해결하는 방법
AJAX 통신 시 beforeSend와 setRequestHeader를 사용하여 HTTP 헤더에 인증 토큰을 추가하는 핵심 방법과 실제 활용 예시를 알아봅니다.
100% 무료 웹사이트 스트리밍 서비스를 위한 확장 가능한 애드온 아키텍처 설계. 마이크로서비스와 플러그인 패턴으로 무한 확장하기
아파치 웹서버에서 .html 확장자 파일에서도 PHP 코드를 실행할 수 있도록 설정하는 방법을 단계별로 알아봅니다.
Amazon Cognito를 JavaScript로 연동할 때 가장 흔하게 발생하는 '클라이언트 보안키' 관련 오류와 해결 방법을 알아봅니다.
리눅스에서 가장 많이 사용되는 tar 명령어의 옵션들과 실제 사용 예시를 정리했습니다. 압축과 해제, 다양한 옵션까지 한 번에 마스터하세요.
아파치 서버 이전 후 발생하는 한글 깨짐 현상의 원인과 charset 설정을 통한 해결 방법을 알아봅니다.
예전에 Lightsail 잠깐 쓰다가 별로라서 접었는데, 최근에 다시 들어가보니 완전히 다른 서비스가 되어 있었다. 가격도 저렴하고 기능도 충분하다.
예전엔 개발자 게시판이 활발했는데 요즘은 다 조용하다. 커뮤니티가 죽은 건지, 형태가 바뀐 건지 생각해봤다.
10년 넘게 jQuery로 버텨온 개발자가 Vue.js 공부를 시작했다. 반응형 데이터 바인딩이란 게 이렇게 편한 거였다니.
경쟁 PT에서 사이트 리뉴얼 프로젝트를 따냈다. 기획서 쓰는 게 코딩보다 어렵다는 걸 다시 한번 느꼈다.
API Gateway에서 dev, staging, prod 스테이지별로 다른 Lambda 함수를 호출하고 싶었다. 공식 문서만 보고는 도저히 안 돼서 한참 삽질했다.
AWS에 빠져서 공부하다가 자격증까지 땄다. 시험 준비 과정과 합격 후 느낀 점을 정리했다.
IDC에 서버 넣어두고 10년 넘게 버텨온 개발자가 AWS에 입문했다. 늦었다고 생각했는데, 늦은 만큼 감동이 크다.
부모님 세대는 집 한 채가 노후대비의 전부다. 연금? 투자? 그런 거 없다. 개발자인 나도 남의 말 할 처지가 아니긴 한데...
auto_increment PK를 URL에 그대로 쓰면 보안 리포트에서 매번 지적당한다. 그렇다고 PK를 전부 UUID로 바꾸기엔 비효율적이고. 현실적인 타협안을 정리했다.
새 프로젝트는 클라우드, 기존 건 IDC 그대로. 매번 이전해야지 하면서 응급처치만 하고 미루는 중이다.
개발이 싫어진 건 아닌데 손이 안 움직인다. 머리속엔 설계가 다 되어 있는데 실행이 안 된다. 이거 혹시 나만 그런 건가?
2년 전부터 모든 프로젝트를 Docker 기반으로 바꿨다. 진입장벽 낮고 배포 편하고... 근데 진짜 장점만 있을까?