최신 AI EY의 펄스 설문조사에 따르면 고위 리더의 87%가 사이버 보안 및 데이터 문제부터 정책과 거버넌스의 부재에 이르기까지 다양한 도입 장벽을 지적했습니다. 생성형 AI(GenAI)를 비즈니스에 통합하려면 이를 실현하려는 의지와 역량이 모두 필요합니다. 이 둘 사이의 간극에는 운영상의 복잡성과 이 신기술에 대한 신뢰 확보의 필요성이 자리하고 있습니다.
기업은 수십 년 동안 소프트웨어를 개발하고 배포해 왔지만, 생성형 AI는 제어라는 새로운 과제를 제시합니다. 기존 소프트웨어와 달리 생성형 AI 애플리케이션은 자율적으로 작동하며 비결정론적입니다. 따라서 적어도 아직은 생성형 AI 애플리케이션이 의도한 작업만 수행하고 의도하지 않은 작업은 절대 하지 않을 것이라고 신뢰할 수 없습니다. 이러한 제어력 부족은 전면적인 도입을 가로막습니다. 제어 문제는 컨텍스트의 영향력을 살펴보면 더 잘 이해할 수 있으며, 기업은 이러한 이해를 바탕으로 기존 소프트웨어 설계를 확장해 생성형 AI에 맞게 조정할 수 있습니다.
충분한 컨텍스트가 있으면 GenAI 애플리케이션의 불확실성을 관리할 수 있습니다. 컨텍스트가 GenAI 애플리케이션이 할 수 있는 일과 비즈니스가 의도하는 바 사이의 간극을 메워 주기 때문입니다. 컨텍스트는 GenAI 애플리케이션, 환경, 비즈니스라는 세 가지 영역에서 확보할 수 있습니다.
애플리케이션 컨텍스트 비교
GenAI 애플리케이션에서 사용할 수 있는 컨텍스트는 기존 애플리케이션의 컨텍스트와 크게 다릅니다. 기존 애플리케이션은 사전에 정의된 작업의 매개변수로 허용할 입력을 미리 결정합니다. 동일한 입력은 항상 동일한 결과를 생성합니다. 반면 GenAI 애플리케이션은 훨씬 더 다양한 입력을 대규모 언어 모델(LLM)에 전달하며, 이러한 모델은 설계상 비결정적인 출력을 생성합니다. 따라서 동일한 입력이 같은 결과를 생성할 수도 있고 그렇지 않을 수도 있습니다.
전통적인 애플리케이션의 결정론적 동작 예시:
이 Python 예제는 생년월일과 현재 날짜를 사용하여 사람의 나이를 계산합니다. 간결성을 위해 형식 처리나 올해 생일이 이미 지났는지 여부를 고려하는 등의 세부 사항은 포함하지 않았습니다.
from datetime import datetime
from typing import Union
def calculate_age(birthdate:str, current_date:str) -> int
age = current_dt.year - birth_dt.year
return age
주어진 값: 생년월일 = 1972년 6월 30일, 현재 날짜 = 2025년 8월 31일
나이 = 53세.
생성형 AI 애플리케이션의 비결정성 예시:
이 애플리케이션은 개인의 생년월일이나 현재 날짜를 알지 못하더라도 보다 일반적인 정보를 사용하여 그 사람의 추정 연령을 제시할 수 있습니다.
생성형 AI 애플리케이션은 LLM 추론을 위해 매우 다양한 입력을 받습니다.
프롬프트: 디스코 음악을 좋아하고 바르셀로나 올림픽 여자 100m 금메달리스트가 누구였는지 기억하는 사람은 몇 살일까요?
이 정확한 프롬프트를 세 차례에 걸쳐 각각 입력했을 때, LLM이 내놓은 답변은 다음과 같았습니다:
응답 1: 55세
응답 2: 40~60세
응답 3: 40대, 50대 또는 60대
기존 애플리케이션의 Python 함수는 두 가지 입력값(생년월일과 현재 날짜)을 받아 연도 차이를 계산합니다. 이 함수는 정보를 종합하거나 결론을 도출할 수 없으므로 사람의 나이를 추론하거나 그 사람의 선호도, 습관 등에 관한 설명을 입력으로 받을 수 없습니다.
이에 비해 GenAI 애플리케이션은 어린 시절 유행했던 음악 장르에 관한 진술과 주요 스포츠 행사에 관한 일반 상식을 바탕으로 답변을 추론할 수 있습니다. 하지만 질문을 바꾸어 표현하거나 온도 설정(LLM 응답의 무작위성 수준에 영향을 미침)을 조정하는 등 입력에 작은 차이가 생기면 답변이 달라질 수 있습니다. 응답 간에 애플리케이션 코드가 변경되지 않았더라도 응답은 서로 다를 수 있습니다. 이러한 편차는 프롬프트가 복잡할수록, 추가 입력 소스가 포함될수록, 그리고 추론 인프라의 라우팅 구성 요소가 다르게 동작할수록 커집니다.
이러한 재량을 고려하면, 추가적인 컨텍스트가 없을 때 생성형 AI 애플리케이션이 의도된 동작에서 크게 벗어나는 경우를 쉽게 상상할 수 있습니다. 이 두 가지 컨텍스트 예시는 기존 소프트웨어의 강한 결정성과 생성형 AI 애플리케이션의 비결정성을 잘 보여 줍니다. 기존 소프트웨어가 컨텍스트를 바탕으로 사람의 나이를 추측하거나 예측할 것이라고 기대하지는 않지만, 생성형 AI 애플리케이션은 이러한 유형의 비결정적 질문을 일상적으로 처리할 것으로 기대됩니다. 애플리케이션에 충분한 컨텍스트가 없다면, 다음으로 애플리케이션 환경을 살펴봐야 합니다.
환경적 컨텍스트는 애플리케이션 외부에서 정보를 제공합니다
환경은 애플리케이션을 둘러싼 인프라와 서비스로 구성됩니다. 1982년 7월 컴퓨터 업계 세미나 CreativeThink에서, 앨런 케이는 소프트웨어와 하드웨어의 긴밀한 연관성을 굳게 믿었기에 “소프트웨어를 진정으로 중요하게 생각하는 사람이라면 자신만의 하드웨어를 만들어야 한다”고 말했습니다. 저는 이 생각을 확장해 배포 환경까지 포함하고자 합니다.
애플리케이션은 진공 상태에서 존재하지 않습니다. 다양한 인프라 서비스가 결합되어 애플리케이션이 실행될 수 있는 환경을 제공합니다. 이러한 서비스는 애플리케이션 외부에 존재하지만, 하드웨어와 마찬가지로 애플리케이션이 제대로 작동하는 데 필수적입니다. 여기서 한 걸음 더 나아가면, 이러한 인프라 서비스는 시간의 흐름에 따라 풍부한 텔레메트리 데이터를 수집하고 추적하는 다양한 관측 가능성 솔루션을 통해 면밀히 모니터링됩니다. 이 데이터는 애플리케이션의 성능과 주변 환경이 애플리케이션에 미칠 수 있는 영향을 보여 줍니다.
환경 컨텍스트는 수동형과 능동형의 두 가지 유형으로 나눌 수 있습니다. 모든 형태의 텔레메트리(예: 로그, 메트릭, 트레이스, 이벤트)는 인프라와 애플리케이션이 작동하는 동안 지속적으로 생성되고 수집되므로 수동형으로 간주할 수 있습니다. 경고, 알림, 대시보드는 능동형입니다. 이들은 규칙을 사용하여 텔레메트리를 해석하고 운영 컨텍스트를 전달합니다. 규칙을 조정하면 정보에 운영상의 의미가 부여되어, 환경 전반의 허용 한계에 근접하거나 이를 초과하는 시점을 판단할 수 있습니다.
GenAI 애플리케이션에서는 자율 구성 요소가 보일 수 있는 사실상 무한한 행동을 포괄할 신뢰할 만한 텔레메트리가 아직 존재하지 않기 때문에 규칙 기반 접근 방식을 적용하기가 어렵습니다. 그렇다고 혁신이 이루어지지 않고 있다는 뜻은 아닙니다. 현재 두 가지 접근 방식이 시도되고 있습니다. 하나는 GenAI의 성공 여부를 측정하는 도메인 기반 메트릭이고, 다른 하나는 LLM-as-a-Judge입니다. 전자는 다른 수단으로 정답을 판별한 다음 이를 GenAI의 결과와 비교하여 성공률과 실패율을 집계합니다. 후자는 하나의 LLM을 사용해 다른 LLM의 정확성을 평가합니다. 서로 다른 이 두 접근 방식이 환경적 맥락을 활용해 GenAI를 실질적으로 제어하는 데 얼마나 기여할지는 시간이 지나야 알 수 있을 것입니다.
비즈니스 의도가 컨텍스트의 전체 그림을 완성한다
비즈니스 의도는 “비즈니스가 원하는 모든 것을 포함하고, 원하지 않는 것은 아무것도 포함하지 않는 것”으로 정의됩니다. 이는 애플리케이션과 환경만으로는 놓칠 수 있는 상황까지 포괄합니다.
최근 뉴스에서는 애플리케이션의 생성형 AI 구성 요소에 지나치게 큰 권한이 부여되어, 데이터베이스에서 모든 고객 레코드를 삭제하는 것과 같이 막대한 피해를 초래하는 작업을 수행한 사례가 주목받았습니다. 다음은 이 사례에서 비즈니스 의도와 생성형 AI 애플리케이션이 취할 수 있는 잠재적 행동 사이의 간극을 보여 주는 몇 가지 데이터 포인트입니다.
| 발생한 일 | 누락된 비즈니스 맥락 |
|---|---|
| 코드 동결 기간에 AI 코딩 도구가 프로덕션 데이터베이스를 삭제했습니다. |
|
| AI 코딩 도구는 데이터베이스 롤백이 지원되지 않고 복원할 인스턴스도 없다고 밝혔지만, 실제로는 롤백을 수동으로 실행할 수 있었습니다. |
|
이 사례 연구는 생성형 AI에 허용된 작업과 기업이 생성형 AI가 수행하기를 의도한 작업 사이에서 발생할 수 있는 수많은 잠재적 격차 중 몇 가지를 보여줍니다.
레코드를 삭제하는 기능을 갖춘 애플리케이션을 설계하는 것은 지극히 합리적이지만, AI가 허가를 요청하지 않고 모든 레코드를 삭제하도록 허용하는 것은 그렇지 않습니다. 기존 소프트웨어에서는 비즈니스 손실 위험을 줄이기 위해 레코드 삭제 권한을 제한하지만, 생성형 AI는 역할 기반 액세스 제어만으로는 충분히 통제할 수 없는 자율성을 도입합니다. 이때 비즈니스 맥락은 예상되는 행동과 예상치 못한 행동을 구분해 제시함으로써 도움이 됩니다. 이러한 구분은 명시적으로 금지되는 작업과 사람의 개입을 위해 반드시 일시 중지해야 하는 시점을 포함한 구체적인 요구 사항으로 전환할 수 있습니다. 이처럼 세밀한 통제를 가능하게 하는 것은 전체 맥락입니다.
GenAI가 등장하기 전에 구상된 애플리케이션 아키텍처만으로는 충분하지 않습니다. GenAI의 등장으로 애플리케이션, 애플리케이션이 작동하는 환경, 비즈니스 의도라는 세 가지 컨텍스트 영역을 모두 결합하는 새로운 아키텍처 패턴이 필요해졌습니다. Google DeepMind의 선임 AI 관계 엔지니어인 Phil Schmid의 설명은 GenAI 애플리케이션이 가져온 핵심적인 차이를 이해하는 데 특히 유용합니다. 이 설명은 LLM이 입력의 일부로 컨텍스트를 제공받는다는 점을 강조하고, GenAI 애플리케이션의 다양한 구성 요소가 각기 컨텍스트를 어떻게 정의하고 활용하는지를 보여 줍니다.
GenAI 애플리케이션의 아키텍처와 엔지니어링은 비즈니스 의도에 지속적으로 부합하는 결과를 도출하기 위해 세 가지 컨텍스트 영역을 모두 활용해야 합니다. 완전한 컨텍스트 그림이 없다면 통제는 허울에 불과하고, 신뢰는 존재할 수 없으며, 전면적인 도입은 불가능합니다.
작성자 소개

관련 블로그 게시물

컨텍스트를 통한 생성형 AI 애플리케이션 제어
생성형 AI 앱을 효과적으로 제어하려면 애플리케이션, 환경 및 비즈니스 맥락을 활용해야 합니다. 완전한 맥락이 신뢰와 도입을 보장하는 이유를 알아보세요.