파일 프롬프팅 전략

Gemini의 인공지능 (AI) 모델 제품군은 텍스트, 이미지, 오디오를 비롯한 다양한 유형의 입력 데이터를 처리하도록 빌드되었습니다. 이러한 모델은 두 개 이상의 데이터 유형 또는 모드를 처리할 수 있으므로 Gemini 모델을 멀티모달 모델이라고 하거나 멀티모달 기능을 보유한 것으로 설명합니다.

이 페이지에서는 Gemini API 프롬프트와 함께 미디어 파일을 사용하는 방법에 관한 안내와 권장사항을 제공합니다. Gemini Files API를 사용하여 미디어 파일을 업로드하고 프롬프트에 포함하는 방법에 관한 자세한 내용은 미디어 파일로 메시지 표시를 참고하세요.

프롬프트와 함께 미디어 파일 사용

프롬프트에서 다양한 유형의 데이터를 사용할 수 있게 되면 Gemini API로 처리할 수 있는 태스크에 더 유연하게 대처할 수 있습니다. 예를 들어 모델에 맛있는 식사 사진을 보내고 식사에 대한 짧은 블로그를 작성하도록 요청할 수 있습니다.

프롬프트 응답

이 사진을 바탕으로 짧고 흥미로운 블로그 게시물을 작성해 주세요. 사진에 식사에 대한 설명을 포함하고 식사 준비에 대해 이야기해야 합니다.


쿠키

식사 준비는 시간과 비용을 절약할 수 있는 좋은 방법일 뿐만 아니라 더 건강한 식생활에도 도움이 될 수 있습니다. 이 식사는 미리 쉽게 준비할 수 있는 건강하고 맛있는 식사의 좋은 예입니다.

현미, 구운 야채, 치킨 데리야키가 포함된 식사입니다. 현미는 건강한 복합 탄수화물로, 지속적인 에너지를 공급합니다. 구운 채소는 비타민과 미네랄을 매일 섭취하는 데 좋은 방법이며 치킨 데리야키는 맛있고 단백질이 풍부한 음식입니다.

이 음식은 준비도 매우 쉽습니다. 현미를 끓이고 채소를 구운 다음 치킨 데리야키를 요리하기만 하면 됩니다. 모든 것이 조리되면 식사 준비 용기로 나눠 냉장고에 보관합니다. 이제 컨테이너를 들고 바쁜 아침을 보낼 수 있습니다.

미리 쉽게 준비할 수 있는 건강하고 맛있는 식사를 찾고 있다면 이 식사가 훌륭한 선택입니다. 영양가와 맛이 가득하고 포만감과 만족을 느낄 수 있습니다.

건강하고 맛있는 식사를 준비할 수 있습니다.

미디어를 통한 메시지 표시 전략

미디어 파일을 사용하는 프롬프트에서 원하는 출력을 얻는 데 문제가 있다면 원하는 결과를 얻는 데 도움이 되는 몇 가지 전략이 있습니다. 다음 섹션에서는 다중 모달 입력을 사용하는 프롬프트를 개선하기 위한 설계 접근 방식과 문제 해결 팁을 제공합니다.

다음 권장사항에 따라 멀티모달 프롬프트를 향상시킬 수 있습니다.

프롬프트 설계 기초

  • 구체적인 지침 설정: 오해의 소지가 거의 없도록 명확하고 간결한 지침을 제시합니다.
  • 프롬프트에 몇 가지 예시 추가: 달성하려는 목표를 쉽게 이해할 수 있도록 실질적인 퓨샷 예시를 사용합니다.
  • 단계별 분류: 복잡한 태스크를 관리 가능한 하위 목표로 분할하고 프로세스 전반에 걸쳐서 모델을 안내합니다.
  • 출력 형식 지정: 프롬프트에서 마크다운, JSON, HTML 등 원하는 형식으로 출력을 요청합니다.
  • 단일 이미지 프롬프트의 경우 이미지 우선 배치: Gemini는 이미지와 텍스트 입력을 순서에 관계없이 처리할 수 있지만 단일 이미지가 포함된 프롬프트의 경우 해당 이미지를 텍스트 프롬프트 앞에 배치하면 성능이 개선될 수 있습니다.

    멀티모달 프롬프트 문제 해결

    • 모델이 관련 이미지 부분에서 정보를 가져오지 않는 경우: 프롬프트로 정보를 가져오려는 이미지 부분에 대한 힌트를 제공합니다.
    • 모델 출력이 너무 일반적인 경우(이미지에 맞게 조정되지 않은 경우): 프롬프트를 시작할 때 작업 안내를 제공하기 전에 모델에 이미지를 설명하도록 요청하거나 모델에 이미지에 있는 내용을 참조하도록 요청하세요.
    • 프롬프트 설계 기초

      이 섹션에서는 이전 섹션에 나열된 권장사항을 자세히 설명합니다.

      참고: 다음 Gemini 예시의 모델 결과는 실행할 때마다 달라질 수 있습니다.

      구체적인 지침 설정

      프롬프트는 명확하고 세부적일 때 가장 성공적입니다. 세부적인 출력을 원할 때는 원하는 출력을 얻을 수 있도록 프롬프트에 그러한 요구사항을 포함하는 것이 더 좋습니다.

      일부 경우에는 프롬프트 의도가 이를 작성한 사람에게는 명확하게 보이더라도 실제로 그렇지 않을 수 있습니다. 모델 동작을 맞춤설정하려면 프롬프트에 대한 해석(오해) 정도를 고려하고 구체적이고 명확한 지침을 제공해야 합니다. 오해의 소지가 거의 없어야 합니다.

      공항 보드 이미지의 경우 "이미지 설명"이라고만 모델에 요청하면 일반적인 설명이 생성될 수 있습니다. 모델이 이미지에서 시간과 도시를 파싱하도록 하려면 프롬프트에 해당 요청을 직접 포함할 수 있습니다.

      프롬프트 모델 응답

      이 이미지를 설명해 주세요.

      이 이미지는 공항 도착 및 출발 보드를 보여줍니다.

      업데이트된 프롬프트 개선된 응답
      여행 일정

      이 이미지에 표시된 공항 보드에서 시간과 도시를 분석해서 목록으로 표시해 주세요.

    • 10:50 모스크바
    • 11:05 에든버러
    • 11:05 런던
    • 11:10 부카레스트
    • 11:30 키예프
    • 11:35 더블린
    • 11:45 이스트 미들랜즈
    • 12:15 소피아
    • 12:30 런던
    • 12:30 뉴캐슬
    • 12:40 상트페테르부르크
    • 12:40 런던
    • 12:45 맨체스터
    • 몇 가지 예시 추가

      Gemini 모델은 원하는 출력을 이해하기 위해 예시로 사용할 수 있는 여러 입력을 수락할 수 있습니다. 이러한 예시를 추가하면 모델이 패턴을 식별하고 제공된 이미지와 응답 사이의 관계를 새 예시에 적용할 수 있습니다. 이를 "퓨샷" 학습이라고도 부릅니다.

      아래 예시에서 최초 출력은 문장 형식으로 작성되었으며 국가(브라질)를 포함합니다. 다른 형식 또는 스타일로 출력을 표시하고 국가가 아닌 도시만 포함한다고 가정해 보세요. 프롬프트에 퓨샷 예시를 추가하면 원하는 방식으로 응답하도록 모델을 조정할 수 있습니다.

      프롬프트 모델 응답
      여행 일정

      명소와 함께 도시를 설명해 주세요.

      이 랜드마크는 브라질 리우데자네이루에 있는 구세주 예수상입니다.

      업데이트된 프롬프트 개선된 응답

      명소와 함께 도시를 설명해 주세요.

      콜로세움

      도시: 로마, 랜드마크: 콜로세움

      자금성

      도시: 베이징, 랜드마크: 자금성

      자금성

      도시: 리우데자네이루, 랜드마크: 구세주 예수상

      단계별 분류

      시각적인 이해와 근거가 모두 필요한 것과 같이 복잡한 태스크의 경우에는 태스크를 더 작고 보다 직관적인 단계들로 분할하는 것이 유용할 수 있습니다. 또는 프롬프트에서 "단계별로 생각"하도록 모델에 직접 요청하는 것도 효과적일 수 있습니다.

      프롬프트 모델 응답

      화장지가 언제 다 떨어질까요?

      이제 3개 밖에 없으니 곧 떨어집니다.

      업데이트된 프롬프트 개선된 응답

        1. 먼저 이 사진에서 화장실 휴지 개수를 세어 보세요.
        2. 그런 다음 일반적인 사람이 하루에 화장실 휴지를 얼마나 사용하는지 확인해 주세요.
        3. 여기 있는 화장실 휴지가 얼마나 오래갈지 계산해 주세요.

        1. 이 사진에는 화장실 휴지가 3개 있습니다.
        2. 사람은 일반적으로 화장실 휴지를 하루에 20칸 정도 사용합니다.
        3. 한 롤에 휴지가 200칸 있으면 각 롤이 약 10일 정도 지속됩니다. 따라서 3개 롤은 한 달 정도 지속됩니다.

      수학 문제나 기타 유형의 단어 문제는 모델이 단계별로 생각하도록 요청하기에 적합한 후보입니다.

      프롬프트 응답

      이 시퀀스에서 네 번째 항은 무엇인가요?

      -135

      모델의 응답은 잘못되었습니다. 이를 개선하기 위한 몇 가지 방법은 모델이 프롬프트에 답변하기 전 문제를 파싱하도록 요청하는 것입니다.

      프롬프트 응답

      먼저 이미지에서 수식을 분석해 주세요.

      그런 후 수식을 기준으로 "시퀀스에서 네 번째 항은 무엇"인지 대답해 주세요.

      클릭하여 결과 확장

      $$ b(n) = b(n-1) * (-3) $$

      $$ b(1) = 15 $$

      1. n = 4를 수식에 대체합니다.
      2. $$ b(4) = b(4-1) * (-3) $$

        $$ b(4) = b(3) * (-3) $$

      3. b(3)의 값을 알지 못하므로 n = 3을 수식에 대체합니다.
      4. $$ b(3) = b(3-1) * (-3) $$

        $$ b(3) = b(2) * (-3) $$

      5. b(2)의 값을 알지 못하므로 n = 2를 수식에 대체합니다.
      6. $$ b(2) = b(2-1) * (-3) $$

        $$ b(2) = b(1) * (-3) $$

      7. b(1)의 값이 15인 것을 알고 있으므로 이를 수식에 대체합니다.
      8. $$ b(2) = 15 * (-3) $$

        $$ b(2) = -45 $$

      9. 이제 b(2)의 값을 알았으므로 이를 b(3) 수식에 대체합니다.
      10. $$ b(3) = b(2) * (-3) $$

        $$ b(3) = -45 * (-3) $$

        $$ b(3) = 135 $$

      11. 이제 b(3)의 값을 알았으므로 이를 b(4) 수식에 대체합니다.
      12. $$ b(4) = b(3) * (-3) $$

        $$ b(4) = 135 * (-3) $$

        $$ b(4) = -405 $$

      따라서 시퀀스에서 네 번째 항은 -405입니다.

      이번에는 모델 응답이 올바릅니다. 이제 응답을 보다 효율적으로 만들기 위해 모델에 단계별로 생각하도록 요청할 수 있습니다.

      업데이트된 프롬프트 개선된 응답

      이 시퀀스에서 네 번째 항은 무엇인가요? 단계별로 생각해 주세요.

      첫 번째 항은 15입니다.

      두 번째 항은 b(1) * (-3) = 15 * (-3) = -45입니다.

      세 번째 항은 b(2) * (-3) = -45 * (-3) = 135입니다.

      네 번째 항은 b(3) * (-3) = 135 * (-3) = -405입니다.

      출력 형식 지정

      일반적인 문제는 모델 출력을 다운스트림 태스크로 수집해야 할 경우 특히 모델 출력을 특정 형식(예: 마크다운, JSON, HTML)으로 지정해야 한다는 것입니다. 프롬프트 내에서 이를 수행하도록 모델을 안내하여 해당 형식으로 출력을 생성할 수 있습니다. 다음은 두 가지 예시입니다.

      프롬프트 모델 응답

      이 이미지의 표를 마크다운 형식으로 분석해 주세요.

      | 과목 | 상태 | 시간 | 시작일 | 만료일 |

      | ------- | ------ | ---- | --------- | ------ |

      | 수학 | 완료 | 1.5시간 | 2023/11/29 | 2023/12/1 |

      | 지리 | 완료 | 30분 | 2023/12/2 | 2023/12/4 |

      | 물리 | 진행 중 | 2시간 | 2023/12/3 | 2023/12/5 |

      | 생물 | 시작 안 함 | 6시간 | 2016/11/2 | 2023/12/6 |

      프롬프트 모델 응답

      다음 모든 속성:

      재료, 요리 종류, 채식주의 식단 여부의 목록을 JSON 형식으로 제공해 주세요.

      ```json```

      {

      "ingredients": [

      "rice",

      "shrimp",

      "clams",

      "mussels",

      "peas",

      "tomatoes",

      "onions",

      "garlic",

      "olive oil",

      "paprika",

      "salt",

      "pepper"

      ],

      "type of cuisine": "Spanish",

      "vegetarian": false

      단일 이미지 프롬프트에 이미지 먼저 배치

      Gemini는 프롬프트 내에서 어떤 순서로든 이미지와 텍스트를 해석할 수 있지만 텍스트 프롬프트 앞에 단일 이미지를 배치하는 것이 더 좋은 결과로 이어질 수 있습니다. 다음 샘플에서는 이미지가 각 프롬프트의 텍스트 앞에 먼저 나오는 것을 볼 수 있습니다.

      멀티모달 프롬프트 문제 해결

      유용한 응답을 얻지 못할 경우 프롬프트를 문제 해결해야 할 수 있습니다. 이를 위해서는 몇 가지 전략을 시도해볼 수 있습니다.

      모델이 관련 이미지 부분에서 정보를 가져오지 않는 경우

      보다 구체적인 응답을 얻기 위해서는 해당 응답에 정보를 제공하도록 프롬프트가 정보를 가져올 이미지 특정 부분을 지적할 수 있습니다.

      프롬프트 모델 응답

      아기 한 명이 사용할 때 이 기저귀는 며칠이나 갈까요?

      기저귀가 모두 소진되려면 198일 걸립니다.

      업데이트된 프롬프트 개선된 응답

      기저귀가 소진되려면 며칠이나 걸릴까요?

      상자에 표시된 무게를 사용해서 아기의 나이를 확인하고 상자에 적힌 총 기저귀 개수를 사용해 주세요.

      총 개수를 아기 한 명이 하루에 사용하는 기저귀 수로 나눠주세요.

      상자에는 198개의 기저귀가 있습니다. 상자에는 체중이 22-37lbs인 아기를 위한 기저귀라고 씌여져 있습니다.

      이 몸무게 범위의 평균 아기는 만 1~2세 사이입니다.

      만 2세 아기는 일반적으로 하루 6개 정도 기저귀를 사용합니다. 따라서 기저귀는 33일(198/6) 정도 지속됩니다.

      모델 출력이 너무 일반적이고 이미지 입력에 충분히 맞춤화되지 않은 경우

      모델이 이미지에 따라 응답을 조정할 수 있게 하려면 근거 태스크를 수행하기 전 이미지를 기술하도록 요청합니다.

      프롬프트 모델 응답

      이러한 이미지 사이의 공통점은 무엇인가요?

      4개 이미지 모두 풍경 사진을 보여줍니다.

      업데이트된 프롬프트 개선된 응답

      첫째, 각 이미지에 무엇이 있는지 자세히 설명해 주세요. 이러한 이미지 사이의 공통점은 무엇인가요?

      첫 번째 이미지는 여행 가방을 싸고 있는 사람을 보여줍니다. 두 번째 이미지는 쇼핑몰의 빈 통로를 보여줍니다. 세 번째 이미지는 화장실 휴지 한 롤을 보여줍니다. 네 번째 이미지는 어둡고 거친 바다를 보여줍니다.

      이러한 이미지 간의 공통점은 이미지가 모두 경계 공간의 예시라는 점입니다. 경계 공간은 두 가지 서로 다른 공간 또는 상황 사이에 있는 공간 또는 상황을 의미합니다. 경계 공간의 특성은 불확실성이나 모호한 감정에 있습니다.

      첫 번째 이미지는 집과 여행 사이에 있는 사람을 보여줍니다. 두 번째 이미지는 두 매장 사이의 통로를 보여줍니다. 세 번째 이미지는 욕실을 나타낼 수 있는 화장실 휴지를 보여줍니다. 욕실은 전통적으로 개인성과 공공성을 모두 갖고 있는 공간입니다. 그리고 우리가 외부 세계로 들어오고 나가기 위해 스스로를 준비하는 장소이기도 합니다.

      네 번째 이미지는 고요함과 거침 사이에 있는 바다를 보여줍니다.

      경계 공간은 흥미로움과 불편함을 모두 일으킬 수 있습니다. 이러한 공간은 무언가 시작되는 장소이거나 끝나는 장소일 수 있습니다. 사색하는 장소이거나 행동하는 장소일 수도 있습니다.

      또한 모델이 이미지에 포함된 내용을 참조하도록 명확하게 요청할 수도 있습니다.

      업데이트된 프롬프트 개선된 응답

      이러한 이미지 사이의 공통점은 무엇인가요? 이미지에 포함된 내용을 참조해서 답변해 주세요.

      모든 이미지는 여행과 관련이 있습니다. 첫 번째 이미지는 여행 가방을 싸고 있는 사람을 보여줍니다. 두 번째 이미지는 쇼핑몰의 빈 통로를 보여줍니다. 세 번째 이미지는 쌓여 있는 화장실 휴지를 보여줍니다. 네 번째 이미지는 어둡고 거친 바다를 보여줍니다.

      이러한 이미지는 모두 여행할 때 필요하거나 사용하는 것들이기 때문에 모두 여행과 관련이 있습니다. 첫 번째 이미지는 여행 가방을 싸고 있는 사람을 보여줍니다. 이것은 사람들이 여행을 떠날 때 하는 행동입니다. 두 번째 이미지는 쇼핑몰의 빈 통로를 보여줍니다. 이것은 사람들이 여행에 필요한 물건을 구입하기 위해 자주 이동하는 장소입니다. 세 번째 이미지는 쌓여 있는 화장실 휴지를 보여줍니다. 이것은 사람들이 여행할 때 자주 사용하는 물건입니다. 네 번째 이미지는 어둡고 거친 바다를 보여줍니다. 이것은 사람들이 여행할 때 가끔 만나게 되는 것입니다.

      이미지에서 창의적인 결과물을 가져올 때도 동일한 팁이 적용됩니다. 토끼를 사용한 다음 예시에서 특히 모델에 이미지 특성을 포함하도록 요청하면 출력을 개선시킬 수 있습니다.

      프롬프트 모델 응답

      이 이미지에 관한 시를 지어줄 수 있나요?

      작은 토끼, 너무 부드럽고 갈색이야,
      위로, 아래로 들판을 뛰어 다녀.
      네 귀는 너무 길어, 네 꼬리는 너무 작아,
      너는 모든 것들 중 가장 귀여운 생명체.

      물고 뜯는 잔디 속, 너무 파랗고, 달콤해,
      그리고 날 보면 깡총 떠나버려.
      하지만 난 항상 네 친구야,
      작은 토끼야, 세상 끝날 때까지.

      업데이트된 프롬프트 개선된 응답

      이 이미지에 대해 위치를 포함해서 설명적이고 극적인 시를 지어줄 수 있나요?

      초록 위 작은 토끼,
      귀가 너무 길고, 너무 예리해.
      저 멀리 무엇을 보고 있니,
      저 멀리, 어딜 그렇게 보고 있어?

      파란색 바다인가,
      태양빛에 반짝이는?
      아니면 성내고 부서지는 파도인가,
      네가 좋아하는 그 리듬?

      작은 토끼야, 사실을 말해줘,
      널 사로잡은 것이 무엇이니?
      짭짤한 바닷 바람이니?
      혹은 낄낄대는 갈매기 울음이니?

      어쩌면 그 모든 것을 품은 광활함일지도,
      세상은 너무 크고도 너무 작아.
      꿈들이 돌아다닐 수 있는 곳,
      그리고 모험을 뿌릴 수 있는 곳이야.

      작은 토끼야, 네 꿈은 무엇일까,
      풀밭에 앉으면 너무나 고요해.
      깊은 곳을 탐험하고 싶니,
      아니면 마음껏 뛸 수 있는 땅 위에 서고 싶니?

      그것이 무엇이든, 작은 토끼야,
      그 놀라움의 불꽃이 밝게 계속 타오르게 하렴.
      너의 꿈과 열망 속에서,
      너의 창조를 기다리는 세상 속에서.

      실패한 프롬프트 부분 문제 해결

      모델이 처음에 이미지를 이해하지 못해서 프롬프트가 실패했는지, 아니면 이미지를 이해했지만 이후 올바른 추론 단계를 수행하지 못했는지 알기 어려울 수 있습니다.

      이러한 이유들을 구분하기 위해서는 모델에 이미지에 포함된 것이 무엇인지 기술하도록 요청하세요.

      아래 예시에서 모델이 차와 함께 할 때 어울리지 않는 간식(예: 팝콘)으로 응답할 경우에는 먼저 모델이 이미지에 차가 포함된 것을 올바르게 인식했는지 확인하는 방식으로 문제 해결을 시작할 수 있습니다.

      프롬프트 문제 해결을 위한 프롬프트

      이 사진과 어울리는 것 중 1분 내에 만들 수 있는 간식은 무엇이 있나요?

      이 이미지의 내용을 설명해 주세요.

      또 다른 전략은 모델에 그 이유를 설명하도록 요청하는 것입니다. 이렇게 하면 근거를 세분화하는 데 도움이 될 수 있습니다.

      프롬프트 문제 해결을 위한 프롬프트

      이 사진과 어울리는 것 중 1분 내에 만들 수 있는 간식은 무엇이 있나요?

      이 사진과 어울리는 것 중 1분 내에 만들 수 있는 간식은 무엇이 있나요? 이유를 설명해 주세요.

      샘플링 매개변수 조정

      각 요청에서 멀티모달 프롬프트만 보내는 것이 아니라 샘플링 매개변수 집합도 모델에 전송합니다. 모델은 서로 다른 매개변수 값에 대해 서로 다른 결과를 생성할 수 있습니다. 태스크에 가장 적합한 값을 얻기 위해 다른 매개변수로 실험해 봅니다. 가장 일반적으로 조정되는 매개변수는 다음과 같습니다.

      • 강도
      • 최상위 P
      • 최상위 K

      강도

      강도는 최상위 P와 최상위 K가 적용될 때 발생하는 응답 생성 중 샘플링에 사용됩니다. 강도는 토큰 선택의 무작위성 수준을 제어합니다. 강도가 낮을수록 자유롭거나 창의적인 답변과 거리가 먼 확정적인 응답이 필요한 프롬프트에 적합하고, 강도가 높을수록 보다 다양하거나 창의적인 결과로 이어질 수 있습니다. 강도가 0이면 확정적입니다. 즉, 확률이 가장 높은 응답이 항상 선택됩니다.

      대부분의 사용 사례에서는 강도 0.4로 시작해 보세요. 보다 창의적인 결과가 필요하면 강도를 늘려 보세요. 할루시네이션이 관측되면 강도를 줄여 보세요.

      최상위 K

      최상위 K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. 최상위 K가 1이면 다음으로 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 최상위 K가 3이면 강도를 사용하여 가장 확률이 높은 토큰 3개 중에서 다음 토큰이 선택된다는 의미입니다.

      각 토큰 선택 단계에서 확률이 가장 높은 최상위 K 토큰이 샘플링됩니다. 그런 다음 최상위 P를 기준으로 토큰을 추가로 필터링하고 강도 샘플링을 사용하여 최종 토큰을 선택합니다.

      임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. 최상위 K의 기본값은 32입니다.

      최상위 P

      최상위 P는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. 토큰은 확률의 합이 최상위 P 값과 같아질 때까지 확률이 가장 높은 것부터(최상위 K 참조) 가장 낮은 것까지 선택됩니다. 예를 들어 토큰 A, B, C의 확률이 0.6, 0.3, 0.1이고 최상위 P 값이 0.9이면 모델이 강도를 사용해서 다음 토큰으로 A 또는 B를 선택하고 C는 후보에서 제외합니다.

      임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. top-P의 기본값은 1.0입니다.

      다음 단계