관리자 화면에서 GPT 초안 생성하기
ChatGPT 구독과 API 사용을 구분하고 서버에 비밀키를 보관한 뒤 한 번의 초안 요청을 확인합니다.
사이트에서 GPT 초안을 생성하려면 ChatGPT 화면에 글을 입력하는 방식과 다른 연결이 필요합니다. 서버가 OpenAI API에 자료를 보내고 응답을 받도록 설정합니다. 이때 API 키는 방문자에게 전달하지 않으며, 첫 실습은 자동 반복을 켜기 전에 한 번의 요청으로 확인합니다.
오늘 확인할 질문
관리자에서 GPT 초안을 만들려면 API 계정·비밀키·모델·사용 제한을 어디에 연결하나요?
ChatGPT와 API의 역할을 구분합니다
앞 회차에서 ChatGPT에 원고 수정을 요청했다면 대화 화면에서 응답을 복사했을 것입니다. 관리자 버튼으로 초안을 만들 때는 사이트 서버가 프로그램용 API에 요청합니다. 방문자가 내 ChatGPT 대화에 로그인하는 방식이 아닙니다. ChatGPT 구독과 API 프로젝트의 결제·사용량은 별도로 확인합니다. 구독 중이라는 이유로 사이트의 요청 비용이 자동 포함된다고 생각하지 않습니다.
OpenAI 개발자 플랫폼에서 사용할 프로젝트를 선택하고 결제와 모델 접근 권한을 확인합니다. 첫 요청은 기본값인 OPENAI_MODEL=gpt-5.4-mini-2026-03-17, OPENAI_REASONING=none으로 진행할 수 있습니다. 2026-10-04 공식 문서에서 Responses API와 구조화된 출력, none 옵션을 지원하는 조합을 확인했습니다. 무료 사용을 뜻하지는 않으므로 요청 전 현재 가격과 프로젝트 한도를 읽어 봅니다. 모델을 바꾸려면 이름뿐 아니라 출력 형식과 reasoning 옵션도 함께 확인하세요.
이번 예제는 텍스트 응답을 정해진 JSON 구조로 받는 방식을 사용합니다. 따라서 선택한 모델이 해당 API와 구조화된 출력을 지원하는지 확인해야 합니다. 가장 비싼 모델이 반드시 필요한 것은 아니지만 지원하지 않는 모델을 넣으면 요청이 실패할 수 있습니다. 우선 공식 문서에서 지원 범위를 확인하고 짧은 자료 한 건으로 결과를 비교합니다. 비용과 품질은 실제 작업에 맞춰 판단합니다.
첫 요청은 이 기본값으로 한 건만 확인합니다
설정 파일의 모델 값은 비밀키가 아니며 .dev.vars와 원격 wrangler.jsonc를 구분해 넣습니다. 실제 API 키는 로컬 .dev.vars 또는 원격 secret에만 둡니다. 자동화는 중지를 유지한 채 글감 하나를 수동 생성하고 제목·요약·본문이 draft로 저장되는지 확인하세요. 출력이 incomplete이면 상한을 무작정 올리기 전에 요청한 분량을 줄여 보고 그 시도의 사용량도 확인합니다.
| 설정 | 첫 시험 값 | 뜻 |
|---|---|---|
| OPENAI_MODEL | gpt-5.4-mini-2026-03-17 | 고정 버전 모델 ID |
| OPENAI_REASONING | none | 지원하는 추론 설정 |
| MAX_OUTPUT_TOKENS | 2400 | 출력 상한·글 분량 보장 아님 |
| DAILY_API_LIMIT | 2 | UTC 하루 시도 횟수 |
| 자동화 | 중지 | 수동 한 건부터 확인 |
비밀키를 만들기 전에 보관 위치를 정합니다
API 키는 서버가 내 프로젝트로 요청할 권한을 사용하는 비밀값입니다. 생성 후 화면에 나온 키를 공개 채팅, Git 저장소, public/admin.js, 원고 본문에 넣지 않습니다. 브라우저 JavaScript에 넣으면 방문자가 파일이나 네트워크 요청에서 확인할 수 있습니다. 화면에 별표로 보이게 만드는 것만으로 공개 코드의 키가 보호되는 것은 아닙니다. 서버의 비밀값 기능을 사용합니다.
Cloudflare에 연결할 때는 프로젝트 터미널에서 npx wrangler secret put OPENAI_API_KEY 를 실행합니다. 도구가 값을 요청할 때 키를 입력합니다. 명령 문자열 안에 키를 직접 붙여 실행 기록에 남기지 않습니다. 어떤 Worker에 저장하는지 확인한 뒤 진행합니다. 다른 실습 프로젝트에 키를 넣으면 이번 사이트에서는 찾지 못하고 엉뚱한 프로젝트에 비밀값이 남을 수 있습니다.
로컬에서 시험하고 싶다면 .dev.vars 의 OPENAI_API_KEY에만 넣고 해당 파일을 공유하지 않습니다. .dev.vars.example 에는 실제 키를 쓰지 않습니다. 원격 비밀값과 로컬 파일은 별개이므로 한쪽에 넣었다고 다른 쪽도 자동 연결되는 것은 아닙니다. 이번 실습에서 어느 환경을 사용하는지 정하고 그 환경의 설정을 확인합니다. 양쪽에서 동시에 시험하면 사용량을 구분하기 어려워질 수 있습니다.
공개 미리보기입니다. 전체 학습은 로그인 후 수강 조건에 따라 이용할 수 있습니다.