Welcome to hongry.dev
I build what annoys me, and write down what I learn along the way.
About this blog
Syncing clocks for ticketing, checking hyper-local neighborhood forecasts, finding an available EV charger: I solve recurring everyday frustrations by designing, building, and operating dedicated web services myself. This blog covers the product decisions behind each service, step-by-step usage guides, and the web, GIS, and distributed backend engineering lessons learned along the way.
About the authorLatest posts
Implementing Distributed Locks with Redis: Go, NestJS, Redisson & Fencing Tokens
How to implement Redis distributed locks safely with atomic SET NX PX and token-checking Lua scripts across Go, NestJS, and Spring Boot Redisson, plus why fencing tokens matter for data integrity.
Lightweight Distributed Locks with PostgreSQL Advisory Locks & MySQL GET_LOCK
How to prevent duplicate cron job execution across multiple servers without Redis using PostgreSQL pg_try_advisory_xact_lock and MySQL GET_LOCK, including connection pool and PgBouncer caveats.
Database Concurrency Control: Pessimistic Lock vs. Optimistic Lock in Practice
Compares atomic SQL UPDATEs, pessimistic locking (SELECT FOR UPDATE), and optimistic locking (version columns) for preventing Lost Updates, with Go GORM, NestJS Prisma, and Spring Data JPA examples.
Cache Stampede Causes & Mitigations: singleflight, Distributed Locks, and XFetch
Why database load spikes when hot cache keys expire under heavy traffic, and how to prevent it using Go singleflight, NestJS in-flight Promise sharing, XFetch probabilistic refresh, and TTL jitter.
Designing Payment & Mutation APIs: Idempotency-Key Implementation Guide
How API idempotency prevents duplicate charges from network retries and double clicks, complete with SQL storage schema design, a NestJS RxJS interceptor example, and production pitfalls.
Finding Public Amenities Near You: Open Data Limits & Public-Lens Guide
Where public facility data for restrooms, pharmacies, emergency bells, and shelters comes from, what update delays to keep in mind, and how to search all 19 categories on Public-Lens.
How to Check EV Charging Stations Before a Long Drive: EV-Lens Practical Guide
How to verify your EV's connector type (DC Combo, CHAdeMO, AC 3-Phase), pick primary and backup fast chargers along your route, and check real-time stall availability on EV-Lens.
How to Track Your Mood Without Pressure: Building a Routine with MoodCast
Why logging your mood as weather helps create healthy emotional distance, how to record a day in one line, and how to review monthly patterns on the MoodCast calendar.
Differences Between URL Encoding (Percent-Encoding) and HTML Entity Encoding
Compares RFC 3986 URL percent-encoding with HTML entity escaping for XSS defense, shows how both interact in a single request lifecycle, and covers encodeURIComponent vs encodeURI pitfalls.
Services I build and run
Every service is developed and operated by the author of hongry.dev.
TrueTime
Compare and sync server standard time with your local device time in real-time with millisecond (ms) accuracy. Set precise alarms and timers for time-sensitive events like concert tickets and class registrations.
HereWeather
Accurately map your current GPS location to the Korean Meteorological Administration (KMA) weather grid. Instantly view local real-time weather conditions, precipitation probability, wind speed, and 24-hour detailed forecasts.
AnyTools
Brings together 30 client-side web utilities for document conversion, image editing, developer encoding, and everyday financial calculations. From net salary and bill-split calculators to HWP/Office viewers, PDF tools, and URL/Base64/JSON utilities, almost everything runs inside your browser without installation or file uploads.
MoodCast
An emotion management tool where you record your daily feelings and receive theme recommendations. Visualizes emotional trends to help with stress relief and mindfulness.
EV-Lens
Check the location and real-time status of EV charging stations near you. View comprehensive charging networks on an interactive map.