The conversations drifting from the meeting room next door have changed. AI isn't a novelty anymore — it's just how p...
How to stash only specific files using git stash push instead of stashing everything at once.
How to combine TypeScript utility types to create clean API request/response types without duplicating interfaces.
How to use TypeScript's infer keyword to extract types from generics cleanly.
Use React 19's useOptimistic hook to update the UI before the server responds.
Use @container instead of media queries to make components responsive based on their parent size
Use as const to create type-safe constants without enums and prevent type widening
When calling multiple APIs concurrently, one failure shouldn't take down everything
crypto.randomUUID() is built-in — no need for the uuid package anymore
A practical comparison of TypeScript Enum and Union Type to help you choose the right one.
Next.js 15 changed fetch default caching to no-store. Here's how to fix the performance hit.
The simplest way to serve a static HTML/CSS/JS site using Nginx in a Docker container with Docker Compose.
Built an academy schedule management app in half a day with Claude Code. But getting it on both app stores took 3 days.
Migrate from localStorage to cookie-based auth while keeping backward compatibility for existing sessions.
Configure a monorepo with pnpm workspace to manage frontend, infra, and mobile projects in a single repository.
Use Next.js rewrites to proxy multiple backend microservices behind a single domain — no CORS headaches.
Whether you include null in the useRef generic changes the entire type. Here's how to get it right
A simple token estimation algorithm without a full tokenizer. Korean text consumes more tokens than English.
Stop using 'as' type assertions on every API call. Use generics to make your fetch wrapper truly type-safe.
TypeScript types vanish at runtime. Use Zod to validate API responses and external data at runtime
Measure real-time FPS in web apps using requestAnimationFrame and detect performance degradation.
Use satisfies instead of as to get both type validation and narrow type inference
Three common causes of useEffect running endlessly and the fix for each one.
The -en suffix on English post URLs was bugging me, so I restructured everything to /en/slug/. 140 files changed. The...
The 1M context model is great, but... my $50 free credit disappeared in just 3 hours. The cost per query grows expone...
Claude Code now offers 1M context models. The frustration of constantly watching for compacting messages is finally g...
In an age where AI can build almost anything with a click, what should developers actually work on? A document editin...
When a CORS error shows up in your browser console, here's everything you need to fix it.
Set up a GitHub Actions workflow that automatically builds Docker images and pushes them to ECR on every push.
Set up async SQLAlchemy sessions in FastAPI with dependency injection for non-blocking database access.
Shell script pattern to automatically find CDK-generated Lambda function names and deploy code.
Inspired by OpenClaw, I started building OKAIBOX - an AI agent optimized for the Korean environment. It starts with t...
Stop using JSON.parse(JSON.stringify()). structuredClone is the native deep copy solution.
Use the CSS :has() selector to style parent elements based on their children — no JavaScript needed.
Understanding the difference between Docker volumes and bind mounts, and when to use each.
I was chatting with AI and asked for a 3D hardware case design. A complete model appeared in under 5 minutes. That wa...
Use Python 3.10's structural pattern matching to replace messy if-elif chains.
Combine S3 presigned URLs with DynamoDB TTL to create download links with expiration and download count limits.
How to use the Temporal API to replace JavaScript's broken Date object with immutable, timezone-aware date handling
Keep input responsive while deferring expensive list rendering — no debounce needed
The AI market moves too fast. I paid for annual subscriptions and within months, better alternatives appeared. Here's...
Use CSS @layer to take explicit control over cascade priority and end specificity wars.
Stop writing reduce boilerplate for grouping arrays. Object.groupBy does it in one line.
A clean pattern for adding timeouts to fetch requests using AbortController in Node.js.
Prevent race conditions in DynamoDB using ConditionExpression for atomic conditional updates.
How to use Node.js worker_threads to run heavy computations without blocking the main event loop.
How to use CSS :is() and :where() to eliminate repetitive selectors, and the key specificity difference between them.
Use Python's frozen dataclass to create immutable objects with built-in validation and hashability.
Set up a serverless email sending endpoint with AWS CDK: API Gateway + Lambda + SES.
I tried Opencode, a terminal-based AI coding tool. It's good, but Claude Code already had most of the features I needed.
AI can code, design, and even create presentations. So what should developers build? After much deliberation, my answ...
Fix 'request url outside of Vite serving allow list' in monorepos using server.fs.allow.
Get __dirname and __filename in ES Modules using import.meta.url and fileURLToPath.
Organize Redis keys with a hierarchical naming convention and TypeScript helper functions.
Secure your Electron app by using contextIsolation and preload scripts to restrict renderer access to Node.js.
Use Node.js --expose-gc flag to trigger manual GC and identify real memory leaks.
Fix stale S3 config files caused by browser/CDN caching with three cache-busting techniques.
Configure single, composite, and directional indexes in Prisma schema to boost query performance.
Build a health check API endpoint in Next.js App Router with system metrics for production monitoring.
Build an async TCP port scanner with Node.js net module — no external dependencies needed.
Get the correct local IP address using os.networkInterfaces() across Windows, macOS, and Linux, excluding virtual ada...
Store JWT in HttpOnly cookies instead of localStorage to protect tokens from XSS attacks in Next.js.
Use healthcheck and depends_on condition to ensure Redis is fully ready before your app starts in Docker Compose.
I built a store kiosk using a Raspberry Pi. As a web developer, hardware was a whole new world — and the unexpected p...
Stop repeating Authorization headers — build a fetch wrapper that auto-injects Bearer tokens.
From the old days of creating separate repositories for each Lambda function to developing entire projects solo with ...
The story of pulling an all-nighter trying to add Naver/Kakao OIDC providers to Firebase
Use the built-in Intl.NumberFormat API for currency, thousands separators, and percentage formatting without external...
Seamless experience for both guests and members! From Firebase Anonymous Auth to Account Linking - real implementatio...
From blog creation to multilingual support with Claude Desktop MCP - Complete guide to AI-powered tech blog construct...
Final stage of global tech blog completion from Jekyll multilingual system to entire series retrospective with MCP
Comprehensive guide to automatically building complete theme switching system from CSS variables to Giscus synchroniz...
Complete comment system setup from GitHub Issues configuration to Jekyll integration with single MCP command
Revolutionary workflow where MCP automatically generates complete tech posts from idea to SEO metadata and images
RAG is not just about VectorDB. Discover the true meaning of intelligent platforms that connect VectorDB + RDS + RawD...
Real stories from building a GitHub Pages blog with AI over the past few days. The light and shadow of AI development
Revolutionary method to create complete Jekyll blog directly in local filesystem with MCP server without copy/paste
Building a complete workflow for automatically generating images for blog posts using AI. From Python package develop...
Introducing a Python package that makes it easier to use Google Vertex AI's Imagen image generation API. Start AI ima...
Learn practical methods for Claude to automatically install new MCPs using already installed filesystem and desktop-c...
I finally completed the tech blog I'd been postponing for years in just one day with Claude Desktop + MCP Server. Mar...
Learn how to create your own tech blog using GitHub Pages and Jekyll with step-by-step instructions.
Use PM2 cluster mode to leverage multi-core CPUs and boost Next.js throughput in production.
From getting timestamp values in Python to conversion methods and real project applications. Explained with ready-to-...
Manage Redis connections as a singleton in Node.js with exponential backoff reconnection.
For 20 years I typed every line of code myself. Now I tell AI what to build and a website appears. The feelings are.....
Use YAML anchors (&) and merge keys (<<) in Docker Compose to eliminate duplicated service configurations.
Sloppy instructions produce sloppy code. But good prompts alone aren't enough — your project structure matters more t...
I used Cursor's AI agent mode in production work for a month. Productivity gains are real, but blind trust will burn ...
Reduce Next.js Docker image from 1GB to under 200MB with a 3-stage Dockerfile.
I wanted to run LLMs locally so I set up Ollama. Surprisingly easy to get running, but the gap with cloud APIs is cle...
Protecting API endpoints on public sites with no login system. CORS alone isn't enough, but you can't force authentic...
Fix Prisma client connection leaks during Next.js hot reload with a simple singleton pattern.
Convert between UTC and Korean Standard Time (KST) in JavaScript without external libraries.
Building AI services, you hear 'you need a vector database' constantly. But do you really? Or can your existing datab...
What if we create a Gnuboard-specific Q&A site using the trending generative AI technology? Let me organize my though...
I barely finished learning Vue.js and another framework caught my eye. SvelteKit claims to be faster without virtual ...
From SSH key generation to implementation! A complete guide to building secure server access environment with ssh-key...
A complete guide to building an automated Naver blog posting system using AWS serverless architecture, solving the co...
IoT security system design based on Thingplug 2.0 platform - Implementing hybrid architecture with AWS Serverless and...
I tried using ChatGPT to help design a microservice architecture. It's no replacement for an architect, but as a rubb...
Complete guide to real-time Linux system resource monitoring using htop. Efficient methods to analyze CPU, memory, an...
Replace a $1,000 PC with AWS EC2 remote desktop for just $50/month! Real cost analysis and setup guide
Naver Blog, Tistory, WordPress, GitHub Pages... After years of platform-hopping, I've finally settled. A developer's ...
How to configure .gitignore to ignore directories while including specific files. Instantly solvable using ** patterns
Complete setup guide for securely pushing to Bitbucket Private Repository using SSH Key without password authentication
Complete guide to quickly installing LEMP stack on Ubuntu 18.04LTS. Solve everything from one-click scripts to multi-...
Step-by-step guide to configure MariaDB for external access by modifying bind-address settings and user permissions.
Complete guide on how to effectively limit bandwidth using limit_rate and limit_rate_after directives in nginx with p...
How to solve the issue of organization private repositories not showing in GitKraken through OAuth permission settings
Learn how to implement Photoshop blending effects using only CSS. Practical applications of background-blend-mode and...
A comprehensive guide to using Gnuboard hook features for code injection without modifying the bbs folder, covering e...
Learn all methods to pad numbers with zeros in JavaScript! From padStart() method to custom functions with ready-to-u...
How to backup and restore MySQL/MariaDB databases via console without GUI tools. Ready-to-use command collection for ...
How to completely resolve Chrome autocomplete duplicate input bug with experimental features reset and Korean input m...
Learn core methods and practical examples for adding authentication tokens to HTTP headers using beforeSend and setRe...
Designing a scalable addon architecture for 100% free website streaming service. Infinite expansion with microservice...
Learn how to configure Apache web server to execute PHP code in files with .html extension through step-by-step instr...
Learn about the most common 'client secret' related error that occurs when integrating Amazon Cognito with JavaScript...
A comprehensive guide to the most commonly used tar command options and practical examples in Linux. Master compressi...
Learn about the causes of Korean character corruption after Apache server migration and how to resolve it through cha...
I tried Lightsail years ago and dropped it. Recently went back and it's transformed — affordable, capable, and actual...
Developer forums used to be buzzing with activity. Now they're quiet. Did the communities die, or did they just evolv...
After 10+ years of jQuery, I finally started learning Vue.js. Reactive data binding turns out to be a game changer.
I won a website renewal project through a competitive pitch. Turns out writing proposals is harder than writing code.
I wanted API Gateway to call different Lambda functions per stage — dev, staging, prod. The docs made it look simple....
I got hooked on AWS, studied for three months, and passed the Developer Associate exam. Here's how the prep went and ...
After 10+ years of physical servers in data centers, I finally dove into AWS. I thought I was late to the party, but ...
For my parents, owning a house IS their retirement plan. No pension strategy, no investments. And honestly, am I real...
Using auto_increment PKs directly in URLs gets flagged in every security audit. But replacing all PKs with UUIDs is w...
New projects go to the cloud. Old ones stay on IDC servers. I keep telling myself I'll migrate them... but somehow ne...
I still love coding, but my hands just won't move. The architecture is all planned out in my head, yet execution feel...
I switched every project to Docker two years ago. Low barrier to entry, easy deployments... but is it really all upside?