본문 바로가기
AI

개발자를 위한 chatGPT 프롬프트 엔지니어링

by 누워서 코딩 2023. 4. 14.

개발자 관점에서 chatGPT 프롬프트 엔지니어링이란 무엇일까? 그리고 효과적으로 사용하려면 어떡해야 할까? 본 글에서 고품질의 출력값을 얻기 위한 chatGPT 프롬프트 엔지니어링 활용 팁을 공부해 보자.

 

chatGPT 프롬프트 엔지니어링이란 무엇인가?

chatGPT 프롬프트 엔지니어링이란 무엇인지 대충은 알지만 정확히 아는 사람은 그리 많지 않아 보인다. 쉽게 풀어 설명하면 개발자가 chatGPT와 같은 언어 기반의 AI 모델을 이용하여 자신이 원하는 보다 정확한 작업이나 결괏값을 받아 보기 위해서 chatGPT가 알아듣기 쉬운 질문을 던지는 것이다.

 

 

정확한 작업이나 결괏값이란 단어에서 알 수 있듯이 이 프롬프트의 품질에 따라 결과의 품질도 달라지기 때문이다. 그러면 이 프롬프트의 품질에 영향을 주는 것들이 있을 텐데 어떤 것들이 있는지 알아보자.

 

고품질 프롬프트 엔지니어링 팁

신속 정확한 답변이나 결과값을 얻기 위해서 중요한 팁은 어떤 것이 있을까?

1. 구체적으로 질문하라

메시지 작성시에는 모호한 질문보다는 알고 싶은 부분에 대해 구체적으로 질문하는 것이 더 좋다. 쉬운 예로 '메모장 프로그램 샘플 코드를 작성해 줘' 보다는 특정 프로그래밍 언어도 포함시켜서 '파이썬으로 메모장 프로그램 샘플 코드를 작성해줘'라고 질문하는 것이 더 좋다.

2. 예제를 보여줘라

쉽게 말하면 AI에게 학습을 시키는것이다. 만약 어떤 특정 API를 사용한 코드를 얻고 싶다면, 먼저 해당 API에 대한 예제 코드를 보여주며 AI에게 학습을 시키는 방법이 있다. 예로 다음의 IP 지리적 위치 API인 'geo.ipify.org'의 공개 API를 사용한다면, 다음처럼 실제 예상되는 출력 코드를 알려줘서 학습하는 방식이다.

 

I want to create a python pgogram using the IP Geolcation API service.

...

I will you how to use API of xxx service and the result. Based on the following result 
if you request a program you want, make it.

 

#https://geo.ipify.org/docs

{
    "ip": "8.8.8.8",
    "location": {
        "country": "US",
        "region": "California",
        "timezone": "-07:00",
    },
    "domains": [
        "0d2.net",
        "003725.com",
        "0f6.b0094c.cn",
        "007515.com",
        "0guhi.jocose.cn"
...

 

3. 간결하게 질문하라

간결하게 질문 하는것이 좋다. 필요 없는 불필요한 단어와 구절이 들어가는 것은 아닌지 간결하게 줄여 보자. 그리고 간결하다고 구체적이지 않아야 하는 건 또 아니다. 간결하면서도 구체적으로 질문하는 것이 고품질의 출력값을 얻기에 좋다.

4. 샘플 코드 수정 테스트 반복하라

샘플 코드를 얻었다면 여러번 반복해서 테스트해보는 것이 좋다. 코드가 길어지고 복잡해지면 정확하지 않은 코드가 포함될 가능성이 높기에, 최대한 간단한 기능이나 함수 단위로 정확한지를 먼저 확인할 필요가 있다.

5. 비슷한 의미의 다른 문구로 반복 질문 하기

ChatGPT 가 언어 모델을 기반으로한 AI 특성상 비슷한 질문이라도 문구에 따라 결괏값이 달라지는 경우가 많다. 따라서 개발자가 원하는 보다 나은 코드나 결괏값을 얻기 위해서는 문구를 수정해서 질문해 보자. 

6. 역할 부여 하기

마지막으로 AI에게 역할을 부여해 주는 방법이다. 역할 부여는 1번의 구체적인 질문을 위한 좋은 방법이다. 여기에는 질문자의 역할을 부여하는 방법과 답변자인 ChatGPT의 역할을 지정해 주는 방법이 있다.

 

질문자 역할 지정 방법

질문자의 역할과 상황을 구체적으로 알려주고 질문 하는 방법이다. 예로 메모장 프로그램 샘플코드를 작성해 달라고 하기에 앞서 AI 입장에서는 질문자가 초등학생인지 개발자인지 개발자라면 초보 개발자인지 중급 개발자인지 알 방법이 없다. 따라서 질문자의 역할과 상황을 먼저 제시하면 그에 맞는 결과 코드가 출력될 가능성이 높을 것이다.

 

답변자(ChatGPT) 역할 지정 방법 

답변자인 ChatGPT의 역할을 지정해주는 방법이다. 먼저 설명한 질문자 역할 지정 방법보다 더 구체적이고 고품질의 출력을 받아볼 가능성이 크다. 다음 예처럼 ChatGPT에게 다음과 같이 초등학생이란 역할을 지정한 다음, 네가 배우고 싶은 코딩 프로그램이 어떤 게 있는지 질문해 보자.

 

 

Your role is an elementary school student. What coding programs would you like to learn?

 

ChatGPT의 결과는 초등학생에게 적합한 코딩 프로그램들을 나열해 준다.

coding-programs
coding-programs

 

이번에는 역할을 초등학생이 아닌 중급 프로그래머로 바꿔본 예이다. ChatGPT는 이 질문에 대해 실제 중급 프로그래머가 습득하기 좋은 프로그래밍 언어들에 대해 간단한 설명과 함께 나열해주고 있다.

Your role is an intermediate level programmer. What coding programs would you like to learn?

 

coding-programs
coding-programs

 

chatGPT 관련 포스팅 더 보기

VSCode 확장 ChatGPT-EasyCode 설치 방법 장점 사용법

chatGPT 프롬프트 지니

댓글