(!) ChatGPT Plus 버전을 기준으로 합니다.
실무를 하다 보면 간혹 특정 업무에 특화된 에이전트를 사용하거나 제작하고 싶은 경우가 있습니다. 예를 들면 특정 제품에 대한 고객 문의를 처리하기 위한 에이전트라든지, 대외적으로 브랜드를 홍보하기 위한 에이전트라든지 말이죠. ChatGPT에서는 이러한 수요를 충족하기 위해서 GPTs라는 기능을 제공합니다. GPTs는 특정 도메인이나 업무를 수행하기 위해 만들어진 특수한 목적을 가진 GPT입니다.
비공개 에이전트는 ChatGPT 프로젝트를 사용해서 구축이 가능하지만, 이는 어디까지나 개인의 특정 프로젝트를 위해서만 사용되는데, GPTs는 대외적으로 공개되는 에이전트입니다. 따라서 많은 사람들이 사용할 수 있도록 공개된 GPTs 목록이 나열되어 있는 페이지가 존재합니다. 사이드바에서 "GPT"에 진입하면 다음과 같이 GPTs 목록이 나타납니다.
GPTs는 특수 목적을 위한 GPT인 만큼, 글쓰기, 생산성, 연구 및 분석, 교육, 라이프스타일 등 다양한 카테고리로 분류되어 있으며 그 카테고리 내에서도 다수의 유용한 GPTs가 빌드되어 있습니다. 이러한 GPTs는 현재 ChatGPT 무료 사용자도 이용이 가능하며, Plus 이상 사용자의 경우에는 직접 제작하여 스토어에 배포할 수도 있습니다.
먼저, 간단하게 스토어에 공개되어 있는 GPTs를 사용해 보도록 하겠습니다. Canva를 써볼게요. 사용하고자 하는 GPTs를 누르면 다음과 같이 GPTs의 정보가 나오는데, 여기에서 "채팅 시작"을 눌러봅시다.
이제 다음과 같은 화면이 나오는데, 총 4개의 "대화 스타터"가 있는 것을 볼 수 있습니다. "대화 스타터"라는 것은 GPTs를 처음 사용하는 사용자가 첫 대화를 어떻게 시작하면 좋을지에 대한 예시 프롬프트라고 보면 되겠습니다.
Canva는 포스터, 이력서, 슬라이드 등의 온라인 출판물을 디자인하기 위해 많이 사용되는 플랫폼 중 하나입니다. 포스터를 하나 만들어달라고 해볼게요. 대화 스타터 중에 시즌 세일을 위한 온라인 포스터 제작을 요구하는 I need a poster for our online store's seasonal sale을 클릭하면 다음과 같이 추가 정보를 요구하고, Canva를 사용하여 포스터를 제작해 줄 것입니다.
저는 이 대화 과정에서 "전자제품에 대한 50% 할인 포스터를 제작해 달라고 요구"했고, Canva GPTs가 이를 토대로 포스터를 제작해 주었습니다.
Canva GPTs의 동작을 살펴보면 다음과 같이 chatgpt-plugin.canva라는 것을 사용하여 통신을 한 것으로 나타나고 있습니다. 이는 GPTs가 외부 서비스와 연계될 수 있다는 것을 의미하며 실제로 Canva GPTs는 chatgpt-pluin.canva를 통해 ChatGPT 밖에 있는 Canva와 연계되었습니다.
일반적으로 전문적인 에이전트를 제작하는 일은 에이전트 개발자가 하게 되는데요, GPTs를 사용하면 개발자가 아니더라도 에이전트를 만들 수 있는 인터페이스를 제공합니다. 에이전트의 구성요소에 대한 기초가 있는 상태라면 개발자가 아니더라도 충분히 만들어낼 수 있습니다. 자체 에이전트를 제작하는 인터페이스를 제공하는 서비스는 ChatGPT 뿐만 아니라 n8n, langflow 등의 기술이 있는데요, GPTs는 ChatGPT에 내장되어 있는 만큼, 진입장벽이 낮기에 대표적으로 이야기합니다.
GPTs는 단순하게 이야기하면 ChatGPT 프로젝트를 공개적으로 운영하는 것과 마찬가지입니다. 해당 GPT만을 위한 특별한 지침(= 시스템 프롬프트)을 작성할 수 있고, 대화에서 참고할 수 있는 지식(Knowledge)들을 업로드할 수 있으며, 웹 검색과 코드 인터프리터와 같은 ChatGPT 내장도구를 사용할 수 있도록 설정할 수 있고, Slack, Notion과 같은 외부 서비스와도 연동할 수 있습니다. 다만, GPTs가 외부 서비스와 연동할 때는 MCP(Model Context Protocol)을 사용하지 않고, 직접 연계하는 방식인 OpenAPI를 사용합니다.
Open API(Application Programming Interface)
MCP가 AI 애플리케이션에서 외부 도구를 사용하여 간접적으로 외부 서비스와 연계하기 위한 방법이라면, OpenAPI는 전통적으로 이종 소프트웨어 간의 연동을 위해서 사용합니다. 예를 들면 우리의 소프트웨어에서 Notion에 연결하려면 Notion API가 사용됩니다. MCP 서버 또한 소프트웨어인 만큼 내부적으로 OpenAPI가 사용되어 실제 서비스와 연계되어 구현되는 경우도 있습니다.
ChatGPT와 같은 AI 애플리케이션에서는 Notion과의 간접적인 연계하기 위해 Notion MCP Server를 사용하지만, Notion MCP Server에서는 내부적으로 Notion API가 사용되어 Notion으로 직접 연결합니다. 즉, GPTs에서 Notion과 연계하고 싶다면 Notion MCP Server가 아니라 Notion API를 사용해야 한다는 의미입니다. OpenAPI를 직접 사용하여 연계하면 ChatGPT에서 커넥터를 통한 공식 연계를 지원하지 않는 서비스라 할지라도 연계할 수 있습니다.
먼저, GPTs를 직접 작성해 보기 전에 간단하게 워밍업을 해보도록 하겠습니다. 사이드바 → GPT에서 상단의 "내 GPT"로 진입하면 다음과 같이 내가 만든 GPTs 목록이 나타납니다.
여기에서 "GPT 만들기"로 진입하면, GPTs를 만들기 위한 인터페이스가 나타납니다. 크게 "만들기"랑 "구성" 탭이 있는데요, "만들기"는 우리가 바이브 코딩을 하듯이 채팅을 통해 GPTs를 만들 수 있는 것이고, "구성"으로는 수동으로 하나씩 설정하는 구조입니다.
우리는 "구성"으로 하나씩 설정하겠지만, 일단 먼저 간단하게 "만들기"를 통해 먼저 실습을 해보도록 하죠. "만들기"로 이동하면 채팅창이 나오는데, 예시로 제시된 "make a creative who helps generate visuals for new products"을 입력하면, 자동으로 "구성" 탭도 작성됩니다.
이제 다음과 같이 대화 스타터를 통해 테스트해 볼 수 있습니다. 예시로 작성되어 있는 "Create visual concepts for a new wearable device"를 실행하면 다음과 같이 '새로운 웨어러블 디바이스를 위한 비주얼 컨셉'을 작성해 줍니다.
우리가 만들어볼 GPTs는 긱뉴스(GeekNews) GPTs입니다. 긱뉴스는 최신 IT 뉴스를 제공하는 서비스인데요, 간단하게 GPTs와 긱뉴스를 연계하여 최신 뉴스를 가져온 다음, 요약을 제공하는 GPTs를 만들어보도록 하겠습니다. 시스템 프롬프트, 지식, 내장 도구와 같은 경우에는 이미 이전에도 많이 살펴보았으므로, 외부 서비스와의 연계를 중점으로 이야기하도록 하겠습니다.
기본 정보
먼저, 사이드바 → GPT→ GPT 만들기 → 구성으로 진입하여 다음과 같이 설정을 입력해 봅시다. 이름, 설명은 크게 중요한 내용은 아니고, 시스템 프롬프트를 의미하는 "지침"의 경우 뉴스 요약기로 지정합니다.
지식·권장 모델·기능
지식
현재 만들고 있는 GeekNews GPTs는 그저 외부에서 데이터를 가져와서 요약하는 것이기 때문에 배경 지식이 요구되지 않아 지식은 별도로 업로드해 줄 필요가 있습니다. 만약 여러분이 고객 상담이나 브랜드 홍보를 위해 GPTs를 만든다면, 제품 매뉴얼과 같은 지식을 업로드해 주면 됩니다.
권장 모델
권장 모델은 에이전트의 기초 모델을 설정합니다. 사용자가 선호하는 모델을 스스로 설정할 수 있도록 "권장 모델 없음 - 사용자가 선호하는 모델을 사용합니다"를 설정했습니다.
기능
기능은 ChatGPT에서 사용할 수 있는 내장 도구들을 의미하는데요, 웹 검색, 캔버스, 이미지 생성, 코드 인터프리터 및 데이터 분석을 설정해 줄 수 있으나 GeekNews GPTs에서는 그 무엇도 필요하지 않으므로 전부 체크를 해제했습니다.
작업
"새 작업 만들기"를 누르면 "작업"을 만들기 위한 인터페이스로 넘어갈 수 있습니다.
새 작업 만들기
새 작업 만들기 → 인증
인증은 "없음", "API 키", "OAuth"로 나뉘는데요, "API 키", "OAuth"는 소프트웨어 개발에서 사용자 인증을 위해 사용되는 인증 방식입니다. 둘 다 많이 사용되는 방법이지만, OAuth는 기술적으로 흔히 네이버, 카카오와 같은 SNS 인증을 구현할 때 사용합니다. API 키는 OAuth보다 더 간단한 인증 방법으로, JWT(Json Web Token)과 같은 방식이 대표적입니다. 우리는 인증을 사용하지 않기 때문에 "없음"으로 설정합니다.
(!) 우리의 사례는 "읽기 전용"으로 "공개된" 데이터를 읽어오기만 하니까 괜찮지만, 실제로 실무에서는 쓰기 또는 삭제와 같은 일도 하기 때문에 "API 키", "OAuth"와 같은 인증 방식을 설정하여 사용자의 권한을 검증하고 서비스와 연계하는 일이 많을 것입니다.
새 작업 만들기 → 스키마(= OpenAPI Spec)
이제 긱뉴스에서 뉴스를 가져오기 위한 작업을 설정해야 하는데 이 부분은 주목할 필요가 있습니다. GPTs에서 "작업"은 GPTs와 외부 서비스를 OpenAPI를 통해 연계할 수 있도록 지원합니다. 우리는 긱뉴스에서 최신뉴스를 얻어오기 위해 GeekNews RSS Feed에서 데이터를 가져오기 위한 OpenAPI Spec을 작성해야 할 필요가 있습니다.
OpenAPI Spec
OpenAPI Spec은 소프트웨어 개발에서 OpenAPI 사용법을 명시해 놓은 문서 또는 구조화된 파일입니다. 소프트웨어에서 OpenAPI 호출 예시, 요청 파라미터, 각 파라미터별 의미, 필수여부, 반환 값, 에러 목록과 의미 등의 서술되어 있습니다. OpenAPI Spec을 사람이 읽는 문서가 아닌 JSON, YAML과 같이 소프트웨어가 읽기 위한 문서로 작성하는 경우에는 OpenAPI Specification v3.1.0과 같이 표준 작성 규격이 있습니다.
"스키마"에서는 외부 서비스와 연계를 위한 "작업"을 만들어줄 수 있는데요, GeekNews RSS Feed에서 데이터를 얻어오기 위한 OpenAPI Spec을 작성할 필요가 있습니다. 다만 이러한 스펙을 사람이 직접 작성하기에는 번거롭기 때문에 ChatGPT에서 만든 공식 GPTs인 ActionsGPT를 사용하면 바이브 코딩으로 도움을 받을 수 있습니다.
ActionsGPT에서 다음과 같이 프롬프트를 입력하여 "스키마"에 작성할 OpenAPI Spec을 받아올 수 있습니다. GeekNews RSS Feed의 주소는 https://feeds.feedburner.com/geeknews-feed라는 것을 참고하여 작성합니다.
[지시]를 수행하기 위한 [작업]을 ChatGPT Custom GPTs에 작업으로 등록하기 위한 OpenAPI 스키마를 작성해 주세요.
지시= 긱뉴스 RSS Feed에서 뉴스 수집
# 작업
servers.url= https://feeds.feedburner.com
paths= /geeknews-feed
operationId= getGeekNewsFeed
GPTs 작업은 OpenAPI Specification v3.1.0을 사용하므로 다음과 같이 작성된 것을 볼 수 있습니다. 아래의 코드는 https://feeds.feedburner.com/geeknews-feed에서 데이터를 얻어오기 위한 코드입니다. 이 부분에서 주목해야 하는 것은 operationId입니다. 이는 GPTs가 호출하는 작업의 이름으로써, 실제로 사용자가 긱뉴스에서 뉴스를 얻어오라고 요구하는 경우 해당 작업을 수행합니다.
openapi: 3.1.0
info:
title: GeekNews RSS Feed API
description: 이 API는 GeekNews의 RSS 피드에서 최신 뉴스를 수집합니다.
version: 1.0.0
servers:
- url: https://feeds.feedburner.com
description: GeekNews RSS Feed 서버
paths:
/geeknews-feed:
get:
operationId: getGeekNewsFeed
summary: 긱뉴스 RSS 피드 수집
description: GeekNews RSS 피드에서 최신 뉴스를 XML(RSS) 형식으로 반환합니다.
responses:
'200':
description: 성공적으로 RSS 피드를 가져왔습니다.
content:
application/rss+xml:
schema:
type: string
새 작업 만들기 → 가능한 작업
이제 다음과 같이 "스키마"를 입력하고, "가능한 작업"에 getGeeknewFeed라는 작업이 생성된 것을 볼 수 있습니다. 만약 아무것도 생성되지 않는다면, 이는 "스키마"작성 단계에서 오류가 발생한 경우입니다. 오른쪽에 있는 "테스트" 버튼을 누르면 실제로 GeekNews RSS Feed에서 최신 뉴스를 얻어오기 위한 요청을 보냅니다. 다음과 같이 나타난다면 성공입니다.
작업 검증
테스트 작업이 성공하면 이제 뜻대로 GPTs가 동작하는지 검증해야 합니다. 간단하게 "긱뉴스에서 최신뉴스를 얻어와"라는 프롬프트를 사용해 보죠. 에이전트가 해당 프롬프트를 보고 getGeekNewsFeed를 실행해야 함을 인지하고 작업 수행을 시도한다면 성공입니다.
새 작업 만들기 → 개인정보 보호 정책
개인정보 보호 정책은 "작업"이 포함된 GPTs를 "공개적"으로 배포할 때 포함해야 하는 사항입니다. 기본적으로 "작업"은 외부 서비스와 연계되고, 사용자가 입력하는 개인정보와 같은 민감사항을 전달할 수도 있기 때문에 개인정보 보호 정책이 담긴 문서가 요구됩니다.
공유하기
이제 오른쪽 상단의 메뉴에서 "공유하기"를 누르면 내가 만든 GPTs를 공유할 수 있습니다. "나만 보기"는 괜찮지만, "링크가 있는 모든 사람", "GPT 스토어"에 배포하려면 개인정보 보호 정책 URL을 설정해야 합니다. 지금은 "나만 보기"로 설정하겠습니다. 배포 이후에는 사이드바에 GeekNews GPTs가 생성되며, 바로 사용할 수 있습니다.
정리하자면, GPTs는 특정 업무에 특화된 특수목적 GPT로 ChatGPT 프로젝트와 달리 "공개적"으로 운영되는 GPT입니다. 주로 특정 제품을 위한 고객 상담이나 브랜딩 같은 대외적인 목적을 위해 사용합니다. GPTs는 ChatGPT Plus 이상 사용자라면 직접 제작하여 배포할 수 있습니다. 이에 대해서는 별도의 사용료는 부과되지 않습니다. 다른 사람이 만들어놓은 GPTs를 사용하는 것은 무료 사용자도 가능합니다.
GPTs는 에이전트이기 때문에 시스템 프롬프트, 지식, 내·외부 도구 설정을 지원합니다. 이를 통해 사용자는 특정 도메인에 적합한 에이전트를 직접 빌드하여 사용할 수 있습니다. 특이사항으로는 외부와 소통할 때 MCP가 아닌 OpenAPI를 사용하여 직접 연계한다는 점입니다.
'비전공자를 위한 챗GPT 101'은 단순하게 챗GPT 사용법을 이야기하는 것이 아니라, 생성형 AI를 활용하기 위해 알아야 하는 기초를 대표적인 생성형 AI 서비스인 챗GPT를 사용하여 풀어냅니다. 물고기를 잡아주기보다는 물고기를 잡는 법을 알려줍니다.
챗GPT를 사용하는 활용법은 간단한 글쓰기부터 시작해서 기획, 마케팅 등 너무나도 많고, 직무마다 다른데, 이 글들은 '이메일 쓰기', '통계 분석하기 같은' 단순한 '사례'만을 이야기하지 않습니다. 생성형 AI의 '기본'을 이야기함으로써 챗GPT를 자유롭게 구사하며 실무에서 활용할 수 있도록 뼈대를 쌓습니다.