Apps SDK가 바꾸는 ChatGPT 앱 개발 방식
ChatGPT 안에서 실행되는 앱이라는 생각
Apps SDK를 이해할 때 가장 먼저 바꿔야 할 관점은 "사용자가 어디에서 앱을 만나는가"입니다. 기존 웹앱은 사용자가 브라우저를 열고 주소를 입력하거나 검색 결과를 눌러 들어갑니다. 모바일 앱은 앱스토어에서 설치하고 홈 화면에서 실행합니다. API 연동은 보통 다른 서비스 뒤쪽에서 조용히 동작합니다.
Apps SDK 앱은 다릅니다. 사용자는 ChatGPT와 대화하다가 필요한 순간에 앱을 만납니다. "이번 주말에 갈 만한 식당을 찾아줘", "이 후보들 중에서 비교해줘", "이 장바구니에서 가장 합리적인 조합을 골라줘"처럼 자연어로 말하면 ChatGPT가 의도를 해석하고, 연결된 앱의 기능을 호출하고, 결과를 대화 안의 화면으로 보여줄 수 있습니다.
공식 문서는 Apps SDK를 "ChatGPT용 앱을 만들기 위한 프레임워크"로 설명합니다. 이 프레임워크의 핵심은 도구, 템플릿, 위젯 런타임을 연결해 ChatGPT 안에서 앱 경험을 구성하는 데 있습니다.1 즉 Apps SDK는 단순히 API를 ChatGPT에 붙이는 도구가 아닙니다. 서버에서 실행되는 기능과 사용자가 직접 조작할 수 있는 웹 기반 UI를 함께 설계하는 방식입니다.
이 차이가 중요합니다. 사용자는 더 이상 "어떤 사이트에 들어가야 하지?"를 먼저 생각하지 않습니다. 대화 속에서 문제를 말하고, ChatGPT가 적절한 기능을 찾아 연결합니다. 앱의 진입점이 메뉴나 검색창이 아니라 대화 맥락이 되는 것입니다.

Apps SDK가 제공하는 기본 경험
Apps SDK 앱의 경험은 세 단계로 나눠 볼 수 있습니다.
첫째, 사용자가 ChatGPT에 요청합니다. 요청은 명령어일 수도 있고, 모호한 질문일 수도 있습니다. 예를 들어 "이번 여행 예산을 정리해줘"라고만 말해도 ChatGPT는 대화의 앞뒤 내용을 참고해 필요한 작업을 추론합니다.
둘째, ChatGPT가 앱의 도구를 호출합니다. 여기서 도구는 서버가 공개한 기능입니다. 검색하기, 목록 가져오기, 예약 가능 시간 확인하기, 장바구니 수정하기, 문서 변환하기 같은 작업이 도구가 됩니다. 도구는 아무렇게나 호출되는 것이 아니라 입력과 출력 형식이 정해진 계약에 따라 호출됩니다.
셋째, 결과가 대화 안의 UI로 표시됩니다. 단순 텍스트만 반환하는 것이 아니라 카드, 목록, 지도, 차트, 편집 화면 같은 인터랙티브 위젯을 함께 보여줄 수 있습니다. 사용자는 이 UI를 클릭하거나 선택하거나 수정하면서 다음 행동을 이어갑니다.
예를 들어 피자 주문 앱을 생각해 봅시다. 기존 챗봇이라면 "어떤 피자를 원하시나요?"라고 묻고 텍스트로 옵션을 나열할 수 있습니다. 기존 웹앱이라면 사용자가 메뉴 화면을 직접 찾아다녀야 합니다. Apps SDK 앱은 ChatGPT가 "인원이 몇 명이고, 채식 옵션이 필요하며, 예산은 어느 정도"라는 대화 맥락을 이해한 뒤 피자 목록 위젯을 보여주고, 사용자는 그 자리에서 선택과 수정까지 할 수 있습니다.
내부 구조: MCP 서버, 도구, 위젯 런타임
Apps SDK의 기본 구조는 세 역할로 나눌 수 있습니다.
첫 번째는 MCP 서버입니다. MCP는 Model Context Protocol의 줄임말로, 대형 언어 모델 클라이언트가 외부 도구, 데이터, UI에 연결되는 방식을 표준화하는 프로토콜입니다. Apps SDK 예제 저장소는 MCP 서버가 도구 목록을 노출하고, 모델이 도구를 호출하며, 응답 메타데이터를 통해 위젯을 반환하는 흐름을 보여줍니다.2
두 번째는 ChatGPT입니다. ChatGPT는 사용자의 말을 읽고 "어떤 도구를 호출해야 하는지" 판단합니다. 개발자가 만든 앱의 모든 기능을 사용자가 직접 메뉴에서 고르는 것이 아닙니다. 모델이 대화 맥락을 바탕으로 적절한 도구를 선택합니다. 이 때문에 도구 이름, 설명, 입력 스키마를 명확하게 설계하는 일이 중요합니다. 이 주제는 뒤에서 JSON Schema와 도구 설계를 다룰 때 자세히 살펴봅니다.
세 번째는 위젯 런타임입니다. 도구 호출 결과가 단순 데이터라면 ChatGPT는 그것을 텍스트로 설명할 수 있습니다. 하지만 Apps SDK에서는 결과에 UI 리소스를 연결할 수 있습니다. 그러면 ChatGPT는 대화창 안에 웹 기반 위젯을 렌더링합니다. 위젯은 사용자가 보는 화면입니다. 버튼, 리스트, 폼, 이미지, 지도, 편집 영역 같은 요소가 여기에 들어갑니다.
정리하면 흐름은 다음과 같습니다.
MCP 서버가 "내가 제공할 수 있는 도구와 UI"를 ChatGPT에 알립니다.
사용자가 ChatGPT와 대화합니다.
ChatGPT가 맥락에 맞는 도구를 선택해 호출합니다.
MCP 서버가 구조화된 결과와 UI 정보를 반환합니다.
ChatGPT가 위젯 런타임으로 인터랙티브 화면을 보여줍니다.
사용자의 UI 조작이 다시 대화와 도구 호출로 이어집니다.
이 구조에서 모델은 의도를 해석하고, 서버는 실제 작업을 수행하며, UI는 결과를 사람이 이해하고 조작할 수 있게 보여줍니다. Apps SDK 개발은 이 세 역할을 한데 묶는 일입니다.
플러그인, 챗봇, 웹앱과 무엇이 다른가
Apps SDK를 기존 방식과 구분하면 장점이 더 선명해집니다.
| 방식 | 주된 진입점 | 결과 형태 | 한계 |
|---|---|---|---|
| 기존 플러그인 | ChatGPT의 도구 호출 | 주로 API 결과와 텍스트 | 복잡한 선택·편집 UI에 약함 |
| 일반 챗봇 | 대화창 | 텍스트 응답 중심 | 사용자가 여러 단계를 말로 반복해야 함 |
| API 연동 | 백엔드 로직 | 데이터 반환 | 사용자 경험을 직접 제공하지 않음 |
| 일반 웹앱 | 사용자가 화면 탐색 | 완전한 웹 UI | 사용자가 직접 기능을 찾아야 함 |
| Apps SDK 앱 | ChatGPT 대화 맥락 | 도구 호출 + 인터랙티브 UI | ChatGPT 환경에 맞춘 설계가 필요 |
기존 플러그인은 "ChatGPT가 외부 API를 부른다"는 관점에 가까웠습니다. 물론 이것만으로도 날씨 조회, 항공권 검색, 문서 검색 같은 작업은 가능했습니다. 하지만 사용자가 여러 후보를 비교하고, 항목을 선택하고, 조건을 바꾸고, 결과를 편집해야 하는 작업에서는 텍스트만으로 부족합니다.
Apps SDK는 이 빈틈을 메웁니다. 검색 결과를 표로 보여주고, 후보를 카드로 비교하고, 선택한 항목을 장바구니에 담고, 설정을 폼으로 수정하는 식의 경험을 대화 안에 넣을 수 있습니다. 그래서 Apps SDK 앱은 "챗봇에 API를 붙인 것"보다 "ChatGPT 안에서 실행되는 작은 웹앱"에 가깝습니다.
그렇다고 일반 웹앱과도 같지는 않습니다. 일반 웹앱에서는 사용자가 메뉴 구조를 이해하고 직접 이동해야 합니다. Apps SDK 앱에서는 ChatGPT가 사용자의 의도를 먼저 해석합니다. 사용자는 기능명을 정확히 몰라도 됩니다. 필요한 일을 말하면 모델이 앱의 적절한 도구와 화면을 연결합니다. 이 점이 Apps SDK가 만드는 새로운 진입 방식입니다.
예제 저장소가 보여주는 개발 흐름
OpenAI의 Apps SDK 예제 저장소는 이 개발 방식이 어떻게 구성되는지 잘 보여줍니다. 예제에는 여러 MCP 서버와 위젯 컴포넌트가 포함되어 있으며, 각 서버는 도구를 노출하고 도구별 UI 리소스를 연결합니다.2
개발 흐름은 대체로 다음과 같습니다.
먼저 MCP 서버를 만듭니다. 이 서버는 앱의 기능을 도구로 공개합니다. 예를 들어 search_products, get_product_detail, update_cart 같은 도구를 정의할 수 있습니다. 각 도구는 어떤 입력을 받는지, 어떤 출력을 내보내는지 명확해야 합니다.
다음으로 UI 컴포넌트를 만듭니다. 웹 기술을 사용해 카드, 목록, 상세 화면, 편집 화면 같은 위젯을 작성합니다. React를 쓰든, 다른 프론트엔드 방식을 쓰든 핵심은 ChatGPT 안에서 렌더링될 수 있는 독립적인 UI 리소스로 만드는 것입니다.
그다음 도구 결과와 UI를 연결합니다. 서버는 도구 실행 결과를 구조화된 데이터로 반환하고, 필요한 경우 어떤 위젯을 표시해야 하는지 알려주는 메타데이터를 함께 제공합니다. 이 연결이 있어야 ChatGPT가 단순 설명을 넘어 실제 화면을 보여줄 수 있습니다.
마지막으로 ChatGPT 개발자 환경에서 테스트합니다. 예제 저장소는 로컬 MCP 서버를 실행하고, 터널링 도구로 외부에서 접근 가능한 주소를 만든 뒤, ChatGPT의 개발자 모드 또는 커넥터 설정에서 앱을 연결하는 흐름을 안내합니다.2
이 과정은 전통적인 웹앱 개발과 AI 도구 개발이 섞여 있습니다. 서버 API만 잘 만들면 끝나지 않습니다. UI만 예쁘게 만들어도 부족합니다. 모델이 이해할 수 있는 도구 계약, 사용자가 조작할 수 있는 위젯, 대화 흐름에 맞는 상태 관리가 함께 필요합니다.
window.openai와 호스트 안에서 사는 UI
Apps SDK의 UI는 ChatGPT라는 호스트 안에서 실행됩니다. 여기서 호스트는 앱을 감싸고 실행해 주는 바깥 환경을 뜻합니다. 위젯은 독립된 웹 화면처럼 보이지만, 실제로는 ChatGPT와 데이터를 주고받아야 합니다.
공식 레퍼런스는 ChatGPT가 window.openai를 Apps SDK 호환 계층으로 제공한다고 설명합니다.3 쉽게 말해 window.openai는 위젯과 ChatGPT 사이의 다리입니다. 위젯은 이 다리를 통해 도구 입력과 출력, 표시 모드, 테마, 위젯 상태 같은 호스트 정보를 읽거나, 필요한 경우 다른 도구 호출과 후속 메시지 전송 같은 동작을 요청할 수 있습니다.
이 개념은 뒤 챕터에서 자세히 다룹니다. 지금은 한 가지만 기억하면 충분합니다. Apps SDK의 UI는 혼자 떠 있는 웹페이지가 아닙니다. ChatGPT 대화, MCP 도구 결과, 사용자 조작이 서로 이어지는 화면입니다.
Apps SDK와 Agents SDK는 다르다
OpenAI 생태계에는 이름이 비슷한 도구가 많습니다. 처음 배울 때는 Apps SDK, Agents SDK, AgentKit, ChatKit을 한 덩어리로 이해하기 쉽습니다. 그러나 목적과 실행 위치가 다릅니다.
Apps SDK는 ChatGPT 안에서 실행되는 앱과 UI를 만들기 위한 도구입니다. 핵심 질문은 "사용자가 ChatGPT 대화 중에 어떤 기능과 화면을 만나게 할 것인가?"입니다.
Agents SDK는 에이전트형 AI 애플리케이션을 만들기 위한 도구입니다. 공식 문서는 Agents SDK의 기본 요소를 에이전트, 도구, 핸드오프, 가드레일로 설명합니다. 또한 에이전트 루프, 세션, 추적 같은 기능을 제공해 여러 단계의 작업을 수행하는 AI 흐름을 구성할 수 있게 합니다.4 핵심 질문은 "AI 에이전트가 어떤 도구를 사용하고, 어떤 절차로 작업을 끝낼 것인가?"입니다.
AgentKit과 ChatKit도 인접한 도구로 볼 수 있지만, 이 책의 중심은 Apps SDK입니다. 구분 기준은 간단합니다.
ChatGPT 안에 앱 UI를 띄우고 싶다면 Apps SDK를 봅니다.
여러 에이전트와 도구를 조합해 작업 흐름을 만들고 싶다면 Agents SDK를 봅니다.
내 제품 안에 대화형 AI 경험을 넣거나 에이전트 개발·운영 도구를 활용하려면 ChatKit, AgentKit 같은 인접 도구를 함께 검토합니다.
현실의 제품에서는 이 도구들이 함께 쓰일 수 있습니다. 예를 들어 ChatGPT 안에서는 Apps SDK 앱이 사용자 화면을 제공하고, 서버 뒤쪽에서는 Agents SDK로 복잡한 에이전트 작업을 처리할 수 있습니다. 하지만 시작점은 분리해서 이해해야 합니다. Apps SDK는 "ChatGPT 안의 앱 경험"에 초점을 둡니다.
새로운 앱 플랫폼의 출발점
Apps SDK가 중요한 이유는 기술 스택이 새로워서만이 아닙니다. 더 큰 변화는 앱을 발견하고 사용하는 방식에 있습니다.
사용자는 더 이상 모든 기능의 위치를 기억할 필요가 없습니다. ChatGPT에게 목표를 말하면 됩니다. 개발자는 더 이상 전체 웹사이트를 처음부터 끝까지 탐색하게 만드는 것만 생각하지 않습니다. 대화 맥락에서 필요한 순간에 호출될 기능과 화면을 설계해야 합니다.
그래서 Apps SDK 개발은 세 가지 질문에서 출발합니다.
첫째, 이 앱은 사용자의 어떤 의도를 해결하는가?
둘째, 그 의도를 처리하기 위해 어떤 도구가 필요한가?
셋째, 결과를 텍스트가 아니라 어떤 조작 가능한 화면으로 보여줄 것인가?
이 질문에 답할 수 있어야 좋은 ChatGPT 앱을 만들 수 있습니다. 앞으로의 챕터에서는 이 구조를 더 구체적으로 쪼개어 살펴봅니다. MCP와 Apps SDK 아키텍처를 이해하고, 개발 환경을 준비하고, 첫 번째 앱을 만들고, 도구 스키마와 위젯 UI, 상태 동기화, 인증과 배포까지 차례로 다룰 것입니다.
Apps SDK는 ChatGPT를 단순한 대화창에서 앱이 실행되는 플랫폼으로 확장합니다. 이 책의 목표는 그 플랫폼 위에서 실제로 작동하는 앱을 만들 수 있게 돕는 것입니다.
참고
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.