본문 바로가기

develop

프롬프트 엔지니어링이란?

1. 프롬프트 엔지니어링이 뭐냐?

LLM은 똑똑하지만 의도를 추론하는 대신, 지시를 해석한다.
그래서 결과의 질은 모델보다 프롬프트의 설계력이 좌우한다.

Prompt Engineering =
LLM이 원하는 사고 경로를 타도록 입력을 설계하는 기술

즉:

  • 질문을 잘하는 게 아니라
  • 사고 구조를 디자인하는 것

2. LLM은 어떻게 생각하냐?

LLM의 본질:

  • 다음에 올 단어를 확률적으로 예측
  • “이게 정답인지”가 아니라
    “이 문맥에서 자연스러운 흐름인지”를 계산

그래서 이런 특징이 있다:

특성의미
지시 형태에 민감 질문 구조가 바뀌면 답도 바뀜
맥락 의존 앞 내용이 사고 프레임을 결정
모호성 증폭 애매하면 애매하게 답함
명확성 증폭 구체적이면 천재처럼 답함

LLM은 똑똑한 게 아니라
**사고 구조를 “따라하는 기계”**다.


3. 프롬프트 엔지니어링의 핵심 원리 5가지

1) 역할 지정 (Role Prompting)

모델에게 정체성을 부여하면 사고 방식이 바뀐다.

❌ 그냥 질문

"Vue 설명해줘."

✅ 역할 부여

너는 시니어 프론트엔드 개발자이자 기술 멘토야. React 개발자 관점에서 Vue를 설명해줘.

→ 결과 깊이 완전히 달라짐


2) 목표 명확화 (Goal Specification)

LLM은 목적 없는 질문을 싫어한다.

"이 코드 설명해줘"

이 코드를 초급 개발자가 이해할 수 있도록 단계별로 설명해줘.

3) 형식 강제 (Output Control)

출력 포맷까지 지정하면 정확도가 급상승한다.

다음 형식으로 답변해줘: 1. 핵심 개념 2. 예시 코드 3. 실무 팁

LLM은 구조를 좋아한다.
형식을 주면, 사고도 구조화된다.


4) 사고 유도 (Chain of Thought)

“답하지 말고 생각부터 하게 만드는 기술”

결론만 말하지 말고, 논리 흐름을 단계별로 설명한 후 최종 답을 제시해줘.

이걸 쓰면 모델의 오류율이 크게 감소한다.


5) 제약 조건

LLM은 무한히 떠들 수 있다.
그래서 울타리가 필요하다.

 
150자 이내로 설명해줘 전문 용어는 최소화해줘 비유를 1개 포함해줘

→ 결과 통제 가능해짐


4. 실전 프롬프트 구조 공식

가장 안정적인 형태:

 
[역할] 너는 XXX 전문가다. [상황] 현재 나는 XXX 상황에 있다. [목표] 내가 원하는 결과는 XXX이다. [조건] 다음 조건을 지켜라: - ... - ... [출력 형식] 다음 형식으로 작성해라: 1. 2. 3.

이게 프롬프트 엔지니어링의 기본 공식이다.


5. LLM을 잘 안다는 건 뭘 의미하냐

LLM을 잘 안다는 건:

  • 모델의 한계를 아는 것
  • 어디까지 신뢰할 수 있는지 판단하는 것
  • 언제 검증이 필요한지 구분하는 것
  • 어떤 식으로 질문해야 최고의 결과가 나오는지 아는 것

즉:

“AI를 쓰는 사람”이 아니라
“AI의 사고 흐름을 지휘하는 사람”이 되는 것


6. 개발자 관점에서 왜 중요하냐

너처럼 개발하는 사람에게 LLM 이해는 그냥 스펙이 아니라 무기다.

활용 예:

  • 코드 리뷰 자동화
  • 테스트 케이스 생성
  • 기술 문서 요약
  • 요구사항 → 코드 변환
  • 레거시 분석
  • 로직 개선 제안

프롬프트가 좋으면:

  • 생산성 2~5배
  • 사고 정리 속도 급상승

7. 나쁜 프롬프트 vs 좋은 프롬프트

 
이거 어떻게 구현해?

너는 시니어 백엔드 개발자다. Spring Boot 기반으로 주문 결제 API를 설계하려고 한다. 트랜잭션 무결성과 예외 처리를 고려하여 설계 방향과 예시 코드 구조를 제안해줘.

이 차이가 곧 실력이다.


8. 결론

프롬프트 엔지니어링은 기술이라기보다:

  • 사고 설계 능력
  • 질문 설계 능력
  • 의사소통 능력
  • 논리 구조화 능력

이 네 가지의 결합이다.

LLM을 잘 안다는 건
**“내 생각을 정확히 언어화하는 힘”**을 기르는 과정이기도 하다.