요약
정부 지원으로 GPU 서버를 받아 AI 모델을 키우는 사업이 있다. 모델은 협력 조직이 운영하고, 그 모델을 쓰는 화면(우리 사이트)은 우리가 만든다. 사업 대시보드에는 “프런트 연동 달성”이라고 적혀 있다. 그런데 우리 사이트가 정말 그 모델을 쓰고 있는지 아무도 확인해 본 적이 없었다.
확인해 보니 연결돼 있지 않았다. 사이트의 AI 기능은 다른 상용 API를 부르도록 짜여 있었고, 그 키조차 들어 있지 않아 실제로는 어디에도 연결되지 않은 상태였다. 이 글은 그것을 어떻게 알아냈는지, 그리고 협력 조직의 인수인계 안내가 왔을 때 우리 계획과 어떻게 맞춰 봤는지를 다룬다.
왜 이 기술인가
지원사업의 성과 지표는 대개 “몇 개 마을이 썼나”, “자동 작성 비율이 얼마나 되나”, “비용이 얼마나 줄었나” 같은 것이다. 이 숫자는 모델이 우리 화면에 연결돼 실제 호출 기록이 쌓일 때만 나온다. 연결이 안 돼 있으면 성과보고서에 쓸 숫자가 없고, 지어 쓰면 환수 사유가 된다.
문제는 “연결됐다”는 말이 여러 층에서 다르게 들린다는 것이다. 협력 조직은 자기 챗봇이 살아 있으니 연동을 끝냈다고 본다. 우리는 화면이 열리니 된 줄 안다. 대시보드는 계획표에 체크를 한다. 셋 다 거짓말은 아닌데, 합치면 사실이 아니다.
그래서 문서·코드·라이브·대시보드·편지함, 다섯 갈래를 따로 보고 한 표에 놓는 것이 이 기술의 전부다.
단계별 따라하기
1. 문서 — 플랫폼이 무엇을 허용하고 무엇을 회수하는가
운영사가 준 사용자 가이드를 AI에게 채록시켰다. 여기서 첫 함정이 나왔다. 흔히 쓰는 PDF 텍스트 추출 도구가 한글을 전부 떨구고 영어만 남겼다. 출력이 “내용이 비었다”처럼 보일 때는 문서가 아니라 도구를 먼저 의심해야 한다. 다른 라이브러리로 바꾸자 정상적으로 나왔다.
문서에서 뽑은 것은 다섯 가지다. 저장은 지정 폴더에만 영속, 상주 서비스 구조 불가, 외부 노출은 프록시로만, 동시 세션 한도, 사업 종료 시 전부 회수. 그리고 가장 중요한 한 줄 — 여섯 시간 평균 사용률이 1% 미만이면 자원을 회수한다. 이 규칙 하나가 뒤의 모든 판단의 기준이 됐다.
2. 코드 — 화면이 실제로 어디를 부르는가
사이트 서버 코드에서 AI를 호출하는 부분을 AI에게 찾게 했다. 주소를 담는 변수 이름을 검색하면 된다. 결과는 상용 API 주소 하나뿐이었고, 협력 조직 엔진을 가리키는 변수는 코드에 한 줄도 없었다.
여기서 배운 것: 답이 나오는지 보는 것으로는 연동 여부를 알 수 없다. 답이 나와도 어느 엔진의 답인지는 코드나 응답의 출처 표시로만 알 수 있다.
3. 라이브 — 지금 이 순간 무엇이 응답하는가
세 곳에 직접 요청을 보냈다.
| 대상 | 결과 | 뜻 |
|---|---|---|
| 우리 사이트 AI 상담 | ”AI 기능이 아직 연결되지 않았습니다” | 키가 없어 어느 엔진에도 안 붙음 |
| 협력 조직 엔진 상태 | 정상 가동 | 엔진은 살아 있음 |
| 서버 간 연동용 새 주소 | 404 | 연동 규격은 있으나 구현이 없음 |
세 줄을 나란히 놓으니 판정이 저절로 나왔다. 엔진은 있고, 우리 화면도 있고, 둘을 잇는 다리만 없다.
4. 대시보드 — 공식 진행표는 무엇을 말하는가
사업 대시보드를 읽어 정량목표 7개의 현재값을 표로 옮겼다. 그중 3개는 우리 화면 연동이 있어야만 측정된다는 것이 드러났다. 그리고 GPU 사용률은 회수를 막기 위한 최소 유지 수준(약 8%)에 머물러 있었다. 회수 사고도 두 번 있었다.
대시보드의 “9월 프런트 연동 선행 달성”은 협력 조직 챗봇 기준이었다. 틀린 말은 아니지만 우리 사이트 이야기가 아니다. 보고서에는 두 기준을 다른 칸에 써야 한다.
5. 편지함 — 누가 어디까지 약속했는가
협력 조직과 주고받은 기록을 시간순으로 읽었다. 연동 규격 초안은 8월 말에 왔고, 우리 쪽 답변 네 가지는 9월 초에 끝났다. 그 뒤로 상대 쪽 후속 편지가 없었다. 즉 공은 저쪽에 있었다. 이걸 모르면 우리가 더 할 일을 찾아 헤맨다.
6. 인수인계 안내가 왔을 때 — 계획과 대조하기
다음 날 협력 조직에서 “운영을 넘기려 하니 이렇게 나누자”는 안내가 왔다. 행정 절차, 계정 사용 규칙, 보고 일정이 잘 정리돼 있었다. 그런데 우리 계획의 핵심인 화면 연동이 한 줄도 없었다.
이럴 때 “안내가 틀렸다”고 하면 안 된다. 안내는 행정 인수인계이고 우리 계획은 기술 연동이라 서로의 빈칸이다. 빈칸을 표로 만들어 회신에 넣었다.
| 안내에 빠진 것 | 왜 물어야 하나 |
|---|---|
| 연동 완료 날짜 | 정량목표 3개가 이것으로만 측정된다 |
| 시범 마을을 어느 화면으로 하나 | 우리 화면이 아니면 호출 기록이 우리 것으로 남지 않는다 |
| GPU 사용률 보고 주기와 실행 주체 | 의무는 우리, 조작 권한은 저쪽 — 사유서 책임이 떠돈다 |
| 공동 계정 비밀번호 정책 | 가이드는 변경 필수라 하지만 우리가 바꾸면 저쪽이 잠긴다 |
그리고 겹치는 것은 합쳤다. 저쪽이 준비하는 정성 평가 25문항에 우리 화면의 서류 시나리오 문항을 보태면, 평가와 연동 대조를 한 번에 한다.
교훈
- “연동됐다”는 다섯 갈래로 나눠 물어야 한다. 문서·코드·라이브·대시보드·편지함. 하나만 보면 각자 옳은 말을 합쳐 틀린 결론이 난다.
- 답이 나오는 것과 연결된 것은 다르다. 어느 엔진의 답인지는 코드나 출처 표시로만 안다.
- 추출 결과가 비면 도구를 먼저 의심한다. 한글이 사라진 PDF는 문서 문제가 아니었다.
- “의무는 우리, 권한은 저쪽”인 지표는 보고 주기와 실행 주체를 글로 못 박는다.
- 상대의 안내와 우리 계획은 충돌이 아니라 빈칸이다. 빈칸을 표로 만들어 돌려보내면 한 번의 회신으로 끝난다.
참고
- kt cloud AI Nexus 사용자 가이드, GPU 사용자 워크플로우, VoC 기반 QnA 모음집, 환경 전환 가이드 (NIPA 배포 자료)
- 이 사업의 대시보드와 연동 규격 초안은 조직 내부 문서
- 문서 정리 = 데카(deka2026)