EY가 발표한 최신 AI Pulse 설문조사에 따르면, 고위 리더 87%가 사이버보안, 데이터 문제부터 정책과 거버넌스 부족까지 다양한 도입 장애를 꼽았습니다. 생성형 AI(GenAI)를 비즈니스에 도입하려면 실행 의지와 역량 모두가 필요합니다. 그 사이의 격차는 운영 마찰과 이 새로운 기술에 대한 신뢰 구축으로 메워집니다.
수십 년간 기업들은 소프트웨어를 구축하고 배포해 왔지만, GenAI는 새로운 과제인 ‘제어’를 요구합니다. 기존 소프트웨어와 달리 GenAI 애플리케이션은 자율성을 갖고 비결정적입니다. 따라서 GenAI 애플리케이션이 오직 의도한 대로만 작동하고 의도하지 않은 행동을 하지 않을 것이라고 단정할 수 없습니다—아직은 그렇습니다. 제어가 부족하면 본격적인 도입이 어렵습니다. 제어 문제는 맥락의 힘을 살펴볼 때 더욱 명확해지며, 이 이해를 바탕으로 기업은 기존 소프트웨어 설계를 GenAI에 맞게 확장할 수 있습니다.
충분한 맥락이 있으면 GenAI 애플리케이션의 불확실성을 관리할 수 있습니다. 맥락이 GenAI 애플리케이션의 기능과 비즈니스 의도 간의 간극을 메우기 때문입니다. 맥락은 GenAI 애플리케이션, 환경, 비즈니스 세 영역에서 얻을 수 있습니다.
GenAI 애플리케이션에서 제공하는 컨텍스트는 기존 애플리케이션과 크게 다릅니다. 전통적인 애플리케이션은 사전에 정해진 작업에 맞춰 입력값을 제한합니다. 같은 입력은 항상 같은 결과를 만듭니다. 반면, GenAI 애플리케이션은 대규모 언어 모델(LLM)에 훨씬 더 다양한 입력을 허용하며, 이 모델은 설계상 출력을 예측할 수 없습니다. 동일한 입력이라도 같은 결과가 나올 수도, 달라질 수도 있습니다.
전통적인 애플리케이션 결정론 예시:
이 Python 예제는 생년월일과 현재 날짜를 사용해 나이를 계산합니다. 간결함을 위해 타입 처리나 올해 이미 지난 생일에 대한 고려는 포함하지 않았습니다.
datetime에서 datetime을 가져오기
from typing import Union
def calculate_age(생년월일:
str, 현재_날짜:
str) -> int
age = current_dt.year - birth_dt.year
나이 반환
생년월일은 1972년 6월 30일이며, 현재 날짜는 2025년 8월 31일입니다
나이 53세
GenAI 애플리케이션의 비결정성 사례:
이 애플리케이션은 사람의 생년월일이나 현재 날짜를 몰라도 더 일반적인 정보를 바탕으로 나이를 추정할 수 있습니다.
생성형 AI 애플리케이션은 다양한 입력을 받아 LLM 추론을 수행합니다.
질문: 디스코 음악을 좋아하고 바르셀로나 올림픽 여자 100M 금메달리스트를 기억하는 사람은 몇 살일까요?
이 동일한 질문을 세 번 투입한 후, LLM이 제시한 답변은 다음과 같습니다:
응답 1: 55세
응답 2: 40~60세
응답 3: 40대, 50대, 60대
기존 애플리케이션 안의 Python 함수는 생년월일과 현재 날짜 두 가지 입력을 받아 연차를 계산합니다. 이 함수는 사람 나이를 추론하거나, 선호도와 습관 같은 설명을 처리하지 못합니다. 스스로 종합하거나 판단하지 않기 때문입니다.
비교해보면 GenAI 애플리케이션은 어린 시절 즐겼던 인기 음악 장르나 주요 스포츠 이벤트에 대한 상식 같은 내용을 받아들여 답변을 도출하지만, 질문 표현이나 온도 설정(LLM 응답의 무작위성 수준에 영향을 줌) 같은 입력의 작은 차이로 인해 답변이 달라집니다. 애플리케이션 코드가 같아도 응답이 달라질 수 있습니다. 이 차이는 프롬프트가 복잡해지고, 추가 입력 소스가 포함되며, 추론 인프라의 라우팅 요소 동작에 따라 더 커집니다.
이런 유연성을 감안하면 GenAI 애플리케이션이 추가적인 맥락 없이 의도와 크게 벗어날 수도 있다는 점을 쉽게 떠올릴 수 있습니다. 두 가지 맥락 예시는 기존 소프트웨어가 매우 결정론적인 반면, GenAI 애플리케이션은 비결정론적임을 보여줍니다. 기존 소프트웨어는 맥락을 바탕으로 사람의 나이를 추정하거나 예측하지 않지만, GenAI 애플리케이션은 비결정적 질문에 매번 대응할 수 있어야 합니다. 애플리케이션에 충분한 맥락이 없을 경우, 다음 단계로 애플리케이션 환경을 살펴봅니다.
환경은 애플리케이션을 둘러싼 인프라와 서비스로 구성됩니다. 1982년 7월 컴퓨터 산업 세미나 CreativeThink에서 앨런 케이는 “소프트웨어를 진지하게 생각하는 사람은 직접 하드웨어를 만들어야 한다”고 말했습니다. 그는 둘 사이의 긴밀한 연결을 강하게 믿었기 때문입니다. 저는 그 생각을 확장해 배포 환경까지 포함하고자 합니다.
애플리케이션은 독립적으로 존재하지 않습니다. 다양한 인프라 서비스가 결합되어 애플리케이션이 실행될 환경을 제공합니다. 이 서비스들은 하드웨어처럼 애플리케이션 외부에 있지만 동시에 정상적인 작동에 필수적입니다. 나아가 우리는 여러 관찰 솔루션을 활용해 시간에 따른 상세한 원격 측정 데이터를 수집하며 이러한 인프라 서비스를 철저히 모니터링합니다. 이 데이터는 애플리케이션의 성능과 주변 환경이 미치는 영향을 정확히 보여줍니다.
환경 맥락은 수동적 유형과 능동적 유형 두 가지로 나눌 수 있습니다. 모든 원격 측정 데이터(예: 로그, 메트릭, 추적, 이벤트)는 인프라와 애플리케이션이 작동하는 동안 끊임없이 발생하고 수집되기 때문에 수동적 데이터로 간주합니다. 반면, 경보, 알림, 대시보드는 능동적입니다. 우리는 규칙을 활용해 원격 측정 데이터를 해석하고 운영 상황을 전달합니다. 규칙 조정을 통해 정보에 운영상 의미를 부여하고, 환경 전반의 허용 범위에 근접하거나 이를 초과하는 상태를 판단할 수 있습니다.
GenAI 애플리케이션은 자율 구성 요소가 보일 수 있는 무한한 행동을 모두 포괄할 신뢰할 만한 원격 측정 데이터가 아직 부족해 규칙 기반 접근법에 한계가 있습니다. 하지만 혁신이 멈춘 것은 아닙니다. 두 가지 방향으로 해결책을 시도하고 있습니다: GenAI 성공률을 측정하는 도메인 기반 지표와 LLM을 심판으로 활용하는 방법입니다. 첫 번째는 대안적 방법으로 기준 데이터를 수집해 GenAI 결과와 비교하며 성공과 실패 비율을 집계합니다. 두 번째는 하나의 LLM이 다른 LLM의 정확성을 평가하도록 활용합니다. 시간이 지나면서 이 두 갈래 접근법이 환경적 맥락을 활용해 GenAI를 진정으로 통제하는 데 어디까지 가능할지 판가름될 것입니다.
비즈니스 의도는 “비즈니스가 원하는 모든 것과 원하지 않는 것은 전혀 없다”라는 문구로 정의합니다. 애플리케이션과 환경에서 놓칠 수 있는 상황까지 포괄합니다.
최근 뉴스에서는 애플리케이션의 GenAI 구성 요소가 데이터베이스에서 모든 고객 기록을 삭제하는 등 심각한 피해를 일으킬 만큼 강력한 권한을 부여받은 사례를 다뤘습니다. 이 상황에서 GenAI 애플리케이션의 비즈니스 의도와 실제 행위 사이에 존재하는 차이를 보여주는 몇 가지 데이터 포인트를 소개합니다.
무슨 일이 있었나요 | 놓친 비즈니스 맥락 |
---|---|
AI 코딩 도구가 코드 동결 기간에 프로덕션 데이터베이스를 삭제했습니다. |
|
AI 코딩 도구는 데이터베이스 롤백이 지원되지 않고 복원할 인스턴스가 없다고 했지만, 직접 롤백을 실행해 보니 정상 작동했습니다. |
|
이 사례 연구는 GenAI가 실제로 수행할 수 있는 기능과 기업이 기대하는 역할 사이에 발생할 수 있는 여러 차이점을 보여줍니다.
기록 삭제 기능을 애플리케이션에 설계하는 건 당연하지만, AI가 별도 허락 없이 모든 기록을 삭제하도록 허용하는 건 옳지 않습니다. 기존 소프트웨어는 비즈니스 손실 위험을 줄이기 위해 삭제 권한을 제한했지만, GenAI는 역할 기반 접근 통제로는 충분히 제어하지 못하는 자율성을 갖고 있습니다. 비즈니스 맥락은 기대되는 행동과 기대하지 않은 행동을 구분해 명확한 요구사항으로 바꾸며, 여기에는 금지된 행동과 인간 개입을 위한 필수 중단도 포함됩니다. 이 수준의 통제는 모든 맥락을 파악할 때 비로소 가능해집니다.
GenAI 등장 이전에 설계된 애플리케이션 아키텍처는 충분하지 않습니다. GenAI의 등장은 애플리케이션, 환경, 비즈니스 의도 세 가지 컨텍스트 도메인을 통합하는 새로운 아키텍처 패턴을 요구합니다. Google DeepMind의 수석 AI 관계 엔지니어 필 슈미트가 제시한 설명은 GenAI 애플리케이션이 가져오는 핵심 차이를 이해하는 데 큰 도움이 됩니다. 이 설명은 LLM이 입력의 일부로 컨텍스트를 수용한다는 점을 강조하며, 각 GenAI 애플리케이션 구성 요소가 컨텍스트를 각각 어떻게 정의하고 활용하는지 보여줍니다.
GenAI 애플리케이션의 아키텍처와 설계는 세 가지 컨텍스트 영역을 모두 활용해 비즈니스 의도와 항상 일치하는 결과를 만들어야 합니다. 완벽한 컨텍스트 이해 없이는 통제는 허상에 불과하고, 신뢰는 무너지며, 완전한 도입도 불가능합니다.