Gemini Enterprise Agent Gateway 배포 체크리스트: DevEx Sprint에서 드러난 운영 마찰 줄이기
Google Developers Blog의 DevEx Sprint 사례는 Gemini Enterprise 배포에서 자주 생기는 문제가 모델 호출 코드보다 운영 준비 단계에 있다는 점을 보여준다. 특히 Agent Gateway, Semantic Governance, extension configuration, policy enforcement 같은 영역은 문서대로 붙였는데도 팀마다 마찰이 생기기 쉽다. 이 글은 Gemini Enterprise Agent Gateway를 실제 조직에 배포할 때 먼저 점검할 체크리스트다.
문제는 모델 품질보다 배포 경계다
엔터프라이즈 AI 에이전트는 일반 챗봇과 다르다. 사내 문서, 업무 시스템, ticket, CRM, 코드 저장소, 메일, 드라이브 같은 도구를 연결한다. 여기서 중요한 건 Gemini 모델이 답을 잘하느냐만이 아니다. 어떤 도구를 어떤 사용자에게 열고, 어떤 요청은 정책으로 막고, 어떤 로그를 남기고, 장애가 나면 어디서 차단할지가 더 중요하다.
Agent Gateway는 이 경계를 잡는 역할을 한다. 에이전트가 외부 도구와 내부 시스템을 호출할 때 한 지점에서 인증, 권한, 라우팅, 정책, 관측성을 적용할 수 있다. 하지만 gateway를 붙였다고 자동으로 안전해지는 것은 아니다. 사전 조건과 운영 규칙이 맞지 않으면 gateway가 또 하나의 복잡한 프록시가 된다.
사전 조건을 코드보다 먼저 고정한다
DevEx Sprint가 강조한 부분 중 하나는 setup prerequisite 정리다. 실무에서는 여기서 시간이 많이 샌다. IAM 권한, service account, network egress, extension allowlist, logging sink, secret 관리, region 정책이 정리되지 않은 상태에서 샘플 코드부터 실행하면 실패 원인을 찾기 어렵다.
배포 전에는 최소한 네 가지를 문서화해야 한다. 첫째, 어떤 사용자 그룹이 어떤 에이전트를 쓸 수 있는가. 둘째, 에이전트가 호출할 수 있는 도구와 API는 무엇인가. 셋째, 민감 데이터가 포함될 수 있는 입력과 출력은 어디에 저장되는가. 넷째, 정책 위반이나 tool failure가 발생했을 때 사용자에게 어떤 메시지를 보여줄 것인가.
이 네 가지가 없으면 개발자는 에러가 날 때마다 임시 권한을 추가하게 된다. 임시 권한은 대개 오래 남고, 나중에 보안팀이 걷어내기 어렵다.
Semantic Governance는 프롬프트 필터가 아니다
Semantic Governance를 단순 금칙어 필터처럼 보면 실패한다. AI 에이전트의 위험은 특정 단어보다 의도와 행위에서 나온다. ‘고객 목록을 정리해줘’는 평범한 요청일 수 있지만, 외부 파일로 내보내면 개인정보 유출이 될 수 있다. ‘계약서 요약’은 안전할 수 있지만, 승인되지 않은 저장소에 결과를 쓰면 문제가 된다.
따라서 Semantic Governance는 입력, tool call, 출력, 저장 위치를 함께 봐야 한다. 정책은 문장 단위가 아니라 행동 단위로 정의하는 편이 좋다. 예를 들어 customer_data.export.external = deny, contract_summary.internal_doc = allow, crm_update.requires_approval = true처럼 작성한다.
또한 fallback 정책도 필요하다. 모델이나 policy engine이 판단하지 못하는 요청은 허용이 아니라 보류가 기본값이어야 한다. 보류된 요청은 사용자에게 ‘왜 멈췄는지’와 ‘어떤 승인이 필요한지’를 알려줘야 한다.
Extension configuration은 팀 표준으로 관리한다
에이전트 확장은 편하지만 위험하다. Gmail, Drive, Jira, GitHub, Slack 같은 확장을 팀원이 제각각 연결하면 같은 질문도 사용자별로 다른 데이터를 읽고 다른 작업을 실행한다. 재현성이 떨어지고 감사가 어려워진다.
운영팀은 extension configuration을 개인 설정이 아니라 팀 표준으로 봐야 한다. 어떤 extension을 허용할지, scope는 어디까지 줄일지, read/write를 나눌지, 테스트 환경과 production 환경을 어떻게 분리할지 정해야 한다.
예를 들어 GitHub extension은 read-only code search와 write PR comment를 분리한다. Drive extension은 특정 공유 드라이브만 허용한다. Slack extension은 DM 접근을 막고 지정 채널 검색만 허용한다. CRM extension은 update 작업에 human approval을 요구한다. 이런 식으로 권한을 쪼개야 한다.
관측성은 사용자 경험 문제이기도 하다
Agent Gateway 배포에서 logging과 monitoring은 보안팀만을 위한 것이 아니다. 사용자 경험에도 직접 영향을 준다. 에이전트가 실패했을 때 ‘문제가 발생했습니다’만 보여주면 사용자는 다시 시도하거나 프롬프트를 바꾼다. 같은 실패가 반복된다.
좋은 운영 UI는 실패 원인을 분리해서 보여준다. 권한 부족인지, 정책 차단인지, 도구 장애인지, 모델 overload인지, 입력 데이터 부족인지 구분해야 한다. 개발자용 로그에는 request id, user group, policy decision, tool latency, retry count, fallback route가 남아야 한다.
Semantic Governance 정책이 너무 엄격해 정상 요청을 막는 경우도 지표로 봐야 한다. false positive가 늘면 사용자는 우회 방법을 찾는다. 정책은 안전해야 하지만, 업무를 막는 정도가 데이터로 관리되어야 한다.
배포는 파일럿 그룹부터 시작한다
처음부터 전사 배포하면 정책 수정이 느려진다. 20~50명 규모의 파일럿 그룹을 만들고, 실제 업무 시나리오 10개 정도를 고정하는 게 좋다. 예를 들어 고객 문의 요약, 회의록 action item 추출, GitHub 이슈 분류, 내부 문서 검색, CRM 업데이트 초안 생성 같은 작업이다.
파일럿에서는 성공률보다 friction log가 중요하다. 사용자가 어디서 권한 오류를 만났는지, 어떤 정책 메시지를 이해하지 못했는지, 어떤 extension 설정이 헷갈렸는지 기록한다. DevEx Sprint의 핵심도 이런 마찰을 빠르게 찾아 문서와 샘플을 고치는 데 있다.
파일럿 후에는 정책을 느슨하게 하는 게 아니라 명확하게 해야 한다. 차단할 것은 차단하고, 허용할 것은 scope를 줄여 허용하고, 승인 필요한 것은 승인 플로우를 만든다.
실행 체크리스트
- 사용자 그룹, 허용 에이전트, 허용 extension, 데이터 등급을 먼저 표로 만든다.
- Agent Gateway 앞에서 인증·권한·라우팅·로그 정책을 한 번에 적용한다.
- Semantic Governance 정책은 문장 금칙어가 아니라 행동과 저장 위치 기준으로 작성한다.
- extension은 개인 자유 설정이 아니라 팀 표준 configuration으로 관리한다.
- read scope와 write scope를 분리하고, write 작업에는 승인 조건을 붙인다.
- policy deny, permission error, tool failure, model overload를 로그와 사용자 메시지에서 구분한다.
- 전사 배포 전 20~50명 파일럿으로 friction log를 모은다.