DevInsight

A developer's field notes

Dev notes

Stuff I ran into while building things

Tech I went back and forth on, problems that only showed up once it shipped. Notes I keep so I don't forget.

💡 Today's Dev Insight

#security#password-hashing#salt

Criteria for Password Hashing and Salting

Hashing and salting are not alternatives to each other. Hashing is an irreversible storage format, and a salt is an input value that makes the hash differ even for the same password. There is a single criterion — whether the salt is included in the hash input. Storing the salt in a separate column or appending it after hashing leaves you fully exposed to credential reuse attacks.

Latest Posts

View all posts
Tools

The Spots That Quietly Collapse When You Drop eslintrc for Flat Config

When migrating from eslintrc to flat config, what breaks most often isn't the rules but plugin compatibility and the order in which configs are merged. As string-based extends disappears and gives way to arrays of objects, plugin registration, ignores handling, and editor integration all change. This article points out the places that fail silently during real migrations and offers criteria for deciding what to move first and what to throw away.

#ESLint#flat config#마이그레이션#린트
AI

When Search Keeps Pulling the Wrong Documents, What to Suspect Before Embeddings

When RAG retrieval quality won't improve, it's easy to blame the embedding model or the vector DB first, but the real culprit is often chunk splitting that mechanically cuts documents and fragments their context. This piece walks through examples of how common mistakes—fixed-length splitting, cutting sentences in half, separating tables from headings—wreck recall, then covers how to tune chunk size and overlap to match document structure, along with practical metrics for measuring retrieval quality.

#RAG#청크 분할#검색 품질#임베딩
Frontend

One 'use client' Line Splits Server and Client, and Shakes Everything From Bundle Size to State Management

In the Next.js App Router, a single 'use client' line that draws the server-client boundary reshapes your entire bundle size, data fetching, and state management strategy. Draw that boundary wrong and bundle bloat plus duplicate fetching blow up all at once, late in the game. This memo lays out the judgment principles for redrawing the boundary based on per-layer responsibilities and data ownership, plus the priority order for refactoring boundaries that were already drawn wrong.

#React#Next.js#Server Components#Client Components
Tools

A Week Facing 2,731 Type Errors: The Reality Between Flipping strict On and Off

Enabling TypeScript's strict-family options all at once typically floods the build with thousands of type errors and stalls work. Based on a real project case, this compares each option's migration difficulty and blast radius, and lays out a step-by-step roadmap covering which order is safe to enable, what to fix automatically, and what has to be reviewed by hand.

#TypeScript#strict 모드#타입 안정성#레거시 코드
Backend

Can Small Services Survive? Limits of Polling and Criteria for Introducing Queues

When processing tasks through database polling in small services, throughput drops sharply and latency increases. This article analyzes the limits that polling-based processing must endure and presents concrete criteria for when to introduce a queue system. It covers how to recognize system saturation rather than just 'traffic growth', and the operational checkpoints to keep in mind after adoption.

#메시지 큐#폴링#백엔드 아키텍처#Redis
Backend

Don't Trust Webhooks, Verify with Signatures

Webhook receivers must be designed with distrust of external requests. Since requests can be unstable — with retries, processing delays, and even forgery attempts — signature verification, idempotent processing, retry ID tracking, and queuing for delays are all essential for stable ingestion. Particularly, retries arriving without idempotency keys lead to duplicate processing; when delays grow too long, immediately switch to queue locking.

#webhook#signature-verification#idempotency#retry-handling

DevInsight Digest

Keep every new article in one calm feed.

Follow the full publication feed without promotional alerts.

Subscribe to RSS

Browse by Topic

From AI to developer tools, pick the stream you want to read now.