k
korAI
중급 전체
중급2026-06-265분

temperature 0.0 vs 1.0 — 언제 무엇을 써야 하는지 완벽 정리

temperature와 streaming 옵션을 제대로 이해하면 응답 품질과 사용자 경험을 동시에 잡을 수 있습니다. 같은 모델도 파라미터 하나로 완전히 다른 도구가 됩니다.

api-optionsstreamingtemperature

temperature란 무엇인가

temperature는 모델이 다음 토큰을 고를 때 확률 분포의 날카로움을 조절하는 값입니다.

| 값 범위 | 특성 | 적합한 용도 | |---|---|---| | 0.0 | 항상 가장 높은 확률 토큰 선택 (결정론적) | 코드 생성, 데이터 추출, 분류, 수학 | | 0.3 ~ 0.7 | 약간의 변형 허용 | 요약, 번역, 고객 응대 | | 0.8 ~ 1.0 | 다양성·창의성 극대화 | 카피라이팅, 브레인스토밍, 스토리텔링 |

⚠️ 흔한 실수: 코드 자동완성에 temperature: 1.0을 쓰면 문법은 맞지만 의도와 다른 로직이 나올 수 있습니다. 반대로 창작 과제에 0.0을 쓰면 매번 동일한 문장이 반복됩니다.

Streaming으로 체감 응답속도 개선하기

streaming을 활성화하면 모델이 토큰을 생성하는 즉시 클라이언트로 전달합니다. 전체 응답 완료까지 기다리는 TTFB(Time to First Byte) 문제를 해소하고, 사용자는 결과가 실시간으로 타이핑되는 느낌을 받습니다.

특히 긴 보고서 생성이나 코드 작성처럼 응답이 수 초 이상 걸리는 케이스에서 이탈률을 크게 낮출 수 있습니다.

Python 코드 예시 — temperature + streaming 조합

import anthropic

client = anthropic.Anthropic()

def generate_with_options(
    prompt: str,
    creative_mode: bool = False
) -> str:
    """
    creative_mode=True  → 카피라이팅, 아이디어 발산 (temperature 높음)
    creative_mode=False → 코드·데이터 처리 (temperature 낮음)
    """
    temperature = 0.9 if creative_mode else 0.1
    collected_text = []

    print(f"[모드: {'창의적' if creative_mode else '정밀'} | temperature={temperature}]\n")

    # streaming=True로 실시간 출력
    with client.messages.stream(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        temperature=temperature,
        messages=[{"role": "user", "content": prompt}],
    ) as stream:
        for text_chunk in stream.text_stream:
            print(text_chunk, end="", flush=True)  # 실시간 출력
            collected_text.append(text_chunk)

    print()  # 줄바꿈
    full_response = "".join(collected_text)

    # 스트리밍 종료 후 최종 메시지 메타 확인
    final_message = stream.get_final_message()
    print(f"\n--- 토큰: {final_message.usage.input_tokens} in / {final_message.usage.output_tokens} out ---")

    return full_response


# 정밀 모드: JSON 구조 추출
generate_with_options(
    prompt='다음 문장에서 이름, 날짜, 금액을 JSON으로 추출하세요: "홍길동이 2026년 6월 26일에 150만원을 결제했습니다."',
    creative_mode=False,
)

print("\n" + "="*50 + "\n")

# 창의 모드: 광고 카피 생성
generate_with_options(
    prompt="친환경 텀블러를 MZ세대에게 어필하는 짧은 광고 카피 3가지를 작성해주세요.",
    creative_mode=True,
)

실전 적용 체크리스트

  • [ ] 작업 유형에 맞는 temperature 값을 의도적으로 설정했는가 (기본값에 의존하지 말 것)
  • [ ] 응답 시간이 2초 이상 걸리는 기능에는 streaming을 적용했는가
  • [ ] streaming 사용 시 stream.get_final_message()로 토큰 사용량을 로깅하고 있는가
  • [ ] 같은 프롬프트로 temperature 0.0 / 0.5 / 1.0 비교 테스트를 수행했는가
  • [ ] 프로덕션 코드에 temperature 값이 하드코딩되지 않고 환경 변수나 설정 파일로 분리되었는가