<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Youngick.Kim</title>
    <description>The latest articles on DEV Community by Youngick.Kim (@youngick).</description>
    <link>https://dev.to/youngick</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1041961%2F36feb3fb-322a-4813-889c-5ee07a534483.png</url>
      <title>DEV Community: Youngick.Kim</title>
      <link>https://dev.to/youngick</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/youngick"/>
    <language>en</language>
    <item>
      <title>똑똑한 비서 Amazon Q를 우연히 만나다</title>
      <dc:creator>Youngick.Kim</dc:creator>
      <pubDate>Tue, 30 Jan 2024 20:26:21 +0000</pubDate>
      <link>https://dev.to/aws-builders/ddogddoghan-biseo-amazon-qreul-uyeonhi-mannada-3l2</link>
      <guid>https://dev.to/aws-builders/ddogddoghan-biseo-amazon-qreul-uyeonhi-mannada-3l2</guid>
      <description>&lt;p&gt;최근 들어 Amazon Bedrock을 계속 살펴보고 있었습니다. 출시된지 오래되지 않은  서비스이고 사용 경험이 별로 없어 "&lt;a href="https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/what-is-bedrock.html"&gt;Bedrock 사용자 가이드&lt;/a&gt;", "&lt;a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html"&gt;Bedrock API Reference&lt;/a&gt;" 들도 보고 있었습니다.&lt;br&gt;
영어 문서를 보는 것은 아무래도 힘들고 피곤하기 때문에 한국어로 된 문서를 보고 있었는데, 원하는 내용이 없다는 것을 알게 되었습니다. 내가 원하는 내용은 최근에 Preview 로 나온 "Amazon Titan Image Generator G1" 이었는데 &lt;a href="https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/what-is-bedrock.html"&gt;한국어 문서&lt;/a&gt;에는 내용이 없고 &lt;a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html"&gt;영어 문서&lt;/a&gt;에는 있다는 것을 알게 되었습니다.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rfqbpp7q7grcdqrx64n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rfqbpp7q7grcdqrx64n.png" alt="Image description" width="800" height="351"&gt;&lt;/a&gt;&lt;br&gt;
그리고 영어 문서에는 하단에 파란 육각형의 뭔가가 보이는 것이었습니다.&lt;br&gt;
뭔지 클릭해봤습니다. 오~옷! Amazon Q가 갑자기 보입니다.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwi4tx0occv9oumg6f71w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwi4tx0occv9oumg6f71w.png" alt="Image description" width="800" height="750"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon Q가 Preview로 출시 되었다는 소식은 들었지만 접해볼 기회가 없었는데 갑자기 나타나는군요. 게다가 영어 문서 사이트에서만! 아마도 Amazon Q가 한국어를 아직 지원하지 않아서 그런거로 예상합니다. 바로 한국어 지원이 되는지 확인해 봅니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fviclvc7ubiqi0mfr6ej7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fviclvc7ubiqi0mfr6ej7.png" alt="Image description" width="469" height="552"&gt;&lt;/a&gt;&lt;br&gt;
한글 자체를 인식 못하는게 확실합니다. 영어로 한국어를 이해하냐고 물었더니 AWS 관련 질문만 하라고 하네요. 그러면서 예제를 보여줍니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsf6ut3ce51rpyilecxn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsf6ut3ce51rpyilecxn.png" alt="Image description" width="466" height="621"&gt;&lt;/a&gt;&lt;br&gt;
그럼 궁금해하던 내용을 물어봅니다. 우선 간단히 Amazon Titan Image Generator를 사용중이라고만 해봤습니다. 그랬더니 아래처럼 간단한 설명과 함께 문서의 링크까지 알려줍니다. 오~! 마치 검색을 편하게 도와주는 비서 같은 역할을 하는군요. 그리고 대화창이 너무 작아 늘려봤습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbo3gklc6jo2rv045pff2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbo3gklc6jo2rv045pff2.png" alt="Image description" width="800" height="832"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bedrock 요청의 응답 결과 이미지를 보는 파이썬 코드를 알려달라고 물어봅니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0rf85ruknfmm1jw7dzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0rf85ruknfmm1jw7dzw.png" alt="Image description" width="800" height="814"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;대단합니다. 정확하게 동작하는 코드인지 확인은 안해봤지만, 코드를 대충 보면 동작할만한 내용임에 틀림 없습니다. 마치 ChatGPT 처럼 동작하는 것으로 보입니다.&lt;br&gt;
그리고 소스 코드의 링크도 알려주는군요.&lt;br&gt;
마지막 질문을 던져봅니다. 제가 궁극적으로 궁금했던 내용은 "응답으로 오는 이미지 파일의 배열 원소의 갯수가 반드시 하나인가? 아니면 여럿일 수 있는가?" 입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fds2zhe7hksu6hdmjtpo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fds2zhe7hksu6hdmjtpo5.png" alt="Image description" width="800" height="542"&gt;&lt;/a&gt;&lt;br&gt;
마지막 질문에 대한 답을 보고 저는 소름이 돋았네요. 제가 궁금해하던 내용을 정확하게 알려줍니다. 게다가 제가 원했던 것보다 더 자세히 알려줍니다.&lt;/p&gt;

&lt;p&gt;오늘 저는 Amazon Q의 놀라운 기능을 우연히 보게 되었습니다. 더 기능이 많이 있겠지만, 오늘 본 것만으로도 똑똑한 비서임에 틀림 없네요. 다음에 기회가 되면 다른 업무에서 저를 도와주는 Amazon Q를 만나보겠습니다. 감사합니다.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>assistant</category>
      <category>genai</category>
    </item>
    <item>
      <title>패션 디자이너에게 Generative AI를 이용한 작업 혁신 알려주기- Part 3</title>
      <dc:creator>Youngick.Kim</dc:creator>
      <pubDate>Wed, 24 Jan 2024 03:14:48 +0000</pubDate>
      <link>https://dev.to/aws-builders/paesyeon-dijaineoege-generative-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-3-3n30</link>
      <guid>https://dev.to/aws-builders/paesyeon-dijaineoege-generative-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-3-3n30</guid>
      <description>&lt;p&gt;지난 &lt;a href="https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-2-mpm"&gt;Part 2&lt;/a&gt;에서는 드디어 친구에게 Bedrock Image Playground를 이용하여 이미지 생성이 가능하도록 알려주었습니다. 주말 동안 사용해본 친구는 아래와 같은 피드백을 주었습니다.&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;사무실에서 새로운 제품 디자인이나 컨셉 회의때 이미지 생성을 사용하면 큰 도움이 될 것이다. 번거롭고 긴 시제품 제작이나 그래픽 작업이 필요 없거나 단축 된다.&lt;/li&gt;
&lt;li&gt;내가 원하는 이미지 생성이 쉽지만은 않다. 가끔 괴상한 이미지가 나와서 당혹스러울때도 있다.&lt;/li&gt;
&lt;li&gt;빨간 가방을 노랑 가방으로 바꾸는게 가능한가?&lt;/li&gt;
&lt;li&gt;화면에서 지원하는 기능들에 대해 좀 더 설명해 달라.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;친구와 함께 하나씩 해결해보기로 하였습니다.&lt;br&gt;
우선 아직 모르는 기능이나 설정들이 있으므로 좀 더 사용해보면서 정리합니다.&lt;/p&gt;

&lt;p&gt;이번에는 SDXL 모델을 사용해보기로 합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb23hz82pgnqah0dinfge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb23hz82pgnqah0dinfge.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Titan Image Generator 모델보다 SDXL 모델의 설정이 훨씬 간단하네요.&lt;br&gt;
너무 간단하면 커스터마이징이 안되거나 기능이 떨어질수도...&lt;br&gt;
Seed 값은 12345로 고정해둡니다. 세미나에서 Seed 값이 랜덤으로 바뀌면 같은 설정과 같은 프롬프트라도 다른 이미지가 생성되고, Seed 값을 고정하면 같은 이미지가 생성된다고 들었습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs70ifwyh84mpf67ripw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs70ifwyh84mpf67ripw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;오! 이번에는 그림 같은 깔끔한 가방 이미지가 생성되었습니다. 모델이 다르니까 결과물도 확실히 다릅니다.&lt;/p&gt;

&lt;p&gt;SDXL 모델의 설정값에 대한 정보를 &lt;a href="https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/model-parameters-diffusion.html" rel="noopener noreferrer"&gt;여기&lt;/a&gt;에서 볼 수 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8d1ili7rdakbpclfsh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8d1ili7rdakbpclfsh6.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0zl3kp3os0h65x23m0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0zl3kp3os0h65x23m0p.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이전에 사용했던 "woman medel with red backpack on runway" 프롬프트를 사용해 봅니다. 정말 흥미롭네요. 런웨이를 잘 표현했고, 등에 매는 백팩이 아닌 손에 가방을 들고 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fitao8w92khrb7x7jtoe7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fitao8w92khrb7x7jtoe7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번에는 Prompt strength 설정을 30으로 변경했습니다. 이미지가 괴상하게 나오는군요.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fphthv1g6cfy148xvhnth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fphthv1g6cfy148xvhnth.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번에는 Prompt strength 설정을 5로 변경했습니다. 으악! 사람 목이 돌아가 있습니다. 좀 무섭네요.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrr683o9a6514re4djib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrr683o9a6514re4djib.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번에는 Generation step을 100으로 설정해봤습니다. 다른 이미지가 생성되고 가방을 등에 매고 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftln53a0dbbtomusct3cr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftln53a0dbbtomusct3cr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번에는 Generation step을 10으로 줄여봤습니다. 푸하핫! 이거 침흘리고 있는거 맞죠? ㅋㅋㅋ&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh14hdn0yh54a8lolt8p1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh14hdn0yh54a8lolt8p1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;다시 설정들을 원복하고 다시 생성해봤습니다. 잉? Seed 값을 고정해도 살짝 다른 이미지가 생성되네요??? 그리고 얼굴 왼쪽 부분이 이상하게 보입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwlhj6wexb40hnfbs37v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwlhj6wexb40hnfbs37v.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;두 모델의 결과물을 한번에 보면 비교가 쉽네요. 같은 프롬프트라도 전혀 다른 결과물이 나오므로 적절한 모델을 사용하는게 의미 있어 보입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo4hch48ew19ff5ux528.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzo4hch48ew19ff5ux528.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bedrock은 API를 사용하는거라도 처음에 알고 시작했는데, 그동안 Playground만 사용하고 있었네요. 물론 친구는 개발자나 엔지니어가 아닌 디자이너이므로 Playground를 사용하는게 좋은 선택이겠네요. &lt;br&gt;
하지만 저는 Bedrock API가 궁금했습니다. 여기 저기 둘러보다 찾았습니다!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmopvesbh6lf9laf1266c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmopvesbh6lf9laf1266c.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copy를 클릭해서 가져왔습니다. 화면의 설정값들이 아래처럼 요청되는군요.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

aws bedrock-runtime invoke-model \
--model-id amazon.titan-image-generator-v1 \
--body "{\"textToImageParams\":{\"text\":\"woman medel with red backpack on runway\"},\"taskType\":\"TEXT_IMAGE\",\"imageGenerationConfig\":{\"cfgScale\":8,\"seed\":12345,\"quality\":\"standard\",\"width\":512,\"height\":512,\"numberOfImages\":4}}" \
--cli-binary-format raw-in-base64-out \
--region us-east-1 \
invoke-model-output.txt


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;옆에 있던 친구도 제가 하는 과정들을 지켜보며 대충 이해가 간다는듯이 고개를 끄덕입니다. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51imqwebi6qppubld2t1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51imqwebi6qppubld2t1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;저는 위의 요청을 서울 리전의 CloudShell에서 실행해봤습니다. 응답 결과가 base64 인코딩된 텍스트 파일로 만들어진게 보입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82h711civrovsu5iwmvu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82h711civrovsu5iwmvu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bedrock API에 대해서는 &lt;a href="https://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/using-api.html" rel="noopener noreferrer"&gt;여기&lt;/a&gt; 링크를 참고하시고...&lt;/p&gt;

&lt;p&gt;Part 3 는 여기에서 마무리하고, 다음 Part 4에서는 친구와 함께 Prompt 에 대해 다뤄 볼 예정입니다.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>bedrock</category>
      <category>genai</category>
    </item>
    <item>
      <title>패션 디자이너에게 Generative AI를 이용한 작업 혁신 알려주기- Part 2</title>
      <dc:creator>Youngick.Kim</dc:creator>
      <pubDate>Tue, 23 Jan 2024 08:17:52 +0000</pubDate>
      <link>https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-2-mpm</link>
      <guid>https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-2-mpm</guid>
      <description>&lt;p&gt;지난 &lt;a href="https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-1-4e1"&gt;Part 1&lt;/a&gt; 에서 친구에게 SageMaker JumpStart를 이용해서 이미지 생성 하는 것을 알려주려 했습니다만... 전혀 예상하지 못한 파이썬 문제 때문에 실패하였습니다.&lt;br&gt;
그러나 저는 멈추지 않을 것입니다. 실패로부터 더 많은 것을 배울수도 있기 때문입니다. 친구에게 다른 방법을 알려주기 위해 찾아보던 도중에, 지난번에 봤던 &lt;a href="https://www.youtube.com/playlist?list=PL2yQDdvlhXf8iyzg7ziZI924PxC8a8M-U"&gt;re:Invent 2023 AI/ML 영상&lt;/a&gt;들을 다시 살펴봤습니다. "Bedrock" 이라는 단어가 여러번 보입니다. 생성형 AI를 API 형태로 사용 가능하다고 하네요. 혹시 이미지 생성도 가능한지 조사해보니 몇가지 모델이 가능했는데,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Titan Image Generator G1이 Preview 되었고&lt;/li&gt;
&lt;li&gt;SDXL 0.8, SDXL 1.0 이 가능하더군요. 요건 이름만 봐도 Stable Diffusion을 만드는 Stability AI 에서 나온 것이겠네요.
그럼 Bedrock을 이용하면 지난번 같은 파이썬 문제는 없을거 같아 이용해보려 합니다. 그러나 아쉽게 서울 리전은 아직 지원하지 않는군요. 괜찮습니다. 다른 리전을 사용하면 됩니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff100enegoecqryszdk5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff100enegoecqryszdk5q.png" alt="Image description" width="797" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;다시 버지니아 리전으로 이동하여 &lt;a href="https://us-east-1.console.aws.amazon.com/bedrock/home#/"&gt;Bedrock&lt;/a&gt; 으로 이동합니다.&lt;/p&gt;

&lt;p&gt;원하는 모델을 사용하려면 신청(?)을 해야 한다고 들은 기억이 있습니다. Model Access를 클릭 합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm91qlg4dlk81tgh0s9x9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm91qlg4dlk81tgh0s9x9.png" alt="Image description" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;사용 가능한 모델 목록이 나옵니다. 일단 5개를 선택해봤습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkflex8ll5126e792d7eo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkflex8ll5126e792d7eo.png" alt="Image description" width="800" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;그중에 Anthropic의 모델은 "use case" 를 작성해야 하네요.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fvle19nhqv26phci6d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fvle19nhqv26phci6d4.png" alt="Image description" width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;"use case" 는 아래 항목들이 있습니다. &lt;strong&gt;Anthropic의 Claude 모델이 한국어를 지원&lt;/strong&gt;한다고 하여 신청해 봅니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76ktws9tvsyrxg6kd3vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76ktws9tvsyrxg6kd3vy.png" alt="Image description" width="732" height="1180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;모델 사용을 신청하면 신청 상태가 나타납니다. Amazon Titan Image Generator 가 가장 빨리 사용 가능하군요 ^^&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzesfegfi0toncmcls65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzesfegfi0toncmcls65.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;잠시 후 모든 모델들이 사용 가능해지고 갑자기 여러 통의 메일이 왔습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kapgj84w3vkrmdaamj8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kapgj84w3vkrmdaamj8.png" alt="Image description" width="625" height="327"&gt;&lt;/a&gt;&lt;br&gt;
앗! 이거 왠지 &lt;strong&gt;비용이 많이 나올것 같은 예감&lt;/strong&gt;이 들었습니다. 아직은 여러 모델을 사용하지 않을거 같아 Titan Image Generator와 SDXL 0.8를 제외한 나머지 모델은 모두 취소했습니다. 소중한 내 돈!&lt;/p&gt;

&lt;p&gt;메뉴가 많이 있지만 친구가 기다리고 있습니다. 빨리 뭔가를 보여주고 싶어서 &lt;br&gt;
Playgrounds-Image 를 클릭합니다.&lt;/p&gt;

&lt;p&gt;오! 콘솔에서 바로 뭔가 할수 있을거로 보입니다. 모델을 선택하러 갑니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflpl2luc1y90kg0k5bca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflpl2luc1y90kg0k5bca.png" alt="Image description" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;우선 Titan Image Generator 를 먼저 선택하고 Apply를 클릭합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F192ajifo20h7d6tkp2ij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F192ajifo20h7d6tkp2ij.png" alt="Image description" width="800" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;드디어 이미지 생성하는 화면이 나온거 같습니다. 옆에서 지켜 보는 친구도 점점 흥미를 보입니다. 아직 자세한 사용법을 모르니 Load examples 를 클릭합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvswzotcc4hgbvhl5lx92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvswzotcc4hgbvhl5lx92.png" alt="Image description" width="800" height="825"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;우선 텍스트를 입력하여 이미지를 생성하는 예제를 선택합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jjivinnmb0xpueg4v0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jjivinnmb0xpueg4v0n.png" alt="Image description" width="800" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;잉? 뭐가 달라진거지? 아~! 찾았습니다. 하단의 텍스트(프롬프트)가 입력 되어 있고, Run 할 수 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b38d5i63b2uq9xuy6i9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b38d5i63b2uq9xuy6i9.png" alt="Image description" width="800" height="837"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;바로 Run  해봅니다. 두근두근~ 30초 정도가 지나서... 드디어 이미지 3개가 나왔습니다!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flwcbq3l1h4p5e9f9uxxz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flwcbq3l1h4p5e9f9uxxz.png" alt="Image description" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;가방 이미지 하나를 클릭하면 상세 화면도 나옵니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5hdg65luhshlppr4uxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5hdg65luhshlppr4uxk.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;저랑 친구는 너무 기뻐서 소리쳤습니다. 친구는 너무나 신기해 하면서 자기도 직접 해보겠다고 합니다. 지난번 Stable Diffusion 책에서 본 내용들중 일부를 설명해주었고, 친구는 화면의 설정도 몇가지 바꿔보고 프롬프트도 바꿔봅니다. 친구는 강렬한 빨간 가방이 좋다고 합니다. 좀 더 빠른 응답을 위해 이미지 사이즈를 512*512로 줄이고, 이미지 갯수는 4로 설정합니다. 결과가 아래처럼 나왔습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ju82wdtyd1kwbonoxzq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ju82wdtyd1kwbonoxzq.png" alt="Image description" width="800" height="805"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;친구는 급하게 프롬프트를 입력하다가 "model" 을 "medel" 이라고 잘못 입력했습니다. 그러나 결과는 정상적으로 나왔습니다. 친구는 재미 있다며 한참을 가지고 놀았습니다. 그리고 주말 동안 사용하게 해달라며 제게 고마움의 표시로 엄지척을 보여주며 집으로 향했습니다. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7g5xdjcpq2bgv6vrawbg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7g5xdjcpq2bgv6vrawbg.png" alt="Image description" width="519" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;과연 주말 이후에 친구는 어떤 피드백을 줄까요? 이후의 내용은 &lt;a href="https://dev.to/aws-builders/paesyeon-dijaineoege-generative-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-3-3n30"&gt;Part 3&lt;/a&gt;로 돌아오겠습니다.&lt;/p&gt;




&lt;p&gt;위에서 메일을 받았다는 4개의 모델에 대한 정보를 추가합니다.&lt;br&gt;
&lt;a href="https://aws.amazon.com/marketplace/pp/prodview-3b3i27cz6kzw2"&gt;Claude (Amazon Bedrock Edition)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/marketplace/pp/prodview-4gbrcy2fercwe"&gt;Claude Instant (Amazon Bedrock Edition)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/marketplace/pp/prodview-trk75i3ihkaqs"&gt;SDXL Beta V0.8 (Amazon Bedrock Edition)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/marketplace/pp/prodview-a54dufkbweqgs"&gt;SDXL V1.0 (Amazon Bedrock Edition)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>genai</category>
      <category>aws</category>
      <category>bedrock</category>
      <category>titanimagegenerator</category>
    </item>
    <item>
      <title>패션 디자이너에게 Generative AI를 이용한 작업 혁신 알려주기- Part 1</title>
      <dc:creator>Youngick.Kim</dc:creator>
      <pubDate>Tue, 23 Jan 2024 00:56:18 +0000</pubDate>
      <link>https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-1-4e1</link>
      <guid>https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-1-4e1</guid>
      <description>&lt;p&gt;작년 가을 AWS Korea의 Generative AI 세미나에 참가한 적이 있습니다.&lt;br&gt;
사실 그전까지는 Generative AI에 대해서는 ChatGPT 정도만 조금 사용해보고,&lt;br&gt;
관심이 별로 없었네요. 더구나 텍스트가 아닌 이미지를 생성하는 것은 더더욱&lt;br&gt;
나의 분야가 아니라고 생각했었습니다. "이미지 생성하는 것은 디자인 작업인 것이지, 나랑은 관련 없는 것이야"&lt;br&gt;
그러나 세미나에서 Stable Diffusion을 이용하여 프롬프트를 입력하면 이미지가&lt;br&gt;
생성되는 것이 너무 재미 있었습니다. 프롬프트를 어떻게 입력하는가에 따라 다양한 이미지를 상당한 수준으로 생성하는 것이 가능하며, 동영상 제작도 가능하다고 합니다.&lt;br&gt;
갑작스런 호기심에 관련 영상들을 찾아보니, 이미 다양한 분야에서 사용되고 있는 것을 알게 되었습니다. 또한 서점에 들려 Stable Diffusion 관련 책도 하나 사서 보게 되었구요. &lt;a href="https://www.youtube.com/playlist?list=PL2yQDdvlhXf8iyzg7ziZI924PxC8a8M-U"&gt;re:Invent 2023 AI/ML 영상&lt;/a&gt;들도 많은 도움이 되었습니다.&lt;br&gt;
그리고 연말이 다가오면서 오랜 친구들에게 안부 인사 겸 연락을 하게 되었습니다.&lt;br&gt;
그중 한명은 패션 전문 그룹 계열사에서 여성 의류 담당 디자이너로 일하고 있었는데, 이런 저런 안부를 묻다가 패션 분야에서는 AI에 대해 어떻게 생각하는지 묻게 되었습니다. 그런데 갑자기 이 친구가 흥분된 목소리로 자기도 업계에서 뒤쳐지지 않으려면 뭔가 도전해봐야겠다며 도움이 필요하다고 했습니다. 나는 지난번 참석한 AWS Korea의 생성형 AI 세미나에 대해 언급하고 그때의 경험을 친구에게 들려주었습니다.&lt;br&gt;
친구는 자기도 업무에 적용해보고 싶다며 어떻게 사용하는지, 뭐가 필요한지 묻기 시작했습니다. 일단 나도 많은 경험과 지식이 있는것은 아닌지라, 일단 세미나에서 워크샵(&lt;a href="https://catalog.us-east-1.prod.workshops.aws/workshops/7c37b5bd-40a7-40d3-beee-fb40de7d451d/en-US"&gt;Deploying Text-to-Image Models Using SageMaker JumpStart&lt;/a&gt;)으로 진행해봤던 SageMaker JumpStart와 Stable Diffusion을 이용한 이미지 생성을 알려주기로 했습니다. 친구는 며칠 정도 사용해보고, 내게 피드백을 주기로 했습니다. 그럼 이제부터 작업 시작~!&lt;/p&gt;

&lt;p&gt;우선 SageMaker JumpStart를 사용하려면 SageMaker Studio가 있어야 합니다.&lt;br&gt;
또한 SageMaker Studio를 사용하기 위해선 도메인 부터 생성합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhnfjzbgbg5rhtj4o30c1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhnfjzbgbg5rhtj4o30c1.png" alt="Image description" width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;도메인 생성은 단일 사용자용, 빠른 설정으로 선택합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iq4x0t0s49z19q9xxyt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iq4x0t0s49z19q9xxyt.png" alt="Image description" width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;도메인이 생성 중입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzevh48bdh69uplt9typg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzevh48bdh69uplt9typg.png" alt="Image description" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;도메인 생성이 완료 되면 Studio를 시작합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ubthellqmrtut7cqi79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ubthellqmrtut7cqi79.png" alt="Image description" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;왼쪽의 JumpStart 메뉴를 선택하고 오른쪽에서 Stability AI를 선택합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe7bt57031gu9c59zjm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe7bt57031gu9c59zjm3.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번에는 Stable Diffusion 2.1 모델을 선택합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsinmm1thlidufyvj3uea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsinmm1thlidufyvj3uea.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;선택한 모델을 배포합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp7i9xrfp4tnt2vbwims.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp7i9xrfp4tnt2vbwims.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;엔드포인트 설정을 확인하고 Deploy를 클릭합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf14g780hrwchm1mfad1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdf14g780hrwchm1mfad1.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;잠시 후 엔드포인트와 모델을 확인 할 수 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlje7zdcov9zlrkz9po9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlje7zdcov9zlrkz9po9.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;주피터랩을 사용하기 위해 왼쪽 상단 아이콘을 클릭하고 Create JupyterLab space를 클릭합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqbsb68dbk9d1bmptagn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqbsb68dbk9d1bmptagn.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Space 이름을 입력하고 생성 버튼을 클릭합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flpnhthrlxxu7o5g0khpw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flpnhthrlxxu7o5g0khpw.png" alt="Image description" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;스토리지만 5에서 10으로 늘리고 Space를 실행합니다. 여러분은 원하는 만큼 늘려봅니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8rkilikkzlryr347kdv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8rkilikkzlryr347kdv.png" alt="Image description" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;준비가 되었으니 주피터랩을 열어봅니다.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzg7tox1ku6mrcmvgh26l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzg7tox1ku6mrcmvgh26l.png" alt="Image description" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;주피터랩에서 터미널 창을 실행합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8d1nr2foh45zshvzbo1o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8d1nr2foh45zshvzbo1o.png" alt="Image description" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;아래 명령을 실행을 실행하여 노트북 파일을 다운로드 합니다.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -o text2img.ipynb https://d1u5vrgwqrgnt2.cloudfront.net/text2img.ipynb

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;다운로드 후에 리프레시 버튼을 클릭하면 파일이 나타납니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd59xf1p08zx6fs5uqsyp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd59xf1p08zx6fs5uqsyp.png" alt="Image description" width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;왼쪽에서 파일을 클릭하면 노트북 파일이 열리면서 파이썬 커널을 선택합니다. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77zxjqtshiksevgx1x2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77zxjqtshiksevgx1x2n.png" alt="Image description" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;모든 준비가 완료되었습니다. 이제 노트북을 실행하기만 하면 됩니다.&lt;br&gt;
준비하기까지 시간이 꽤 걸리네요. 이후 작업은 친구에게 노트북 사용법과 이미지 생성을 어떻게 하는지 알려주려고 합니다. 그럼 다음으로~&lt;/p&gt;




&lt;p&gt;이후에 친구를 만나서 노트북 사용법과 이미지 생성하는 법을 알려주려 했으나...&lt;br&gt;
노트북을 실행해보니 &lt;strong&gt;파이썬 모듈, 라이브러리들의 충돌과 버전 호환성 문제가 너무 많이 발생&lt;/strong&gt;하였습니다. 문제를 해결하기 위해 반나절 이상 서울 리전과 버지니아 리전에서 노력해보았지만 결국 해결할 수 없었습니다. 친구에게 상황을 설명하고 다른 방법을 찾기로 했습니다. &lt;a href="https://dev.to/aws-builders/paesyeon-dijaineoege-saengseonghyeong-aireul-iyonghan-jageob-hyeogsin-alryeojugi-part-2-mpm"&gt;Part 2&lt;/a&gt; 에서는 다른 방법으로 찾아오겠습니다~&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;읽어보신 지인이 후기를 알려주셨는데, 
왠지 기계번역한것 같은 느낌이 든다고 하시네요. 저도 제가 쓰면서 내가 왜 이러지? 라는 느낌이 있었는데... 왜 그럴까요? 저도 모르겠네요 ㅋ 어쨌든 제가 직접 작성한거에는 틀림이 없습니다~!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>sagemakerjumpstart</category>
      <category>stablediffusion</category>
      <category>genai</category>
      <category>aws</category>
    </item>
    <item>
      <title>토이 프로젝트 [출석부] - 1</title>
      <dc:creator>Youngick.Kim</dc:creator>
      <pubDate>Sun, 23 Apr 2023 23:54:36 +0000</pubDate>
      <link>https://dev.to/aws-builders/toi-peurojegteu-culseogbu-1-36h8</link>
      <guid>https://dev.to/aws-builders/toi-peurojegteu-culseogbu-1-36h8</guid>
      <description>&lt;p&gt;저는 AWS 한국 사용자 모임(AWSKRUG)에서 오거나이저로 활동하고 있습니다.&lt;br&gt;
보통 한달에 한번 밋업 모임을 실시하고 있는데 10~30명 정도의 사람이 참석을 합니다. 어느날 저는 이런 궁금증이 생겼습니다. 모임이나 행사 신청자 중에서 얼마나, 누가 참석을 할까? 그래서 신청자 명단을 엑셀 시트로 작성하고 모임 당일날 프린터로 출력하여 가져갑니다. 신청자들이 한명씩 도착하면 각자 자신의 이름 옆에 출석 확인용으로 체크 또는 사인을 하도록 부탁했습니다.&lt;br&gt;
그런데 모임 행사가 계속될수록 이런 단순한 과정들이 너무 지루해졌습니다. 게다가 작은 모임 행사가 아닌 규모 있는 컨퍼런스 같은 행사에서는 모두 QR 코드를 사용하는 것을 우리 모두는 알고 있습니다. 그래서 저도 단순 업무 프로세스를 가능한 모두 자동화하여 편하게 출석 체크 할 수 있는 토이 프로젝트 [출석부]를 무턱대고 시작하였습니다. &lt;/p&gt;

&lt;p&gt;저는 아직 AWS와 파이썬 프로그래밍 경험이 많지 않으므로 토이 프로젝트 진행이 빠르지 않을거라 예상합니다. 그리고 제 포스팅에 문제점이 있다면 알려주시기 바랍니다.&lt;/p&gt;

&lt;p&gt;토이 프로젝트 시작을 생각하고 저는 일단 QR 코드를 지원하는 바코드 스캐너부터 구입하였습니다. 바코드 스캐너부터 구입한 이유는, 바코드 스캐너를 이용하여 원하는 QR 코드 생성과 인식이 가능한지 먼저 검증해야 하기 때문이었습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9o0qr0ve0du9155f4dk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9o0qr0ve0du9155f4dk.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;지난 3월달에 위의 바코드 스캐너를 구입하여 QR 코드 생성과 인식이 가능한 것을 검증했고, 이후에 보여 드릴 것입니다.&lt;/p&gt;

&lt;p&gt;제가 진행할 토이 프로젝트의 전반적인 프로세스는 아래 그림과 같습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4biyfmjsqf2k438zwb5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4biyfmjsqf2k438zwb5y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번 토이 프로젝트 첫번째 포스팅에서는 A-1 ~ A-3 까지의 과정을 정리해보겠습니다. 사용된 데이터는 테스트 용도이므로 민감한 개인 정보는 다루지 않는다라는 것도 알아주세요.&lt;/p&gt;

&lt;p&gt;제가 토이 프로젝트를 진행하는 환경은 아래와 같습니다. 특별한 사항은 없네요.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;개인용 노트북(Windows 10, Intel(R) Core(TM) i7-7500U 2.70GHz)&lt;/li&gt;
&lt;li&gt;Anaconda3 2121.05(Python 3.8.8, 64bit)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;개발 도구를 여러 가지 사용하기에는 번거로워서 간단히 쥬피터 노트북으로 일단 시작하였습니다. 진행하면서 특별한 문제점이 없다면 계속 이 환경을 이어 가겠습니다.&lt;/p&gt;

&lt;p&gt;우선 밋업 사이트에 접속해서 필요한 정보를 수집하는 파이썬 코드 부분입니다.&lt;br&gt;
크게 어려운 부분이 없으므로 간단히 그림과 설명으로 넘어갑니다.&lt;br&gt;
몇주전에 작성한 코드들이 대부분이지만 화면 캡쳐를 위해 일부 수정하고 다시 실행했습니다.&lt;/p&gt;

&lt;p&gt;먼저 필요한 모듈들을 설치합니다. 이후에 더 필요한 모듈들이 있겠지요...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6cwad50e57hs8jp64tz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6cwad50e57hs8jp64tz.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;설치한 모듈들을 임포트 합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F232plqpaz7drxplp4ukx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F232plqpaz7drxplp4ukx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;키와 시크릿, 버킷 이름 등의 민감한 정보에 대해서는 모자이크 처리하며 설명하지 않겠습니다.&lt;/p&gt;

&lt;p&gt;밋업 사이트에 접속하여 해당 밋업의 타이틀 정보만 추출합니다. 다른 정보가 더 필요하더라도 어렵지 않겠네요.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ee53tden4lqjaauppkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ee53tden4lqjaauppkw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;일단은 테스트를 위해 밋업 타이틀 정보만을 이용해서 QR 코드 이미지를 생성합니다. 그리고 민감 정보가 없으므로 간단히 Base64 인코딩만 했습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws06gnrqllzb2sgf6ybz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws06gnrqllzb2sgf6ybz.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;와우! 아래와 같은 이미지 생성이 잘 되었네요. 가운데 작은 캐릭터는 AWSKRUG의 마스코트 "구름이" 입니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk5kt1rt252m21jwgnyz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk5kt1rt252m21jwgnyz.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이제 생성된 이미지를 위한 S3 버킷을 생성 합니다. AWS 콘솔에 로그인하고 서울 리젼으로 설정합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy115bvz6f4lo7sgq4xal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy115bvz6f4lo7sgq4xal.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;버킷을 생성하려는데 대문자와 한글은 안되는군요.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro6yo4rn8wwuyfj54rsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro6yo4rn8wwuyfj54rsk.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;영문자 소문자만을 이용해서 버킷을 생성했습니다. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev4gznq70cdbtzckgoz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fev4gznq70cdbtzckgoz3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;IAM 사용자 계정과 S3 사용을 위한 액세스 키도 생성하였으나 생략합니다 ^^&lt;/p&gt;

&lt;p&gt;자, 이제 정말 이미지 파일을 버킷에 업로드 합니다. 약간의 중간 과정을 생략하고 최종 코드는 아래와 같습니다. 업로드한 파일을 다른 파일 이름으로 다운로드 해서 확인해보니 이상이 없고 노트북 화면에 표시도 해봤습니다. 성공입니다!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43nmmftqz6sordazld5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43nmmftqz6sordazld5t.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;S3 콘솔에서도 이미지 파일 업로드를 확인합니다. 역시 성공이네요!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc87bmty5uxbjbyl7j4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc87bmty5uxbjbyl7j4p.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이번 포스팅은 여기까지만 하고 다음에 이어서 해보겠습니다. &lt;br&gt;
두서 없는 글 읽어주셔서 감사합니다~ ^^&lt;/p&gt;

&lt;p&gt;S3 API는 아래 링크를 참고했습니다.&lt;br&gt;
&lt;a href="https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html" rel="noopener noreferrer"&gt;https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://boto3.amazonaws.com/v1/documentation/api/1.12.6/reference/services/s3.html" rel="noopener noreferrer"&gt;https://boto3.amazonaws.com/v1/documentation/api/1.12.6/reference/services/s3.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>s3</category>
      <category>python</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
