챗봇의 함정

저는 종종 생성형 AI가 스마트폰만큼이나 큰 기술적 변화라고 말하곤 합니다. 이 비유를 드는 이유 중 하나는 스마트폰이 얼마나 보편화되었는지에 있습니다. 많은 사람들에게 스마트폰은 아침에 눈을 뜨면서 가장 먼저 보고, 잠들기 직전에 마지막으로 보는 기기입니다.

하지만 제가 이 비교를 드는 데는 또 다른 이유도 있습니다. 예를 들어, iPhone이 처음 출시되었을 때 모바일 브라우저 트래픽이 폭발적으로 증가하며 기업들이 이에 대응하기 위해 분주해졌습니다. 대부분의 경우 "m.google.com"이나 "m.facebook.com"과 같은 페이지를 만들어 데스크톱 형식을 세로 화면에 맞게 억지로 끼워 넣는 방식이었습니다.

결국 10년 가까운 시간이 걸렸지만, 우리는 "네이티브" 모바일 경험이 무엇인지 알아냈습니다. 이를 위해 완전히 새로운 상호작용 패턴을 발명해야 했습니다: 핀치 줌, 당겨서 새로고침, 스와이프로 진행 등. 그 결과 Instagram, Uber, Strava와 같은 앱들이 탄생했으며, 이러한 제품들은 데스크톱 우선의 세계에서는 존재할 수 없었던 것들입니다.

오늘날 우리는 AI 인터페이스와 관련하여 유사한 변곡점에 서 있습니다. 하지만 데스크톱 웹사이트를 스마트폰 화면에 억지로 끼워 넣는 대신, 우리는 AI 기능을 채팅 창에 강제로 끼워 넣고 있습니다. "m.facebook.com"이 모바일의 진정한 잠재력을 제대로 담아내지 못한 타협점이었던 것처럼, 보편적인 챗봇 인터페이스는 AI의 변혁적 능력을 제한하고 있습니다.

현재 제가 접하는 "AI 지원" 제품 중 95%는 기존 SaaS 앱에 챗봇을 붙인 형태인 것처럼 보입니다. 하지만 실제로 이 비율은 5%에 가까워야 합니다.

대화의 인지적 비용

챗봇 인터페이스가 종종 잘못된 선택인 이유를 이해하려면, 그 근본적인 한계를 살펴봐야 합니다. 가장 명백한 한계는 사용자에게 부과되는 인지적 부담입니다.

AI 기능의 차트를 상상해 보세요. 두 축은 "이것이 얼마나 큰 영향을 미칠 수 있는가?"와 "이것을 효과적으로 사용하기 위해 얼마나 많은 두뇌 활동이 필요한가?"로 나뉩니다. 이상적으로, 도구는 큰 영향을 미치면서도 최소한의 적극적 사고만 필요로 해야 합니다. LLM의 경우, 영향력은 높지만 사용하는 데 드는 인지적 부담도 높습니다.

예를 들어, ChatGPT를 사용하여 코드를 생성한다고 상상해 보세요(고급 AI 지원 코드 편집기가 없는 상태에서). 출력된 코드에 버그가 있어 수정해야 한다고 가정합시다. 챗봇 인터페이스를 사용하는 경우, 다음과 같은 단계를 거쳐야 합니다:

  1. 전체 문서를 복사(또는 생성)하여 채팅 창에 넣기
  2. 수정해야 할 버그(또는 변경할 줄)를 설명하기
  3. 전체 문서가 다시 생성되기를 기다리기
  4. 어떤 부분이 변경되었는지 찾아보기
  5. 다른 부분이 의도치 않게 수정되거나 잘못 생성되지 않았는지 확인하기
  6. 결과를 원래 코드 편집기로 다시 복사하기

이 과정은 단순한 수정을 위해 너무 많은 작업이 필요합니다. 만약 코드를 반복적으로 수정하거나 ChatGPT를 디버깅 도구로 사용하려고 한다면, "... 나머지 코드는 여기 있습니다 ..." 같은 부분을 반복적으로 확인하거나 우회해야 하는 상황이 발생할 수 있습니다.

또한 새로운 사용자들에게 제공되는 적절한 힌트(혹은 그 부재) 문제도 있습니다. 저는 이제 새로운 LLM에서 무엇을 기대할 수 있는지 대체로 알고 있지만, 모든 사용자가 그렇지는 않습니다. 문제는 챗봇이 범용적이라는 점에 있지 않습니다. 오히려 챗봇은 그들의 기능이나 한계에 대해 사용자에게 거의 아무런 단서도 제공하지 않는다는 점입니다. 명확한 UI 표시가 없으면 사용자는 무엇이 가능하고 무엇이 불가능한지를 추측에 의존해야 합니다.

Amelia Wattenberger가 이 점을 특히 잘 설명했다고 생각합니다:

좋은 도구는 그것이 어떻게 사용되어야 하는지를 명확히 알려줍니다. 그리고 더 중요한 것은, 어떻게 사용되어서는 안 되는지도 알려줍니다. 좋은 장갑을 생각해 봅시다. 장갑은 손 모양으로 되어 있어 어떻게 사용해야 할지 즉시 알 수 있습니다. 금속 메시 장갑은 물리적 손상을 방지하기 위한 것이고, 고무 장갑은 화학적 손상을 방지하기 위한 것이며, 가죽 장갑은 오토바이에서 멋있어 보이기 위한 것입니다.

이를 일반적인 챗 인터페이스와 비교해 보세요. 우리가 받는 유일한 단서는 텍스트 상자에 문자를 입력해야 한다는 것입니다. 이 인터페이스는 Google 검색 상자, 로그인 폼, 신용카드 입력 필드와 동일하게 보입니다.

다행히도, 컴퓨터 인터페이스는 50년 동안 존재해 왔으며, 이 문제에 대한 해결책은 40년 전부터 있었습니다.

직접 조작: 40년 된 솔루션

챗봇 UX가 문제가 되는 이유를 더 잘 이해하기 위해 1980년대의 개념인 직접 조작 인터페이스에 대해 이야기하고자 합니다. Ben Schneiderman이 40년 전에 소개한 이러한 인터페이스는 몇 가지 주요 특성을 가지고 있습니다:

  • 객체의 지속적인 표현: 사용자는 화면에서 상호작용할 수 있는 객체의 시각적 표현을 볼 수 있습니다.
  • 물리적 동작: 복잡한 구문이나 명령 대신, 사용자는 클릭, 드래그, 핀치와 같은 물리적 동작으로 객체와 상호작용합니다.
  • 빠르고 점진적이며 되돌릴 수 있는 동작: 사용자는 동작을 빠르게 수행하고 즉각적인 결과를 확인하며, 쉽게 실행 취소하거나 동작을 수정할 수 있습니다.
  • 즉각적인 피드백: 사용자 동작의 효과가 화면에 즉시 나타나 결과를 바로 확인할 수 있습니다.

오늘날 이러한 인터페이스는 드래그 앤 드롭, 창 크기 조정, 볼륨 슬라이더, 핀치 줌 등과 같은 상호작용을 의미합니다. 이는 자명하고 일상적인 인터페이스처럼 보이지만, 누군가가 이를 명시적으로 발명하기 전에는 존재하지 않았습니다.

그리고 우리는 여전히 새로운 방식으로 직접 조작을 장려하는 소프트웨어를 만들고 있습니다. 예를 들어 Figma는 캔버스의 모든 객체를 선택 가능하게 만들어 핸들과 슬라이더를 드래그하는 동안 속성이 업데이트 되도록 합니다. 사용자는 실제로 설계 중인 미디어에 깊이 몰입할 수 있습니다.

유사하게 Notion은 "블록"이라는 핵심 개념을 사용하여 손으로 만질 수 있고 쉽게 수정할 수 있는 문서를 만듭니다. 사용자는 블록을 드래그하여 섹션을 재구성하거나 이를 다른 출력 유형으로 변환할 수 있습니다.

현재 많은 AI 인터페이스의 문제는 위의 원칙을 무시한다는 점입니다. 어떤 명령이 작동할지 명확하지 않습니다. 변경은 종종 점진적이기보다는 전부 아니면 전무로 이루어집니다. 피드백은 예측할 수 없고 자주 지연됩니다. 또한 동작을 쉽게 되돌릴 수 없습니다.

분명히 말하자면, 자연어 상호작용을 완전히 포기하자는 것이 아닙니다. 대신 대화와 직접 조작 간의 적절한 균형을 찾는 것이 중요합니다. 때로는 문서 구조에 대해 논의하고 싶을 때가 있지만, 다른 때는 단순히 한 문장을 고치고 싶을 때도 있습니다.

여기서 중요한 통찰은 다양한 작업이 서로 다른 상호작용 모델을 필요로 한다는 것입니다. Figma가 시각적 디자인을 위해 직접 조작을 사용하면서도 여전히 파워 유저를 위한 명령 팔레트를 포함하는 것처럼, AI 인터페이스는 여러 상호작용 패턴과 콘텐츠 추상화 방식을 신중하게 혼합해야 합니다.

추상화 다이얼 조정하기

챗봇을 넘어서는 방법을 살펴보기 위해 다양한 상호작용 모델이 실제로 어떻게 함께 작동할 수 있는지 살펴보겠습니다. Cursor라는 AI 지원 코드 편집기를 예로 들어 보겠습니다. 이 편집기는 단일 인터페이스에서 여러 수준의 추상화가 공존할 수 있음을 보여줍니다:

가장 낮은 수준에서는 문자 단위 코드 완성이 있습니다. 컨텍스트 전환이나 프롬프트를 구성할 필요도 없고 흐름을 끊을 필요도 없으므로 인지 부하가 거의 필요하지 않습니다. 한 단계 더 올라가면 인라인 코드 생성이 있습니다. 새로운 함수나 컴포넌트를 작성해야 할 때 필요한 곳에서 바로 자연어로 원하는 것을 설명할 수 있습니다. 하지만 중요한 것은 결과가 차이로 표시된다는 점입니다. 무엇이 추가되거나 수정되는지 정확히 확인하고 변경 사항을 세부적으로 수락할 수 있습니다.

가장 높은 수준의 추상화에는 아키텍처 분석이나 문제 디버깅과 같은 더 복잡한 작업을 위한 사이드바 채팅이 있습니다. 하지만 여기에서도 인터페이스는 단순한 챗봇이 아닙니다. AI는 코드베이스에 대한 컨텍스트를 가지고 있고, 특정 파일과 함수를 참조할 수 있으며, 미리 보고 바로 적용할 수 있는 변경 사항을 제안할 수 있습니다.

중요한 것은 단순히 인터페이스만 다른 것이 아니라 작업 규모에 따라 적합한 인터페이스라는 점입니다. 변수 이름을 자동 완성하기 위해 채팅 대화가 필요하지는 않지만 복잡한 알고리즘을 이해하기 위해 대화가 필요할 수도 있습니다.

그리고 모든 변경 사항이 차이점(diff)을 생성하도록 미세 조정된 모델을 통해 필터링되도록 하면 코드 제안의 출처가 어디든 변경 사항을 검토하고 수락하는 통합 인터페이스가 있다는 것을 의미합니다.

이러한 '계층화된 추상화' 패턴은 코드 편집기를 넘어 훨씬 더 확장될 수 있습니다. 비슷한 원리를 적용하는 AI 작성 도구를 상상해 보세요:

  • 문자 수준 복사 편집 및 재작성 제안
  • 문장 수준 증거 및 명확성 분석
  • 문단 수준 주제와 흐름에 대한 제안
  • 문서 수준 구조와 논제에 대한 피드백
  • 모든 변경 사항은 구체적이고 되돌릴 수 있는 diff로 제공

Maggie Appleton은 챗봇 개념을 버리고 AI 지원 작문 도구가 어떤 모습일 수 있는지 훌륭한 탐구를 했습니다. 예를 들어 ChatGPT가 다양한 편집 "모드"를 전환할 수 있다면 어떨까요? 아니면 증거를 수집하거나 주장을 강화하는 과정을 구조화하는 도구를 만든다면 어떨까요?

챗봇 시대를 넘어서

좋은 소식은 새로운 유형의 AI 제품에서 실질적인 진전이 나타나기 시작했다는 것입니다. AI 기반 이메일 클라이언트인 Shortwave는 버튼, 키보드 단축키, 컨텍스트 제안 등으로 UI 전반에 AI 작업을 통합했습니다. 또한 AI 협업을 위한 시각적 작업 공간인 Cove는 AI가 직접 조작을 수행할 수 있는 능력을 부여하기 시작했습니다.

기초 모델 개발자들이 이러한 아이디어를 네이티브로 통합할 것이라는 점에서도 낙관적입니다. 예를 들어 ChatGPT의 새로운 Canvas 기능은 훨씬 더 나은 직접 조작과, 코드 작성이나 산문 작성 여부에 따라 다양한 전문 도구를 제공합니다. 특히 빠른 작업 메뉴는 LLM의 강력함을 특정 사용 사례에 활용할 때 무엇을 할 수 있는지 보여주는 훌륭한 예입니다.

저는 AI 인터페이스의 미래가 더 나은 챗봇이 아니라, AI의 기능을 직접 조작할 수 있도록 신중하게 설계된 도메인 특화 도구에서 발견될 것이라고 굳게 믿습니다. 이를 실현하려면 디자이너와 엔지니어 모두의 학습과 성장이 필요할 것입니다.

제품 디자이너는 챗봇 패러다임을 넘어 특정 사용자에게 맞는 AI 기능을 조정하는 방법을 고려해야 합니다. AI가 할 수 있는 일이 무엇인지 여전히 알아가는 중이고 기술이 계속 진화하고 있다는 점을 감안할 때 이는 어려운 과제입니다. 다음 달에 구현될 수 있는 기능을 염두에 두고 인터페이스를 어떻게 설계합니까? 더 주체적인 AI가 보편화된 세계는 UX 관점에서 어떤 모습일까요?

엔지니어도 자체적인 도전에 직면해 있습니다. 이러한 새로운 인터페이스를 구축하려면 등장하는 AI 스택에 대한 친숙함이 필요합니다. 예를 들어 가드레일, RAG 파이프라인, 환각 완화, 스트리밍 응답 등을 고려해야 합니다. AI 엔지니어링에 대한 제 생각이 많으니 이 주제에 대한 후속 내용을 기대해 주세요.

m.google.com에서 Instagram과 Uber로 이동한 것처럼, 일반적인 채팅 인터페이스에서 AI 네이티브 경험으로 전환하는 시점에 와 있습니다. 시간이 지나면 이러한 경험이 정확히 어떤 모습일지는 알 수 있겠지만, 분명한 것은 그 어느 때보다 더 접근하기 쉽고 직관적이며 직접 조작할 수 있는 AI의 힘을 활용할 수 있는 인터페이스가 필요하다는 점입니다.