피자가게로 이해하는 디자인 패턴2026.05.21피자가게로 이해하는 디자인 패턴pizza-design-patterns-series#gof#object-oriented#design-patterns2026.05.21피자가게로 이해하는 디자인 패턴pizza-design-patterns-series#gof#object-oriented#design-patterns에이든 피자는 처음부터 복잡한 시스템을 만들 생각이 없었다. 처음에는 메뉴 몇 개만 만들면 됐다. 그런데 손님은 커스텀 주문을 넣기 시작했고, 주방은 상태를 나눠야 했고, 결제와 배달앱과 알림이 하나씩 붙었다. 코드도 가게를 닮는다. 장사가 잘될수록 이상하게 더 쉽게 망가진다. 디자인…
OpenCode + OMO 에이전트 실전 가이드2026.05.21OpenCode + OMO 에이전트 실전 가이드opencode-omo-series#opencode#omo2026.05.21OpenCode + OMO 에이전트 실전 가이드opencode-omo-series#opencode#omo에이전트를 많이 만든다고 작업이 자동으로 잘 굴러가지는 않는다. 오히려 역할이 겹치고, 권한이 과하게 열리고, 어느 순간부터는 사람이 에이전트들을 관리하느라 더 바빠지는 일이 생긴다. OpenCode와 OMO(Oh My OpenAgent)를 함께 쓸 때 필요한 것은 더 많은 프롬프트가…
fluo DI 시리즈2026.05.06fluo DI 시리즈fluofluo-di-series#dependency-injection2026.05.06fluo DI 시리즈fluofluo-di-series#dependency-injectionDI 컨테이너는 겉으로 보면 꽤 조용한 도구다. 클래스를 하나 달라고 하면 인스턴스가 나오고, 모듈을 부트스트랩하면 provider들이 알아서 이어진다. 문제는 “알아서”라는 단어가 커질수록 코드가 점점 마법처럼 보인다는 데 있다. 마법은 데모에서는 멋지지만, 장애가 나면 갑자기 로그를…
Streams API 시리즈2026.03.12Streams API 시리즈Javascriptstreams-api-series#streams-api2026.03.12Streams API 시리즈Javascriptstreams-api-series#streams-api파일이 작고 네트워크가 친절하다면 우리는 굳이 stream을 의식하지 않아도 된다. 응답을 통째로 받고, 문자열을 통째로 만들고, 메모리에 올린 다음 “됐네” 하고 넘어가면 된다. 문제는 현실이 그렇게 예의 바르지 않다는 데 있다. 데이터는 조금씩 오고, UI는 기다리지 않으며, 사용자…
Worker API in Next.js — 시리즈 안내2025.05.26Worker API in Next.js — 시리즈 안내JavascriptReactNext.jsWorker API in Next.js#Worker API#Web Worker2025.05.26Worker API in Next.js — 시리즈 안내JavascriptReactNext.jsWorker API in Next.js#Worker API#Web Worker#SharedWorker브라우저에서 실행되는 JavaScript가 많아질수록 이상한 순간이 찾아온다. 비동기 처리를 했는데도 화면은 멈추고, 탭을 몇 개 열었을 뿐인데 서버에는 같은 소켓 연결이 여러 개 생기고, Next.js에서는 코드가 서버에서 평가될지 브라우저에서 평가될지 계속 의식해야 한다. Worke…