피자가게로 이해하는 디자인 패턴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 에이전트 실전 가이드Agentic Codingopencode-omo-series#opencode#omo2026.05.21OpenCode + OMO 에이전트 실전 가이드Agentic Codingopencode-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는 기다리지 않으며, 사용자…