Go에서 회로 차단기 패턴: 연쇄적 고장 방지
Go 마이크로서비스의 캐스케이딩 장애를 방지하세요.
회로 차단기(Circuit Breaker)는 고장난 의존성(dependency)을 계속 호출하는 것을 막아, 고루틴(goroutine), 소켓, 메모리를 소모하며 전체 시스템이 붕괴하는 연쇄 고장을 방지합니다.
Go 마이크로서비스의 캐스케이딩 장애를 방지하세요.
회로 차단기(Circuit Breaker)는 고장난 의존성(dependency)을 계속 호출하는 것을 막아, 고루틴(goroutine), 소켓, 메모리를 소모하며 전체 시스템이 붕괴하는 연쇄 고장을 방지합니다.
프로토콜 보안은 모델이 아닌 행위 주체를 규정합니다.
프롬프트 인젝션은 LLM 시스템에서 가장 많은 보안 관심을 받고 있으며, 주목받을 만하지만 에이전트가 도구를 호출하고 작업을 다른 에이전트에 위임하기 시작하면 이것이 유일한 문제는 아닙니다.
장기간 실행되는 A2A 작업은 채팅 세션보다 더 오래 지속됩니다.
대부분의 AI 에이전트 데모는 여전히 몇 가지 추가 단계를 거친 채팅 완성(chat completion)과 비슷하게 작동합니다. 프롬프트를 보내고 몇 초를 기다린 후, 하나의 응답으로 답변을 받습니다.
멀티 에이전트 파일럿의 40%가 실패합니다. 올바른 오케스트레이션 패턴을 선택하고 실패하는 패턴을 피하는 방법을 소개합니다.
2025년은 단일 에이전트 AI 시스템이 정점에 달했던 해였습니다. 여러분은 하나의 LLM에 프롬프트, 몇 가지 도구, 그리고 목표를 부여했고, 그것은 제한된 작업에서 꽤나 잘 수행했습니다.
데이터와 함께 이벤트를 기록하세요. 절대 분리하지 마세요.
함께 성공해야 할 두 개의 쓰기 작업이 결국에는 분리되어 실패합니다. 주문 서비스는 주문을 데이터베이스에 저장한 후 메시지 브로커에 order.created 이벤트를 발행합니다.
Go의 컨텍스트는 저장소가 아닌 제어 흐름입니다.
Go의 context.Context는 잘못 사용할 만큼 충분히 간단합니다. 그리고 바로 그것이 문제입니다.
오류를 적절한 경계에서 처리하세요.
Go의 에러 처리는 불평하기 쉽습니다. 모든 Go 개발자는 수백 번 이 코드를 작성해 보셨을 것입니다:
동시 Go 테스트에서 잠들지 마세요.
Go의 동시성 코드를 테스트하는 일은 항상 약간의 규율을 필요로 했습니다. 고루틴(Goroutine)은 가볍고, 채널(Channel)은 단순하며, 컨텍스트(Context) 취소는 관례적인(idiomatic) 방식입니다. 실제 Go 서비스에서는 백그라운드 워커와 타이머가 어디에나 존재합니다.
A2A는 사라진 것이 아닙니다. 다만 범용적으로 쓰이지 않을 뿐입니다.
구글의 에이전트 투 에이전트(Agent2Agent) 프로토콜, 즉 A2A는 첫해를 다소 혼란스럽게 보냈습니다.
AI 에이전트를 위한 신뢰할 수 있는 폴링 패턴
폴링 에이전트(Polling Agent)는 AI 어시스턴트 아키텍처에서 가장 화려하지는 않지만, 동시에 가장 유용한 구성 요소 중 하나입니다.
MCP는 에이전트에 도구를 제공합니다. A2A는 에이전트에 동료(peer)를 제공합니다.
AI 에이전트 아키텍처가 두 개의 레이어로 나뉘기 시작하고 있습니다.
A2A는 에이전트를 네트워크 피어(network peers)로 전환합니다.
A2A 프로토콜(에이전트 투 에이전트 프로토콜)은 독립적인 AI 에이전트 시스템 간의 통신을 위한 개방형 표준입니다.
불필요한 형식주의 없이 Go로 CQRS 구축하기
CQRS는 과대평가되고, 지나치게 복잡해지며, 때로는 평범한 CRUD의 지루함을 해결할 만병통치약으로 오해받는 패턴 중 하나입니다.
드라마 없이, 코드 기반 다이어그램
Mermaid는 캔버스에서 상자를 드래그하는 대신 다이어그램을 텍스트로 작성하려는 사람들을 위한 텍스트 기반 다이어그램 도구입니다. 이 도구는 마크다운과 유사한 구문을 사용하여 플로우차트, 시퀀스 다이어그램, 클래스 다이어그램, 상태 머신, 타임라인, 간트 차트, 엔티티 관계 다이어그램 등을 설명합니다.
모델이 아닌 리스크를 통제하십시오.
대형 언어 모델(LLM)은 예측 불가능합니다. 환각(hallucination) 현상이 발생하거나, 데이터가 유출되거나, 유해한 콘텐츠를 생성하거나, 합법적인 요청을 거부하기도 합니다. 가드레일(Guardrails)은 모델의 성능을 희생하지 않으면서도 모델의 행동을 제한합니다.
실제 심각한 수준의 어시스턴트는 어떻게 구축되는가
생산 환경용 AI 어시스턴트는 단순히 “프롬프트가 붙은 LLM"이 아닙니다. 이는 의도(Intent)를 받아들이고, 상태를 유지하며, 언제 검색하거나 행동할지 결정하고, 실패를 디버깅할 수 있는 충분한 런타임 세부 정보를 제공하는 시스템입니다.