
최근 AWS AI관련 소모임, 컨퍼런스 등을 다니며 AI를 잘 활용하는 방법에 대해 배우고 있다. 특히, 프롬프팅을 어떻게 하느냐에 따라 AI를 효율성이 극대화될 수도 그렇지 않을 수도 있다는 것을 알게 되었다. 프롬프팅은 단순히 질문을 던지는 것 이상으로 AI의 성능을 극대화하는 중요한 기술이라는 것을 깨닫고 이를 정리해보고자 한다.
4S 원칙은 모델이 요청을 정확히 이해하도록 돕는 간단한 규칙이다.
COSTAR 원칙은 4S보다는 보다 복잡한 작업이나 결과물이 필요한 상황에서 사용하는 규칙이다.
잘못된 프롬프트
"제품 배송 지연된 고객한테 이메일 좀 써줘."
원칙을 적용한 프롬프트
"제품 배송이 지연되어 불편을 겪고 있는 고객에게 사과하고, 예상 배송 일정과 보상 정보를 포함하는 이메일을 작성해주세요.
이메일은 진정성 있고 전문적인 어조로 작성되었으면 합니다.
고객이 불편을 느낄 수 있는 상황이므로, 따뜻하고 사려 깊은 톤으로 작성해 주세요.
일반 소비자를 대상으로 하며, 텍스트 형식으로 결과를 출력해 주세요."
코드에 주석을 작성하여 Copilot에게 명확한 지시를 전달할 수 있다. 주석으로 요구사항을 정의하고 하이라이트된 부분을 기반으로 코드를 생성하도록 요청해보자!
/* 요구사항
- 사용자 정보 처리(name, age, city)
- 환영 메세지를 생성
- 사용자의 나이에 따라 특정 할인율을 적용
- 사용자 이름을 포함한 작별 메세지를 생성
*/
"하이라이트한 주석을 기반으로 코드를 추가해주세요."
리팩토링을 위해 AI에게 구체적인 상황과 역할을 설명하면 더 효과적인 개선을 얻을 수 있다.
당신은 Dart의 경험이 많은 시니어 개발자입니다. 아래와 같은 코드가 있을 때 가독성을 높이고 코드 재활용성을 높이기 위한 리팩터링을 하고자 합니다. TypeSafe하게 클래스를 만들고, 가독성있게 함수를 고쳐주세요. 한번에 다 진행하지 말고 한 단계 한단계씩 진행해주세요. 그리고 각 단계에서 어떤 점이 좋아졌는지 어떤 점이 개선되었는지 설명하고 다음 단계에서는 어떤 개선점이 있을지 다시 고민을 해주세요.
또는 복잡한 로직에서 디자인 패턴을 적용하도록 요청할 수도 있다.
코드에서 개선할 점이 보이나요? 디자인 패턴을 적용하고 싶습니다. 만약, word나 excel 외에 더 많은 문서 유형이 추가될 때마다 new_document 함수를 수정하는 것이 번거로운데 더 좋은 방법이 있을까요?
객체지향 프로그래밍을 하고 있다면 디자인패턴, 객체지향 프로그래밍 원칙에 부합하는지 검토해달라고도 할 수 있다!
AI에게 코드 리뷰 요청을 하면 보안, 성능, 가독성 등 다양한 관점에서 코드를 점검한 결과를 얻을 수 있다. 만약, 회사에서 선배 개발자가 없다면 인공지능에게 코드 리뷰를 요청해보자!
코드를 전체적으로 살펴보고 전반적인 코드에서 버그의 위험성이 있거나 성능 측면에서 개선할 부분은 없는지, 혹시 보안 이슈로 보이는 것이 없는지, 가독성 측면 혹은 코드 스타일에서 수정은 필요하지 않은지 확인하고 개선 방향을 알려주세요.
4S와 COSTAR 원칙을 잘 활용하면 AI가 단순한 도구를 넘어 유능한 협업자로 느껴질 정도로 강력한 결과를 제공한다는 점을 깨달을 수 있었다. 앞으로도 프롬프트 설계 방식에 대해 계속 실험하고 학습해 나가며 AI와 페어 프로그래밍을 해야겠다.