튜토리얼

Bob을 위한 효과적인 프롬프트 작성하기

효과적인 프롬프트를 작성하여 Bob의 출력을 극대화하세요.

IBM Bob은 코딩 및 기술 어시스턴트이지만, Bob은 마음을 읽을 수 없습니다. Bob은 좋은 결과를 제공하기 위해 여러분의 지시에 의존합니다. 프롬프트 작성의 기본을 배우면 Bob과의 경험이 향상되고, 시간이 절약되며, 원하는 것을 얻을 수 있습니다.

프롬프트란 무엇인가요?

프롬프트는 원하는 출력을 얻기 위해 Bob에게 주는 일련의 지시입니다. 프롬프트는 질문, 요청 또는 명령이 될 수 있습니다. "프랑스의 수도는 어디인가요?"처럼 간단할 수도 있고, "숫자 목록을 받아 평균을 반환하는 Python 함수를 작성하세요"처럼 복잡할 수도 있습니다.

소프트웨어 개발 원칙인 "garbage in, garbage out(쓰레기를 넣으면 쓰레기가 나온다)"을 생각해 보세요. Bob에게 모호하거나 불완전한 프롬프트를 주면, 모호하거나 불완전한 답변을 받을 수 있습니다.

더 높은 품질의 프롬프트를 작성할수록, 더 높은 품질의 응답을 받습니다. 좋은 프롬프트는 명확하고 구체적이며, Bob이 여러분이 원하는 것을 이해할 수 있도록 충분한 맥락을 제공합니다.

프롬프트 구성 요소

효과적인 프롬프트를 작성하려면 다음 구성 요소를 포함해야 합니다:

  • 지시 (Instruction): Bob에게 수행할 작업을 알려줍니다. 지시는 "이 Python 함수를 요약하세요" 또는 "이 API에 대한 SBOM을 생성하세요"와 같이 명확한 명령으로 작성됩니다. 강력한 지시는 모호함을 줄이고 더 관련성 있는 결과를 가져옵니다.
  • 역할 (Role): Bob이 응답을 생성할 때 채택할 특정 역할이나 페르소나를 할당합니다. 예를 들어, "당신은 Python 전문 지식을 갖춘 시니어 소프트웨어 엔지니어입니다"라고 말할 수 있습니다. 이는 Bob이 그 역할의 관점에 맞게 응답을 조정하는 데 도움이 됩니다.
  • 맥락 (Context): 맥락은 Bob의 응답을 형성하는 추가적인 배경 정보나 세부 사항을 제공합니다. 맥락에는 상황 설명, 톤, 청중 또는 포함하고 싶은 핵심 정보가 포함될 수 있습니다. 맥락은 Bob이 작업에 정렬된 상태를 유지하는 데 도움이 됩니다.
  • 예시 (Example): 예시에는 원하는 패턴, 형식 또는 톤을 보여주는 하나 이상의 예가 포함됩니다. 출력이 특정 스타일이나 구조를 따르길 원할 때 예시를 제공하는 것이 특히 유용합니다. 예시는 Bob이 좋은 응답의 의미를 해석하는 데 도움이 됩니다.
  • 단서 (Cues): 단서는 원하는 응답 유형으로 유도하는 짧은 텍스트입니다. 단서는 종종 프롬프트 끝에 배치되어 Bob의 출력 생성을 올바른 방향으로 안내합니다.

프롬프트 작성 기술을 연마하면서, 프롬프트를 파일에 저장하여 재사용하고 팀과 공유할 수 있습니다.

프롬프트 모범 사례

다음 모범 사례는 Bob을 위한 효과적인 프롬프트를 작성하는 데 도움이 됩니다.

  • 구체적으로 작성하세요: 프롬프트가 구체적일수록 Bob이 여러분이 원하는 것을 더 잘 이해할 수 있습니다. "Python 함수를 어떻게 작성하나요?"라고 묻는 대신, "숫자 목록을 받아 평균을 반환하는 Python 함수를 어떻게 작성하나요?"라고 물어보세요.
  • 맥락을 제공하세요: 프롬프트가 특정 프로젝트나 코드베이스에 관한 것이라면, 그에 대한 맥락을 제공하세요. 이는 Bob이 여러분의 상황에 관련된 응답을 생성하는 데 도움이 됩니다. 특정 파일을 참조하려면 Bob의 @ 맥락 멘션을 사용하세요.
  • 작업을 나누세요: 백로그의 작업을 세분화하는 것처럼, 복잡한 작업을 더 작고 관리하기 쉬운 단계로 나누세요. 이는 Bob이 더 정확하고 집중된 응답을 생성하는 데 도움이 됩니다.
  • 예시를 포함하세요: 새 API를 추가할 때는, 코드베이스의 잘 작성된 API를 예시로 검토하도록 Bob에게 지시하세요. 원하는 형식이나 스타일을 보여주기 위해 프롬프트에 예시를 포함할 수도 있습니다.

프롬프트 작성하기

이 섹션에서는 Bob에게 모호한 프롬프트를 작성하고 출력을 검토합니다. 그런 다음 모범 사례를 기반으로 프롬프트를 개선하여 응답의 품질을 향상시킵니다.

목표는 Bob이 UTC 형식으로 현재 날짜와 시간을 출력하는 Python 함수를 생성하도록 하는 것입니다. 함수는 잘 문서화되어 있고 오류 처리가 포함되어야 합니다.

채팅 인터페이스가 닫혀 있으면, 내비게이션 바 옆의 Bob 아이콘을 클릭하거나 단축키 Option + Command + B(Mac) 또는 Ctrl + Alt + B(Windows)를 사용하여 엽니다.

IBM Bob IDE에서 열린 Bob 채팅 패널

채팅 인터페이스의 모드 선택기에서 Ask를 선택합니다.

다음 프롬프트를 입력합니다:

Write a Python function that prints the date and time.

Bob이 응답을 생성하지만, 모든 요구 사항을 충족하지 않을 수 있습니다.

from datetime import datetime

def print_datetime():
    now = datetime.now()
    print(now.strftime("%Y-%m-%d %H:%M:%S"))

Bob이 함수를 생성했지만, 오류 처리가 포함되지 않았거나 UTC 형식이 아닐 가능성이 높습니다.

맥락 창을 비우기 위해 새 채팅을 시작합니다.

이제 프롬프트를 개선하여 Bob에게 역할을 부여하고 더 구체적인 지시, 예시, 맥락을 포함합니다.

  • 역할 추가하기: Bob이 응답을 생성할 때 어떤 관점을 취해야 하는지 이해할 수 있도록 역할을 부여합니다. 예를 들어, "당신은 Python 전문 지식을 갖춘 시니어 소프트웨어 엔지니어입니다."

  • 구체적인 지시 추가하기: 원하는 것에 대해 명확하게 하세요. 예를 들어, "UTC 형식으로 현재 날짜와 시간을 출력하는 Python 3 함수를 작성하세요."

  • 맥락 추가하기: Bob이 더 나은 응답을 생성하는 데 도움이 될 수 있는 추가 정보를 제공하세요. 예를 들어, "함수는 잘 문서화되어 있고 오류 처리가 포함되어야 합니다."

  • 예시: 출력이 어떻게 보이길 원하는지 예시를 포함하세요. 코드베이스에 예시가 있다면, Bob의 @ 맥락 멘션을 사용하여 참조하거나, Real Python과 같은 문서나 권위 있는 외부 소스에 링크할 수 있습니다.

You are a senior software engineer with expertise in Python 3. Write a Python 3 function that prints the current date and time in UTC format. The function should be well documented and include error handling, modeled after https://realpython.com/ref/best-practices/exception-handling/.
"""
utc_datetime.py — Utility for printing the current UTC date and time.
"""

from datetime import datetime, timezone

def print_utc_datetime() -> None:
    """Print the current date and time in UTC (ISO 8601 format).

    Retrieves the current moment from the system clock, attaches UTC timezone
    info, formats it as an ISO 8601 string, and writes it to stdout.

    Returns:
        None

    Raises:
        OSError: If the system clock cannot be read (e.g., hardware failure or
            OS-level permission restrictions).
        ValueError: If datetime formatting unexpectedly fails (e.g., year out
            of the supported range).

    Example:
        >>> print_utc_datetime()
        Current UTC date and time: 2025-07-15T13:42:00.123456+00:00
    """
    try:
        now_utc: datetime = datetime.now(tz=timezone.utc)
    except OSError as exc:
        # System clock is unavailable or inaccessible.
        raise OSError("Failed to read the system clock.") from exc

    try:
        formatted: str = now_utc.isoformat()
    except ValueError as exc:
        # Extremely unlikely, but guard against out-of-range datetime values.
        raise ValueError(
            f"Failed to format the datetime object: {now_utc!r}"
        ) from exc

    print(f"Current UTC date and time: {formatted}")


if __name__ == "__main__":
    print_utc_datetime()

Bob의 응답이 이제 여러분의 요구 사항에 더 잘 맞게 되어, 효과적인 프롬프트 작성의 중요성을 보여줍니다.

IBM SkillsBuild

IBM SkillsBuild는 AI 및 머신 러닝을 포함한 다양한 기술 분야에서 기술을 개발할 수 있는 코스와 리소스를 제공하는 무료 온라인 학습 플랫폼입니다. Bob과 같은 AI 어시스턴트를 위한 효과적인 프롬프트 작성 방법과 소프트웨어 개발 및 기술 관련 다른 주제들에 대한 코스를 찾을 수 있습니다.

좋은 프롬프트 작성에 대해 더 배우려면 Craft Precise Prompts for AI Models 코스를 수강하세요.

다음 단계

이 튜토리얼에서는 효과적인 프롬프트의 구성 요소를 배우고, 모호한 프롬프트를 원하는 출력을 안정적으로 생성하는 프롬프트로 개선했습니다.

스킬 사용하기로 이동하여 잘 작성된 프롬프트를 Bob이 자동으로 적용할 수 있는 재사용 가능하고 반복 가능한 워크플로우로 전환하세요.

이 주제는 어떤가요?