Parallel Web Search를 사용한 그라운딩

Parallel Web Systems는 그라운딩을 위해 대규모 언어 모델에서 사용하도록 최적화된 공개 웹 데이터에 액세스할 수 있는 검색 API를 제공합니다. 이 페이지에서는 Parallel을 사용하여 Gemini 대답을 그라운딩하는 방법을 설명합니다.

Gemini Enterprise Agent Platform의 Parallel을 사용한 그라운딩은 Google Cloud 계약에 정의된 별도의 제품으로, Gemini 모델을 Parallel Web Systems' 검색 API에서 제공하는 공개 웹 데이터에 연결합니다. 이 서비스를 통해 Gemini는 수십억 개의 웹페이지에서 실시간 정보에 액세스하여 최신 정보에 기반한 사실적인 대답을 제공할 수 있습니다.

사용 사례

Parallel을 사용한 그라운딩은 다음과 같은 사용 사례에 적합합니다.

  • 정보 완성 또는 보강 목적으로 웹 데이터를 사용합니다.
  • 더 복잡한 질문에 대해 심층적인 웹 검색이 필요한 멀티홉 에이전트
  • 웹 검색 데이터를 통합하는 API를 빌드합니다.
  • 최종 사용자가 최신 웹 정보를 사용하여 질문하고 복잡한 보고서를 만들 수 있는 직원용 어시스턴트
  • 사용자가 정보에 기반한 구매 결정을 내릴 수 있는 소매, 여행과 같은 소비자 대상 애플리케이션
  • 뉴스 분석, KYC 확인과 같은 자동화된 작업을 실행하기 위해 자율적으로 실행되는 자동화된 에이전트
  • 웹에서 최신 컨텍스트를 가져오는 업종별 에이전트 (영업 에이전트, 코딩 에이전트, 금융 에이전트)

예시

2025년 라스베이거스 F1 그랑프리 우승자는 누구야?

그라운딩 없음 접지 포함
2025년 라스베이거스 그랑프리는 아직 개최되지 않았습니다. 이 경주는 2025년 11월 20~22일 주말에 개최될 예정입니다. 따라서 승자를 알 수 없습니다. 2025년 라스베이거스 F1 그랑프리의 우승자는 Red Bull Racing의 Max Verstappen입니다. 레이스는 2025년 11월 22일에 진행되었습니다. 출처: domain1.com, domain2.com, ...

지원되는 모델

Parallel Web Search를 사용한 그라운딩은 다음 모델에서 지원됩니다.

  • Gemini 2.5 Flash(gemini-2.5-flash)
  • Gemini 2.5 Flash-Lite(gemini-2.5-flash-lite)
  • Gemini 2.5 Pro(gemini-2.5-pro)
  • Gemini 3.1 Pro (gemini-3.1-pro-preview)
  • Gemini 3.1 Flash Lite (gemini-3.1-flash-lite)
  • Gemini 3.5 Flash (gemini-3.5-flash)

시작하기 전에

Parallel Web Search를 사용한 그라운딩을 사용하려면 액세스 권한을 설정해야 합니다. 다음 두 가지 옵션이 있습니다.

  • Google Cloud Marketplace에서 Parallel Web Search를 사용한 그라운딩을 직접 구독하여 기존 클라우드 환경 내에서 통합을 간소화하세요. 민감한 워크로드에는 데이터 보관 기간 0일 제품도 사용할 수 있습니다. ZDR을 사용하려면 ZDR 제품을 구독하고 API 요청에서 해당 enable_zero_data_retention 플래그를 설정해야 합니다.

  • 기존 Parallel API 키를 사용합니다.

Google Cloud Marketplace에서 구독 (권장)

Google Cloud Marketplace를 통해 통합하면 Google Cloud내에서 직접 그라운딩과 병렬 웹 검색 서비스를 관리할 수 있습니다. 시작하려면 Google Cloud Marketplace에서 그라운딩 with Parallel Web Search 서비스를 구독하고 서비스 약관에 동의한 후 가격을 검토하세요.

API 키 직접 가져오기

병렬 결제 및 API 액세스를 별도로 관리하려면 자체 API 키를 제공하면 됩니다. 이 메서드를 사용하려면 Parallel 개발자 플랫폼에서 API 키를 가져와야 합니다. 이 API 키는 Gemini에 대한 REST API 요청에 직접 사용됩니다.

Parallel을 사용하여 Gemini 응답 그라운딩

Google Cloud 콘솔, Google 생성형 AI SDK 또는 REST API에서 Agent Studio를 사용하여 Gemini에 그라운딩된 대답을 요청합니다. 최상의 성능을 위해서는 기본값이 아닌 값이 엄격하게 필요한 경우가 아니면 선택적 매개변수에 기본 설정을 사용하는 것이 좋습니다.

Google Cloud Marketplace에서 Grounding with Parallel Web Search를 구독한 경우 구독에 사용된 결제 계정이Google Cloud 프로젝트에서 활성 상태인지 확인합니다.

샘플을 실행하기 전에 Google Cloud Marketplace에서 구독하거나 Parallel API 키를 제공하는 등 기본 요건을 완료하세요.

콘솔

Gemini Enterprise Agent Platform의 Agent Studio를 사용하여 병렬 웹 검색으로 Gemini 응답을 그라운딩하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Agent Studio 페이지로 이동합니다.

    Agent Studio로 이동

  2. 측면 패널의 모델 설정에서 그라운딩 섹션의 파트너 전환 버튼 (그라운딩 파트너의 검색 결과)을 사용 설정합니다.

  3. 그라운딩 파트너로 병렬 웹 검색을 선택한 다음 적용을 클릭합니다. 병렬 웹 검색을 사용하려면 먼저 Google Cloud Marketplace에서 구독해야 합니다.

  4. 텍스트 상자에 프롬프트를 입력하고 제출합니다.

이제 프롬프트 응답에서 Parallel Web Search를 사용한 그라운딩을 사용합니다.

Python

설치

pip install --upgrade google-genai

자세한 내용은 SDK 참고 문서를 참고하세요.

Vertex AI에서 Google 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

샘플을 실행하기 전에 다음을 바꿉니다.

  • MODEL_ID: 사용할 지원되는 모델의 ID입니다(예: gemini-2.5-flash).
  • TEXT: 모델에 전송할 텍스트 프롬프트
  • API_KEY: Parallel Web Search의 API 키입니다. Google Cloud Marketplace를 구독하는 경우 이 매개변수를 생략하세요. 두 매개변수가 모두 제공되면 API 키가 우선합니다.
  • EXCLUDE_DOMAINS: 선택사항: 그라운딩 소스에서 제외할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 제외됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • INCLUDE_DOMAINS: 선택사항: 그라운딩 소스에 포함할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 포함됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • MAX_CHARS_PER_RESULT: (선택사항) 각 검색 결과 발췌문에 포함할 최대 문자 수입니다. 지정되지 않은 경우 기본값은 30000입니다. 허용되는 범위는 [1000, 100000]입니다.
  • MAX_CHARS_TOTAL: 선택사항: 모든 검색 결과 발췌문의 최대 총 문자 수입니다. 지정되지 않은 경우 기본값은 100000입니다. 허용되는 범위는 [1000, 1000000]입니다.
  • MAX_RESULTS: 선택사항: 그라운딩에 사용할 최대 검색 결과 수입니다. 지정되지 않은 경우 기본값은 10입니다. 허용되는 범위는 [1, 20]입니다.
  • MODE: 선택사항: 요청에 사용할 모드(basic 또는 advanced)입니다. 기본값은 basic입니다. 지연 시간이 길어지더라도 더 철저한 검색 결과를 원한다면 advanced 모드를 고려하세요.
  • SEARCH_LOCATION: 선택사항: 지역 타겟팅 검색 결과의 ISO 3166-1 alpha-2 국가 코드입니다. 예를 들면 "us"입니다.

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="MODEL_ID",
    contents="TEXT",
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                parallel_ai_search=types.ToolParallelAiSearch(
                    # Optional. Omit api_key if you subscribed to Grounding with
                    # Parallel Web Search on Google Cloud Marketplace.
                    api_key="API_KEY",
                    # Optional. Set to True to use Zero Data Retention (ZDR) for
                    # sensitive workloads. Requires a separate ZDR Marketplace
                    # subscription; defaults to the standard subscription.
                    enable_zero_data_retention=True,
                    # Optional. Customize the search. Click a placeholder to
                    # enter a value, or remove the line to accept the default.
                    custom_configs={
                        "mode": "MODE",
                        "location": "SEARCH_LOCATION",
                        "max_results": MAX_RESULTS,
                        "source_policy": {
                            "exclude_domains": ["EXCLUDE_DOMAINS"],
                            "include_domains": ["INCLUDE_DOMAINS"],
                        },
                        "excerpts": {
                            "max_chars_per_result": MAX_CHARS_PER_RESULT,
                            "max_chars_total": MAX_CHARS_TOTAL,
                        },
                    },
                )
            )
        ],
    ),
)

print(response.text)
# Example response:
# Max Verstappen won the 2025 Las Vegas F1 Grand Prix ...

# The grounding metadata contains the web sources used to ground the response.
print(response.candidates[0].grounding_metadata.grounding_chunks)

Java

Java를 설치하거나 업데이트하는 방법을 알아보세요.

자세한 내용은 SDK 참고 문서를 참고하세요.

Vertex AI에서 Google 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

샘플을 실행하기 전에 다음을 바꿉니다.

  • MODEL_ID: 사용할 지원되는 모델의 ID입니다(예: gemini-2.5-flash).
  • TEXT: 모델에 전송할 텍스트 프롬프트
  • API_KEY: Parallel Web Search의 API 키입니다. Google Cloud Marketplace를 구독하는 경우 이 매개변수를 생략하세요. 두 매개변수가 모두 제공되면 API 키가 우선합니다.
  • EXCLUDE_DOMAINS: 선택사항: 그라운딩 소스에서 제외할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 제외됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • INCLUDE_DOMAINS: 선택사항: 그라운딩 소스에 포함할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 포함됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • MAX_CHARS_PER_RESULT: (선택사항) 각 검색 결과 발췌문에 포함할 최대 문자 수입니다. 지정되지 않은 경우 기본값은 30000입니다. 허용되는 범위는 [1000, 100000]입니다.
  • MAX_CHARS_TOTAL: 선택사항: 모든 검색 결과 발췌문의 최대 총 문자 수입니다. 지정되지 않은 경우 기본값은 100000입니다. 허용되는 범위는 [1000, 1000000]입니다.
  • MAX_RESULTS: 선택사항: 그라운딩에 사용할 최대 검색 결과 수입니다. 지정되지 않은 경우 기본값은 10입니다. 허용되는 범위는 [1, 20]입니다.
  • MODE: 선택사항: 요청에 사용할 모드(basic 또는 advanced)입니다. 기본값은 basic입니다. 지연 시간이 길어지더라도 더 철저한 검색 결과를 원한다면 advanced 모드를 고려하세요.
  • SEARCH_LOCATION: 선택사항: 지역 타겟팅 검색 결과의 ISO 3166-1 alpha-2 국가 코드입니다. 예를 들면 "us"입니다.

import com.google.genai.Client;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.Tool;
import com.google.genai.types.ToolParallelAiSearch;
import java.util.List;
import java.util.Map;

public class ParallelGroundingSample {
  public static void main(String[] args) {
    try (Client client = Client.builder().build()) {

      GenerateContentConfig config =
          GenerateContentConfig.builder()
              .tools(
                  Tool.builder()
                      .parallelAiSearch(
                          ToolParallelAiSearch.builder()
                              // Optional. Omit apiKey if you subscribed to
                              // Grounding with Parallel Web Search on Google
                              // Cloud Marketplace.
                              .apiKey("API_KEY")
                              // Optional. Set to true to use Zero Data
                              // Retention (ZDR) for sensitive workloads.
                              // Requires a separate ZDR Marketplace
                              // subscription; defaults to the standard
                              // subscription.
                              .enableZeroDataRetention(true)
                              // Optional. Customize the search. Click a
                              // placeholder to enter a value, or remove the
                              // entry to accept the default.
                              .customConfigs(
                                  Map.of(
                                      "mode", "MODE",
                                      "location", "SEARCH_LOCATION",
                                      "max_results", MAX_RESULTS,
                                      "source_policy",
                                      Map.of(
                                          "exclude_domains",
                                          List.of("EXCLUDE_DOMAINS"),
                                          "include_domains",
                                          List.of("INCLUDE_DOMAINS")),
                                      "excerpts",
                                      Map.of(
                                          "max_chars_per_result",
                                          MAX_CHARS_PER_RESULT,
                                          "max_chars_total",
                                          MAX_CHARS_TOTAL)))
                              .build())
                      .build())
              .build();

      GenerateContentResponse response =
          client.models.generateContent(
              "MODEL_ID", "TEXT", config);

      System.out.println(response.text());
    }
  }
}

Node.js

설치

npm install @google/genai

자세한 내용은 SDK 참고 문서를 참고하세요.

Vertex AI에서 Google 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

샘플을 실행하기 전에 다음을 바꿉니다.

  • MODEL_ID: 사용할 지원되는 모델의 ID입니다(예: gemini-2.5-flash).
  • TEXT: 모델에 전송할 텍스트 프롬프트
  • API_KEY: Parallel Web Search의 API 키입니다. Google Cloud Marketplace를 구독하는 경우 이 매개변수를 생략하세요. 두 매개변수가 모두 제공되면 API 키가 우선합니다.
  • EXCLUDE_DOMAINS: 선택사항: 그라운딩 소스에서 제외할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 제외됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • INCLUDE_DOMAINS: 선택사항: 그라운딩 소스에 포함할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 포함됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • MAX_CHARS_PER_RESULT: (선택사항) 각 검색 결과 발췌문에 포함할 최대 문자 수입니다. 지정되지 않은 경우 기본값은 30000입니다. 허용되는 범위는 [1000, 100000]입니다.
  • MAX_CHARS_TOTAL: 선택사항: 모든 검색 결과 발췌문의 최대 총 문자 수입니다. 지정되지 않은 경우 기본값은 100000입니다. 허용되는 범위는 [1000, 1000000]입니다.
  • MAX_RESULTS: 선택사항: 그라운딩에 사용할 최대 검색 결과 수입니다. 지정되지 않은 경우 기본값은 10입니다. 허용되는 범위는 [1, 20]입니다.
  • MODE: 선택사항: 요청에 사용할 모드(basic 또는 advanced)입니다. 기본값은 basic입니다. 지연 시간이 길어지더라도 더 철저한 검색 결과를 원한다면 advanced 모드를 고려하세요.
  • SEARCH_LOCATION: 선택사항: 지역 타겟팅 검색 결과의 ISO 3166-1 alpha-2 국가 코드입니다. 예를 들면 "us"입니다.

import {GoogleGenAI} from '@google/genai';

const ai = new GoogleGenAI({});

const response = await ai.models.generateContent({
  model: 'MODEL_ID',
  contents: 'TEXT',
  config: {
    tools: [
      {
        parallelAiSearch: {
          // Optional. Omit apiKey if you subscribed to Grounding with Parallel
          // Web Search on Google Cloud Marketplace.
          apiKey: 'API_KEY',
          // Optional. Set to true to use Zero Data Retention (ZDR) for
          // sensitive workloads. Requires a separate ZDR Marketplace
          // subscription; defaults to the standard subscription.
          enableZeroDataRetention: true,
          // Optional. Customize the search. Click a placeholder to enter a
          // value, or remove the line to accept the default.
          customConfigs: {
            mode: 'MODE',
            location: 'SEARCH_LOCATION',
            max_results: MAX_RESULTS,
            source_policy: {
              exclude_domains: ['EXCLUDE_DOMAINS'],
              include_domains: ['INCLUDE_DOMAINS'],
            },
            excerpts: {
              max_chars_per_result: MAX_CHARS_PER_RESULT,
              max_chars_total: MAX_CHARS_TOTAL,
            },
          },
        },
      },
    ],
  },
});

console.log(response.text);

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION: 요청을 처리하는 리전입니다. 전역 엔드포인트를 사용하려면 엔드포인트 이름에서 위치를 제외하고 리소스 위치를 `global`로 구성합니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • MODEL_ID: 사용할 지원되는 모델의 ID입니다(예: gemini-2.5-flash).
  • TEXT: 모델에 전송할 텍스트 프롬프트
  • API_KEY: Parallel Web Search의 API 키입니다. Google Cloud Marketplace를 구독하는 경우 이 매개변수를 생략하세요. 두 매개변수가 모두 제공되면 API 키가 우선합니다.
  • EXCLUDE_DOMAINS: 선택사항: 그라운딩 소스에서 제외할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 제외됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • INCLUDE_DOMAINS: 선택사항: 그라운딩 소스에 포함할 도메인 목록입니다. 지정된 경우 이러한 도메인의 소스가 포함됩니다. 허용되는 값은 도메인 (www.example.com) 또는 마침표로 시작하는 도메인 확장자(.gov, .edu, .co.uk)입니다. 도메인은 최대 200개까지 지정할 수 있습니다.
  • MAX_CHARS_PER_RESULT: (선택사항) 각 검색 결과 발췌문에 포함할 최대 문자 수입니다. 지정되지 않은 경우 기본값은 30000입니다. 허용되는 범위는 [1000, 100000]입니다.
  • MAX_CHARS_TOTAL: 선택사항: 모든 검색 결과 발췌문의 최대 총 문자 수입니다. 지정되지 않은 경우 기본값은 100000입니다. 허용되는 범위는 [1000, 1000000]입니다.
  • MAX_RESULTS: 선택사항: 그라운딩에 사용할 최대 검색 결과 수입니다. 지정되지 않은 경우 기본값은 10입니다. 허용되는 범위는 [1, 20]입니다.
  • MODE: 선택사항: 요청에 사용할 모드(basic 또는 advanced)입니다. 기본값은 basic입니다. 지연 시간이 길어지더라도 더 철저한 검색 결과를 원한다면 advanced 모드를 고려하세요.
  • SEARCH_LOCATION: 선택사항: 지역 타겟팅 검색 결과의 ISO 3166-1 alpha-2 국가 코드입니다. 예를 들면 "us"입니다.
  • ENABLE_ZERO_DATA_RETENTION: 선택사항: 민감한 워크로드에서 데이터 보관 기간 제로를 사용 설정하려면 병렬 웹 검색의 ZDR 버전으로 전환합니다. 요청에 ZDR 제품을 사용하려면 true로 설정합니다. 이러한 요청이 성공하려면 ZDR 전용 제품을 구독해야 합니다. 지정하지 않으면 기본값은 표준 버전입니다. ZDR 버전은 Google Cloud Marketplace를 통해서만 제공됩니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

JSON 요청 본문:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "parallelAiSearch": {
        "api_key": "API_KEY",
        "enable_zero_data_retention": ENABLE_ZERO_DATA_RETENTION,
        "customConfigs": {
            "mode": "MODE",
            "location": "SEARCH_LOCATION",
            "max_results": MAX_RESULTS,
            "source_policy": {
                "exclude_domains": ["EXCLUDE_DOMAINS"],
                "include_domains": ["INCLUDE_DOMAINS"]
            },
            "excerpts": {
                "max_chars_per_result": MAX_CHARS_PER_RESULT,
                "max_chars_total": MAX_CHARS_TOTAL
            }
        }
    }
}],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 수신됩니다.

할당량

기본 할당량은 분당 200개의 프롬프트입니다. 요율 한도 상향을 요청하려면 사용 사례와 요구사항을 적절한 담당자에게 제공하세요.

  • Google Cloud Marketplace에서 그라운딩과 병렬 웹 검색을 구독한 경우: Google 계정팀에 문의하세요.

  • 자체 API 키를 제공하는 경우: support@parallel.ai 및 Google 계정팀에 문의하세요.

결제

Parallel Web Search를 사용한 그라운딩을 사용하면 다음 요금이 부과됩니다.

  • Gemini 토큰 사용량: 다음 항목에 대해 요금이 청구될 수 있습니다.

    • 프롬프트 토큰
    • 사고 토큰
    • 출력 토큰

    자세한 내용은 가격 책정을 참조하세요.

  • Gemini의 데이터 기반 그라운딩: 자세한 내용은 가격 책정을 참고하세요.

  • 병렬 웹 검색 API 사용 가격 책정:

    • Google Cloud Marketplace에서 병렬 웹 검색을 사용한 그라운딩을 구독한 경우 Google Cloud Marketplace의 병렬 가격 책정 섹션을 참고하세요.

    • 자체 API 키를 제공하는 경우 병렬 웹사이트를 참고하세요.