
ChatGPT 슬래시 커맨드는 3층 구조
요약
ChatGPT의 슬래시 커맨드를 작동 메커니즘에 따라 3가지 층(공식 커맨드, 의사 커맨드, 도시 전설)으로 분류하여 설명합니다. 특히 앱에 구현된 공식 커맨드의 종류와 활용법을 상세히 다룹니다.
핵심 포인트
- 슬래시 커맨드는 구현 방식에 따라 3층 구조로 나뉨
- 공식 커맨드는 입력창에 '/' 입력 시 후보 메뉴로 나타남
- '/plan'으로 계획을 세운 뒤 '/goal'로 지속적 목표 설정 가능
- '/status'와 '/compact'를 통해 컨텍스트 관리 가능
「슬래시 커맨드 (Slash Command)」로 검색하면, /goal도, /formal도, /handwritten도 모두 같은 목록에 나열되어 나온다.
하지만 이 세 가지는 작동하는 메커니즘이 완전히 다르다. 하나는 앱에 구현된 기능이고, 하나는 단순한 문장 작성 방식이며, 나머지 하나는 애초에 효과가 있는지조차 의심스럽다. 모두 「/」로 시작한다는 이유 때문에 전부 같은 것으로 소개되고 있다.
먼저 전체상을 정리한다.
| 층 | 실체 | 구체적인 예 | 구별 방법 |
|---|---|---|---|
| 제1층: 공식 커맨드 | 앱에 구현된 기능 | /goal /plan /model | 「/」를 입력하면 후보 메뉴에 나타남 |
| 제2층: 의사 커맨드 (Pseudo Command) | 단순한 프롬프트 (Prompt) 작성 방식 | /formal /casual /short | 메뉴에 나오지 않음. 문장으로서 읽힘 |
| 제3층: 도시 전설 영역 | 효과의 근거가 희박한 소문 | /handwritten /humanize | 검증 기사의 대부분이 「재현할 수 없다」고 보고 |
이 기사는 OpenAI 공식 문서(learn.chatgpt.com)에서 실재를 확인할 수 있는 것만을 「제1층」으로 취급한다. 확인되지 않은 것은 솔직하게 그렇게 적는다.
입력창에서 반각 「/」를 입력하면 후보 메뉴가 실제로 나타난다. 이것이 진짜 커맨드다.
공식 문서에는 ChatGPT 데스크톱 앱에서 사용할 수 있는 커맨드 목록이 실려 있다. 주요 항목을 추출한다.
| 커맨드 | 할 수 있는 일 |
|---|---|
/goal | 지속적인 목표를 설정하여, ChatGPT가 이를 향해 계속 작업하도록 함 |
/plan | 여러 단계의 계획을 세우는 플랜 모드 (Plan Mode) 전환 |
/model | 이 채팅에서 사용할 모델을 선택 |
/reasoning | 추론의 깊이 (reasoning effort)를 선택 |
/status | 채팅 ID, 컨텍스트 (Context) 사용량, 레이트 리밋 (Rate Limit) 표시 |
/compact | 현재 채팅의 컨텍스트를 압축 |
/side | 메인 채팅을 중단하지 않고, 일시적인 사이드 채팅을 시작 |
/fork | 로컬 채팅을 새로운 채팅으로 복제 |
/review | 커밋되지 않은 변경 사항이나 브랜치 비교의 코드 리뷰 모드 |
/mcp | 연결 중인 MCP 서버의 상태를 표시 |
/memories | 메모리 (Memory)의 이용·생성 여부를 설정 |
/feedback | 피드백 전송 다이얼로그를 오픈 |
사용 가능한 커맨드는 환경에 따라 달라진다
공식 문서 자체에서도 「이용 가능한 커맨드는 환경과 액세스 권한에 따라 다르다」고 명시하고 있다. 위의 표는 데스크톱 앱의 레퍼런스를 바탕으로 한 것이며, 웹 버전이나 모바일 버전에서 모두 동일하게 사용할 수 있다고는 할 수 없다.
가장 확실한 확인 방법은 자신의 입력창에서 실제로 「/」를 입력해 보는 것이다. 기사의 목록표보다 눈앞의 메뉴가 더 정확하다.
/compact나 /status는 눈에 띄지 않지만, 긴 대화에서 더욱 빛을 발한다. /status로 컨텍스트 사용량을 확인하고, 가득 차면 /compact로 압축한다. 이 두 가지를 알고 있는 것만으로도 「대화 도중 갑자기 AI가 이전 내용을 잊기 시작하는」 현상에 대한 대처가 완전히 달라진다.
제1층 중에서도 동작이 가장 특수한 것이 /goal이다. 단발적인 응답이 아니라, **완료·일시 정지·추가 정보 요구 중 하나에 도달할 때까지 작업을 계속하는 「지속적인 목표」**를 설정한다.
공식 문서가 권장하는 방식은 /plan으로 목표를 다듬은 뒤 /goal로 넘기는 흐름이다. 실제로 작성하면 다음과 같다.
스텝 1: /plan으로 계획을 확정한다
/plan 사내 근태 관리를 Excel 운영에서 툴로 이행하고 싶다.
요건 정리부터 후보 툴 비교까지 진행하고 싶다.
여기서 ChatGPT가 계획안을 제시한다. 「요건을 도출한다 → 후보를 열거한다 → 평가 축을 결정한다 → 비교표를 만든다」와 같은 형태다. 이를 대화를 통해 구체화한다. 이 단계에서는 아직 작업이 시작되지 않는다.
스텝 2: 확정된 계획을 /goal로 넘긴다
/goal 근태 관리 툴 후보를 3개로 압축하여,
비교표와 비용 산출을 정리한다
이로써 골 모드 (Goal Mode)에 진입한다. 목표가 유효한 동안 입력창 상단에 진행 상황 행이 표시된다.
진행 상황 행의 버튼이 편리함
목표의 일시 정지·재개, 목표 문장 편집, 목표 삭제는 진행 상황 행의 버튼을 통해 직접 조작할 수 있다. 매번 별도의 슬래시 커맨드 (Slash Command)를 다시 입력할 필요가 없다. 목표가 실행 중인 와중에도 일반 메시지로 궤도를 수정하며 계속 진행할 수 있다.
/plan을 사이에 두는 것은 의미가 크다. 목표가 모호한 상태로 /goal에 넘기면, AI는 모호한 목표를 향해 끝없이 달려가게 된다. 먼저 목표를 언어화하여 다듬는 페이즈를 분리한다는 설계로 되어 있다.
"매번 같은 지시를 쓰는 것이 번거롭다"는 문제를 해결하는 공식적인 메커니즘이 바로 이것이다. Markdown 파일을 배치하면, 그것이 자신만의 전용 슬래시 커맨드가 된다.
먼저 주의할 점: 커스텀 프롬프트 (Custom Prompt)는 공식적으로 "비권장 (deprecated)" 처리됨
OpenAI는 현재 재사용하고 싶은 지시에 대해서는 Skills를 사용할 것을 권장하고 있다. 기존의 커스텀 프롬프트는 계속 작동하지만, 앞으로 새로 구축한다면 Skills를 검토하는 것이 좋다.
"편리한 기능을 발견했다"고 생각해서 달려들었는데 알고 보니 비권장 사항이었다는 이야기는 흔하기 때문에, 미리 적어둔다.
메커니즘을 이해하는 용도로는 유용하므로, 절차를 기재한다.
1. 파일을 배치한다
~/.codex/prompts/ 직하에 Markdown 파일을 만든다. 서브 디렉토리는 스캔되지 않으므로 반드시 직하에 두어야 한다. 파일명(.md를 제외한 부분)이 커맨드 이름이 된다.
2. 내용을 작성한다
~/.codex/prompts/review.md 예시:
---
description: 지정된 파일을 리뷰하고 개선점 3가지를 제시함
argument-hint: [FILE=<path>] [FOCUS="<관점>"]
...
YAML 프론트매터 (YAML Frontmatter)의 description은 커맨드 이름 아래에 표시되는 설명문이며, argument-hint는 기대하는 인수에 대한 설명이 된다.
3. 재시작한다
프롬프트는 세션 시작 시에 로드된다. 파일을 추가하거나 편집했다면 재시작이 필요하다. 이 부분을 잊어서 "만들었는데 나오지 않는다"며 고민하는 케이스가 많다.
4. 호출한다
/prompts:review FILE=src/api.ts FOCUS="에러 핸들링"
플레이스홀더 (Placeholder)는 3종류를 사용할 수 있다.
| 표기법 | 의미 |
|---|---|
$1 〜 $9 | 공백으로 구분된 위치 인수를 순서대로 전개 |
$ARGUMENTS | 인수를 전부 모아서 전개 |
$FILE 등 대문자 이름 | KEY=value 형식으로 전달한 이름 있는 인수 |
공백을 포함하는 값은 FOCUS="loading state"와 같이 따옴표로 감싼다. $ 자체를 출력하고 싶을 때는 $$라고 적는다.
여기서부터가 본론이다. /formal, /casual, /short와 같은 형태는 해설 기사가 대량으로 존재한다. 그리고 실제로 작동한다. 하지만 제1층과는 메커니즘이 완전히 다르다.
이것들은 전용 파서 (Parser)가 반응하는 것이 아니라, 뒤에 이어지는 문장과 합쳐져 자연어 지시로서 읽히고 있을 뿐이다.
/formal 이 문장을 고쳐줘
라고 쓰는 것은, AI 입장에서 보면
이 문장을 포멀하게 고쳐주세요
라고 쓰는 것과 거의 같은 의미가 된다. "커맨드라서 작동하는 것"이 아니라 "LLM이 문맥으로부터 의도를 파악할 수 있기 때문에 작동하는 것"이다. 인과관계가 반대인 것이다.
구분 방법은 간단하다. "/"를 입력했을 때 나오는 메뉴에 나타나지 않는다면, 그것은 제2층이다.
제2층은 "쓰지 마라"는 뜻이 아니다
자신만의 약어로 /blog를 "블로그 기사 형식으로"라는 의미로 사용하는 운용은 보통 편리하다. 문제는 사용하는 것 자체가 아니라, "ChatGPT의 공식 기능"이라고 설명해 버리는 것이다.
실체를 올바르게 이해하고 있다면, "작동하지 않을 때는 약어를 그만두고 일반 문장으로 쓰면 된다"는 당연한 대처법에 도달할 수 있다.
/handwritten으로 손글씨 느낌이 나고, /humanize로 AI 느낌이 사라진다는 식의 "뒷 커맨드 (Hidden Command)"도 떠돌고 있다.
검증한 기사 중 상당수가 효과를 재현할 수 없었다고 보고하고 있다. ChatGPT가 자연어를 이해하여 그럴싸하게 행동하고 있을 뿐, 숨겨진 기능이 기동하고 있는 것은 아니라는 것이 실태에 가깝다.
제2층과 제3층은 "전용 파서가 존재하지 않는다"는 점에서는 같다. 다른 점은 효과 그 자체의 확실성이다. 제2층의 /formal
는 "격식 있게 해줘"라는 지시로서 확실하게 전달된다. 제3층의 /handwritten은 애초에 무엇을 지시하고 있는 것인지 AI 측에서도 판별하기 어렵다.
| 절차 | 판정 |
|---|---|
| 입력창에서 "/"를 입력한다 | 메뉴에 나타남 → 제1층 (공식) |
| 메뉴에 나타나지 않음 | |
| 메뉴에 나타나지 않음 |
같은 "/"로 시작하더라도 내용은 3층으로 나뉘어 있다. 이 구분을 하지 않고 목록표에 나열해 버리면, 앱의 기능과 단순한 말투, 그리고 근거 없는 소문이 동일한 신뢰도로 독자에게 전달되어 버린다.
그리고 아이러니하게도, 가장 확실한 검증 방법은 가장 수수한 방법이다. 자신의 입력창에서 "/"를 입력하는 것. 기사의 목록표보다 눈앞에 나타나는 메뉴가 더 정확하다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기