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

역할, 맥락, 예시를 추가하여 Bob Shell을 위한 효과적인 프롬프트를 작성하고, 모호한 요청을 오류 처리가 포함된 문서화된 Python 코드로 개선하세요.

IBM Bob Shell은 프롬프트에 작업, 역할, 맥락, 예시가 명시될 때 더 정확한 코드를 생성합니다. 이 튜토리얼에서는 모호한 요청을 구조화된 프롬프트로 다시 작성한 후 결과를 비교합니다.

사전 요구 사항

Bob Shell이 설치되어 있는지 확인하려면 터미널을 열고 버전을 확인합니다:

bob --version

프롬프트란 무엇인가요?

프롬프트는 원하는 출력을 얻기 위해 Bob에게 주는 질문, 요청 또는 명령입니다. 모호한 프롬프트는 모호한 답변을 생성합니다. 좋은 프롬프트는 명확하고 구체적이며, Bob이 여러분이 원하는 것을 이해할 수 있도록 충분한 맥락을 제공합니다.

프롬프트 구성 요소

효과적인 프롬프트는 다음 구성 요소를 결합합니다:

구성 요소목적예시
지시 (Instruction)Bob에게 수행할 작업을 알려줍니다. 강력한 지시는 모호함을 줄입니다."이 API에 대한 소프트웨어 자재 명세서(SBOM)를 생성하세요."
역할 (Role)페르소나를 할당하여 Bob이 그 관점에 맞게 응답을 조정합니다."당신은 Python 전문 지식을 갖춘 시니어 소프트웨어 엔지니어입니다."
맥락 (Context)상황, 청중, 톤 또는 제약 조건 등 배경을 추가합니다."이 함수는 프로덕션 서비스에서 실행되며 오류 처리가 포함되어야 합니다."
예시 (Example)Bob이 따를 패턴, 형식 또는 스타일을 보여줍니다."@src/api/users.py의 구조를 따르세요."
단서 (Cue)원하는 응답으로 유도하며, 보통 프롬프트 끝에 위치합니다."def로 시작하는 함수만 반환하세요."

프롬프트를 커스텀 슬래시 명령으로 저장하여 재사용하고 팀과 공유할 수 있습니다.

효과적인 프롬프트란 무엇인가요?

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

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

모호한 프롬프트 개선하기

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

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

터미널을 열고 Agent 모드에서 대화형 세션을 시작합니다:

bob chat --mode agent

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

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"))

함수에는 오류 처리가 없고 로컬 시간을 출력합니다(UTC가 아님).

/clear를 입력하여 대화 기록을 초기화하세요. 첫 번째 응답이 다음 응답에 영향을 미치지 않도록 합니다:

/clear

프롬프트 구성 요소를 사용하여 프롬프트를 개선합니다:

  • 역할: "당신은 Python 3 전문 지식을 갖춘 시니어 소프트웨어 엔지니어입니다."
  • 지시: "UTC 형식으로 현재 날짜와 시간을 출력하는 Python 3 함수를 작성하세요."
  • 맥락: "함수는 잘 문서화되어 있고 오류 처리가 포함되어야 합니다."
  • 예시: Real Python 예외 처리 모범 사례와 같은 권위 있는 출처를 Bob에게 안내하세요.

개선된 프롬프트를 입력합니다:

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()

개선된 프롬프트는 UTC를 사용하고, docstring을 포함하며, 예외를 처리하는 함수를 생성합니다.

IBM SkillsBuild

IBM SkillsBuild는 Bob과 같은 AI 어시스턴트를 위한 효과적인 프롬프트 작성 코스를 제공하는 무료 온라인 학습 플랫폼입니다.

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

다음 단계

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

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

이 주제는 어떤가요?