본문으로 건너뛰기

프롬프트 실습 ​

컨텍스트와 프롬프트의 구분을 같은 과제에 적용한다. 조건을 하나씩 바꾸고 실제 출력에서 무엇이 달라졌는지 센다. 실행 결과는 실행 후 기록한다.

기준일: 2026-10-02.

공통 과제 ​

로그인 실패 시 오류 메시지를 표시하도록 수정한 변경에 대해 커밋 메시지를 한 줄 작성한다. 형식은 fix(영문 범위): 한국어 설명이다. 실습의 목적은 특정 문장을 정답으로 외우는 것이 아니라, 같은 과제의 조건과 출력을 나란히 비교하는 데 있다.

text
변경: 로그인 실패 시 오류 메시지를 표시하도록 수정했다.
커밋 메시지를 한 줄로 작성해.
형식은 fix(영문 범위): 한국어 설명으로 해.

공개 실습 파일에는 복사할 프롬프트 8개와 빈 기록 양식이 있다. 코드는 MIT 라이선스로 제공한다. 모바일에서는 파일 내용을 복사해 모델의 대화 화면에 붙여 넣고, 컴퓨터에서는 파일 비교기를 함께 쓸 수 있다.

연결과 기록 ​

기본 경로는 개인 계정으로 무료 API 또는 제공자의 대화 화면을 쓰는 것이다. 공개 업무 자료 대신 위 공통 과제만 넣는다. 키는 개인별로 관리하며 프롬프트·기록 파일에 적지 않는다. 보안의 커밋 제외 원칙을 따른다.

보충: 연결 방식과 무료 조건

아래 ID와 조건은 2026-10-02 공식 문서·공개 모델 목록에서 확인했다. 실행 직전에 같은 링크를 다시 열어 제공 여부와 자신의 한도를 확인한다. 무료 표시는 무제한 실행이나 모델 버전 고정을 뜻하지 않는다. 사용 가능한 모델이 바뀌면 새 기록으로 분리한다.

연결모델 ID·선택조건과 공식 근거
Google AI Studio / Gemini APIgemma-4-31b-it 또는 gemma-4-26b-a4b-it지원 ID·개인 API 키, Gemma 4 가격: 무료 계층 입력·출력 무료, 계정별 제한 확인. 확인일 2026-10-02
OpenRoutergoogle/gemma-4-31b-it:free모델 소개·현재 가격, 무료 변형 조건, 공개 모델 목록: 현재 입력·출력 가격 0인 무료 항목을 선택한다. :free가 존재하는 모델만 가능하며 제공·요청 제한은 바뀔 수 있다. 확인일 2026-10-02
OpenCode ZenAPI space-bunny-free, OpenCode 설정 opencode/space-bunny-free공식 ID·가격·기간 조건: 기간 한정 무료다. 공개 가중치·내부 모델 버전은 미확인이므로 오픈 모델과 동일한 것으로 취급하지 않는다. 확인일 2026-10-02
Groqopenai/gpt-oss-20b지원 모델, Free Plan 제한: 무료 계층에 포함된 ID를 골라 계정의 Limits를 확인한다. 유료 계층 가격은 공식 가격표에서 확인한다. 확인일 2026-10-02
로컬 Ollama·LM StudioGemma 4 후보, 실제 설치 ID·양자화는 설치 후 기록Gemma 4 모델 개요: 로컬 가중치 실행은 API 비용과 구분한다. 기기 자원이 필요하다. Ollama 태그 목록·LM Studio 카탈로그 등재는 미확인이며, 실행 명령을 추측해 쓰지 않는다. 확인일 2026-10-02

API마다 필드 이름과 지원 파라미터가 다르다. 대화 UI에서 설정을 노출하지 않으면 API 실험과 같은 조건이라고 단정하지 않는다. 이 페이지에는 추론 코드나 키 공유 프록시를 넣지 않는다.

조건 고정 ​

각 조건은 새 대화에서 최소 두 번 실행한다. 이전 대화나 에이전트의 룰·도구 출력이 붙으면 그 내용도 컨텍스트이므로 비교에서 제외하거나 함께 기록한다.

  • 요청한 모델 ID와 응답에 나타난 버전·ID를 각각 적는다. 응답에 버전이 없으면 미노출로 적는다.
  • 실행 시각, 복사한 프롬프트 파일과 내용, 연결 방식을 남긴다.
  • temperature, top-p, 최대 출력 토큰, seed, thinking 설정은 지원하는 범위에서 같은 값으로 유지한다. 실습용 선택값은 temperature 0, top-p 1이며 제공자의 기본값을 뜻하지 않는다.
  • 지원하지 않거나 UI에서 보이지 않는 값은 미지원·미노출로 적고 추정값을 채우지 않는다. 낮은 temperature도 두 출력이 같다는 보장은 아니다.

모바일에서는 메모 앱에 두 원문과 설정을 기록한다. 파일 기록을 쓰려면 공개 폴더의 records/template.json을 조건별로 복사한다. null은 실행 전 빈칸이며 통과를 뜻하지 않는다.

다섯 실험 ​

1. 제로샷 기본선 ​

prompts/01-zero-shot.txt의 전체 내용을 그대로 복사한다. 역할이나 예시는 추가하지 않는다. 새 대화 두 개의 출력에서 줄 수와 형식, 문자 수를 센다. 다른 조건을 비교할 기준선으로 보관한다.

2. 역할 지정 ​

prompts/02-role.txt는 기본선 앞에 다음 한 문장을 붙인다.

text
커밋 메시지를 검토하는 역할로 다음 요청을 수행해.

나머지 과제와 설정은 유지한다. 기본선과 비교해 설명이 추가됐는지, 형식이 바뀌었는지 센다. 역할 문장이 항상 품질을 높인다고 가정하지 않는다.

3. 출력 형식 지정 ​

prompts/03-format.txt는 같은 과제에 다음 조건을 추가한다.

text
출력은 fix(<영문 범위>): <한국어 설명> 한 줄만 남겨.
코드 블록이나 추가 설명은 붙이지 마.

파일 전체를 복사해 실행한다. 메시지 외에 설명·코드 울타리가 붙었는지, 실제 줄이 하나인지 확인한다. 형식을 자세히 지정해도 출력 검사 자체를 생략하지 않는다.

4. 퓨샷 개수 ​

prompts/04-few-shot-0.txt부터 04-few-shot-3.txt까지 순서대로 실행한다. 0개 파일은 기본선과 같다. 1개는 장바구니 기능, 2개는 비밀번호 재설정 오류, 3개는 결제 중복 전송 오류 예시까지 붙인다. 이미 들어 있는 예시를 수정하지 않고 각 파일의 전체 내용을 복사한다.

예시 수마다 두 번 실행한다. 예시의 범위명이나 설명이 과제에 그대로 섞였는지, 원하는 형식이 유지됐는지 센다. 예시가 많을수록 좋다는 결론을 미리 정하지 않는다.

5. 부정 지시 ​

prompts/05-negative.txt는 기본선에 금지 조건을 붙인다.

text
설명에 완벽, 무조건, 항상이라는 단어를 쓰지 마.
코드 블록이나 추가 설명은 붙이지 마.

금지 단어가 출력에 몇 번 나타나는지 센다. 금지 문장을 넣었다는 사실과 출력이 조건을 지켰는지는 따로 확인한다.

확인표 ​

각 조건마다 아래 네 열을 채운다. 형식은 한 줄의 fix(scope): 설명이며 범위는 영문 소문자·숫자·하이픈, 설명에는 한국어가 있는지 검사한다. 의미상 로그인 오류를 설명하는지와 입력에 없는 내용을 덧붙였는지는 원문과 사람이 대조한다.

형식 준수금지 항목 없음길이두 번 돌려 같은가
실행 후 두 출력의 줄 수·형식을 기록⑤에서는 금지 단어 발생 수를 세고 기록. 나머지는 적용 여부도 적음두 출력의 문자 수 기록두 원문이 같은지 기록

길이는 토큰 수가 아니라 Unicode code point 수다. 앞뒤 공백을 제거한 뒤 두 출력을 비교한다. 한 조건에서 두 번 같았다는 사실을 다른 모델·시각의 재현 보장으로 넓히지 않는다.

컴퓨터에서는 실행한 원문 두 파일을 개인 작업 사본에 저장한 뒤 검사한다.

sh
cd practice/prompt-lab
pnpm compare records/run-1.txt records/run-2.txt

출력은 위 네 열을 JSON으로 채운다. 실제 모델 결과가 없는 상태를 검사기의 합성 테스트 문자열로 대신 채우지 않는다. 공유하기 전에는 출력에 키·개인 경로·계정 정보가 섞이지 않았는지 검토한다.

반복할 기준 ​

차이는 먼저 관찰한 조건의 범위로 기록한다. 프롬프트 하나가 모든 작업에 통한다고 일반화하지 않는다. 반복해서 필요한 형식과 검사 기준은 룰·스킬로 옮기고, 다음 작업에서도 같은 검증을 적용한다.