Big Project · AI's EYE 20

AI Scene 초안과 인간 승인 경계 설계

대표 프레임을 AI에 주면 테이블·카운터·출입구 Scene을 자동으로 만들 수 있을 것 같다. 왜 수동 Editor와 승인 단계가 여전히 필요했는지 의문이다.

근거 · 프로젝트 문서 · 코드 · 테스트

1장: AI의 ‘초안’은 왜 곧바로 ‘운영’에 쓰일 수 없는가?

솔라는 거실 소파에 앉아 태블릿 화면을 들여다보고 있었다. 짧은 프로젝트 회고록의 한 문장에 시선이 꽂혀 좀처럼 넘어가지 못했다.

“자동 Scene 초안은 정확도와 효용이 낮아 사용자가 보정·승인하는 보조 기능으로 제한했다.”

분명 아는 단어들의 조합인데, 솔라에게는 이 문장이 마치 암호처럼 느껴졌다. 매장의 대표 이미지를 AI에게 입력하면, 테이블, 카운터, 출입구 같은 주요 구역(Scene)을 자동으로 탐지해서 구획을 나눠주는 기능. 솔라는 당연히 AI가 사람의 개입 없이도 완벽에 가까운 결과물을 내놓을 거라고 기대했다. 그런데 ‘정확도와 효용이 낮다’니. 고개를 갸웃거리던 솔라는 태블릿을 들고 서재에 있는 루나에게 향했다.

“언니, 나 이거 이해가 안 돼.”

솔라가 내민 태블릿 화면을 잠시 들여다본 루나는 별다른 말 없이 자신의 노트북 화면을 돌려 솔라에게 보여주었다. 화면에는 한 카페의 CCTV 화면처럼 보이는 이미지 두 개가 나란히 떠 있었다. 왼쪽 이미지 위에는 ‘AI 초안’, 오른쪽 위에는 ‘최종 운영 설정’이라는 작은 글씨가 붙어 있었다.

“어때, 솔라? 두 그림이 어떻게 달라 보여?”

솔라는 화면에 바싹 다가앉았다. 두 이미지는 언뜻 보기에 거의 똑같았다. 왼쪽 ‘AI 초안’ 이미지에도 테이블과 의자가 있는 공간은 녹색 사각형으로, 카운터는 파란색 사각형으로, 출입구는 노란색 사각형으로 잘 구분되어 있었다.

“음… 거의 똑같은데? AI가 만든 것도 꽤 잘했잖아. 테이블은 테이블로, 카운터는 카운터로 다 알아봤네. 이 정도면 그냥 써도 되는 거 아니야?”

솔라의 말에 루나는 오른쪽 ‘최종 운영 설정’ 이미지의 녹색 사각형 하나를 확대했다.

“이 부분을 자세히 봐. 왼쪽 그림이랑 뭐가 다른지.”

확대된 화면을 보고 나서야 솔라는 미세한 차이를 발견했다. 왼쪽 ‘AI 초안’에서 테이블 구역을 나타내는 녹색 사각형은 테이블 다리뿐 아니라 그 옆 통로의 바닥 타일 한두 개를 살짝 포함하고 있었다. 반면 오른쪽 ‘최종 운영 설정’의 녹색 사각형은 정확하게 테이블과 의자가 놓인 공간만을 감싸고 있었다. 다른 구역도 마찬가지였다. AI 초안의 카운터 구역은 카운터 옆에 놓인 작은 쓰레기통까지 포함했지만, 최종 설정에서는 그 부분이 제외되어 있었다.

“아…”

그제야 솔라의 입에서 작은 탄성이 터져 나왔다. 그저 약간 삐뚤빼뚤한 수준이라고 생각했던 차이가 전혀 다른 의미로 다가오기 시작했다.

루나가 조용히 물었다. “만약 왼쪽 AI 초안을 그대로 운영 시스템에 적용하면 어떻게 될까? 저 테이블 구역의 경계선이 통로를 15cm 정도 침범하고 있는데.”

“잠깐만… 만약 어떤 손님이 통로를 그냥 지나가기만 해도, 시스템은 그 사람이 ‘테이블 구역에 머물렀다’고 기록하겠네. 그럼 매장 체류 시간 분석 데이터가 전부 엉망이 될 거야.”

솔라는 스스로 답을 찾고는 놀란 표정을 지었다. 카운터 옆 쓰레기통 문제도 마찬가지였다. 직원이 잠시 쓰레기를 버리러 간 움직임이 ‘카운터 업무’로 집계될 수 있었다. AI가 ‘얼추 맞춘’ 경계선은 사람의 눈으로 보기엔 그럴듯했지만, 1초에도 수십 번씩 데이터를 판정하고 기록하는 운영 시스템에게는 재앙과도 같았다. 아주 작은 오차 하나가 누적되어 데이터 전체의 신뢰도를 무너뜨릴 수 있었다.

“이제 알겠다. AI가 찾아낸 건 ‘여기가 테이블일 확률이 높다’는 똑똑한 추측이구나. 하지만 운영 시스템에 필요한 건 ‘여기부터 여기까지는 무조건 테이블 영역이다’라는 확정된 정의야. AI가 그려준 건 정말 훌륭한 밑그림이지만, 그걸 그대로 최종 결과물로 쓸 수는 없는 거였어. ‘정확도’라는 말의 기준이 달랐던 거야.”

솔라는 ‘AI 초안’과 ‘최종 운영 설정’ 이미지를 번갈아 보며 중얼거렸다. 그럴듯하게 보이는 것과 실제 운영에 사용할 수 있는 것 사이에는 명확한 경계가 있었다. AI는 그 경계를 넘어서는 첫걸음을 아주 빠르게 내디딜 수 있게 도와주는 도구였을 뿐, 경계 자체를 없애주는 마법 지팡이는 아니었다.

루나는 솔라가 스스로 결론에 도달하기를 기다려 주었다. 솔라가 고개를 들자, 루나가 말했다.

“맞아. 우리는 그걸 ‘초안’과 ‘운영 품질’의 차이라고 불렀어. AI는 존재할 법한 가능성을 제시하고, 사람은 그 가능성들 중에서 운영에 쓰일 단 하나의 사실을 확정하는 거지.”

솔라는 고개를 끄덕였다. 왜 AI의 결과물을 ‘초안’으로만 제한하고 사람이 반드시 개입해야 했는지, 이제 명확히 이해할 수 있었다. 하지만 새로운 궁금증이 생겨났다.

“그렇구나… 그럼 사람이 하는 일이 결국 저렇게 삐져나온 선들을 조금씩 옮겨주고 다듬어주는 ‘보정’ 작업인 거네. 그런데 그런 미세한 조정만으로 AI 초안의 ‘낮은 효용’ 문제까지 해결이 되는 거야? 정확도 문제는 알겠는데, ‘효용’이 낮다는 건 또 다른 이야기 같아서.”

2장: 인간의 ‘보정’은 AI 초안의 무엇을 ‘운영 가능’하게 만드는가?

솔라의 질문이 채 끝나기도 전에, 루나는 이미 노트북 화면 위에서 무언가를 하고 있었다. 이전 장에서 봤던 ‘AI 초안’과 ‘최종 운영 설정’이 나란히 있던 화면이었다. 하지만 이번에 루나는 단순히 이미지를 보여주는 데 그치지 않았다. 마우스 커서를 움직여 ‘AI 초안’ 이미지 속 테이블 구역을 나타내는 녹색 사각형을 통째로 잡아끌더니, 엉뚱하게도 옆 테이블과 창가 사이의 좁은 통로 공간으로 옮겨버렸다. 그러고는 출입구를 나타내던 노란색 사각형의 크기를 줄이고 줄여, 문고리만 겨우 가릴 정도로 작게 만들었다.

솔라는 언니의 기묘한 행동에 눈을 동그랗게 떴다. 완벽하지는 않아도 꽤 그럴듯했던 AI 초안이 순식간에 완전히 망가진 그림이 되어버렸다. 통로를 ‘테이블 구역’이라고 하고, 거대한 문에서 문고리만을 ‘출입구’라고 인식하는 시스템이라니. 이건 지난번처럼 경계선이 살짝 삐져나온 수준의 문제가 아니었다.

“언니, 지금 뭐 하는 거야? 멀쩡한 초안을 왜 망가뜨려?”

솔라의 물음에 루나는 하던 일을 멈추고 화면을 솔라 쪽으로 조금 더 돌려주었다. 망가진 AI 초안 옆에는 여전히 단정하고 정확한 ‘최종 운영 설정’ 이미지가 대조적으로 떠 있었다.

“솔라 네가 방금 ‘효용’에 대해 물었잖아. AI 초안의 ‘정확도’가 낮다는 건 경계선이 조금씩 어긋나는 문제였다면, ‘효용’이 낮다는 건 바로 이런 문제들을 포함해.”

루나는 망가진 초안의 첫 번째 사례, 즉 통로에 덩그러니 놓인 녹색 ‘테이블’ 사각형을 가리켰다.

“AI가 테이블을 인식하긴 했는데, 위치를 잘못 잡았어. 이럴 때 운영자는 이걸 어떻게 수정해야 운영 가능한 상태로 만들 수 있을까?”

“음… 저 녹색 상자를 통째로 들어서 원래 테이블이 있는 곳으로 옮겨야지. ‘이동’시켜야 하네.”

“맞아. 다음 문제. 출입구는 어때?”

루나가 문고리만 한 노란색 사각형을 가리키자 솔라가 대답했다.

“저건 너무 작으니까, 사각형 모서리를 잡고 쭉 늘려서 실제 출입문 전체를 덮도록 ‘크기 조정’을 해야겠지.”

루나는 마지막으로 새로운 예시를 하나 더 만들었다. 길게 이어진 카운터를 AI가 하나의 긴 직사각형으로 인식하지 못하고, 마치 징검다리처럼 작은 파란색 사각형 세 개로 띄엄띄엄 인식한 그림이었다.

“이런 경우는?”

“이건 좀 복잡하네. 저 작은 상자 세 개는 쓸모가 없으니까 다 지워버리고, 그냥 내가 처음부터 길게 새로 그리는 게 빠르겠다. 아, 아니면 하나를 길게 늘리고 나머지를 지우거나… 어쨌든 기존 초안을 ‘보정’하는 작업이 필요해.”

솔라는 ‘이동’, ‘크기 조정’, ‘보정’이라는 단어들을 입안에서 굴려보았다. 이전 장에서는 그저 삐져나온 선을 다듬는 미세한 작업이라고만 생각했다. 하지만 이제 보니 그 단어들은 전혀 다른 무게로 다가왔다. AI가 내놓은 결과물이 때로는 위치, 크기, 심지어 개수나 형태 자체가 완전히 틀릴 수 있다는 뜻이었다.

인간의 ‘보정’ 작업은 단순히 AI의 실수를 다듬는 수준이 아니었다. 그것은 AI가 제공한 불확실하고 때로는 엉뚱하기까지 한 ‘가능성’ 덩어리에 매장의 실제 구조와 운영자의 의도라는 ‘확정성’을 불어넣는 과정이었다. AI가 “여기에 테이블이 있을지도?”라고 제안하면, 사람은 “아니, 테이블은 여기고, 크기는 이만하며, 이 구역의 이름은 ‘창가석’이야”라고 정의를 내려주는 것과 같았다. AI가 던진 여러 갈래의 갈림길에서, 운영에 필요한 단 하나의 길을 명확히 지정해 주는 역할. 그것이 바로 이동, 크기 조정, 보정이라는 인간 개입의 본질이었다.

“이제 알 것 같아. ‘효용이 낮다’는 건, AI 초안이 아예 동문서답을 하는 경우가 있어서 그대로는 쓸모가 없다는 뜻이었구나. 사람이 개입해서 위치를 옮기고, 크기를 맞추고, 틀린 걸 지우고 새로 그리는 과정이 없다면, AI 초안은 그냥 ‘흥미로운 그림’일 뿐 ‘운영 설정’이 될 수 없는 거였어.”

솔라의 말에 루나가 고개를 끄덕였다.

“바로 그거야. 그래서 우리는 AI의 결함 유형과 그것을 바로잡는 인간의 보정 행위를 처음부터 짝지어서 설계했어. AI가 위치를 틀리면 ‘이동’ 기능으로, 크기를 틀리면 ‘크기 조정’ 기능으로, 개념 자체를 틀리면 ‘삭제 후 생성’이나 ‘유형 변경’ 같은 ‘보정’ 기능으로 대응할 수 있도록 말이야. AI가 완벽할 거라 기대한 게 아니라, AI의 부족함을 인간이 가장 쉽게 메꿀 수 있는 도구를 만드는 데 집중한 거지.”

AI의 결함을 인간의 직관적인 편집 기능과 연결하는 것. 솔라는 그것이 바로 AI 초안을 ‘운영 가능’하게 만드는 핵심적인 설계였음을 깨달았다. 초안의 존재 자체보다, 그 초안을 운영 가능한 수준으로 끌어올릴 수 있는 명확한 인간-AI 협업 경로를 설계하는 것이 훨씬 중요했다.

문득 솔라는 이 과정의 마지막 단계가 궁금해졌다. 이렇게 사용자가 공들여 초안을 수정하고 나면, 시스템은 이 ‘완성본’을 어떻게 받아들일까?

“알겠어. 그럼 사용자가 이렇게 열심히 초안을 수정해서 ‘최종 운영 설정’과 똑같이 만들었어. 그리고 ‘승인’ 버튼을 누르겠지. 그 ‘승인’이라는 건 정확히 무슨 의미야? 그냥 ‘저장’이랑은 다른 건가? 승인하기 전의 초안은 시스템에 아무런 영향을 안 미치는 상태로 어딘가에 떠 있는 거야?“

3장: 인간-AI 협업, ‘승인 경계’를 어떻게 설계해야 하는가?

솔라의 질문은 허공에 잠시 머물렀다. ‘승인’은 ‘저장’과 무엇이 다른가. 승인되지 않은 초안은 어디에 떠 있는 상태인가. 루나는 대답 대신 태블릿의 화면을 깨끗이 지웠다. 그리고는 화면 중앙에 세로로 긴 선을 하나 그었다. 왼쪽과 오른쪽, 두 개의 영역으로 공간이 나뉘었다. 솔라는 언니가 무엇을 하려는지 숨죽여 지켜봤다.

루나는 왼쪽 영역의 맨 위에 ‘운영 시스템 (Live System)‘이라고 적고, 오른쪽에는 ‘초안 편집기 (Draft Editor)‘라고 썼다. 그러고는 운영 시스템 영역에 작은 상자들을 그려 넣으며 데이터의 흐름을 표현하기 시작했다. [실시간 카메라 영상 입력][현재 운영 설정 v3.2][분석 데이터 생성]. 반면 오른쪽의 초안 편집기 영역은 텅 비어 있었다. 두 영역은 중앙의 선에 의해 완벽하게 분리되어 있었다. 마치 서로 다른 두 개의 컴퓨터 화면을 보는 것 같았다.

“솔라 네 질문에 대한 답이 이 그림 안에 있어. ‘승인’이 그냥 ‘저장’과 다른 점, 그리고 그 초안이 어디에 떠 있는지.”

루나가 오른쪽 ‘초안 편집기’ 영역을 가리켰다.

“AI가 초안을 만들고, 사용자가 그걸 수정하고 보정하는 모든 일은 이 오른쪽 세상에서만 일어나. 여기서 아무리 테이블 위치를 옮기고, 출입구 크기를 망가뜨려도 왼쪽 세상에는 아무런 영향을 주지 않아. 왼쪽의 ‘운영 시스템’은 오직 현재 운영 설정 v3.2라는 파일 하나만 바라보고 있거든. 매장의 체류 시간, 방문객 수 같은 모든 중요한 운영 수치는 저 파일에 근거해서만 계산돼.”

솔라의 시선이 두 영역을 가르는 경계선에 꽂혔다. 그제야 ‘승인 전 초안’이 어디에 ‘떠 있는지’에 대한 답을 알 수 있었다. 그것은 물리적으로 다른 파일, 다른 데이터베이스 테이블, 혹은 완전히 격리된 메모리 공간에 존재했다. 운영 시스템이 결코 참조하지 않는 안전한 모래상자 안에 있었다.

“그럼 ‘승인’ 버튼을 누르면…”

“바로 그게 이 경계를 넘는 유일한 열쇠야.”

루나는 오른쪽 초안 편집기에서 왼쪽 운영 시스템으로 향하는 화살표를 하나 그렸다. 그리고 그 화살표 위에 ‘승인’이라고 적었다.

“사용자가 ‘승인’을 누르는 순간, 시스템은 몇 가지 일을 순서대로 해. 먼저, 오른쪽에서 완성된 새로운 설정 파일의 유효성을 검사해. 그리고 기존의 현재 운영 설정 v3.2이전 운영 설정 v3.2 같은 이름으로 백업해 두지. 마지막으로, 새로운 설정 파일을 현재 운영 설정 v3.3으로 명명하고 왼쪽 세상으로 옮기는 거야. 그러면 그때부터 운영 시스템은 새로운 v3.3 설정을 기준으로 모든 것을 분석하기 시작해.”

솔라는 탄성을 내뱉었다. ‘승인’은 단순한 덮어쓰기가 아니었다. 그것은 엄격한 절차를 거쳐 시스템의 ‘공식 기준’을 교체하는 행위였다. 이 설계의 핵심은 AI 기능의 성능이 아니었다. 진짜 핵심은, 아무리 불완전하고 실험적인 시도를 하더라도, 그것이 ‘승인’이라는 단 하나의 관문을 통과하기 전까지는 실제 운영 환경에 단 1의 오차도 만들 수 없도록 만든 명확한 ‘경계’ 그 자체였다. AI를 도입했다는 사실보다, 승인되지 않은 초안이 운영 수치를 절대 바꾸지 못하게 한 이 경계 설계가 훨씬 중요했다.

“이제 완전히 알겠어. 우리가 AI를 시스템에 붙였다는 건, 그냥 똑똑한 기능을 추가한 게 아니었구나. 그보다는, AI가 만든 불확실한 결과물을 안전하게 실험하고 다듬어서, 확신할 수 있는 결과물만 운영 시스템으로 넘길 수 있는 ‘다리’와 ‘검문소’를 설계한 거였어. 중요한 건 AI가 아니라 그 경계였네.”

솔라는 루나가 그린 그림을 한참 동안 들여다보았다. ‘운영 경계 설계 원칙’. 그녀는 마음속으로 이 개념에 이름을 붙였다. 이것은 단지 AI Scene 초안에만 해당하는 이야기가 아니었다. 앞으로 어떤 새로운 AI 기능, 혹은 위험성을 내포한 새로운 기능을 도입하더라도 반드시 지켜야 할 원칙이었다.

잠시 후, 솔라는 자신의 노트북을 열었다. 최근 구상하던 새로운 기능에 대한 메모장이었다. 고객의 동선을 분석해 가장 인기 있는 상품 진열 위치를 AI가 추천해 주는 기능. 그녀는 문서를 열자마자 가장 먼저 페이지를 둘로 나누었다. 그리고 루나가 했던 것처럼 적기 시작했다.

[운영 시스템: 현재 진열 추천 로직] [AI 초안: 제안된 진열 위치]

그리고 두 영역 사이에 굵은 경계선을 그리고, 그 위를 가로지르는 화살표에 ‘운영자 최종 승인’이라고 적었다. 그녀의 설계 원칙 1번은 명확했다. AI가 아무리 그럴듯한 ‘초안’을 만들어내더라도, 그것은 사람이 그 효용과 안정성을 판단하고 ‘승인’하기 전까지는 단지 흥미로운 제안일 뿐, 실제 매장의 운영을 단 한순간도 흔들어서는 안 된다. AI의 똑똑함보다 시스템의 안정성이 언제나 먼저였다. 솔라는 그 원칙을 지키는 단단한 경계를 설계하는 것이야말로, 진짜 신뢰할 수 있는 시스템을 만드는 첫걸음임을 깨달았다.