이 글은 [선생님을 위한 8282 업무 자동화]에서 발췌했습니다.
글 메이허 / 골든래빗 출판사
앞서 챗GPT와 함께 코드를 만들어 학생의 결과물을 컴퓨터가 이해하기 쉬운 형태의 스프레드시트로 정리했습니다. 이제 GPT의 API를 활용하여 이 데이터를 AI가 읽게 해봅시다. AI는 반복적이고 시간 소모적인 요약이나 오타 점검과 같은 작업을 빠르게 처리합니다. 이를 통해 교사는 더 높은 차원의 성찰과 직관이 필요한 영역에 집중할 수 있게 됩니다.
아래 3개 실습을 차례대로 연재하겠습니다.
- [실습 1] AI 스프레드시트 요약 도우미 만들기
- [실습 2] 나이스 다운로드 문서 불필요한 형식 정리하기
- [실습 3] 나이스 과목별 세부 능력 특기 사항 자동 검토하기
[실습 1] AI 스프레드시트 요약 도우미 만들기
GPT를 스프레드시트와 결합하면 어떤 변화가 일어날까요? 단순 반복 작업의 자동화는 물론, 주기적인 데이터 분석, 오타 점검과 수정까지 AI를 활용할 수 있습니다. 이를 위해서는 ‘API’를 사용해야 합니다. API란 쉽게 말해, GPT와 우리의 앱을 연결해주는 전선과 같습니다. 이 전선을 통해 데이터를 주고 받고, AI가 해야 할 작업을 요청하죠. 이번 실습에서는 오픈AI의 API를 활용해서 스프레드시트에 입력한 활동 내용의 어투를 통일하고, 요약하는 기능을 만들어보겠습니다. 이 기능을 응용하면 세부 능력 특기 사항 문구 등을 작성할 때 유용하게 사용할 수 있을 것입니다.
오픈AI API 키 발급받기
API를 사용하려면 암호를 발급받고 일정한 이용 요금을 지불해야 합니다. 챗GPT 구독 요금과 별개로 GPT의 API 사용을 위한 크레딧을 충전해야 합니다. 하지만 실습을 따라 활용하는 방법을 익히고 나면 비용보다 큰 업무 효율성과 만족도를 얻을 수 있을 것입니다.
01 GPT를 API로 사용하려면 챗GPT 사이트가 아니라 오픈AI 사이트에 접속해야 합니다. 오른쪽 위 [Log in]을 클릭하여 로그인합니다. 계정이 없으면 [Sign up] 버튼을 눌러 회원 가입합니다.
- 오픈AI 링크 : platform.openai.com
02 API 키를 발급받기 위해 [Dashboard → API keys → Create new secret key]를 클릭합니다.
03 인증키 생성창이 뜨면 ➊ 이름을 입력하고 ➋ 권한을 **[All]**로 설정한 뒤 ➌ [Create secret key] 버튼을 클릭하면 API 인증키가 만들어집니다. 이때 인증키를 꼭 복사해서 다른 메모장 등에 보관해놓으세요. ➍ [Done] 버튼을 클릭해 과정을 마무리하면 다음과 같이 목록에 새로운 API 키가 생깁니다.
[TIP] API 키를 잊어버렸다면 새로 API 키를 발급받아서 사용하면 됩니다.
누군가 이 API 키를 알아내면 우리가 원치 않는 상황에서 API를 사용하고 이에 따른 비용을 부담해야 할 수도 있습니다. 따라서 API 키는 외부에 노출되지 않도록 안전하게 보관하는 것이 중요합니다.
04 이 API를 사용하기 위해서는 결제 정보를 등록해야 합니다. 일정 요금을 충전해놓고 API를 사용할 때마다 요금이 차감됩니다. 오른쪽 위 프로필 사진 옆의 [Settings] 버튼을 클릭하여 계정 설정 메뉴로 들어가세요.
➊ 왼쪽 메뉴에서 [Billing] 버튼을 클릭합니다. ➋ [Add payment details] 버튼을 클릭하면 결제를 위한 카드 정보를 입력할 수 있습니다. 결제 수단을 설정한 후 ➌ [Continue] 버튼을 누릅니다.
05 충전할 금액을 입력하는 창이 뜹니다. 실습을 위해서는 최소 금액인 $5로 충분합니다. 실습해보고 여러분의 업무에도 충분히 활용 가치가 있을 것이라고 생각되면 추가 충전을 해도 좋습니다.
➊ 충전할 금액을 입력하고 ➋ 자동 충전은 비활성화하겠습니다. 여러분이 API를 사용하고자 하는 용도와 빈도에 맞게 설정해주세요. 설정을 마치고 ➌ [Continue → Confirm payment]를 차례로 입력해 충전을 마칩니다.
GPT와 구글 스프레드시트 연결해 사용하기
이제 발급받은 API 키를 활용해서 스프레드시트에 GPT를 붙여 내용을 쉽게 요약하고 첨삭할 수 있는 스프레드시트 템플릿을 만들어보겠습니다. GPT도 실수를 할 수 있으므로 원본 자료를 한쪽에 두고 바로 옆 셀에 GPT가 생성한 요약문을 기재한 뒤, 인간 교사가 이를 비교하는 과정이 필요합니다. 또한 교사가 여러 가지 활동을 전개했다면 해당 자료들을 여러 열에 담고, 맨 마지막 열에 요약을 배치하는 식으로 문서를 구성할 수 있습니다.
01 먼저 스프레드시트에 시트 두 개를 만들고 각 시트는 다음과 같이 구성합니다.
‘시트 1’에는 학번, 이름, 활동1~3, AI 생성 결과물 열을 만듭니다.
‘시트 2’에는 api와 수행 내용 행을 만들고 각 내용을 다음과 같이 입력합니다.
api행에는 앞서 여러분이 발급받은 오픈AI의 API 키를 입력하고, 수행 내용 행에는 다음 프롬프트를 입력합니다.
C열의 내용을 읽고 1500바이트 이내로 다음 지침을 따라 요약해 주세요: 1. 학생의 이름이나 ‘학생은~’이라는 표현을 사용하지 말 것. 2. ‘00활동에서~’의 형식으로 각 글의 시작을 활동명으로 하고, 활동을 중심으로 요약할 것. 3. ** 표시 없이 평범한 텍스트 형식으로 작성할 것. 4. 문장을 반드시 ‘~함.’으로 마무리할 것. 5. 학생의 뛰어난 점을 구체적인 사례와 함께 기술할 것. 6. 매끄러운 스토리와 논리적 흐름을 유지할 것. 7. 내용이 부족할 경우 억지로 1500바이트를 채우지 말고, 존재하는 내용만 요약할 것.
API 키가 유출되지 않도록 주의하세요.
자동화 문서를 만들고 공유할 때 API 키가 유출되지 않도록 관리해야 합니다. 만약 API 키를 코드 내부에 직접 넣으면 사본을 생성할 때 이 코드도 함께 복사됩니다. 이를 방지하기 위해 실습에서는 시트에 API 키를 기입하고 코드 실행시 이 값을 가져오는 방법을 사용합니다.
그러면 사본을 배포하거나 여러 사용자가 같은 스크립트를 사용할 때, 사용자별 자신의 API 키를 입력할 수 있으므로 키를 개별적으로 관리할 수 있습니다. API 키가 만료되거나 새 키가 필요할 때도 코드를 수정하지 않고 셀의 값을 변경하는 것으로 쉽게 해결할 수 있습니다. 키가 유출되면 비용이 발생하거나 악의적인 사용이 이루어질 수 있으니 항상 유의하세요.
02 이제 챗GPT에게 오픈AI API를 활용해서 스프레드시트와 GPT를 결합해 사용할 수 있는 코드를 작성해달라고 요청하겠습니다. 스프레드시트 구성과 구현하고 싶은 사항을 구체적으로 작성합니다.
다음 요구 사항에 맞춰 앱스 스크립트 코드를 제시하고 필요한 설명을 주석으로 달아줘. 스프레드시트에는 두 개의 시트가 있어. ・ ‘시트1’ : 1행은 헤더야. A1에는 학번, B1에 이름. 상황에 따라 하나의 열(C1) 혹은 여러 열(C1, D1, E1, …)에 걸쳐서 활동이 있음. 그리고 특정 열의 1행에 AI 생성 결과물이 적혀 있는데, C1부터 AI 생성 결과물의 이전까지가 모두 활동임. 가령 F1에 AI 생성 결과물이 있다면 C1, D1, E1이 모두 활동임. ・ ‘시트2’ : B1에 오픈AI API 키, B2에는 요약문에 사용할 프롬프트가 적혀 있음. 요구 사항은 다음과 같아. 1. ‘시트1’에서의 작업은 모든 활동의 내용을 합쳐서 요약해야 함. 1행은 헤더이므로 무시하고, 2행의 C열부터의 AI 생성 결과물 이전 열까지의 내용을 모두 합친 후 오픈AI API를 통해 요약하고, 그 결과를 같은 행의 AI 생성 결과물 행에 기입해야 함. 2. ‘시트2’ 프롬프트의 내용을 바탕으로 ‘시트1’에서 가져온 활동을 요약할 것. 3. 모델은 gpt-4o를 사용하고 최대 토큰은 4,000으로 할 것. 4. 스프레드시트 상단 메뉴에 ‘인공지능 비서 ‘ 메뉴를 추가하고, 그 아래 ‘과업 실행’ 메뉴를 만들 것. ‘실행’을 클릭하면 위 작업(1~3)을 수행할 것. 5. 작업을 항상 처음부터 다 처리하지 않도록, 활동에 해당하는 열 중 하나라도 내용이 있으나 AI 생성 결과물에 해당하는 열이 비어있는 행만 찾아서 작업할 것.
챗GPT와 GPT의 API? 헷갈려요!
우리는 이번 실습에서 챗GPT와 GPT의 API에게 각각 프롬프트를 요청했습니다. 챗GPT와 GPT의 API는 각기 다른 역할을 수행하는 도구입니다. 실습에서 챗GPT는 건축 설계사처럼 사용자가 원하는 기능을 설명하면 이를 구현할 수 있도록 코드 설계를 도와주는 역할을 했죠. 반면 GPT API는 자동화된 건설 로봇처럼 챗GPT가 제공한 설계도를 기반으로 실제 작업을 반복해서 실행하는 역할을 합니다. 즉 챗GPT는 코드를 만드는 가이드 역할, GPT API는 완성된 코드가 실질적으로 작동하도록 자동화하는 역할을 합니다. 이 점을 기억하고 각각의 의도에 맞는 프롬프트를 요청해야 합니다.
흥미로운 점은 챗GPT 역시 GPT API, 정확히 말하면 오픈AI의 API를 활용해 사용자와 대화하는 화면을 갖춘 챗봇 서비스라는 것입니다. 결국 API는 다양한 서비스와 기능을 구현하는 핵심 엔진 역할을 하며, 챗GPT는 그중 하나의 응용 사례라고 할 수 있습니다.
03 여러분이 받은 코드를 앱스 스크립트에 붙여넣으세요. 코드에서 오픈AI API를 불러오는 부분만 간단히 살펴보겠습니다.
[TIP] 코드는 일부만 소개합니다. 코드 전문은 실습 파일을 확인하세요.
...생략... const messages = [ { role: 'user', content: userContent } // ➊ 요청할 프롬프트 ]; ...생략... // ChatGPT API 요청용 함수 function getChatGPTResult(apiUrl, apiKey, messages) { const options = { method: 'post', contentType: 'application/json', headers: { Authorization: `Bearer ${apiKey}`, }, payload: JSON.stringify({ model: 'gpt-4o', // ➋ 사용하는 모델명 설정 messages: messages, // ➌ 앞서 작성한 역할과 프롬프트 전달 max_tokens: 2000, // ➍ API가 생성할 수 있는 최대 토큰 수 }), muteHttpExceptions: true }; ...생략...
➊ message라는 배열 형태의 변수를 만들고 GPT에게 요청할 프롬프트를 contents의 값으로 알려줍니다. 앞 코드에서는 생략되었지만 contents의 값으로 들어간 userContent가 스프레드시트에 작성한 프롬프트를 가져오는 구조입니다. ➌이 message 배열 값이 아래 API에 보내는 형식의 message 값으로 들어갑니다.
➋ 사용하는 모델명을 설정합니다. 실습에서는 gpt-4o를 선택했습니다.
➍ API가 생성할 수 있는 최대 토큰 수를 지정합니다. 토큰 수가 너무 작으면 응답이 중간에끊길 수 있고, 너무 크면 사용량이 많아져 응답 시간이 지나치게 길어질 수 있습니다.
어떤 GPT 모델을 사용해야 하죠?
오픈AI는 다양한 모델을 제공합니다. 2025년 2월 기준 최신 모델은 o1과 그 경량 버전인 o3-미니입니다. 하지만 비용과 응답 속도를 고려하면 GPT-4o나 o1-미니 사용을 권장합니다. 프롬프트를 아주 자세하게 적어 AI의 추론이 많이 필요하지 않은 작업은 GPT-4o를, AI의 복잡한 추론이 필요한 작업은 o1을 사용하는 것이 좋습니다. o1의 사용량에는 제한이 있으므로 소진되면 경량 버전인 o1-미니를 사용하는 것을 권장합니다.
주의할 점은 챗GPT에 오픈AI API를 활용한 코드 생성을 요청했을 때 최신 정보를 반영하지 못해 구형 모델을 사용하는 코드를 생성할 수 있습니다. 따라서 특정 모델을 사용하는 코드를 요청하거나, 생성된 코드를 직접 검토하여 수정하는 과정이 필요합니다.
04 코드를 다 입력했다면 상단 메뉴 [저장] 버튼을 클릭하여 스크립트를 저장합니다. 스크립트를 실행하기 전에 ‘시트1’의 요약할 활동 내용을 다음과 같이 일부 채워주세요.
스프레드시트 위에 [인공지능 비서 → 과업 실행]이라는 사용자 버튼이 생겼습니다. 클릭해서 앱스 스크립트를 실행하면 다음과 같이 AI 생성 결과물 열에 활동을 요약한 내용이 입력됩니다.
이처럼 우리가 시간을 들여 했던 작업이 눈 깜짝할 사이에 자동화되는 모습을 보면 정말 놀랍지 않나요? 지금의 자동화는 아주 작은 시작에 불과합니다. 하지만 이 작은 시작을 통해 나의 업무를 않나요? 지금의 자동화는 아주 작은 시작에 불과합니다. 하지만 이 작은 시작을 통해 나의 업무를 개선하는 경험이 누적된다면, 언젠가 교사 개발자가 되어 있는 여러분의 모습을 발견할 수 있을 것입니다.