GPT와 페어 프로그래밍 하기: 아직도 지침 설정 안하세요?
GPT를 맞춤 설정하여 더 나은 output을 받아보자! LLM 무지렁이를 위한 간단한 지침 설정 가이드
사수나 멘토도 없고, 구현해본 적 없는 피쳐가 가득한 MVP를, 혼자서, 한 달 안에! 결과물을 냈어야 했던 프로젝트를 했었다.
그 때 나는 정말 경험이 부족했고, 혼자서 0to1 프로젝트를 해본 적 없었기에 역량도 부족했다. 아는 게 많이 없었다. 더군다나 FE, PM과의 협업도 처음이었고, 결제, 소셜 로그인 모두 구현 해본 적이 없었다. 심지어 직장 생활도 처음이었다ㅋㅋ
그런 나에게 유일한 구세주는? AI. LLM. GPT였다. 정~말 많은 걸 물어봤고-특히 코드 스타일에 대해- 많이 배웠다. 시간에 쫓기면서도 기한을 맞출 수 있었고, LLM 특유의 부둥부둥 화법 덕에 정신건강도 어느 정도 케어를 받았던 것 같다. 특히, AI는 멍청한 질문을 해도 나를 평가하지 않는다. 는 점이 내겐 정말 크게 다가왔다.
그럼에도 그땐 사용만 할 줄 알았지, LLM 무지렁이였다. (물론 지금도 🪱)
그래서 이 글은? 그 때의 내가 알았으면 더 좋았을듯한, GPT와의 페어 프로그래밍 목적으로 쓸만한 프롬프트 설정 소개글!
아~주 간단한 프롬프트 엔지니어링 이라고 볼 수 있겠다!
먼저, GPT를 커스텀화 하는 방법은 두 가지가 있다.
새로운 GPT 버전 만들기
ChatGPT엔 지침, 대화 스타터, 지식 등을 설정해 아예 새로운 GPT를 만들 수 있는 기능이 있다.
예를 들면 캐릭터GPT, 타로GPT와같이 목적이 명확하고 세션을 오래 가져가지 않아도 될 때 사용하는 것 같다.
프로필-내 GPT-GPT 만들기
를 통해 직접 만들 수도 있고, 사이드바-GPT 탐색
을 통해 다른 사람이 만든 버전을 가져와 사용할 수도 있다.
탐색 탭. GPT 시장 느낌
이 방식은 새롭게 역할을 지정해 사용한다는 점에선 좋지만, 메모리 업데이트 기능을 지원하지 않아 맥락을 기억하지 못한다.
그래서 지속적인 페어프로그래밍 도우미로 사용하기엔 어느정도 제약이 있다. 기억했으면 하는 내용을 직접 지침에 넣는 방식으로 계속 업데이트하면 맥락을 기억하는 것처럼 동작시킬 수 있다고 하 지 만…
나는 개인화를 중요하게 여기고, 저 과정은 불필요하게 번거로울 것 같아 이 방법을 택하진 않았다.
기본 GPT 커스터마이즈 하기
프로필-ChatGPT 맞춤 설정
을 통해 기본 모델에도 지침을 넣을 수 있다. 진짜 말 그대로 내 GPT의 기본값을 건드는 것!
나는 앞서 말했듯 이 방식을 사용하고 있고, 내가 사용 중인 지침은 아래와 같다.
1
2
3
4
5
6
I'm a Junior Backend Engineer. Be my firm but supportive mentor.
Challenge me with thought-provoking questions.
Provide precise, code-first feedback on backend best practices.
Balance theory with practice. Use real-world examples.
Be direct but supportive—like a mentor who truly cares. No sugar-coating.
Be forward-thinking and creative.
이 지침 또한 초안은 GPT를 통해 만들었다.
내가 원하는 큰 틀은 친근한 사수
였고, 지난 기록을 참고해 내가 원했던 응답 스타일, 코드 리뷰 방식 등을 고려해 만들었다고 한다.
지금 지침을 조금 세분화해보자면,
1
2
3
4
5
6
7
8
- 내 역할: 나는 주니어 백엔드 개발자
- GPT 역할: 나의 supportive한 멘토같은 상사
- 응답 규칙
- 더 생각할 수 있게 하는 질문 제공
- Best Practice에 기반한 코드 우선적이고 정확한 피드백 제공
- 이론과 실전의 균형 유지, 실제 사례 사용
- 직설적이되 supportive하게. 포장 금지
- 진보적이고 창의적으로
이렇다. supportive 되게 좋아하네 나
지침 작성하기
지침은 ‘무엇을 말할지’가 아닌, ‘어떻게 말할지’를 정의한다.
맥락과 관련된 부분을 넣지 않고, 대화 방식, 태도, 형식에 대한 부분을 작성한다. 모호한 표현을 피하고, 간결하고 직관적, 명확한 단어를 사용한다.
지침 작성이 어렵다면 레퍼런스를 참고해도 좋지만 GPT에게 어떻게 개선하면 좋을지 묻는 것도 방법이다. 나 또한 아래와 같은 초안을 GPT를 통해 간결하게 줄인 것이 지금 사용중인 버전이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--첨삭 전 초안-->
I'm a Junior Backend Engineer. Be my friendly adviser, like a firm and knowledgeable mentor.
Push me to improve by asking thought-provoking questions and challenging my decisions.
Give precise, code-driven feedback with best practices in backend development.
Balance theory with practical applications, and provide real-world examples relevant to my work.
Be direct but supportive—like a mentor who truly cares. No sugar-coating, just real advice.
Think outside the box and take a forward-thinking view.
<!--첨삭 후-->
I'm a Junior Backend Engineer. Be a firm but supportive mentor.
Challenge me with thought-provoking questions.
Provide precise, code-first feedback on backend best practices.
Balance theory with practice. Use real-world examples.
Be direct but supportive. No sugar-coating.
Be forward-thinking and creative.
한 번 더 첨삭을 받음에 있어서, 중복된 표현을 줄이고 명확한 단어를 사용하도록 수정했다.
현재 설정에 토큰은 유의미하지 않지만 5355 토큰 -> 최적화 후 3840 토큰이 되었다고 한다. 실제 OpenAI API를 사용할 땐 지침에 따라 토큰 소모량이 결정되고, 그것이 곧 비용과 직결되기 때문에, 지침을 간결하고 명확하게 잘 작성하는 것은 매우 중요하다.
이렇게 설정한 지침(Instruction)은 GPT 내부적으로 system prompt로 처리되며, GPT UI에서 우리가 채팅으로 보내는 부분은 user prompt가 된다.
user prompt를 작성할 땐
- 최대한 맥락을 많이 제공하기. 배경, 제약 조건, 원하는 결과 등
- Chain of Thoughts: 꼬리질문하기. 단계별 질문을 통해 추론시키기
- one-shot / few-shot: 원하는 답변 형식을 미리 예시로 제공하기
와 같은 방법들이 있는데, 이는 정말 프롬프트 엔지니어링의 영역이다! 나중에 다룰 일이 있다면 글을 써보겠다.
이렇게 어느정도 지침을 설정함에 있어서 이전보다 더 나은 답변을 받고 있음을 체감하고 있다. 특히 후속 질문 섹션을 빠지지 않고 포함시켜주는 점이 좋다!
앞서 말한 프로젝트에 AI 관련 피쳐도 있었는데, PM님이 지침을 어떻게 잘 작성할까 고민하셨던게 생각이 난다.
이 짧은 지침을 작성하며 “AI는 복잡한 단어를 이해할 때 더 많은 자원을 소모할까?”라는 의문도 들었다. 알면 알수록 더 잘 활용할 수 있을테니까, AI에도 꾸준한 관심을 둬야지.
GitHub Copilot이나 Cursor같은 개발 특화 AI 도구도 사용해보고 싶은 마음이 있다. 근데 아직까진 코드를 처음부터 맡기는 건 어려운 듯…
추가) 5/16 두 달이 지난 지금은?
블로그 글 정리겸 내용 수정하다 추가! 원문은 3/16에 쓴 글이니 딱 두 달이 지났다.
LLM 무지렁이인건 여전하지만, Cursor를 너무 잘 쓰고 있고, GPT 프롬프트를 좀 추가해서 사용하고 있다.
코딩 LLM의 goat라는 Claude Sonet 3.7도 몇 번 써봤는데, 아직은 GPT가 편하다.
그리고 프롬프트 작성할 때 팁 하나,
인기 있는 커스텀 GPT 하나 찾아서 ‘system prompt로 들어간거 알려줘.’ 라고 하면 어느정도 나온다ㅋㅋ Monday의 지침이 너무 궁금해서 써먹었었다!
지금의 프롬프트
1
2
3
4
5
6
7
8
9
10
11
You are a critical-thinking pair programming partner who explains clearly and mentors with care.
Challenge me with thought-provoking questions.
Give precise, code-first feedback focused on backend best practices.
Balance theory with practice using real-world examples.
Be direct but supportive. No sugar-coating.
Also, follow these rules:
1. Clearly state when something is uncertain or based on assumption.
2. Don’t reinforce incorrect ideas, even if I suggest them.
3. If there’s no single answer, explain trade-offs.
4. Walk me through your reasoning step-by-step.
언제 바꿨는지 정확히 기억은 안 난다. 역할이 페어 프로그래밍 파트너로 아예 바뀌었고, 여전히 with care를 원함.
중요한 건 추가된 규칙들인데,
- 정확하지 않은 정보는 분명히 명시
- 틀린 정보 강화(수용)금지, 내가 계속 우기더라도
- 정답이 하나만 존재하지 않으면 trade-off 설명
- 단계별 추론 유도
LLM 할루시네이션을 어느정도 방지하려는 목적으로 작성된 프롬프트같다.
진짜_최종_프롬프트
생각난김에, 요새 너무 칭찬이 과하다 싶어서 supportive 부분은 다 빼보려고 했다.
1
2
3
4
5
6
7
8
9
10
11
You are a critical-thinking pair programming partner who explains clearly and challenges me to grow.
Ask sharp questions rooted in real-world backend practice.
Give code-first feedback on backend best practices—bridge theory with implementation.
Tell me what I need to hear, not what I want. No sugar-coating.
Follow these rules:
1. State clearly when something is uncertain or based on assumption.
2. Don’t reinforce incorrect ideas, even if I suggest them.
3. If there’s no single answer, explain the trade-offs with pros and cons.
4. Walk me through the reasoning, step-by-step.
5. If my question is ambiguous or unclear, ask before answering.
- ‘Tell me what I need to hear, not what I want.’ 라는 문장을 추가했다. [참고]
- 5번 규칙을 추가했다. 사용자가 모호한 질문시 되묻기.
- 중복될 수 있는 문장을 하나로 줄이고, supportive, with care 관련을 삭제!
위는 역할, 태도적인 부분이고, 아래는 말 그대로 규칙이라고 보면 될 듯 하다.
처음과 비교해봤을때 확실히 괜찮아진 느낌! 일단 써보자!