<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Kakaroo Workspace</title>
    <link>https://kakaroo.tistory.com/</link>
    <description>카카루 개인 워크스페이스 입니다.</description>
    <language>ko</language>
    <pubDate>Tue, 14 Jul 2026 20:23:55 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>kakaroo</managingEditor>
    <image>
      <title>Kakaroo Workspace</title>
      <url>https://tistory1.daumcdn.net/tistory/5220778/attach/71397d0dfdee4d91959eb6ad54c0d1cf</url>
      <link>https://kakaroo.tistory.com</link>
    </image>
    <item>
      <title>git 공개키 등록</title>
      <link>https://kakaroo.tistory.com/125</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;$ git config --global user.name &quot;[user name]&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ git config --global user.email &quot;[user email]&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$ ssh-keygen -t ed25519 -C &quot;[user email]&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: #000000; text-align: start;&quot;&gt;$ ssh-keygen -t ed25519 -C &quot;[user email]&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: #000000; text-align: start;&quot;&gt;&amp;gt;&amp;gt; -t 옵션은 &lt;span style=&quot;background-color: #efefef; color: #000000; text-align: start;&quot;&gt;ed25519&lt;span&gt; &lt;/span&gt;&lt;/span&gt;대신 rsa&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: #000000; text-align: start;&quot;&gt;$ cat ~/.ssh/id_ed25519.pub&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: #000000; text-align: start;&quot;&gt;또는&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #efefef; color: #000000; text-align: start;&quot;&gt;$ cat ~/.ssh/id_rsa.pub&lt;/span&gt; &lt;span style=&quot;background-color: #282b2e; color: #a9b7c6; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>잡다</category>
      <category>git 공개키</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/125</guid>
      <comments>https://kakaroo.tistory.com/125#entry125comment</comments>
      <pubDate>Thu, 28 Dec 2023 09:23:58 +0900</pubDate>
    </item>
    <item>
      <title>Series</title>
      <link>https://kakaroo.tistory.com/124</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uz7zE/btr5gv1rNsg/4DQchvps0e4BjLUPMemCNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uz7zE/btr5gv1rNsg/4DQchvps0e4BjLUPMemCNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uz7zE/btr5gv1rNsg/4DQchvps0e4BjLUPMemCNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuz7zE%2Fbtr5gv1rNsg%2F4DQchvps0e4BjLUPMemCNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;391&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;745&quot; data-origin-height=&quot;669&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzXlJ6/btr5dTaXg8i/ZBVk5e1vJV4PPKGmAAv7S1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzXlJ6/btr5dTaXg8i/ZBVk5e1vJV4PPKGmAAv7S1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzXlJ6/btr5dTaXg8i/ZBVk5e1vJV4PPKGmAAv7S1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzXlJ6%2Fbtr5dTaXg8i%2FZBVk5e1vJV4PPKGmAAv7S1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;745&quot; height=&quot;669&quot; data-origin-width=&quot;745&quot; data-origin-height=&quot;669&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbP3F3/btr5enXcpu0/sgluKqFNpfG10iQDR4f9P1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbP3F3/btr5enXcpu0/sgluKqFNpfG10iQDR4f9P1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbP3F3/btr5enXcpu0/sgluKqFNpfG10iQDR4f9P1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbP3F3%2Fbtr5enXcpu0%2FsgluKqFNpfG10iQDR4f9P1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;388&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P21pL/btr5d3YRc2p/oehdS3aUqgxm5cCIlsRdV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P21pL/btr5d3YRc2p/oehdS3aUqgxm5cCIlsRdV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P21pL/btr5d3YRc2p/oehdS3aUqgxm5cCIlsRdV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP21pL%2Fbtr5d3YRc2p%2FoehdS3aUqgxm5cCIlsRdV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;491&quot; height=&quot;511&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rgYzq/btr5dRc8cCM/wcnI0m2Qf5EvMyvrZqI0K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rgYzq/btr5dRc8cCM/wcnI0m2Qf5EvMyvrZqI0K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rgYzq/btr5dRc8cCM/wcnI0m2Qf5EvMyvrZqI0K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrgYzq%2Fbtr5dRc8cCM%2FwcnI0m2Qf5EvMyvrZqI0K0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;675&quot; height=&quot;251&quot; data-origin-width=&quot;675&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Python</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/124</guid>
      <comments>https://kakaroo.tistory.com/124#entry124comment</comments>
      <pubDate>Tue, 21 Mar 2023 20:37:41 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 - 파일, 디렉토리</title>
      <link>https://kakaroo.tistory.com/123</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;파일의 경로&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;file = &quot;/content/drive/A/letter.txt&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dirname = os.path.dirname(file)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;basename = os.path.basename(file)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(f'dirname = {dirname}')&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;print(f'basename = {basename}')&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;f-string 포매팅은 파이썬 버전 3.6 부터 사용할 수 있는 따끈따끈한 기능 입니다.&lt;br /&gt;이전에 언급했던, %포매팅과 str.format 방법보다 더 최근에 나온 것 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;f-string의 모양은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;f와 {}만&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;알면 됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;문자열 맨 앞에 f&lt;/b&gt;를 붙여주고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;중괄호 안에 직접 변수 이름이나 출력하고 싶은것&lt;/b&gt;을 바로 넣으면 됩니다.&lt;br /&gt;&lt;b&gt;f'문자열 {변수} 문자열'&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;디렉토리/파일 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재 작업디렉토리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.getcwd()&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.cdir('./MyDir/A')&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.mkdir('../C')&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.path.isdir(filename)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.path.isdir(filename)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;os.path.exists(filename)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;파일 읽기 쓰기&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xom49/btr2ZAyp4MJ/BdEMClNNv5qHAbBRK8F1P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xom49/btr2ZAyp4MJ/BdEMClNNv5qHAbBRK8F1P0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xom49/btr2ZAyp4MJ/BdEMClNNv5qHAbBRK8F1P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxom49%2Fbtr2ZAyp4MJ%2FBdEMClNNv5qHAbBRK8F1P0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;655&quot; height=&quot;460&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;444&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JQYvx/btr2ZVh6WD0/6deZXKRl44GdmynylpS31k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JQYvx/btr2ZVh6WD0/6deZXKRl44GdmynylpS31k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JQYvx/btr2ZVh6WD0/6deZXKRl44GdmynylpS31k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJQYvx%2Fbtr2ZVh6WD0%2F6deZXKRl44GdmynylpS31k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;318&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;444&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;with 구문을 사용하면 statement 를 벗어날 때 자동적으로 반환되므로 close 를 사용할 필요가 없다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/laU5O/btr2ZUwJTZ8/86scKeiKk8Z9s6KKejvXG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/laU5O/btr2ZUwJTZ8/86scKeiKk8Z9s6KKejvXG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/laU5O/btr2ZUwJTZ8/86scKeiKk8Z9s6KKejvXG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlaU5O%2Fbtr2ZUwJTZ8%2F86scKeiKk8Z9s6KKejvXG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;428&quot; height=&quot;186&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 발생시 try except 를 사용하자&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;258&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5AQU2/btr20xgZPhS/ps4P8Pk4sOc4PR7kDWCq6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5AQU2/btr20xgZPhS/ps4P8Pk4sOc4PR7kDWCq6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5AQU2/btr20xgZPhS/ps4P8Pk4sOc4PR7kDWCq6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5AQU2%2Fbtr20xgZPhS%2Fps4P8Pk4sOc4PR7kDWCq6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;218&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;258&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;파일 복사&lt;/h4&gt;
&lt;pre id=&quot;code_1678405894042&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import os

print(os.getcwd())

fileR = 'D:/data/python/workspace/class/test.txt'
fileW = 'D:/data/python/workspace/class/test_cp.txt'

if os.access(fileR, os.F_OK) and os.access(fileR, os.R_OK) :
    with open(fileR, 'r') as rp, open(fileW, 'w') as wp :
        msg = rp.read()
        wp.write(msg)
    print(f'{fileR!r} copy success')
else :
    open(fileR, 'w')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;609&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ruvyK/btr2ZSFBdlg/seKxmp54Dp10SrUxxTvPtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ruvyK/btr2ZSFBdlg/seKxmp54Dp10SrUxxTvPtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ruvyK/btr2ZSFBdlg/seKxmp54Dp10SrUxxTvPtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FruvyK%2Fbtr2ZSFBdlg%2FseKxmp54Dp10SrUxxTvPtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;760&quot; height=&quot;471&quot; data-origin-width=&quot;983&quot; data-origin-height=&quot;609&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;파일의 행 조작&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2-04.-행-조작-프로그램-작성&quot; data-ke-size=&quot;size23&quot;&gt;행 조작 프로그램 작성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일을 열어 다음과 같이 조작하여 저장하는 프로그램을 작성하라&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;./MyPythonFiles/mydata.txt 파일을 사용한다&lt;/li&gt;
&lt;li&gt;파일 조작 내용은 다음과 같다
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1~3번째 행을 삭제한다&lt;/li&gt;
&lt;li&gt;파일의 각 행을 길이 별로 정렬한다 (길이에 행 번호는 포함하지 않음)&lt;/li&gt;
&lt;li&gt;마지막 행에 &amp;ldquo;Good luck to you!\n&amp;rdquo;를 추가한다&lt;/li&gt;
&lt;li&gt;새롭게 1번부터 시작하는 행 번호를 붙여 mydataT.txt 로 저장한다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;#&amp;nbsp;mydata.txt &lt;br /&gt;1&amp;nbsp;Time&amp;nbsp;doesn't&amp;nbsp;wait&amp;nbsp;for&amp;nbsp;anyone. &lt;br /&gt;2&amp;nbsp;Idleness&amp;nbsp;is&amp;nbsp;an&amp;nbsp;enemy&amp;nbsp;to&amp;nbsp;success. &lt;br /&gt;3&amp;nbsp;More&amp;nbsp;haste,&amp;nbsp;less&amp;nbsp;speed. &lt;br /&gt;4&amp;nbsp;Make&amp;nbsp;hay&amp;nbsp;while&amp;nbsp;the&amp;nbsp;sun&amp;nbsp;shines. &lt;br /&gt;5&amp;nbsp;Every&amp;nbsp;failure&amp;nbsp;is&amp;nbsp;a&amp;nbsp;stepping&amp;nbsp;stone&amp;nbsp;to&amp;nbsp;success. &lt;br /&gt;6&amp;nbsp;A&amp;nbsp;friend&amp;nbsp;is&amp;nbsp;a&amp;nbsp;second&amp;nbsp;self. &lt;br /&gt;7&amp;nbsp;Life&amp;nbsp;isn't&amp;nbsp;always&amp;nbsp;what&amp;nbsp;one&amp;nbsp;like. &lt;br /&gt;8&amp;nbsp;It&amp;nbsp;doesn't&amp;nbsp;hurt&amp;nbsp;to&amp;nbsp;try. &lt;br /&gt;9&amp;nbsp;He&amp;nbsp;who&amp;nbsp;laughs&amp;nbsp;alst,&amp;nbsp;laughs&amp;nbsp;best. &lt;br /&gt;10&amp;nbsp;Rather&amp;nbsp;be&amp;nbsp;dead&amp;nbsp;then&amp;nbsp;cool. &lt;br /&gt;11&amp;nbsp;Learning&amp;nbsp;to&amp;nbsp;love&amp;nbsp;yourself&amp;nbsp;is&amp;nbsp;the&amp;nbsp;greatest&amp;nbsp;love&amp;nbsp;of&amp;nbsp;all.&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;#&amp;nbsp;mydataT.txt &lt;br /&gt;1&amp;nbsp;It&amp;nbsp;doesn't&amp;nbsp;hurt&amp;nbsp;to&amp;nbsp;try. &lt;br /&gt;2&amp;nbsp;Rather&amp;nbsp;be&amp;nbsp;dead&amp;nbsp;then&amp;nbsp;cool. &lt;br /&gt;3&amp;nbsp;A&amp;nbsp;friend&amp;nbsp;is&amp;nbsp;a&amp;nbsp;second&amp;nbsp;self. &lt;br /&gt;4&amp;nbsp;Make&amp;nbsp;hay&amp;nbsp;while&amp;nbsp;the&amp;nbsp;sun&amp;nbsp;shines. &lt;br /&gt;5&amp;nbsp;Life&amp;nbsp;isn't&amp;nbsp;always&amp;nbsp;what&amp;nbsp;one&amp;nbsp;like. &lt;br /&gt;6&amp;nbsp;He&amp;nbsp;who&amp;nbsp;laughs&amp;nbsp;alst,&amp;nbsp;laughs&amp;nbsp;best. &lt;br /&gt;7&amp;nbsp;Every&amp;nbsp;failure&amp;nbsp;is&amp;nbsp;a&amp;nbsp;stepping&amp;nbsp;stone&amp;nbsp;to&amp;nbsp;success. &lt;br /&gt;8&amp;nbsp;Learning&amp;nbsp;to&amp;nbsp;love&amp;nbsp;yourself&amp;nbsp;is&amp;nbsp;the&amp;nbsp;greatest&amp;nbsp;love&amp;nbsp;of&amp;nbsp;all. &lt;br /&gt;9&amp;nbsp;Good&amp;nbsp;luck&amp;nbsp;to&amp;nbsp;you!&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1678411425596&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import os

fileR = '/workspace/MOOC_L2_Python_for_w/01_File_IO/MyPythonFiles/mydata.txt'
fileW = '/workspace/MOOC_L2_Python_for_w/01_File_IO/MyPythonFiles/mydataT.txt'
# 1~3번째 행을 삭제한다
# 파일의 각 행을 길이 별로 정렬한다 (길이에 행 번호는 포함하지 않음)
# 마지막 행에 &amp;ldquo;Good luck to you!\n&amp;rdquo;를 추가한다
# 새롭게 1번부터 시작하는 행 번호를 붙여 mydataT.txt 로 저장한다
# 문자열, 문자열 list, built-in함수(enumerate, zip, map)
import pprint as pp

if os.path.exists(fileR) :
    # 여기에 코드를 작성하세요!
    with open(fileR, 'r') as fp :
        r = fp.readlines()       
        rn = r[3:]
        rn = [x.split(maxsplit=1, sep=' ')[1] for x in rn]
        rn.sort(key=len)#, reverse=True)
        rn.append('Good luck to you!\n')
        rn = [ f'{idx} {x}' for idx, x in enumerate(rn, start=1) ]
        #pp.pprint(rn)  #줄바꿈으로 프린트하기 위해 pprint 사용
        
    with open(fileW, 'w') as wp :
        wp.write(''.join(rn))
        
            
    print(f&quot;{fileR!r} transformation success!!&quot;)
else :
    print(f&quot;{fileR!r} doesn\'t exist&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2-05.-열-조작-프로그램-작성&quot; data-ke-size=&quot;size23&quot;&gt;열 조작 프로그램 작성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일을 열어 다음과 같이 조작하여 저장하는 프로그램을 작성하라&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;/content/drive/MyDrive/MyPythonFiles/mydata2.txt 파일을 사용한다&lt;/li&gt;
&lt;li&gt;파일 조작 내용은 다음과 같다
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1번, 6번 열을 교환하고, 3번, 4번 열을 교환한다&lt;/li&gt;
&lt;li&gt;마지막 열을 삭제한다&lt;/li&gt;
&lt;li&gt;교환을 위한 함수와 삭제를 위한 함수를 각각 작성하여 사용한다&lt;/li&gt;
&lt;li&gt;mydata2T.txt 로 저장한다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;#&amp;nbsp;mydata2.txt &lt;br /&gt;&lt;br /&gt;1&amp;nbsp;283&amp;nbsp;748&amp;nbsp;328&amp;nbsp;57&amp;nbsp;454&amp;nbsp;7&amp;nbsp;148&amp;nbsp;289 &lt;br /&gt;2&amp;nbsp;240&amp;nbsp;996&amp;nbsp;7&amp;nbsp;578&amp;nbsp;826&amp;nbsp;254&amp;nbsp;65&amp;nbsp;272 &lt;br /&gt;3&amp;nbsp;754&amp;nbsp;674&amp;nbsp;781&amp;nbsp;925&amp;nbsp;681&amp;nbsp;656&amp;nbsp;963&amp;nbsp;445 &lt;br /&gt;4&amp;nbsp;700&amp;nbsp;304&amp;nbsp;598&amp;nbsp;584&amp;nbsp;469&amp;nbsp;40&amp;nbsp;808&amp;nbsp;954 &lt;br /&gt;5&amp;nbsp;94&amp;nbsp;27&amp;nbsp;374&amp;nbsp;587&amp;nbsp;373&amp;nbsp;912&amp;nbsp;218&amp;nbsp;447 &lt;br /&gt;6&amp;nbsp;216&amp;nbsp;487&amp;nbsp;800&amp;nbsp;320&amp;nbsp;434&amp;nbsp;324&amp;nbsp;449&amp;nbsp;756 &lt;br /&gt;7&amp;nbsp;889&amp;nbsp;742&amp;nbsp;259&amp;nbsp;636&amp;nbsp;71&amp;nbsp;194&amp;nbsp;598&amp;nbsp;391 &lt;br /&gt;8&amp;nbsp;308&amp;nbsp;623&amp;nbsp;9&amp;nbsp;993&amp;nbsp;426&amp;nbsp;567&amp;nbsp;243&amp;nbsp;629 &lt;br /&gt;9&amp;nbsp;131&amp;nbsp;668&amp;nbsp;137&amp;nbsp;654&amp;nbsp;321&amp;nbsp;758&amp;nbsp;301&amp;nbsp;742 &lt;br /&gt;10&amp;nbsp;51&amp;nbsp;331&amp;nbsp;211&amp;nbsp;408&amp;nbsp;817&amp;nbsp;529&amp;nbsp;513&amp;nbsp;161&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;#&amp;nbsp;mydata2T.txt &lt;br /&gt;1&amp;nbsp;7&amp;nbsp;748&amp;nbsp;57&amp;nbsp;328&amp;nbsp;454&amp;nbsp;283&amp;nbsp;148 &lt;br /&gt;2&amp;nbsp;254&amp;nbsp;996&amp;nbsp;578&amp;nbsp;7&amp;nbsp;826&amp;nbsp;240&amp;nbsp;65 &lt;br /&gt;3&amp;nbsp;656&amp;nbsp;674&amp;nbsp;925&amp;nbsp;781&amp;nbsp;681&amp;nbsp;754&amp;nbsp;963 &lt;br /&gt;4&amp;nbsp;40&amp;nbsp;304&amp;nbsp;584&amp;nbsp;598&amp;nbsp;469&amp;nbsp;700&amp;nbsp;808 &lt;br /&gt;5&amp;nbsp;912&amp;nbsp;27&amp;nbsp;587&amp;nbsp;374&amp;nbsp;373&amp;nbsp;94&amp;nbsp;218 &lt;br /&gt;6&amp;nbsp;324&amp;nbsp;487&amp;nbsp;320&amp;nbsp;800&amp;nbsp;434&amp;nbsp;216&amp;nbsp;449 &lt;br /&gt;7&amp;nbsp;194&amp;nbsp;742&amp;nbsp;636&amp;nbsp;259&amp;nbsp;71&amp;nbsp;889&amp;nbsp;598 &lt;br /&gt;8&amp;nbsp;567&amp;nbsp;623&amp;nbsp;993&amp;nbsp;9&amp;nbsp;426&amp;nbsp;308&amp;nbsp;243 &lt;br /&gt;9&amp;nbsp;758&amp;nbsp;668&amp;nbsp;654&amp;nbsp;137&amp;nbsp;321&amp;nbsp;131&amp;nbsp;301 &lt;br /&gt;10&amp;nbsp;529&amp;nbsp;331&amp;nbsp;408&amp;nbsp;211&amp;nbsp;817&amp;nbsp;51&amp;nbsp;513&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1678412280900&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import os

fileR = '/workspace/MOOC_L2_Python_for_w/01_File_IO/MyPythonFiles/mydata2.txt'
fileW = '/workspace/MOOC_L2_Python_for_w/01_File_IO/MyPythonFiles/mydata2T.txt'

# 1번, 6번 열을 교환하고, 3번, 4번 열을 교환한다
# 마지막 열을 삭제한다
# 교환을 위한 함수와 삭제를 위한 함수를 각각 작성하여 사용한다
# mydata2T.txt 로 저장한다
import pprint as pp

def exchangeCols(data, c1, c2):
    for x in data :
        x[c1], x[c2] = x[c2], x[c1]

def deleteColumn(data, c):
    for x in data :
        del x[c]

if os.path.exists(fileR) :
    # 여기에 코드를 작성하세요
    with open(fileR, 'r') as fp :
        r = fp.readlines()
        rn = [x.split() for x in r]
        exchangeCols(rn, 1, 6)
        exchangeCols(rn, 3, 4)
        deleteColumn(rn, -1)
    
    with open(fileW, 'w') as fp :
        rn = '\n'.join([' '.join(x) for x in rn])
        fp.write(rn)
    print(rn)

    print(f&quot;{fileR!r} transformation success!!&quot;)
else :
    print(f&quot;{fileR!r} doesn\'t exist&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;3-01.-파일,-디렉터리-복사&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;파일, 디렉터리 복사&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;File객체의 read(), write()를 사용하여 1개 파일 복사&lt;/li&gt;
&lt;li&gt;shutil 모듈의 copy() 함수를 사용하여 1개 파일 복사
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;shutil.copy(원본파일, 사본파일)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;distutils.dir_util의 copy_tree() 함수를 사용하여 1개 디렉터리 복사
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;distutils.dir_util.copy_tree(원본디렉터리, 사본디렉터리)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1678745743525&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import os

fileR = './MyPythonFiles/letter.txt'
fileW = './MyPythonFiles/letter_cp.txt'

if os.path.exists(fileR) :
    with open(fileR, 'r') as myfileR, open(fileW, 'w') as myfileW:
        mycontents = myfileR.read()
        myfileW.write(mycontents)

    print(f&quot;{fileR!r} copy success!!&quot;)
else :
    print(f&quot;{fileR!r} doesn\'t exist&quot;)
    
###############################################

import os,shutil

fileR = './MyPythonFiles/letter.txt'
fileW = './MyPythonFiles/letter_cp2.txt'

if os.path.exists(fileR) :
    # 파일 복사 코드 작성
    shutil.copy(fileR, fileW)    
    
    print(f&quot;{fileR!r} copy success!!&quot;)
else :
    print(f&quot;{fileR!r} doesn\'t exist&quot;)
    
###############################################

import os
from distutils.dir_util import copy_tree
dirR = './MyPythonFiles/TextFiles'
dirW = './TextFiles' 

if os.path.exists(dirR) :
    # 디렉터리 복사 코드 작성
    copy_tree(dirR, dirW)   
    
    print(f&quot;{dirR!r} copy success!!&quot;)
else :
    print(f&quot;{dirR!r} doesn\'t exist&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3-02.-binary-파일-저장---pickle-모듈&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;binary 파일 저장 - pickle 모듈&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체 serialization/deserialization을 수행&lt;/li&gt;
&lt;li&gt;Serialization : 객체의 상태를 메모리나 영구 저장 장치에 저장이 가능한 정보로 바꾸는 것&lt;/li&gt;
&lt;li&gt;Deserialization : binary 파일을 읽어 객체로 복원하는 작업&lt;/li&gt;
&lt;li&gt;open() 함수를 사용하여 pickle 파일에 쓰기 작업 할 때 'wb' 모드 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;pickle.dump(객체, file_handle)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;open() 함수를 사용하여 pickle 파일에서 읽기 작업할 때 'rb' 모드 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;X = pickle.load(file_handle)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1678746170267&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pickle

# data.pkl에 객체 D, E 쓰기 - serialization

D = {'A' : 65, 'B' : 66}
E = [1, 2, 3, 4, 5]
with open('data.pkl', 'wb') as fp:
      # dict object
    pickle.dump(D, fp)
      # list object
    pickle.dump(E, fp)

print('write - data.pkl')

##############################

# data.pkl 에서 객체 2개 읽기 - deserialization

with open('data.pkl', 'rb') as fp :
      # dict object
    X = pickle.load(fp)
    Y = pickle.load(fp)
      # list object

print(X, Y)

#출력
{'A': 65, 'B': 66} [1, 2, 3, 4, 5]

##############################

# data.pkl 에서 객체 여러개 읽기(EOFError) - deserialization
with open('data.pkl', 'rb') as fp :
    while True :
        try :
            X = pickle.load(fp)
            print(X)
        except EOFError :
            break
            
#출력
{'A': 65, 'B': 66}
[1, 2, 3, 4, 5]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3-03.-binary-파일-저장---shelve-모듈&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;binary 파일 저장 - shelve 모듈&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;key 를 이용해 객체를 저장하고 불러옴
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;key 는 문자열을 사용함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;mode 부여 필요 없음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;읽고, 쓰기 모두 가능하게 열림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;한 번 쓰기 한 내용은 계속 유지됨&lt;/li&gt;
&lt;li&gt;같은 &amp;lsquo;key&amp;rsquo;로 여러 번 저장 시 최근 것으로 저장됨 (갱신)&lt;/li&gt;
&lt;li&gt;Windows에서는 X.bak. X.dat, X.dir 세 개의 파일이 생성되고, Linux에서는 X.db 파일이 생성됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1678746319775&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import shelve
fruits = ['orange', 'banana', 'apple']

with shelve.open('myshelf') as mydata :
    mydata['fruits'] = fruits  # 쓰기 작업
    X = mydata['fruits']       # 읽기 작업
    print(X)
    
&amp;gt;&amp;gt;
['orange', 'banana', 'apple']

import shelve
fruits = ['orange', 'apple']
myStr = 'hello!'
myValue = 100.2

with shelve.open('myshelf') as mydata:
     mydata['fruits'] = fruits   # 쓰기
     mydata['myStr']  = myStr
     mydata['myValue'] = myValue
     mydata['myValue'] = 200.54
     print(list(mydata.keys()))
     print(list(mydata.values()))
     print(mydata['myValue'])
     print(mydata['fruits'])     # 읽기
     print(mydata['myStr'])
     
 &amp;gt;&amp;gt;
['fruits', 'myStr', 'myValue']
[['orange', 'apple'], 'hello!', 200.54]
200.54
['orange', 'apple']
hello!&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Python</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/123</guid>
      <comments>https://kakaroo.tistory.com/123#entry123comment</comments>
      <pubDate>Tue, 7 Mar 2023 07:25:53 +0900</pubDate>
    </item>
    <item>
      <title>Pandas</title>
      <link>https://kakaroo.tistory.com/122</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터 로드와 저장&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. CSV 파일 로드하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N5QVQ/btrUSwkaxe1/93OkhOkBWiFsWlaXMr8yOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N5QVQ/btrUSwkaxe1/93OkhOkBWiFsWlaXMr8yOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N5QVQ/btrUSwkaxe1/93OkhOkBWiFsWlaXMr8yOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN5QVQ%2FbtrUSwkaxe1%2F93OkhOkBWiFsWlaXMr8yOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;216&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;csv 파일을 editor로 열면 아래와 같이 쉼표로 구분되어 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1672379690237&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a,b,c,d,e,keyword
1,2,3,4,5,Hello
11,12,13,14,15,Good
21,22,23,24,25,Nice
31,32,33,34,35,Beautiful
41,42,43,44,45,GoGo&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672378636187&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

filename = &quot;../datasets/example_1.csv&quot;

df = pd.read_csv(filename)		//dataFrame 형식으로 읽기

tbl = pd.read_table(filename, sep=',')	//구분자 넣어줘야&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1672379751642&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    a   b   c   d   e    keyword
0   1   2   3   4   5      Hello
1  11  12  13  14  15       Good
2  21  22  23  24  25       Nice
3  31  32  33  34  35  Beautiful
4  41  42  43  44  45       GoGo&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 컬럼명 항목이 없는 데이터 로드하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSyJXE/btrUZXAC2C5/gmjTr9NQn5WcSv8WlEIDL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSyJXE/btrUZXAC2C5/gmjTr9NQn5WcSv8WlEIDL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSyJXE/btrUZXAC2C5/gmjTr9NQn5WcSv8WlEIDL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSyJXE%2FbtrUZXAC2C5%2FgmjTr9NQn5WcSv8WlEIDL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;184&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1672379982189&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1,2,3,4,5,Hello
11,12,13,14,15,Good
21,22,23,24,25,Nice
31,32,33,34,35,Beautiful
41,42,43,44,45,GoGo&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672380083569&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

filename2 = &quot;../datasets/example_2.csv&quot;

df1 = pd.read_csv(filename2)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 위의 행이 헤더로 인식한다.&lt;/p&gt;
&lt;pre id=&quot;code_1672380106177&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    1   2   3   4   5      Hello
0  11  12  13  14  15       Good
1  21  22  23  24  25       Nice
2  31  32  33  34  35  Beautiful
3  41  42  43  44  45       GoGo&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때는 원본데이터에 헤더가 없으니 header=None 옵션을 준다.&lt;/p&gt;
&lt;pre id=&quot;code_1672380199009&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;df1 = pd.read_csv(filename2, header=None)&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1672380187005&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    0   1   2   3   4          5
0   1   2   3   4   5      Hello
1  11  12  13  14  15       Good
2  21  22  23  24  25       Nice
3  31  32  33  34  35  Beautiful
4  41  42  43  44  45       GoGo&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K7iiA/btr5fNunGqY/loe6Gve2tyvb7QZCtDM4Dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K7iiA/btr5fNunGqY/loe6Gve2tyvb7QZCtDM4Dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K7iiA/btr5fNunGqY/loe6Gve2tyvb7QZCtDM4Dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK7iiA%2Fbtr5fNunGqY%2Floe6Gve2tyvb7QZCtDM4Dk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;694&quot; height=&quot;450&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQm9op/btr5fmjmHMd/oyrhbQQQeIoR40F8oHBSQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQm9op/btr5fmjmHMd/oyrhbQQQeIoR40F8oHBSQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQm9op/btr5fmjmHMd/oyrhbQQQeIoR40F8oHBSQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQm9op%2Fbtr5fmjmHMd%2FoyrhbQQQeIoR40F8oHBSQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1002&quot; height=&quot;569&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;518&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kJCr0/btr49TprEgG/6pK3uQx3clIXQiKKy0PBOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kJCr0/btr49TprEgG/6pK3uQx3clIXQiKKy0PBOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kJCr0/btr49TprEgG/6pK3uQx3clIXQiKKy0PBOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkJCr0%2Fbtr49TprEgG%2F6pK3uQx3clIXQiKKy0PBOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;695&quot; height=&quot;518&quot; data-origin-width=&quot;695&quot; data-origin-height=&quot;518&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;893&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u1DBX/btr5cTP0ivb/9Snk0WrwgUpnRkJWifDe7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u1DBX/btr5cTP0ivb/9Snk0WrwgUpnRkJWifDe7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u1DBX/btr5cTP0ivb/9Snk0WrwgUpnRkJWifDe7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu1DBX%2Fbtr5cTP0ivb%2F9Snk0WrwgUpnRkJWifDe7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;893&quot; height=&quot;650&quot; data-origin-width=&quot;893&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index, columns 변경&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chScvm/btr5dqfJ6QA/Ym4mcr8RveTKizksKLKH80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chScvm/btr5dqfJ6QA/Ym4mcr8RveTKizksKLKH80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chScvm/btr5dqfJ6QA/Ym4mcr8RveTKizksKLKH80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchScvm%2Fbtr5dqfJ6QA%2FYm4mcr8RveTKizksKLKH80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;570&quot; height=&quot;351&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Python</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/122</guid>
      <comments>https://kakaroo.tistory.com/122#entry122comment</comments>
      <pubDate>Fri, 9 Dec 2022 09:31:57 +0900</pubDate>
    </item>
    <item>
      <title>Unity - Shooting Game</title>
      <link>https://kakaroo.tistory.com/121</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z5lgw/btrPfPJzahj/FFdvlud88przzKzIRslC70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z5lgw/btrPfPJzahj/FFdvlud88przzKzIRslC70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z5lgw/btrPfPJzahj/FFdvlud88przzKzIRslC70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz5lgw%2FbtrPfPJzahj%2FFFdvlud88przzKzIRslC70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;646&quot; height=&quot;350&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. PlayerMove&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표: 컨트롤에 따라 이동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1666408945844&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMove : MonoBehaviour
{
    public float speed = 5f;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float h = Input.GetAxis(&quot;Horizontal&quot;);
        float v = Input.GetAxis(&quot;Vertical&quot;);

        Vector3 dir = new Vector3(h, v, 0);
        //transform.Translate(dir * speed * Time.deltaTime);    //아래와 같다.
        transform.position += dir * speed * Time.deltaTime; // P = P0 + vt
        
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Bullet&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표: 위로 정해진 속도에 따라 이동한다.&lt;/p&gt;
&lt;pre id=&quot;code_1666408978231&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour
{
    public float speed = 5f;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //1. 방향
        Vector3 dir = Vector3.up;

        //2. 이동
        transform.position += dir * speed * Time.deltaTime;
        
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Bullet Prefab 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. PlayerFire&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표 : 발사버튼을 누르면 총알이 Player 위치에서 위로 나간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성할 bulletPrefab과 PlayerPosition을 지정해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oN2gS/btrPf4sVBg8/nUSFUvpm4AE1kSoYrkE6W1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oN2gS/btrPf4sVBg8/nUSFUvpm4AE1kSoYrkE6W1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oN2gS/btrPf4sVBg8/nUSFUvpm4AE1kSoYrkE6W1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoN2gS%2FbtrPf4sVBg8%2FnUSFUvpm4AE1kSoYrkE6W1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;821&quot; height=&quot;221&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1666409723150&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerFire : MonoBehaviour
{
    public float speed = 5f;
    public GameObject bulletPrefab;
    public GameObject playerPosition;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //1. 발사버튼을 누르면
        if(Input.GetButtonDown(&quot;Fire1&quot;))
        {
            //2. 총알을 만든다
            GameObject bullet = Instantiate(bulletPrefab);

            //3. 총알이 움직이는 건 bullet.cs에서 설정했기 때문에 총알의 위치만 선정한다. 
            bullet.transform.position = playerPosition.transform.position;
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 목표물(적 : Enemy)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표: Player를 향하거나 그냥 아래로 내려온다. Player를 맞추거나 총알에 맞으면 사라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;충돌효과를 나타내기 위해 RigidBody 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Add Component &amp;gt; Physics &amp;gt; RigidBody&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트에서 아래로 이동할 것이므로 Gravity는 uncheck&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxpQzd/btrPfX8ln0L/TIVYETcla8kZJK5M8tdHXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxpQzd/btrPfX8ln0L/TIVYETcla8kZJK5M8tdHXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxpQzd/btrPfX8ln0L/TIVYETcla8kZJK5M8tdHXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxpQzd%2FbtrPfX8ln0L%2FTIVYETcla8kZJK5M8tdHXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;218&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;충돌 처리는 아래 함수를 사용&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;OnCollisionEnter&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Collision&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;other&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt;//충돌시작&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;OnCollisionStay&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Collision&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;other&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt;//충돌중&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;OnCollisionExit&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Collision&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;other&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt;//충돌끝&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1666410132653&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed = 5f;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 dir = Vector3.down;
        transform.position += dir * speed * Time.deltaTime;        
    }

    private void OnCollisionEnter(Collision other)
    {
        //충돌시작
        Destroy(other.gameObject);
        Destroy(gameObject);
    }
    private void OnCollisionStay(Collision other)
    {
        //충돌중
    }
    private void OnCollisionExit(Collision other)
    {
        //충돌끝
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 목표물 prefab 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 목표물 매니저 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표 : 랜덤한 시간마다 목표물을 위치에 생성한다&lt;/p&gt;
&lt;pre id=&quot;code_1666412241675&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyManager : MonoBehaviour
{
    float currentTime;
    
    public float minTime = 1;
    public float maxTime = 5;

    float createTime = 1;    //1초
    public GameObject enemyPrefab;

    // Start is called before the first frame update
    void Start()
    {        
        createTime = UnityEngine.Random.Range(minTime, maxTime);
    }

    // Update is called once per frame
    void Update()
    {
        currentTime += Time.deltaTime;

        if(currentTime &amp;gt; createTime)
        {
            GameObject enemy = Instantiate(enemyPrefab);
            enemy.transform.position = transform.position;
            currentTime = UnityEngine.Random.Range(minTime, maxTime);
        }        
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표물 위치는 한 군데에서 시작하므로 여러 군데에서 나오기 위해 EnemyManager를 Ctrl+D 로 복사해서 X 위치값만 변경해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kVDq1/btrPfmguisV/o0lRLhLiKfsHWtTnA5kWQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kVDq1/btrPfmguisV/o0lRLhLiKfsHWtTnA5kWQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kVDq1/btrPfmguisV/o0lRLhLiKfsHWtTnA5kWQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkVDq1%2FbtrPfmguisV%2Fo0lRLhLiKfsHWtTnA5kWQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;211&quot; height=&quot;151&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFdpiR/btrPfDPPdpX/dOTaxAktzElHLqaKoCRBhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFdpiR/btrPfDPPdpX/dOTaxAktzElHLqaKoCRBhK/img.png&quot; data-alt=&quot;-30 부터 10씩 증가&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFdpiR/btrPfDPPdpX/dOTaxAktzElHLqaKoCRBhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFdpiR%2FbtrPfDPPdpX%2FdOTaxAktzElHLqaKoCRBhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;445&quot; height=&quot;120&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;-30 부터 10씩 증가&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 목표물이 Player를 향해 가도록 수정&lt;/p&gt;
&lt;pre id=&quot;code_1666412305362&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed = 5f;

    Vector3 dir;

    // Start is called before the first frame update
    void Start()
    {
        int randValue = UnityEngine.Random.Range(0,10);
        if(randValue &amp;lt;= 3)
        {
            GameObject target = GameObject.Find(&quot;Player&quot;);  //Target 찾기
            dir = target.transform.position - transform.position; //방향 구하기
            dir.Normalize();    //방향의 크기를 1로
        }
        else
        {
            dir = Vector3.down;
        }
    }

    // Update is called once per frame
    void Update()
    {
        transform.position += dir * speed * Time.deltaTime;        
    }

    private void OnCollisionEnter(Collision other)
    {
        //충돌시작
        Destroy(other.gameObject);
        Destroy(gameObject);
    }
    private void OnCollisionStay(Collision other)
    {
        //충돌중
    }
    private void OnCollisionExit(Collision other)
    {
        //충돌끝
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 영역 감지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영역을 벗어나면 스스로 destory 가 되어야 한다. 좌우아래 Zone을 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IX0Z9/btrPh8Or0SY/Zg1O9K5hGfStDJ26NKy5A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IX0Z9/btrPh8Or0SY/Zg1O9K5hGfStDJ26NKy5A0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IX0Z9/btrPh8Or0SY/Zg1O9K5hGfStDJ26NKy5A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIX0Z9%2FbtrPh8Or0SY%2FZg1O9K5hGfStDJ26NKy5A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;448&quot; height=&quot;361&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IsTrigger 옵션 활성화 : 물체가 부딪혔을 때 트리거가 자동으로 충돌했다는 함수를 호출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RigidBody &amp;gt; IsKinematic : 충돌할 수 있는 물체지만 물리적인 행동을 하지않도록 하는 옵션&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wDmeQ/btrPjlGLjyZ/PdgccaakuWzFZ81f74YoYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wDmeQ/btrPjlGLjyZ/PdgccaakuWzFZ81f74YoYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wDmeQ/btrPjlGLjyZ/PdgccaakuWzFZ81f74YoYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwDmeQ%2FbtrPjlGLjyZ%2FPdgccaakuWzFZ81f74YoYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;435&quot; height=&quot;426&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;426&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1666413246123&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DestroyZone : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {
        Destroy(other.gameObject);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌우아래 Zone이 서로 겹쳐서 게임을 시작하면 없어짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Layer를 설정하고, 아래 동일한 Layer 끼리는 Physics 가 동작하지 않도록 설정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;749&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mEyF7/btrPfPbLjYP/esakKfC72VKaMk2zdRjlK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mEyF7/btrPfPbLjYP/esakKfC72VKaMk2zdRjlK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mEyF7/btrPfPbLjYP/esakKfC72VKaMk2zdRjlK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmEyF7%2FbtrPfPbLjYP%2FesakKfC72VKaMk2zdRjlK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;749&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;749&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Player, Bullet, Enemy 도 Layer를 지정해주고 아래와 같이 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebm0wu/btrPfnfqIvh/CWFFm2GLHtS8lQSpbMO5n1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebm0wu/btrPfnfqIvh/CWFFm2GLHtS8lQSpbMO5n1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebm0wu/btrPfnfqIvh/CWFFm2GLHtS8lQSpbMO5n1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Febm0wu%2FbtrPfnfqIvh%2FCWFFm2GLHtS8lQSpbMO5n1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;373&quot; height=&quot;332&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Unity</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/121</guid>
      <comments>https://kakaroo.tistory.com/121#entry121comment</comments>
      <pubDate>Sun, 23 Oct 2022 10:27:36 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 텍스트 (feat. Compound Path + PathFinder)</title>
      <link>https://kakaroo.tistory.com/120</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. Create Outlines (글자체 : Bauhaus93)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xPy5z/btrL0TPapKp/TyO2uK0pXBGKLzTCmip50k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xPy5z/btrL0TPapKp/TyO2uK0pXBGKLzTCmip50k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xPy5z/btrL0TPapKp/TyO2uK0pXBGKLzTCmip50k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxPy5z%2FbtrL0TPapKp%2FTyO2uK0pXBGKLzTCmip50k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1106&quot; height=&quot;423&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Fill - 흰색&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLvjfy/btrL4lDGy08/mkqtOzcibNvLef7K5nStH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLvjfy/btrL4lDGy08/mkqtOzcibNvLef7K5nStH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLvjfy/btrL4lDGy08/mkqtOzcibNvLef7K5nStH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLvjfy%2FbtrL4lDGy08%2FmkqtOzcibNvLef7K5nStH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1078&quot; height=&quot;243&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Offset path &amp;gt; 5 pt &amp;gt; Fill as black&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IGedp/btrLYkM6P3b/eYcWLUZkflKC53skYiptL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IGedp/btrLYkM6P3b/eYcWLUZkflKC53skYiptL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IGedp/btrLYkM6P3b/eYcWLUZkflKC53skYiptL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIGedp%2FbtrLYkM6P3b%2FeYcWLUZkflKC53skYiptL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1102&quot; height=&quot;404&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Offset path &amp;gt; -10 pt &amp;gt; Stroke as black and size 4 pt&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cT5Xz1/btrL22dQz2x/ZN5gneQ9Ex91ox9f3dbRDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cT5Xz1/btrL22dQz2x/ZN5gneQ9Ex91ox9f3dbRDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cT5Xz1/btrL22dQz2x/ZN5gneQ9Ex91ox9f3dbRDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcT5Xz1%2FbtrL22dQz2x%2FZN5gneQ9Ex91ox9f3dbRDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1098&quot; height=&quot;459&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Ungroup &amp;gt; Object 를 shift로 하나씩 전체 선택 &amp;gt; Object &amp;gt; Compound path &amp;gt; Make&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과정 4에서 잡은 안의 object 안에만 효과를 주기 위한 것이므로 내부 object만 compound path 해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XEjzE/btrLZRjBjKl/kKhNKyYueKGpgGtJJ3OinK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XEjzE/btrLZRjBjKl/kKhNKyYueKGpgGtJJ3OinK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XEjzE/btrLZRjBjKl/kKhNKyYueKGpgGtJJ3OinK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXEjzE%2FbtrLZRjBjKl%2FkKhNKyYueKGpgGtJJ3OinK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1055&quot; height=&quot;225&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Compound path는 path를 합치는 것인데, Pathfinder는 path를 합치고 나면 분리해서 작업을 할 수 없는데 반해, Compound path는 release 가 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. Blend (0.5 px - 5 px)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v5ymk/btrL4ljqdam/uHZ6bGjyZFgOARp7wxGPM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v5ymk/btrL4ljqdam/uHZ6bGjyZFgOARp7wxGPM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v5ymk/btrL4ljqdam/uHZ6bGjyZFgOARp7wxGPM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv5ymk%2FbtrL4ljqdam%2FuHZ6bGjyZFgOARp7wxGPM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1114&quot; height=&quot;339&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DlWNu/btrL0U1FMvQ/krwqxDooxPQGYSfINmKvy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DlWNu/btrL0U1FMvQ/krwqxDooxPQGYSfINmKvy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DlWNu/btrL0U1FMvQ/krwqxDooxPQGYSfINmKvy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDlWNu%2FbtrL0U1FMvQ%2FkrwqxDooxPQGYSfINmKvy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1113&quot; height=&quot;304&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 블렌드 툴로 생성된 선들을 Fill object가 나올 때까지 Expand 한뒤, Fill object가 나오면 Compound Path를 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQjUpV/btrL5cNefsR/8yi51i128w8Qn3emt0zv30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQjUpV/btrL5cNefsR/8yi51i128w8Qn3emt0zv30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQjUpV/btrL5cNefsR/8yi51i128w8Qn3emt0zv30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQjUpV%2FbtrL5cNefsR%2F8yi51i128w8Qn3emt0zv30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1365&quot; height=&quot;371&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1747&quot; data-origin-height=&quot;528&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZhQKD/btrL33XArXR/FH25UIoTlnlVkhzSzVTkS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZhQKD/btrL33XArXR/FH25UIoTlnlVkhzSzVTkS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZhQKD/btrL33XArXR/FH25UIoTlnlVkhzSzVTkS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZhQKD%2FbtrL33XArXR%2FFH25UIoTlnlVkhzSzVTkS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1747&quot; height=&quot;528&quot; data-origin-width=&quot;1747&quot; data-origin-height=&quot;528&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 과정 5와 과정 7의 Compound path를 선택한 뒤, Pathfinder의 intersect 를 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pvwLi/btrLYlFgpSi/WamnVnes7iRMlbaCRkOgK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pvwLi/btrLYlFgpSi/WamnVnes7iRMlbaCRkOgK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pvwLi/btrLYlFgpSi/WamnVnes7iRMlbaCRkOgK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpvwLi%2FbtrLYlFgpSi%2FWamnVnes7iRMlbaCRkOgK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;222&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/120</guid>
      <comments>https://kakaroo.tistory.com/120#entry120comment</comments>
      <pubDate>Tue, 13 Sep 2022 22:29:01 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - Isometric shapes (feat. action)</title>
      <link>https://kakaroo.tistory.com/119</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사이트에서 action을 download&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://drive.google.com/file/d/1nR0Q9f2mhFT4yWCbmg_QE8dKHjaLNqQ7/view&quot;&gt;https://drive.google.com/file/d/1nR0Q9f2mhFT4yWCbmg_QE8dKHjaLNqQ7/view&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yqkzc/btrK94xxM6I/d0CGrHO8fTNOqcoKdCNS7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yqkzc/btrK94xxM6I/d0CGrHO8fTNOqcoKdCNS7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yqkzc/btrK94xxM6I/d0CGrHO8fTNOqcoKdCNS7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyqkzc%2FbtrK94xxM6I%2Fd0CGrHO8fTNOqcoKdCNS7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;285&quot; height=&quot;223&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사각형 그리고 각 action 을 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 크기 조절시 잘 맞지 않는다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqtCXl/btrLavVXkaX/o2KliU4oaOqDI9fKbCEvo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqtCXl/btrLavVXkaX/o2KliU4oaOqDI9fKbCEvo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqtCXl/btrLavVXkaX/o2KliU4oaOqDI9fKbCEvo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqtCXl%2FbtrLavVXkaX%2Fo2KliU4oaOqDI9fKbCEvo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;499&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마우스 우클릭 &amp;gt; Transform &amp;gt; Reset Bounding Path&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kBy7k/btrLcgKpK1M/cFDRxsLxgXv4AD3kK6lC41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kBy7k/btrLcgKpK1M/cFDRxsLxgXv4AD3kK6lC41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kBy7k/btrLcgKpK1M/cFDRxsLxgXv4AD3kK6lC41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBy7k%2FbtrLcgKpK1M%2FcFDRxsLxgXv4AD3kK6lC41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;512&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;건물 외형 완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kKbEW/btrLgvNoqdb/jZIhNZTk1uLyTRPhNCeOt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kKbEW/btrLgvNoqdb/jZIhNZTk1uLyTRPhNCeOt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kKbEW/btrLgvNoqdb/jZIhNZTk1uLyTRPhNCeOt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkKbEW%2FbtrLgvNoqdb%2FjZIhNZTk1uLyTRPhNCeOt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;658&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창문 그리기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네모 &amp;gt; 위 코너 라인 조절 &amp;gt; 카피해서 대각선으로 겹치게 &amp;gt; 패스파인더 디바이드&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;172&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xetRj/btrLavPu1JZ/6SbIxIv3gEkdPY8mK3mnzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xetRj/btrLavPu1JZ/6SbIxIv3gEkdPY8mK3mnzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xetRj/btrLavPu1JZ/6SbIxIv3gEkdPY8mK3mnzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxetRj%2FbtrLavPu1JZ%2F6SbIxIv3gEkdPY8mK3mnzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;172&quot; height=&quot;238&quot; data-origin-width=&quot;172&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불필요부분 자르고 좌측하단 모퉁이 라인으로 다시 영역 나눠준디 패스파인더 디바이드&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ushcO/btrLgpsZG7J/fQO8LvGnQkdbc4SaKVJCx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ushcO/btrLgpsZG7J/fQO8LvGnQkdbc4SaKVJCx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ushcO/btrLgpsZG7J/fQO8LvGnQkdbc4SaKVJCx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FushcO%2FbtrLgpsZG7J%2FfQO8LvGnQkdbc4SaKVJCx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;174&quot; height=&quot;237&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;279&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ToRzE/btrLc707fOK/kwuS3HKvMBtQ1G37824R7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ToRzE/btrLc707fOK/kwuS3HKvMBtQ1G37824R7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ToRzE/btrLc707fOK/kwuS3HKvMBtQ1G37824R7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FToRzE%2FbtrLc707fOK%2FkwuS3HKvMBtQ1G37824R7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;279&quot; height=&quot;405&quot; data-origin-width=&quot;279&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창문 추가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0Jlfk/btrLgqZNVsz/gyqXNrKfSIKqcCbeH2Nsz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0Jlfk/btrLgqZNVsz/gyqXNrKfSIKqcCbeH2Nsz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0Jlfk/btrLgqZNVsz/gyqXNrKfSIKqcCbeH2Nsz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0Jlfk%2FbtrLgqZNVsz%2FgyqXNrKfSIKqcCbeH2Nsz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;286&quot; height=&quot;593&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간판&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXyTKe/btrLaVgjCs8/opUaNPJyQYP4o6ZQtsR1HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXyTKe/btrLaVgjCs8/opUaNPJyQYP4o6ZQtsR1HK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXyTKe/btrLaVgjCs8/opUaNPJyQYP4o6ZQtsR1HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXyTKe%2FbtrLaVgjCs8%2FopUaNPJyQYP4o6ZQtsR1HK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;227&quot; height=&quot;176&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpf243/btrLbwHiGWx/n29mtMgb8l9tkkIImRMIBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpf243/btrLbwHiGWx/n29mtMgb8l9tkkIImRMIBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpf243/btrLbwHiGWx/n29mtMgb8l9tkkIImRMIBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcpf243%2FbtrLbwHiGWx%2Fn29mtMgb8l9tkkIImRMIBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;214&quot; height=&quot;148&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로고 넣고, 간판 봉은 원을 action에서 left 처리하고 fill 채워서 넣기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측도 반복&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;계단 만들기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네모 2개&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;278&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIQDyF/btrLiqyBIud/3KU36PEvOrwuEWaSqPkszK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIQDyF/btrLiqyBIud/3KU36PEvOrwuEWaSqPkszK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIQDyF/btrLiqyBIud/3KU36PEvOrwuEWaSqPkszK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIQDyF%2FbtrLiqyBIud%2F3KU36PEvOrwuEWaSqPkszK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;278&quot; height=&quot;282&quot; data-origin-width=&quot;278&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;271&quot; data-origin-height=&quot;268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kQ4hB/btrLirdcjLT/LTR0GCEXaBxXIfN9JE8xD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kQ4hB/btrLirdcjLT/LTR0GCEXaBxXIfN9JE8xD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kQ4hB/btrLirdcjLT/LTR0GCEXaBxXIfN9JE8xD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkQ4hB%2FbtrLirdcjLT%2FLTR0GCEXaBxXIfN9JE8xD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;271&quot; height=&quot;268&quot; data-origin-width=&quot;271&quot; data-origin-height=&quot;268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pathfinder &amp;gt; unite , 계단 형태로 복사해서 배치&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wUYTz/btrLgvnZELP/YlCaeEpgU05rzApXJKImB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wUYTz/btrLgvnZELP/YlCaeEpgU05rzApXJKImB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wUYTz/btrLgvnZELP/YlCaeEpgU05rzApXJKImB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwUYTz%2FbtrLgvnZELP%2FYlCaeEpgU05rzApXJKImB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;372&quot; height=&quot;347&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;374&quot; data-origin-height=&quot;343&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Rw5xe/btrLiCyXXzV/KqTdetok411KC055of4cO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Rw5xe/btrLiCyXXzV/KqTdetok411KC055of4cO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Rw5xe/btrLiCyXXzV/KqTdetok411KC055of4cO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRw5xe%2FbtrLiCyXXzV%2FKqTdetok411KC055of4cO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;374&quot; height=&quot;343&quot; data-origin-width=&quot;374&quot; data-origin-height=&quot;343&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Reflect &amp;gt; action right&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;587&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/53gfS/btrLhOGMBNW/I4vNjVM1cTuYraM3H0cjdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/53gfS/btrLhOGMBNW/I4vNjVM1cTuYraM3H0cjdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/53gfS/btrLhOGMBNW/I4vNjVM1cTuYraM3H0cjdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F53gfS%2FbtrLhOGMBNW%2FI4vNjVM1cTuYraM3H0cjdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;343&quot; height=&quot;587&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;587&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=RRzuMyJQnBs&amp;amp;t=41s&quot;&gt;https://www.youtube.com/watch?v=RRzuMyJQnBs&amp;amp;t=41s&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=RRzuMyJQnBs&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/3qX5g/hyPF5Cornv/4xUurcDraPEZMJXto8rpm1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/RRzuMyJQnBs&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/119</guid>
      <comments>https://kakaroo.tistory.com/119#entry119comment</comments>
      <pubDate>Fri, 2 Sep 2022 21:43:40 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - Isometric Grid (feat. pattern using Polygon)</title>
      <link>https://kakaroo.tistory.com/118</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. Polygon 60 px (한 변의 길이가 60 px 이다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsuyJr/btrKVWExeep/VzVfqJMyKP92xt0S5Ss7Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsuyJr/btrKVWExeep/VzVfqJMyKP92xt0S5Ss7Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsuyJr/btrKVWExeep/VzVfqJMyKP92xt0S5Ss7Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsuyJr%2FbtrKVWExeep%2FVzVfqJMyKP92xt0S5Ss7Vk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;243&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;126&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dUkdtS/btrKVw62CzS/0gk2WrlGHMXjQKWmsNuxLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dUkdtS/btrKVw62CzS/0gk2WrlGHMXjQKWmsNuxLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dUkdtS/btrKVw62CzS/0gk2WrlGHMXjQKWmsNuxLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUkdtS%2FbtrKVw62CzS%2F0gk2WrlGHMXjQKWmsNuxLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;126&quot; height=&quot;112&quot; data-origin-width=&quot;126&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Transform 30도로 돌리면 높이가 120 px이 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tfVDP/btrKVwMII45/pP27RB3VuUvrCXRiqWg8b1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tfVDP/btrKVwMII45/pP27RB3VuUvrCXRiqWg8b1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tfVDP/btrKVwMII45/pP27RB3VuUvrCXRiqWg8b1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtfVDP%2FbtrKVwMII45%2FpP27RB3VuUvrCXRiqWg8b1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;292&quot; height=&quot;315&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;315&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.1 25%(1/4) 크기로 축소한다. 이 값을 명심할 것.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5k0ZP/btrKQjg8QHp/HXQ9vafx5ovUIKxtKTNrp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5k0ZP/btrKQjg8QHp/HXQ9vafx5ovUIKxtKTNrp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5k0ZP/btrKQjg8QHp/HXQ9vafx5ovUIKxtKTNrp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5k0ZP%2FbtrKQjg8QHp%2FHXQ9vafx5ovUIKxtKTNrp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;370&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;370&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;157&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4AqsN/btrKUbPTNPv/o5Nt3FdMg70kcDQwRWngJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4AqsN/btrKUbPTNPv/o5Nt3FdMg70kcDQwRWngJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4AqsN/btrKUbPTNPv/o5Nt3FdMg70kcDQwRWngJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4AqsN%2FbtrKUbPTNPv%2Fo5Nt3FdMg70kcDQwRWngJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;157&quot; height=&quot;147&quot; data-origin-width=&quot;157&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 6각형을 대각선으로 나눈다. 크게 확대해서 꼭지점에 잘 snap 되었는지 확인한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;109&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SbfYo/btrKShwB37b/LT2Q01rWSeHMOgxe8kthKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SbfYo/btrKShwB37b/LT2Q01rWSeHMOgxe8kthKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SbfYo/btrKShwB37b/LT2Q01rWSeHMOgxe8kthKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSbfYo%2FbtrKShwB37b%2FLT2Q01rWSeHMOgxe8kthKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;109&quot; height=&quot;112&quot; data-origin-width=&quot;109&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 전체선택한 뒤, 그룹 -&amp;gt; Alt 키로 복사&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;249&quot; data-origin-height=&quot;337&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rnsrf/btrKQiCxOqD/vUKbGmgfQBjiOtzVUmtY2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rnsrf/btrKQiCxOqD/vUKbGmgfQBjiOtzVUmtY2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rnsrf/btrKQiCxOqD/vUKbGmgfQBjiOtzVUmtY2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frnsrf%2FbtrKQiCxOqD%2FvUKbGmgfQBjiOtzVUmtY2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;249&quot; height=&quot;337&quot; data-origin-width=&quot;249&quot; data-origin-height=&quot;337&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Object &amp;gt; Pattern &amp;gt; Make&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tqiK8/btrKQRLydvV/5BsCulcBvNSp90u1NfDKzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tqiK8/btrKQRLydvV/5BsCulcBvNSp90u1NfDKzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tqiK8/btrKQRLydvV/5BsCulcBvNSp90u1NfDKzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtqiK8%2FbtrKQRLydvV%2F5BsCulcBvNSp90u1NfDKzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;896&quot; height=&quot;378&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pattern 크기 등을 조정할 수 있다. 일단 Done&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/riGJK/btrKQjaoPzk/PDUPqBPWGGtWiIBK85c2e0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/riGJK/btrKQjaoPzk/PDUPqBPWGGtWiIBK85c2e0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/riGJK/btrKQjaoPzk/PDUPqBPWGGtWiIBK85c2e0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FriGJK%2FbtrKQjaoPzk%2FPDUPqBPWGGtWiIBK85c2e0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;958&quot; height=&quot;596&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;596&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 패턴 위치 조정 &amp;gt; Width 를 패턴 Width에 입력&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;463&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FdWvz/btrKMFdQIbP/B66txf1kObmZgQlkzhjjqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FdWvz/btrKMFdQIbP/B66txf1kObmZgQlkzhjjqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FdWvz/btrKMFdQIbP/B66txf1kObmZgQlkzhjjqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFdWvz%2FbtrKMFdQIbP%2FB66txf1kObmZgQlkzhjjqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;463&quot; height=&quot;242&quot; data-origin-width=&quot;463&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;높이는 변이 3개이므로 45 px&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;150&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QZMXg/btrKOIajT2O/EwlSiForm0uIKLVASOVSFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QZMXg/btrKOIajT2O/EwlSiForm0uIKLVASOVSFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QZMXg/btrKOIajT2O/EwlSiForm0uIKLVASOVSFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQZMXg%2FbtrKOIajT2O%2FEwlSiForm0uIKLVASOVSFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;150&quot; height=&quot;176&quot; data-origin-width=&quot;150&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;607&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FHVSg/btrKTS3940t/zLXYRHwXiKkoLlt2WzM9eK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FHVSg/btrKTS3940t/zLXYRHwXiKkoLlt2WzM9eK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FHVSg/btrKTS3940t/zLXYRHwXiKkoLlt2WzM9eK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFHVSg%2FbtrKTS3940t%2FzLXYRHwXiKkoLlt2WzM9eK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;807&quot; height=&quot;607&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;607&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 패턴을 Fill로 채우고 사각형을 생성하면 아래와 같이 패턴이 들어간다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYZglX/btrKMFkDUQt/KX3uKKeH13KrJxYVWIKpWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYZglX/btrKMFkDUQt/KX3uKKeH13KrJxYVWIKpWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYZglX/btrKMFkDUQt/KX3uKKeH13KrJxYVWIKpWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYZglX%2FbtrKMFkDUQt%2FKX3uKKeH13KrJxYVWIKpWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;284&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. Swatch 는 라이브러리로 저장하고 불러서 사용할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVmtVO/btrKURwNInw/t9CcFxXMDEMN0gly0KYKYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVmtVO/btrKURwNInw/t9CcFxXMDEMN0gly0KYKYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVmtVO/btrKURwNInw/t9CcFxXMDEMN0gly0KYKYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVmtVO%2FbtrKURwNInw%2Ft9CcFxXMDEMN0gly0KYKYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;236&quot; height=&quot;76&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;76&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/118</guid>
      <comments>https://kakaroo.tistory.com/118#entry118comment</comments>
      <pubDate>Mon, 29 Aug 2022 22:53:56 +0900</pubDate>
    </item>
    <item>
      <title>Node.js - 수업 5일차</title>
      <link>https://kakaroo.tistory.com/117</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n6s0b/btrKBrenHhb/q73vxSaE1Ln1Ix4qJq4sm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n6s0b/btrKBrenHhb/q73vxSaE1Ln1Ix4qJq4sm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n6s0b/btrKBrenHhb/q73vxSaE1Ln1Ix4qJq4sm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn6s0b%2FbtrKBrenHhb%2Fq73vxSaE1Ln1Ix4qJq4sm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;669&quot; height=&quot;353&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySql DB 추가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;655&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bscsC5/btrKzEZ8Dea/etKS4XdmgqB30OgmCEutE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bscsC5/btrKzEZ8Dea/etKS4XdmgqB30OgmCEutE1/img.png&quot; data-alt=&quot;Database 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bscsC5/btrKzEZ8Dea/etKS4XdmgqB30OgmCEutE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbscsC5%2FbtrKzEZ8Dea%2FetKS4XdmgqB30OgmCEutE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;196&quot; data-origin-width=&quot;655&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Database 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H8jFS/btrKBFQ2Jn8/cz8whjZx9npirFGDbr5zJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H8jFS/btrKBFQ2Jn8/cz8whjZx9npirFGDbr5zJ1/img.png&quot; data-alt=&quot;Table 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H8jFS/btrKBFQ2Jn8/cz8whjZx9npirFGDbr5zJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH8jFS%2FbtrKBFQ2Jn8%2Fcz8whjZx9npirFGDbr5zJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;448&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Table 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1082&quot; data-origin-height=&quot;629&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l3BPQ/btrKzPUF6O5/xUpyYz0ZixmuadVk16JQjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l3BPQ/btrKzPUF6O5/xUpyYz0ZixmuadVk16JQjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l3BPQ/btrKzPUF6O5/xUpyYz0ZixmuadVk16JQjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl3BPQ%2FbtrKzPUF6O5%2FxUpyYz0ZixmuadVk16JQjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;721&quot; height=&quot;419&quot; data-origin-width=&quot;1082&quot; data-origin-height=&quot;629&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY5UaU/btrKBGPZkEP/CFOW9fQD1RXTBAFR9M1Rd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY5UaU/btrKBGPZkEP/CFOW9fQD1RXTBAFR9M1Rd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY5UaU/btrKBGPZkEP/CFOW9fQD1RXTBAFR9M1Rd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY5UaU%2FbtrKBGPZkEP%2FCFOW9fQD1RXTBAFR9M1Rd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;283&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1349&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/su2UX/btrKzO2yuin/M770QHVmtVu0jTAk93VugK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/su2UX/btrKzO2yuin/M770QHVmtVu0jTAk93VugK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/su2UX/btrKzO2yuin/M770QHVmtVu0jTAk93VugK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsu2UX%2FbtrKzO2yuin%2FM770QHVmtVu0jTAk93VugK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1349&quot; height=&quot;313&quot; data-origin-width=&quot;1349&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk6nuQ/btrKCWEV2j3/XW8SKNSUczuf7ztqSgTixK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk6nuQ/btrKCWEV2j3/XW8SKNSUczuf7ztqSgTixK/img.png&quot; data-alt=&quot;id는 자동적으로 생성됨&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk6nuQ/btrKCWEV2j3/XW8SKNSUczuf7ztqSgTixK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk6nuQ%2FbtrKCWEV2j3%2FXW8SKNSUczuf7ztqSgTixK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;265&quot; height=&quot;111&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;id는 자동적으로 생성됨&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# npm init&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# npm install mysql&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661474939394&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//main.js
const mysql = require(&quot;mysql&quot;);

const connection = mysql.createConnection({
	host: &quot;3.35.151.156&quot;,
	port: &quot;58975&quot;,
	user: &quot;root&quot;,
	password: &quot;root&quot;,
	database: &quot;nodejs&quot;
});
connection.connect();	//데이터베이스 접속

const name = &quot;monica&quot;;
const age = 19;

//CRUD 1. Create: 데이터베이스를 생성하여 데이터베이스에 저장하는 작업
//INSERT INTO [테이블명] (컬럼명1, 컬럼명2, ...) VALUES (값1, 값2, ...)

//대소문자 구분 없다.
const query1 = &quot;SELECT * FROM users&quot;;
const query2 = &quot;INSERT INTO users (name, age) VALUES ('Daniel', 30)&quot;;
const query3 = &quot;INSERT INTO users (name, age) VALUES ('${name}', ${age})&quot;;
const query4 = &quot;INSERT INTO users (name, age) VALUES (?, ?)&quot;;

//connection.query(query2, (err, result) =&amp;gt; {
connection.query(query4, [name, age], (err, result) =&amp;gt; {
	if(err) {
		console.log(err);
		return;
	}
	//query1
	/*result.forEach(item =&amp;gt; {
		console.log(item.name, item.age);
	});*/
	
	connection.end();
});	//비동기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;527&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kDBwY/btrKD1MStxQ/PamgWr1uVk19QiLWAq4jYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kDBwY/btrKD1MStxQ/PamgWr1uVk19QiLWAq4jYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kDBwY/btrKD1MStxQ/PamgWr1uVk19QiLWAq4jYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkDBwY%2FbtrKD1MStxQ%2FPamgWr1uVk19QiLWAq4jYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1159&quot; height=&quot;527&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;527&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1661477438685&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const argv = process.argv;
const name = argv[2];
const age = argv[3];

const query4 = &quot;INSERT INTO users (name, age) VALUES (?, ?)&quot;;

connection.query(query4, [name, age], (err, result) =&amp;gt; {
	if(err) {
		console.log(err);
		return;
	}
	
	connection.end();
});	//비동기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;637&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Apbiz/btrKCpnQDNZ/71ZOMWqjVCgJkyK3LgpOU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Apbiz/btrKCpnQDNZ/71ZOMWqjVCgJkyK3LgpOU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Apbiz/btrKCpnQDNZ/71ZOMWqjVCgJkyK3LgpOU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FApbiz%2FbtrKCpnQDNZ%2F71ZOMWqjVCgJkyK3LgpOU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1120&quot; height=&quot;637&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;637&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;index.ejs&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661490818304&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- index.ejs --&amp;gt;
&amp;lt;!-- DOCTYPE html --&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;a href=&quot;/&quot;&amp;gt;&amp;lt;h1&amp;gt;Memo App&amp;lt;/h1&amp;gt;&amp;lt;/a&amp;gt;
		&amp;lt;a href=&quot;/insert&quot;&amp;gt;add memo&amp;lt;/a&amp;gt;
		&amp;lt;hr&amp;gt;
		
		&amp;lt;table border=&quot;1px&quot;&amp;gt;
			&amp;lt;thead&amp;gt;
				&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;      &amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;      &amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;memo&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;
			&amp;lt;/thead&amp;gt;
			&amp;lt;tbody&amp;gt;
				&amp;lt;!-- 동적으로 테이블을 생성 --&amp;gt;
				&amp;lt;% for(const item of itemList) { %&amp;gt;
				&amp;lt;tr&amp;gt;
					&amp;lt;td&amp;gt;&amp;lt;a href=&quot;/delete?id=&amp;lt;%= item.id %&amp;gt;&quot;&amp;gt;DELETE&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
					&amp;lt;td&amp;gt;&amp;lt;a href=&quot;/edit?id=&amp;lt;%= item.id %&amp;gt;&quot;&amp;gt;EDIT&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
					&amp;lt;td&amp;gt;&amp;lt;%= item.name %&amp;gt;&amp;lt;/td&amp;gt;
					&amp;lt;td&amp;gt;&amp;lt;%= item.memo %&amp;gt;&amp;lt;/td&amp;gt;
				&amp;lt;/tr&amp;gt;
				&amp;lt;% } %&amp;gt;
			&amp;lt;/tbody&amp;gt;
		&amp;lt;/table&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;add.html&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661490838275&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- add.html --&amp;gt;
&amp;lt;!-- DOCTYPE html --&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;a href=&quot;/&quot;&amp;gt;&amp;lt;h1&amp;gt;Add Memo&amp;lt;/h1&amp;gt;&amp;lt;/a&amp;gt;
		&amp;lt;form action=/add.do method=&quot;GET&quot;&amp;gt;
			name: &amp;lt;input type=&quot;text&quot; name=&quot;name&quot;&amp;gt;&amp;lt;br&amp;gt;
			memo: &amp;lt;input type=&quot;text&quot; name=&quot;memo&quot;&amp;gt;&amp;lt;br&amp;gt;
			&amp;lt;button&amp;gt;OK&amp;lt;/button&amp;gt;&amp;lt;/form&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;edit.ejs&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661490857830&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- edit.html --&amp;gt;
&amp;lt;!-- DOCTYPE html --&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;a href=&quot;/&quot;&amp;gt;&amp;lt;h1&amp;gt;Edit Memo&amp;lt;/h1&amp;gt;&amp;lt;/a&amp;gt;
		&amp;lt;form action=/edit.do method=&quot;GET&quot;&amp;gt;
			name: &amp;lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;&amp;lt;%= name %&amp;gt;&quot;&amp;gt;&amp;lt;br&amp;gt;
			memo: &amp;lt;input type=&quot;text&quot; name=&quot;memo&quot; value=&quot;&amp;lt;%= memo %&amp;gt;&quot;&amp;gt;&amp;lt;br&amp;gt;
			&amp;lt;button&amp;gt;OK&amp;lt;/button&amp;gt;&amp;lt;/form&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;source code&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661490882240&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//5일차 exam2/main.js

//Memo(타이틀/컨텐츠) 추가하는 예제

const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const ejs = require(&quot;ejs&quot;);
const mysql = require(&quot;mysql&quot;);

const tableName = &quot;memos&quot;;
let editId;

const connection = mysql.createConnection({
	host: &quot;3.35.151.156&quot;,
	port: &quot;58975&quot;,
	user: &quot;root&quot;,
	password: &quot;root&quot;,
	database: &quot;nodejs&quot;
});
connection.connect();	//데이터베이스 접속

const CREATE_QUERY = &quot;INSERT INTO &quot; + tableName +&quot; (name, memo) VALUES (?, ?)&quot;;
const READALL_QUERY = &quot;SELECT * FROM &quot; + tableName;
const READITEM_QUERY = &quot;SELECT * FROM &quot; + tableName + ` WHERE id=?`;
const UPDATE_QUERY = &quot;UPDATE &quot; + tableName + ` SET name=? , memo=? WHERE id=?`;
const DELETEITEM_QUERY = &quot;DELETE FROM &quot; + tableName + ` WHERE id=?`;

http.createServer((req, res) =&amp;gt; {
	
	//req.url은 경로부터 시작되는 URL이다.
	//전체 URL을 가져오려면 아래와 같이 hostname + port 를 같이 넣어줘야 한다.
	const url = new URL(req.url, &quot;http://localhost:8080&quot;);
	console.log(&quot;pathname:&quot;, url.pathname, &quot;, search:&quot;, url.search);
	
	if(url.pathname ==='/') {
		//파일의 목록을 읽어옵니다.
		connection.query(READALL_QUERY, (err, result) =&amp;gt; {
			fs.readFile(&quot;./index.ejs&quot;, &quot;utf-8&quot;, (err, dataEjs) =&amp;gt; {
				res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
				res.end(ejs.render(dataEjs, {itemList:result}));
			});		
			//connection.end();
		});
	}
	else if(url.pathname === &quot;/insert&quot;) {
		fs.readFile(__dirname +&quot;/add.html&quot;, &quot;utf-8&quot;, (err, data) =&amp;gt; {
			res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
			res.end(data);
		})	
	}
	else if(url.pathname ===&quot;/add.do&quot;) {
		const name = url.searchParams.get(&quot;name&quot;);
		const memo = url.searchParams.get(&quot;memo&quot;);
				
		connection.query(CREATE_QUERY, [name, memo], (err, result) =&amp;gt; {
			if(err) {
				console.log(err);
				return;
			}
			//connection.end();
		});
		
		//현재 사이트의 특정페이지로 리다이렉션 하는 방법
		res.writeHead(302, {&quot;Location&quot;: &quot;/&quot;});
		res.end();
	}
	else if(url.pathname ===&quot;/edit&quot;) {
		editId = url.searchParams.get(&quot;id&quot;);
		console.log(&quot;id:&quot;,editId);
		connection.query(READITEM_QUERY, [editId], (err, result) =&amp;gt; {
			result.forEach(item =&amp;gt; {
				console.log(item.name, item.memo);
				fs.readFile(&quot;./edit.ejs&quot;, &quot;utf-8&quot;, (err, dataEjs) =&amp;gt; {
					res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
					res.end(ejs.render(dataEjs, {name:item.name, memo:item.memo}));
				});	
				//connection.end();
			})			
		});		
	}
	else if(url.pathname ===&quot;/edit.do&quot;) {
		const name = url.searchParams.get(&quot;name&quot;);
		const memo = url.searchParams.get(&quot;memo&quot;);
		
		console.log(&quot;edit:&quot;, name, memo, editId);
				
		connection.query(UPDATE_QUERY, [name, memo, editId], (err, result) =&amp;gt; {
			if(err) {
				console.log(err);
				return;
			}
			//connection.end();
		});
		
		//현재 사이트의 특정페이지로 리다이렉션 하는 방법
		res.writeHead(302, {&quot;Location&quot;: &quot;/&quot;});
		res.end();
	}
	else if(url.pathname ===&quot;/delete&quot;) {
		const id = url.searchParams.get(&quot;id&quot;);
		connection.query(DELETEITEM_QUERY, [id], (err, result) =&amp;gt; {
			});	
			//connection.end();
		//현재 사이트의 특정페이지로 리다이렉션 하는 방법
		res.writeHead(302, {&quot;Location&quot;: &quot;/&quot;});
		res.end();
	}	
	
}).listen(8080);

console.log(&quot;server running...&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckPdtP/btrKCYc48Xj/NQPIIJ4V47XAZqmmhJPBYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckPdtP/btrKCYc48Xj/NQPIIJ4V47XAZqmmhJPBYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckPdtP/btrKCYc48Xj/NQPIIJ4V47XAZqmmhJPBYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckPdtP%2FbtrKCYc48Xj%2FNQPIIJ4V47XAZqmmhJPBYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;281&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Express&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4d5156;&quot;&gt;웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Node.js&lt;span style=&quot;background-color: #ffffff; color: #4d5156;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;웹 애플리케이션 프레임워크&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 서버 구동 프로그램보다 훨씬 간단하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3xij3/btrKE5JBNYv/MqMOogiSvhUI5dn8kIW6PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3xij3/btrKE5JBNYv/MqMOogiSvhUI5dn8kIW6PK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3xij3/btrKE5JBNYv/MqMOogiSvhUI5dn8kIW6PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3xij3%2FbtrKE5JBNYv%2FMqMOogiSvhUI5dn8kIW6PK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;638&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661494915792&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//5일차//2_express/main.js

const express = require(&quot;express&quot;);

const app = express();	//서버 생성
const port = 8080;

app.get(&quot;/&quot;,(req,res) =&amp;gt; {
	res.send(&quot;get&quot;);
});
app.post(&quot;/&quot;, (req,res) =&amp;gt; {
	res.send(&quot;post&quot;);
})
app.put(&quot;/&quot;, (req,res) =&amp;gt; {
	res.send(&quot;put&quot;);
})
app.delete(&quot;/&quot;, (req,res)=&amp;gt; {
	res.send(&quot;delete&quot;);
} )
app.listen(8080, () =&amp;gt; {
	console.log(&quot;server running..&quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;684&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhVbHm/btrKF7NaWpH/GvlDscDPOGK1rAq90XCuEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhVbHm/btrKF7NaWpH/GvlDscDPOGK1rAq90XCuEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhVbHm/btrKF7NaWpH/GvlDscDPOGK1rAq90XCuEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhVbHm%2FbtrKF7NaWpH%2FGvlDscDPOGK1rAq90XCuEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1219&quot; height=&quot;684&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Node.js</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/117</guid>
      <comments>https://kakaroo.tistory.com/117#entry117comment</comments>
      <pubDate>Fri, 26 Aug 2022 08:46:33 +0900</pubDate>
    </item>
    <item>
      <title>Node.js - 수업 4일차</title>
      <link>https://kakaroo.tistory.com/116</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;473&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OTKhQ/btrKzCTYbzs/9oWljcOSRO8kZqKTKk65r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OTKhQ/btrKzCTYbzs/9oWljcOSRO8kZqKTKk65r0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OTKhQ/btrKzCTYbzs/9oWljcOSRO8kZqKTKk65r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOTKhQ%2FbtrKzCTYbzs%2F9oWljcOSRO8kZqKTKk65r0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;314&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;POST 방식&lt;/p&gt;
&lt;pre id=&quot;code_1661389498767&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//9_method.js

const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const url = require(&quot;url&quot;);
const qs = require(&quot;querystring&quot;);

http.createServer((req, res) =&amp;gt; {
	//console.log(req);
	console.log(req.url);
	
	//req.url은 경로부터 시작되는 URL이다.
	//전체 URL을 가져오려면 아래와 같이 hostname + port 를 같이 넣어줘야 한다.
	const myUrl = new URL(req.url, &quot;http://localhost:8080&quot;);
	
	if(req.url ==='/') {
		fs.readFile(__dirname + &quot;/input.html&quot;, (err,data) =&amp;gt; {
			res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			res.end(data);
		})
	}	
	else if(myUrl.pathname === &quot;/input.do&quot;) {
		//메소드 정보는 요청 객체의 메소드 속성에 문자열 형태로 저장되어 있다.
		if(req.method === &quot;GET&quot;) {
			const params = myUrl.searchParams;
			//console.log(params);	//URLSearchParams { 'name' =&amp;gt; 'kakaroo', 'age' =&amp;gt; '20' }
			console.log(&quot;GET: &quot;,params.get(&quot;uname&quot;), params.get(&quot;uage&quot;));	//kakaroo 20			
		}
		else if(req.method === &quot;POST&quot;) {
			/*req.on(&quot;data&quot;, //요청 메시지 바디에 수신된 데이터가 존재할 경우
				   (chunk) =&amp;gt; {
					//chunk 안에는 uname=kakakroo&amp;amp;uage=20 바이너리 정보가 들어있다
					const p = new URLSearchParams(chunk.toString());
					console.log(p.get(&quot;uname&quot;), p.get(&quot;uage&quot;)) //kakaroo 20
				
					//큰 data가 들어오는 경우 문제가 된다.
			});*/
			const buf = [];
			req.on(&quot;data&quot;, //요청 메시지 바디에 수신된 데이터가 존재할 경우
			   (chunk) =&amp;gt; {
				buf.push(chunk);
			});
			req.on(&quot;end&quot;, () =&amp;gt; {
				const data = Buffer.concat(buf).toString();
				const p = new URLSearchParams(data);
				console.log(p.get(&quot;uname&quot;), p.get(&quot;uage&quot;));
			});
		}
		res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end();
	}
	
}).listen(8080);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동적인 웹페이지 예제&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M9349/btrKwVlVOR3/KSKwBVlHmyDw60IFpkm3c1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M9349/btrKwVlVOR3/KSKwBVlHmyDw60IFpkm3c1/img.png&quot; data-alt=&quot;메모 동작 시나리오&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M9349/btrKwVlVOR3/KSKwBVlHmyDw60IFpkm3c1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM9349%2FbtrKwVlVOR3%2FKSKwBVlHmyDw60IFpkm3c1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1175&quot; height=&quot;552&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;메모 동작 시나리오&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661393521611&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//4일차 - main.js
//Memo(타이틀/컨텐츠) 추가하는 예제
//추가된 메모는 타이틀.txt 로 저장되고
//저장된 파일은 목록으로 보임
//목록을 누르면 View/Edit

const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);

//파일목록을 HTML 코드로 변환하는 함수
const templateList = fileList =&amp;gt; {
	let html = &quot;&amp;lt;ul&amp;gt;&quot;;	//ul: unordered list
	for (const fname of fileList) {
		html += `&amp;lt;li&amp;gt;&amp;lt;a href=&quot;/display?id=${fname}&quot;&amp;gt;${fname}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;`;	//li: list item
	}
	html += &quot;&amp;lt;/ul&amp;gt;&quot;;
	return html;
}

//인덱스 페이지 생성함수
const templateHTML = (fileList, body) =&amp;gt; {
	return `
	&amp;lt;!DOCTYPE html&amp;gt;
	&amp;lt;html&amp;gt;
		&amp;lt;head&amp;gt;&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;&amp;lt;/head&amp;gt;
		&amp;lt;body&amp;gt;
			&amp;lt;h1&amp;gt;Memo App&amp;lt;/h1&amp;gt;
			&amp;lt;a href=&quot;/add&quot;&amp;gt; add &amp;lt;/a&amp;gt;
			${fileList}
			${body}
		&amp;lt;/body&amp;gt;		
	&amp;lt;/html&amp;gt;`;
};

http.createServer((req, res) =&amp;gt; {
	
	//req.url은 경로부터 시작되는 URL이다.
	//전체 URL을 가져오려면 아래와 같이 hostname + port 를 같이 넣어줘야 한다.
	const url = new URL(req.url, &quot;http://localhost:8080&quot;);
	console.log(&quot;pathname:&quot;, url.pathname, &quot;, search:&quot;, url.search);
	
	if(url.pathname ==='/') {
		//파일의 목록을 읽어옵니다.
		fs.readdir(__dirname + &quot;/data&quot;, (err, data) =&amp;gt; {
			//HTML화면을 동적으로 생성하는 코드
			const listHtml = templateList(data);
			const html = templateHTML(listHtml, &quot;&quot;);
			
			res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			res.end(html);
		});		
	}
	else if(url.pathname ===&quot;/display&quot;) {
		// /display?id=hello.txt
		const file =  url.searchParams.get(&quot;id&quot;);
		const filePath = __dirname + &quot;/data/&quot; + file;
		console.log(filePath);
		
		fs.readFile(filePath, &quot;utf-8&quot;, (err,data) =&amp;gt; {
			const html = templateHTML(&quot;&quot;, `&amp;lt;h3&amp;gt;title: ${file}&amp;lt;/h3&amp;gt;content: ${data}`);
			res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			res.end(html);
		});		
	}	
	else if(url.pathname === &quot;/add&quot;) {
		const form = `&amp;lt;form action=&quot;/add.do&quot; method=&quot;GET&quot;&amp;gt;
				title: &amp;lt;input type=&quot;text&quot; name=&quot;title&quot;&amp;gt;&amp;lt;br&amp;gt;
				memo: &amp;lt;input type=&quot;text&quot; name=&quot;content&quot;&amp;gt;&amp;lt;br&amp;gt;
				&amp;lt;button&amp;gt;OK&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/form&amp;gt;`;	
		
		const html = templateHTML(&quot;&quot;, form);
		res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(html);
	}
	else if(url.pathname ===&quot;/add.do&quot;) {
		const title = url.searchParams.get(&quot;title&quot;);
		const content = url.searchParams.get(&quot;content&quot;);
		
		fs.writeFile(__dirname + &quot;/data/&quot; + title, content, err =&amp;gt; {
			if(err) throw err;
			console.log(&quot;writeFile ok!&quot;);
			//res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			//res.end(&quot;OK&quot;);
		})
		
		//현재 사이트의 특정페이지로 리다이렉션 하는 방법
		res.writeHead(302, {&quot;Location&quot;: &quot;/&quot;});
		res.end();
	}		
	
}).listen(8080);

console.log(&quot;server running...&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;NPM&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Node PAckage Manager의 약자로 Node.js에서 사용할 수 있는 모듈을 패키지화하여 이를 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 명령어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용방법:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 패키지 설치: npm install [-g] &amp;lt; 패키지명&amp;gt;&amp;nbsp; &amp;nbsp;//-g 옵션 : 전역으로 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) cd emoji_test&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; npm install node-emoji&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디렉토리 내에 node_modules 라는 디렉토리가 자동으로 생성되고 이 안에 패키지가 설치된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지역으로 설치된 패키지는 해당 프로젝트 내에서만 사용가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJKIZe/btrKtzyhE8T/hx0QVqQ7OwMmOKh2AF2nFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJKIZe/btrKtzyhE8T/hx0QVqQ7OwMmOKh2AF2nFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJKIZe/btrKtzyhE8T/hx0QVqQ7OwMmOKh2AF2nFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJKIZe%2FbtrKtzyhE8T%2Fhx0QVqQ7OwMmOKh2AF2nFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;211&quot; height=&quot;394&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 예)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzbtB3/btrKwVztfqL/5mLfyeLBh02olsQnMFBxB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzbtB3/btrKwVztfqL/5mLfyeLBh02olsQnMFBxB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzbtB3/btrKwVztfqL/5mLfyeLBh02olsQnMFBxB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzbtB3%2FbtrKwVztfqL%2F5mLfyeLBh02olsQnMFBxB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;185&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;하나의 모듈에 다수의 패키지를 사용하다 보면 문제점이 있다.&lt;br /&gt;외부 모듈도 업데이트가 자주 일어남 버전관리가 제대로 안 되어 해당 패키지가 제대로 동작안 되는 경우가 있음&lt;br /&gt;모듈간에 디펜던시가 높음&lt;br /&gt;=&amp;gt; package.json 를 보면 알 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;lt;프로젝트 초기화&amp;gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm init&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 모듈을 배포하기 전에 초기화가 필요하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ngKPX/btrKuIanvcp/G9gIIk2R1OFhGY7i1DG660/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ngKPX/btrKuIanvcp/G9gIIk2R1OFhGY7i1DG660/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ngKPX/btrKuIanvcp/G9gIIk2R1OFhGY7i1DG660/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FngKPX%2FbtrKuIanvcp%2FG9gIIk2R1OFhGY7i1DG660%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;783&quot; height=&quot;267&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm install node-emoji&amp;nbsp; 를 하고 나면 아래와 같이 dependency 가 추가되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포되는 모듈에 어떤 모듈이 dependency 가 있는지 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m1tfb/btrKxRjocZU/ueyXWnv3CwL2GJ6Ptyo2M0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m1tfb/btrKxRjocZU/ueyXWnv3CwL2GJ6Ptyo2M0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m1tfb/btrKxRjocZU/ueyXWnv3CwL2GJ6Ptyo2M0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm1tfb%2FbtrKxRjocZU%2FueyXWnv3CwL2GJ6Ptyo2M0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;744&quot; height=&quot;307&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;package.json 부분에 아래 추가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;718&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WX3gr/btrKuSKEioD/eklotNFOpH5VxLKtCIxmW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WX3gr/btrKuSKEioD/eklotNFOpH5VxLKtCIxmW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WX3gr/btrKuSKEioD/eklotNFOpH5VxLKtCIxmW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWX3gr%2FbtrKuSKEioD%2FeklotNFOpH5VxLKtCIxmW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1177&quot; height=&quot;718&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;718&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1661395918493&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//project_init/main.js

const emoji = require(&quot;node-emoji&quot;).emoji
console.log(emoji.heart);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#npm run 스크립트 명&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3rg9w/btrKwHuBd0P/vg0gQfhhwQd6PDOJ3RA36k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3rg9w/btrKwHuBd0P/vg0gQfhhwQd6PDOJ3RA36k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3rg9w/btrKwHuBd0P/vg0gQfhhwQd6PDOJ3RA36k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3rg9w%2FbtrKwHuBd0P%2Fvg0gQfhhwQd6PDOJ3RA36k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;122&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 동적인 html 코드를 직접 작성해서 해 보았다. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;EJS&lt;/b&gt;&lt;/span&gt; 라는 모듈이 그 역할을 하는데, 그 모듈을 설치해서 이용해 보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;EJS(Embedded JavaScript templates)&lt;/b&gt;&lt;/span&gt; : 자바스크립트를 사용하여 동적으로 HTML 코드를 생성할 수 있는 간단한 템플릿 언어 -&amp;gt; 자바의 JSP 개념&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ejs.co&quot;&gt;https://ejs.co&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1661401220312&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;EJS -- Embedded JavaScript templates&quot; data-og-description=&quot;Simple syntax JavaScript code in simple, straightforward scriptlet tags. Just write JavaScript that emits the HTML you want, and get the job done!&quot; data-og-host=&quot;ejs.co&quot; data-og-source-url=&quot;https://ejs.co&quot; data-og-url=&quot;https://ejs.co&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://ejs.co&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ejs.co&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;EJS -- Embedded JavaScript templates&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Simple syntax JavaScript code in simple, straightforward scriptlet tags. Just write JavaScript that emits the HTML you want, and get the job done!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ejs.co&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모듈 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# mkdir 2_dynamic_project&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# cd 2_dynamic_project&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# npm init&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# npm install ejs&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cg1PDl/btrKwHuRbGj/R92kQMylw2v8hHfcUaeBWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cg1PDl/btrKwHuRbGj/R92kQMylw2v8hHfcUaeBWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cg1PDl/btrKwHuRbGj/R92kQMylw2v8hHfcUaeBWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcg1PDl%2FbtrKwHuRbGj%2FR92kQMylw2v8hHfcUaeBWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;771&quot; height=&quot;289&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# EJS 문법(EJS 파일에서 작성해야 한다. ex) index.ejs&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 변수 치환: &amp;lt;%= 변수명 %&amp;gt;&amp;nbsp; -&amp;gt; 자바스크립트 내에 존재하는 값을 출력할 때 쓰임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 조건에 따른 분기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;% if (조건식1) { %&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;조건식1이 참일때 사용할 HTML 코드&amp;nbsp; &amp;lt;% } %&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;% elif (조건식2) { %&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 조건식2가 참일때 사용할 HTML 코드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;% } else { %&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;%&amp;nbsp; }&amp;nbsp; %&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;EJS 파일 생성&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661402119472&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- index.ejs --&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt; 구구단 2단&amp;lt;/h1&amp;gt;
		&amp;lt;% for(let num =1; num &amp;lt; 10; num++) { %&amp;gt;
			2 X &amp;lt;%= num %&amp;gt; = &amp;lt;%= 2*num %&amp;gt;&amp;lt;br&amp;gt;
		&amp;lt;% } %&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661402138189&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//2_dynamic_page/main.js
const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const ejs = require(&quot;ejs&quot;);

http.createServer((req, res) =&amp;gt; {
	fs.readFile(&quot;./index.ejs&quot;, &quot;utf-8&quot;, (err,data) =&amp;gt; {
		res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(ejs.render(data));
	})
}).listen(8080);
console.log(&quot;server running...&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;257&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cskRi0/btrKzOGKHYq/enywbsnVdS1fj2cQ4joFe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cskRi0/btrKzOGKHYq/enywbsnVdS1fj2cQ4joFe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cskRi0/btrKzOGKHYq/enywbsnVdS1fj2cQ4joFe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcskRi0%2FbtrKzOGKHYq%2FenywbsnVdS1fj2cQ4joFe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;257&quot; height=&quot;369&quot; data-origin-width=&quot;257&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EJS 처리 방법 2&lt;/p&gt;
&lt;pre id=&quot;code_1661406416993&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//value_test.js
const ejs = require(&quot;ejs&quot;);

const fruits = [&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;, &quot;durian&quot;];

const ejsFile = `&amp;lt;h1&amp;gt;&amp;lt;%= fruitList.join(&quot;, &quot;); %&amp;gt;&amp;lt;/h1&amp;gt;`

//{fruitList: fruits} =&amp;gt; key는 ejs에서 꺼내어 value로 치환
const html = ejs.render(ejsFile, {fruitList: fruits});	

console.log(html);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매개변수(query) 부분을 값으로 받아서 처리하는 예제로 응용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;https://kakaroo.swedu-run.lge.com/?&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;dan=8&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661405117626&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//2_dynamic_page/main.js
const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const ejs = require(&quot;ejs&quot;);

http.createServer((req, res) =&amp;gt; {
	const url = new URL(req.url, &quot;http://localhost:8080&quot;);
	console.log(&quot;pathname:&quot;, url.pathname, &quot;, search:&quot;, url.search);
	const value = url.searchParams.get(&quot;dan&quot;);		

	//case 1
	/*fs.readFile(&quot;./index.ejs&quot;, &quot;utf-8&quot;, (err,data) =&amp;gt; {
		res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(ejs.render(data, {dan:value}));
	})*/	
			
	//case 2
	const ejsFile = `&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
	&amp;lt;h1&amp;gt; 구구단 &amp;lt;%= dan %&amp;gt;단&amp;lt;/h1&amp;gt;
		&amp;lt;% for(let num =1; num &amp;lt; 10; num++) { %&amp;gt;
			&amp;lt;%= dan %&amp;gt; X &amp;lt;%= num %&amp;gt; = &amp;lt;%= dan*num %&amp;gt;&amp;lt;br&amp;gt;
		&amp;lt;% } %&amp;gt;		
	&amp;lt;/body&amp;gt;`;
	res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(ejs.render(ejsFile, {dan:value}));
	
}).listen(8080);
console.log(&quot;server running...&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;위 동적 메모 프로그램을 EJS 형태로 변경하는 예&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;index.ejs&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661468703699&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- index.ejs --&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt; Memo App&amp;lt;/h1&amp;gt;
		&amp;lt;a href=&quot;/add&quot;&amp;gt; add&amp;lt;/a&amp;gt;
		&amp;lt;ul&amp;gt;
			&amp;lt;% for (const fname of fileList) { %&amp;gt;
				&amp;lt;li&amp;gt;&amp;lt;a href=&quot;/display?id=&amp;lt;%= fname %&amp;gt;&quot;&amp;gt; &amp;lt;%= fname %&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
			&amp;lt;% } %&amp;gt;			
		&amp;lt;/ul&amp;gt;
		
		&amp;lt;% if( body != &quot;&quot; ) { %&amp;gt;
			&amp;lt;h3&amp;gt;title: &amp;lt;%= mytitle %&amp;gt; &amp;lt;/h3&amp;gt; content: &amp;lt;%= mydata %&amp;gt;
		&amp;lt;% } %&amp;gt;
		
		&amp;lt;% if( add === &quot;add&quot; ) { %&amp;gt;
			&amp;lt;form action=&quot;/add.do&quot; method=&quot;GET&quot;&amp;gt;
				title: &amp;lt;input type=&quot;text&quot; name=&quot;title&quot;&amp;gt;&amp;lt;br&amp;gt;
				memo: &amp;lt;input type=&quot;text&quot; name=&quot;content&quot;&amp;gt;&amp;lt;br&amp;gt;
				&amp;lt;button&amp;gt;OK&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/form&amp;gt;		
		&amp;lt;% } %&amp;gt;
		
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661468720452&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//4일차 - main.js
//Memo(타이틀/컨텐츠) 추가하는 예제
//추가된 메모는 타이틀.txt 로 저장되고
//저장된 파일은 목록으로 보임
//목록을 누르면 View/Edit

const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const ejs = require(&quot;ejs&quot;);

http.createServer((req, res) =&amp;gt; {
	
	//req.url은 경로부터 시작되는 URL이다.
	//전체 URL을 가져오려면 아래와 같이 hostname + port 를 같이 넣어줘야 한다.
	const url = new URL(req.url, &quot;http://localhost:8080&quot;);
	console.log(&quot;pathname:&quot;, url.pathname, &quot;, search:&quot;, url.search);
	
	if(url.pathname ==='/') {
		//파일의 목록을 읽어옵니다.
		fs.readdir(__dirname + &quot;/data&quot;, (err, files) =&amp;gt; {
			//HTML화면을 동적으로 생성하는 코드
			//const listHtml = templateList(data);
			//const html = templateHTML(listHtml, &quot;&quot;);			
			//res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			//res.end(html);
			fs.readFile(&quot;./index.ejs&quot;, &quot;utf-8&quot;, (err, dataEjs) =&amp;gt; {
				res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
				res.end(ejs.render(dataEjs, {fileList:files, body:&quot;&quot;, add:&quot;&quot;, mytitle:&quot;&quot;, mydata:&quot;&quot;}));
			});
		});		
	}
	else if(url.pathname ===&quot;/display&quot;) {
		// /display?id=hello.txt
		const file =  url.searchParams.get(&quot;id&quot;);
		const filePath = __dirname + &quot;/data/&quot; + file;
		console.log(filePath);
		
		fs.readFile(filePath, &quot;utf-8&quot;, (err, data) =&amp;gt; {
			//const html = templateHTML(&quot;&quot;, `&amp;lt;h3&amp;gt;title: ${file}&amp;lt;/h3&amp;gt;content: ${data}`);
			//res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			//res.end(html);
			console.log(&quot;content:&quot;, data);
			fs.readFile(&quot;./index.ejs&quot;, &quot;utf-8&quot;, (err, dataEjs) =&amp;gt; {
				res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
				res.end(ejs.render(dataEjs, {fileList:&quot;&quot;, body:&quot;body&quot;, add:&quot;&quot;, mytitle:file, mydata:data}));
			});			
		});		
	}	
	else if(url.pathname === &quot;/add&quot;) {
		/*const form = `&amp;lt;form action=&quot;/add.do&quot; method=&quot;GET&quot;&amp;gt;
				title: &amp;lt;input type=&quot;text&quot; name=&quot;title&quot;&amp;gt;&amp;lt;br&amp;gt;
				memo: &amp;lt;input type=&quot;text&quot; name=&quot;content&quot;&amp;gt;&amp;lt;br&amp;gt;
				&amp;lt;button&amp;gt;OK&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/form&amp;gt;`;	
		
		const html = templateHTML(&quot;&quot;, form);
		res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(html);*/
		fs.readFile(&quot;./index.ejs&quot;, &quot;utf-8&quot;, (err, dataEjs) =&amp;gt; {
			res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			res.end(ejs.render(dataEjs, {fileList:&quot;&quot;, body:&quot;&quot;, add:&quot;add&quot;}));
		});	
	}
	else if(url.pathname ===&quot;/add.do&quot;) {
		const title = url.searchParams.get(&quot;title&quot;);
		const content = url.searchParams.get(&quot;content&quot;);
		
		fs.writeFile(__dirname + &quot;/data/&quot; + title, content, err =&amp;gt; {
			if(err) throw err;
			console.log(&quot;writeFile ok!&quot;);
			//res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			//res.end(&quot;OK&quot;);
		})
		
		//현재 사이트의 특정페이지로 리다이렉션 하는 방법
		res.writeHead(302, {&quot;Location&quot;: &quot;/&quot;});
		res.end();
	}		
	
}).listen(8080);

console.log(&quot;server running...&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-- View 를 여러개로&lt;/p&gt;
&lt;pre id=&quot;code_1661471009141&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- index.ejs --&amp;gt;
&amp;lt;!-- DOCTYPE html --&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;a href=&quot;/&quot;&amp;gt;&amp;lt;h1&amp;gt;Memo App&amp;lt;/h1&amp;gt;&amp;lt;/a&amp;gt;
		&amp;lt;a href=&quot;/add&quot;&amp;gt;Add&amp;lt;/a&amp;gt;
		&amp;lt;ul&amp;gt;
			&amp;lt;!-- 메모 목록을 동적으로 생성 --&amp;gt;
			&amp;lt;% for(const fname of fileList) { %&amp;gt;
				&amp;lt;li&amp;gt;&amp;lt;a href=&quot;/display?id=&amp;lt;%= fname %&amp;gt;&quot;&amp;gt;&amp;lt;%= fname %&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;				
			&amp;lt;% } %&amp;gt;
		&amp;lt;/ul&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661471033629&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- display.ejs --&amp;gt;
&amp;lt;!-- DOCTYPE html --&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;a href=&quot;/&quot;&amp;gt;&amp;lt;h1&amp;gt;Memo App&amp;lt;/h1&amp;gt;&amp;lt;/a&amp;gt;
		&amp;lt;p&amp;gt; title: &amp;lt;%= fname %&amp;gt; &amp;lt;/p&amp;gt;
		&amp;lt;p&amp;gt; content: &amp;lt;%= content %&amp;gt; &amp;lt;/p&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661471048817&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- add.html --&amp;gt;
&amp;lt;!-- DOCTYPE html --&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;a href=&quot;/&quot;&amp;gt;&amp;lt;h1&amp;gt;Memo App&amp;lt;/h1&amp;gt;&amp;lt;/a&amp;gt;
		&amp;lt;form action=/add.do method=&quot;GET&quot;&amp;gt;
			title: &amp;lt;input type=&quot;text&quot; name=&quot;title&quot;&amp;gt;&amp;lt;br&amp;gt;
			memo: &amp;lt;input type=&quot;text&quot; name=&quot;content&quot;&amp;gt;&amp;lt;br&amp;gt;
			&amp;lt;button&amp;gt;OK&amp;lt;/button&amp;gt;&amp;lt;/form&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1661470992285&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//main.js
const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const ejs = require(&quot;ejs&quot;);
const path = require(&quot;path&quot;);

http.createServer((req,res) =&amp;gt; {
	const url = new URL(req.url, &quot;http://localhost:8080&quot;);
	console.log(&quot;path:&quot;, url.pathname, &quot;, search:&quot;, url.search);
	
	if(url.pathname === &quot;/&quot;) {
		const myFileList = fs.readdirSync(__dirname + &quot;/data&quot;);
		
		//EJS 파일 처리
		fs.readFile(__dirname + &quot;/index.ejs&quot;, &quot;utf-8&quot;, (err, ejsData) =&amp;gt; {
			res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
			res.end(ejs.render(ejsData, {fileList:myFileList}));
		})
	}
	else if(url.pathname === &quot;/display&quot;) {
		//display?id==kakaroo
		const fname = url.searchParams.get(&quot;id&quot;);
		const filePath = path.join(__dirname + &quot;/data/&quot; + fname);
		fs.readFile(filePath, &quot;utf-8&quot;, (err, content) =&amp;gt; {
			fs.readFile(__dirname + &quot;/display.ejs&quot;, &quot;utf-8&quot;, (err, ejsData) =&amp;gt; {
				res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
				res.end(ejs.render(ejsData, {fname:fname, content:content}));
			})
		})
	}
	else if(url.pathname === &quot;/add&quot;) {
		fs.readFile(__dirname +&quot;/add.html&quot;, &quot;utf-8&quot;, (err, data) =&amp;gt; {
			res.writeHeader(200, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
			res.end(data);
		})
	}
	else if(url.pathname === &quot;/add.do&quot;) {
		const fname = url.searchParams.get(&quot;title&quot;);
		const content = url.searchParams.get(&quot;content&quot;);
		fs.writeFile(__dirname + &quot;/data/&quot; + fname, content, (err) =&amp;gt; {
			console.log(&quot;file write&quot;);
			res.writeHeader(302, {&quot;Location&quot;: &quot;/&quot;});
			res.end();
		})
	}
}).listen(8080);
console.log(&quot;Server running..&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;MySQL 환경 설정&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. mysqld.cnf 파일 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/etc/mysql/mysql.conf.d/mysqld.cnf&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eeeLrt/btrKwWMKRrj/HVQzD3utojCsWMPb5kLHC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eeeLrt/btrKwWMKRrj/HVQzD3utojCsWMPb5kLHC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eeeLrt/btrKwWMKRrj/HVQzD3utojCsWMPb5kLHC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeeeLrt%2FbtrKwWMKRrj%2FHVQzD3utojCsWMPb5kLHC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;505&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 서비스 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# service mysql start&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0xgMB/btrKwGcfkMv/vNBNRNEWOrrVg6KkSYaZYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0xgMB/btrKwGcfkMv/vNBNRNEWOrrVg6KkSYaZYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0xgMB/btrKwGcfkMv/vNBNRNEWOrrVg6KkSYaZYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0xgMB%2FbtrKwGcfkMv%2FvNBNRNEWOrrVg6KkSYaZYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;796&quot; height=&quot;87&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 상단의 mysql 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql -u root -p&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #bad5fd; color: #2b2d36;&quot;&gt;GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'root';&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #bad5fd; color: #2b2d36;&quot;&gt;FLUSH PRIVILEGES;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TKbfA/btrKxPGV7Zo/ZUbzuLfobUoXj4VHjvKQn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TKbfA/btrKxPGV7Zo/ZUbzuLfobUoXj4VHjvKQn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TKbfA/btrKxPGV7Zo/ZUbzuLfobUoXj4VHjvKQn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTKbfA%2FbtrKxPGV7Zo%2FZUbzuLfobUoXj4VHjvKQn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;713&quot; height=&quot;507&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBtdtH/btrKvPgrlMK/iCcK2JSNZNv2GF5Ho37uAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBtdtH/btrKvPgrlMK/iCcK2JSNZNv2GF5Ho37uAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBtdtH/btrKvPgrlMK/iCcK2JSNZNv2GF5Ho37uAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBtdtH%2FbtrKvPgrlMK%2FiCcK2JSNZNv2GF5Ho37uAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;976&quot; height=&quot;323&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6Av6K/btrKxP1eUZq/RG10VNkI35aMeKnTpCXH00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6Av6K/btrKxP1eUZq/RG10VNkI35aMeKnTpCXH00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6Av6K/btrKxP1eUZq/RG10VNkI35aMeKnTpCXH00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6Av6K%2FbtrKxP1eUZq%2FRG10VNkI35aMeKnTpCXH00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;871&quot; height=&quot;507&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE03rD/btrKAjfWHgB/5qI8JXRThbKrhuDgVlXN41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE03rD/btrKAjfWHgB/5qI8JXRThbKrhuDgVlXN41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE03rD/btrKAjfWHgB/5qI8JXRThbKrhuDgVlXN41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE03rD%2FbtrKAjfWHgB%2F5qI8JXRThbKrhuDgVlXN41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;344&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Node.js</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/116</guid>
      <comments>https://kakaroo.tistory.com/116#entry116comment</comments>
      <pubDate>Thu, 25 Aug 2022 11:56:37 +0900</pubDate>
    </item>
    <item>
      <title>Node.js - 수업 3일차</title>
      <link>https://kakaroo.tistory.com/115</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btst5g/btrKuIoaMUV/yUIxvn6wDih4kGKoiy0Jq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btst5g/btrKuIoaMUV/yUIxvn6wDih4kGKoiy0Jq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btst5g/btrKuIoaMUV/yUIxvn6wDih4kGKoiy0Jq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtst5g%2FbtrKuIoaMUV%2FyUIxvn6wDih4kGKoiy0Jq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;705&quot; height=&quot;413&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;파이프&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;어떤&amp;nbsp;명령어의&amp;nbsp;결과&amp;nbsp;또는&amp;nbsp;출력을&amp;nbsp;다른&amp;nbsp;명령어의&amp;nbsp;입력으로&amp;nbsp;전송하는&amp;nbsp;개념&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 현재 디렉토리의 파일 갯수를 확인하려면..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 현재 디렉토리의 목록을 파일로 저장 ls &amp;gt; ls.txt&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. wc 명령어를 사용하여 ls.txt 파일의 단어를 카운팅 -&amp;gt; 파일의 갯수를 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ls.txt 삭제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bf8DS5/btrKrLRnLpV/0nMlkLqb7zkCHQzQqIBfK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bf8DS5/btrKrLRnLpV/0nMlkLqb7zkCHQzQqIBfK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bf8DS5/btrKrLRnLpV/0nMlkLqb7zkCHQzQqIBfK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf8DS5%2FbtrKrLRnLpV%2F0nMlkLqb7zkCHQzQqIBfK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;198&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661298155219&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//2_pipe.js
const fs = require(&quot;fs&quot;);
//파이핑(piping)- 스트림들을 연결하는 개념

//파이핑을 사용하여 복사를 수행하는 코드를 만들어 보자

//1. 복사를 위한 실습 파일을 생성, 이름은 hello.txt
//2. 파일 읽기를 위한 스트림을 생성
const rs = fs.createReadStream(&quot;./hello.txt&quot;);

//3. 파일 쓰기를 위한 스트림을 생성
const ws = fs.createWriteStream(&quot;./hello2.txt&quot;);

//4. 읽기 스트림을 쓰기 스트림에 연결
rs.pipe(ws);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661298301401&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//3_copy.js
const fs = require(&quot;fs&quot;);

//Node.js 8부터 파일 복사를 하기 위한 새로운 함수가 추가됨
fs.copyFile(&quot;hello.txt&quot;, &quot;hello3.txt&quot;, (err) =&amp;gt; {
	if(err) throw err;
	console.log(&quot;done!&quot;);
})&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661302196585&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//4_dir.js
const fs = require(&quot;fs&quot;);

//1. 디렉토리 생성하기
const dirname = &quot;./test&quot;;
if(!fs.existsSync(dirname)) {
	fs.mkdirSync(dirname);
}

//2. 디렉토리 내용 읽기
// -&amp;gt;해당 디렉토리의 존재 여부
const fnames = fs.readdirSync(&quot;.&quot;); //결과는 배열에 저장되어 반환
//console.log(fnames);
fnames.forEach((fname) =&amp;gt; {
	console.log(fname);
})

//3. 디렉토리 삭제
//동기식 함수의 경우, 오류가 발생하면 예외를 발생시킨다
//이를 처리하려면 try ~ catch 를 사용하면 된다
try {
	fs.rmdirSync(&quot;./test&quot;);	// , {recursive: true});
	//								^-- 디렉토리가 비어있지 않은 경우 
    //									재귀옵션을 사용해야
}
catch(err) {
	console.log(err);
}

//4. 파일이름 변경
try {
	fs.renameSync(&quot;./hello.txt&quot;, &quot;./hello1.txt&quot;);	
}
catch(err) {
	console.log(err);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;module 생성 및 사용&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661303043772&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//calc.js

const PI = 3.141592;
const square = X =&amp;gt; X ** 2;

//모듈안의 요소들을 외부로 공개하려면 전역 객체의 exports 속성을 사용
module.exports = {
	PI,
	square
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661303030488&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//5_module.js

//실습을 하기 위해 커스텀 모듈을 작성한다
//이 때, 커스텀 모듈의 이름은 'calc.js'로 한다.

const calc = require(&quot;./calc&quot;);	//확장자 생략 가능
console.log(calc.PI);

//ES2015+ 아래처럼 사용 가능
const { PI, square } = require(&quot;./calc&quot;);
console.log(PI);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;HTTP 모듈&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. http: hyper text transfer protocol 의 약자로 하이퍼 텍스트를 전송하기 위한 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 하이퍼 텍스트 : 하이퍼 링크(hyper link)라는 개념을 사용하여 논리적으로 연결된 문서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) HTML 문서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;통신방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;HTTP 요청(request)과 응답(response)으로 통신&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;웹 브라우저 -&amp;gt; 주소 입력 -&amp;gt; 요청 -------&amp;gt; 웹서버 -&amp;gt; 응답 ----------&amp;gt; 웹 브라우저&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chioil/btrKpRrzQ3k/CnxFWIRDrbjezckrWXCR5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chioil/btrKpRrzQ3k/CnxFWIRDrbjezckrWXCR5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chioil/btrKpRrzQ3k/CnxFWIRDrbjezckrWXCR5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fchioil%2FbtrKpRrzQ3k%2FCnxFWIRDrbjezckrWXCR5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;590&quot; height=&quot;242&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1281&quot; data-origin-height=&quot;677&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5z3XD/btrKq4Ks6V9/UbkQokRjt9vzCXmU1O2onK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5z3XD/btrKq4Ks6V9/UbkQokRjt9vzCXmU1O2onK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5z3XD/btrKq4Ks6V9/UbkQokRjt9vzCXmU1O2onK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5z3XD%2FbtrKq4Ks6V9%2FUbkQokRjt9vzCXmU1O2onK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1281&quot; height=&quot;677&quot; data-origin-width=&quot;1281&quot; data-origin-height=&quot;677&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;977&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/puWcO/btrKvESw6fy/VtMMquLikcHOfVYSucmplk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/puWcO/btrKvESw6fy/VtMMquLikcHOfVYSucmplk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/puWcO/btrKvESw6fy/VtMMquLikcHOfVYSucmplk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpuWcO%2FbtrKvESw6fy%2FVtMMquLikcHOfVYSucmplk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;977&quot; height=&quot;437&quot; data-origin-width=&quot;977&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1351&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K1hRX/btrKxQkl2r9/kaaR4Mf7dVOIupiWFfEsxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K1hRX/btrKxQkl2r9/kaaR4Mf7dVOIupiWFfEsxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K1hRX/btrKxQkl2r9/kaaR4Mf7dVOIupiWFfEsxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK1hRX%2FbtrKxQkl2r9%2FkaaR4Mf7dVOIupiWFfEsxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1351&quot; height=&quot;722&quot; data-origin-width=&quot;1351&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btKJ0T/btrKvgjXZcw/qhiuV5XU4GR79TdJuvgbC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btKJ0T/btrKvgjXZcw/qhiuV5XU4GR79TdJuvgbC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btKJ0T/btrKvgjXZcw/qhiuV5XU4GR79TdJuvgbC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtKJ0T%2FbtrKvgjXZcw%2FqhiuV5XU4GR79TdJuvgbC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1106&quot; height=&quot;441&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wKtYK/btrKxQ5KcPK/g7xvOTeOtv887T6brbdplK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wKtYK/btrKxQ5KcPK/g7xvOTeOtv887T6brbdplK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wKtYK/btrKxQ5KcPK/g7xvOTeOtv887T6brbdplK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwKtYK%2FbtrKxQ5KcPK%2Fg7xvOTeOtv887T6brbdplK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1175&quot; height=&quot;193&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;포트&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1331&quot; data-origin-height=&quot;686&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0Me0M/btrKrrMRTjN/pe4DUPBUTPEkfKH66ubks1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0Me0M/btrKrrMRTjN/pe4DUPBUTPEkfKH66ubks1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0Me0M/btrKrrMRTjN/pe4DUPBUTPEkfKH66ubks1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0Me0M%2FbtrKrrMRTjN%2Fpe4DUPBUTPEkfKH66ubks1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1331&quot; height=&quot;686&quot; data-origin-width=&quot;1331&quot; data-origin-height=&quot;686&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1185&quot; data-origin-height=&quot;593&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O5DQs/btrKxRjgyUt/WO5Rybeh06K9bti3WfISPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O5DQs/btrKxRjgyUt/WO5Rybeh06K9bti3WfISPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O5DQs/btrKxRjgyUt/WO5Rybeh06K9bti3WfISPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO5DQs%2FbtrKxRjgyUt%2FWO5Rybeh06K9bti3WfISPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1185&quot; height=&quot;593&quot; data-origin-width=&quot;1185&quot; data-origin-height=&quot;593&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP 서버 생성&lt;/p&gt;
&lt;pre id=&quot;code_1661309161166&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//6_http.js
const http = require(&quot;http&quot;);

//1- Event Listener 방식

//hello world 서버를 구현
const server = http.createServer();

server.on(&quot;request&quot;,	//클라이언트로부터 요청이 왔을 때, 발생되는 이벤트
		 (req, res) =&amp;gt; {
	//req: 클라이언트로부터 전송된 요청 메시지에 대한 객체
	//res: 클라이언트에게 전송할 응답 메시지 객체
	
	//응답코드 설정 : 가장 중요
	res.statusCode = 200;	//정상적으로 처리되었음을 의미하는 상태 코드
	
	//응답메시지 설정 : 굳이 안 써도 된다. 응답코드에 대한 부연설명이다.
	res.statusMessage = &quot;OK&quot;;
	
	//전송할 데이터의 타입을 설정한다.
	res.setHeader(&quot;content-type&quot;, &quot;text/plain; charset=utf-8&quot;);	//charset은 옵션, 쓰는게 좋다
	
	//데이터를 전송한다. 이 때, 전송전에 위의 응답헤더 보다 먼저 작성하면 오류(internal server error)가 발생한다.
	res.write(&quot;hello, world&quot;);
	
	//서버는 반드시 클라이언트에게 전송이 완료되었다는 것을 알려주어야 한다.
	//그렇지 않으면 클라이언트(브라우저)는 대기를 하게 되고, 결국 타임아웃이 발생한다.
	//res.end();	
	res.end(&quot;hello, world&quot;);	//데이터 전송 후 완료 &amp;lt;-- res.write 없이 짧은 데이터는 렇게도 가능
});

server.on(&quot;error&quot;,	//서버 내부에서 오류가 발생되었을 때 발생되는 이벤트
		  (err) =&amp;gt; {
	console.log(err);
});

//서버를 실행
server.listen(8080);	//포트 번호
console.log(&quot;server running...&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 실행 (로컬 컴퓨터는 127.0.0.1:8080)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;560&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be4suB/btrKqPzCnF5/kmTjzf4ofBCfjD2gXWEK5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be4suB/btrKqPzCnF5/kmTjzf4ofBCfjD2gXWEK5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be4suB/btrKqPzCnF5/kmTjzf4ofBCfjD2gXWEK5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe4suB%2FbtrKqPzCnF5%2FkmTjzf4ofBCfjD2gXWEK5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;560&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;560&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661315509466&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//6_http_callback.js
const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
//1- Callback 방식

//hello world 서버를 구현
const server = http.createServer((req, res) =&amp;gt; {
	/*
	res.statusCode = 200;
	res.statusMessage = &quot;OK&quot;;
	res.setHeader(&quot;content-type&quot;, &quot;text/plain; charset=utf-8&quot;);
	*/
	//상태코드와 컨텐트 타입을 한번에 설정 가능
	//res.writeHead(200, {&quot;content-type&quot;: &quot;text/plain; charset=utf-8&quot;});
	//res.write(&quot;hello, world&quot;);
	
	//HTML코드를 전송하려면 컨텐트 타입을 html로 설정
	res.writeHead(200, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
	//res.write(&quot;&amp;lt;h1&amp;gt;hello, world&amp;lt;/h1&amp;gt;&quot;);
	res.end();
});

//서버를 실행
server.listen(8080);	//포트 번호
console.log(&quot;server running...&quot;);

//위 구조에서 문제점은 무엇인가?
//하나의 코드에 View와 Controller가 같이 있다.
//HTML : View(화면에 표현)
//JS : Controller(요청에 대한 응답처리)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MVC 관점에서 View와 Controller를 분리해야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1661315540392&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- index.html --&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;		
	&amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;
			Hello, This is index.html
		&amp;lt;/h1&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1661315567950&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);

http.createServer((req,res) =&amp;gt; {
	res.writeHead(200, {&quot;Content-type&quot;: &quot;text/html; charset=utf-8&quot;});
	res.write(fs.readFileSync(&quot;./index.html&quot;));
	res.end();
}).listen(8080);

console.log(&quot;server running&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;색인 index.html&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 페이지 : 웹 서버안에 미리 작성되어 있는 문서 ex) HTML 문서(파일)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 사이트 : 웹 페이지들이 한 곳에 모여 있는 장소&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인덱스 페이지 : 웹 사이트에 매번 처음으로 접속할 때마다 서버내의 파일을 보여주는 페이지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주소창에 &lt;a href=&quot;http://www.naver.com&quot;&gt;www.naver.com&amp;nbsp;&lt;/a&gt; -&amp;gt; &lt;a href=&quot;http://www.naver.com/index.html&quot;&gt;www.naver.com/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;:: 웹 사이트 방문자 처음으로 보게 되는 웹 페이지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;path 에 따라 다르게 페이지를 로딩하는 예&lt;/p&gt;
&lt;pre id=&quot;code_1661320132945&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);

http.createServer((req,res) =&amp;gt; {
	res.writeHead(200, {&quot;Content-type&quot;: &quot;text/html; charset=utf-8&quot;});
	console.log(&quot;url: &quot;, req.url);
	if(req.url === &quot;/&quot;)
		res.write(fs.readFileSync(&quot;./index.html&quot;));
	else if(req.url === &quot;/about&quot;)
		res.write(fs.readFileSync(&quot;./about.html&quot;));
	else if(req.url === &quot;/contact&quot;)
		res.write(fs.readFileSync(&quot;./contact.html&quot;));
	else {
		res.write(fs.readFileSync(&quot;./error.html&quot;));
	}
		
	res.end();
}).listen(8080);

console.log(&quot;server running&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드의 문제..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 페이지를 추가해야 하는 요구사항이 들어올 때마다 기존 코드를 계속 수정해야 한다. 즉, 유지보수가 어렵다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661322641714&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const responseMap = {
	&quot;/&quot; : __dirname + &quot;/index.html&quot;,
	&quot;/about&quot; : __dirname + &quot;/about.html&quot;,
	&quot;/contact&quot; : __dirname + &quot;/contact.html&quot;,
	&quot;/error&quot; : __dirname + &quot;/error.html&quot;
};

http.createServer((req,res) =&amp;gt; {
	const url = req.url;
	console.log(&quot;url: &quot;, url);
	if(responseMap[url]) {
		res.writeHead(200, {&quot;Content-type&quot;: &quot;text/html; charset=utf-8&quot;});
		res.end(fs.readFileSync(responseMap[url]));
	} else {
		res.writeHeader(404, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
		res.end(fs.readFileSync(&quot;./error.html&quot;));
	}	
}).listen(8080);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Map 수정도 해야 하는 문제가 여전히 남아 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1661322671102&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//step3
const getViewPath = url =&amp;gt; {
	if(url === '/') {
		url = &quot;index&quot;;
	}
	return __dirname + `/${url}.html`;
}

http.createServer((req,res) =&amp;gt; {
	const url = req.url;
	console.log(&quot;url: &quot;, url);
	const viewPath = getViewPath(url);
	fs.readFile(viewPath, (err,data) =&amp;gt; {
		if(err) {			
			res.writeHeader(404, {&quot;content-type&quot;: &quot;text/html; charset=utf-8&quot;});
			res.end(fs.readFileSync(&quot;./error.html&quot;));
		}
		res.writeHead(200, {&quot;Content-type&quot;: &quot;text/html; charset=utf-8&quot;});
		res.end(data);
	});
}).listen(8080);
console.log(&quot;server running&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Input 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661323521301&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- input.html --&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;		
	&amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;
			GET METHOD
		&amp;lt;/h1&amp;gt;
		&amp;lt;!--&amp;lt;form action=&quot;/process_data&quot;&amp;gt;
			&amp;lt;p&amp;gt; &amp;lt;input type=text name=&quot;title&quot;&amp;gt; &amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt; &amp;lt;textarea name=&quot;content&quot;&amp;gt;&amp;lt;/textarea&amp;gt; &amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt; &amp;lt;input type=&quot;summit&quot;&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt; &amp;lt;button&amp;gt; 제출 &amp;lt;/button&amp;gt; &amp;lt;/p&amp;gt;
		&amp;lt;/form&amp;gt;
		--&amp;gt;
		&amp;lt;form action=&quot;/process_data&quot; method=&quot;GET&quot;&amp;gt;
			이름:&amp;lt;input type=&quot;text&quot; name=&quot;uname&quot;&amp;gt;&amp;lt;br&amp;gt;
			나이:&amp;lt;input type=&quot;number&quot; name=&quot;uage&quot;&amp;gt;&amp;lt;br&amp;gt;
			&amp;lt;button&amp;gt; 입력 &amp;lt;/button&amp;gt;
		&amp;lt;/form&amp;gt;
		
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬 서버 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#python3 -m http.server&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬은 포트가 8000번으로 실행&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tWDEn/btrKrsd4LOz/cwMldJPaKJaf2KZR4Naet0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tWDEn/btrKrsd4LOz/cwMldJPaKJaf2KZR4Naet0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tWDEn/btrKrsd4LOz/cwMldJPaKJaf2KZR4Naet0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtWDEn%2FbtrKrsd4LOz%2FcwMldJPaKJaf2KZR4Naet0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;632&quot; height=&quot;303&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 input.html 실행 &amp;gt; 이름/나이 입력 -&amp;gt; 입력 버튼&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xZOtT/btrKtAXj2Lm/wM1IGDKAKXXex5Sbtdlrm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xZOtT/btrKtAXj2Lm/wM1IGDKAKXXex5Sbtdlrm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xZOtT/btrKtAXj2Lm/wM1IGDKAKXXex5Sbtdlrm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxZOtT%2FbtrKtAXj2Lm%2FwM1IGDKAKXXex5Sbtdlrm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;294&quot; height=&quot;180&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 GET 방식으로 처리가 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[24/Aug/2022&amp;nbsp;06:44:22]&amp;nbsp;&quot;GET&amp;nbsp;/process_data?uname=23&amp;amp;uage=234&amp;nbsp;HTTP/1.1&quot;&amp;nbsp;404&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UPcfl/btrKvhoNSXp/aLTVIssnDT4vX5d7oUmKM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UPcfl/btrKvhoNSXp/aLTVIssnDT4vX5d7oUmKM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UPcfl/btrKvhoNSXp/aLTVIssnDT4vX5d7oUmKM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUPcfl%2FbtrKvhoNSXp%2FaLTVIssnDT4vX5d7oUmKM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;777&quot; height=&quot;216&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;GET Method 의 param(query) 가져오는 예&lt;/h4&gt;
&lt;pre id=&quot;code_1661327109121&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//9_method.js

const http = require(&quot;http&quot;);
const fs = require(&quot;fs&quot;);
const url = require(&quot;url&quot;);
const qs = require(&quot;querystring&quot;);

http.createServer((req, res) =&amp;gt; {
	//console.log(req);
	console.log(req.url);
	
	//req.url은 경로부터 시작되는 URL이다.
	//전체 URL을 가져오려면 아래와 같이 hostname + port 를 같이 넣어줘야 한다.
	const myUrl = new URL(req.url, &quot;http://localhost:8080&quot;);
	
	if(req.url ==='/') {
		fs.readFile(__dirname + &quot;/input.html&quot;, (err,data) =&amp;gt; {
			res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
			res.end(data);
		})
	}
//case 1		
	/*else if(url.parse(req.url).pathname === &quot;/input.do&quot;) {
		//URL의 쿼리를 파싱하여 이름과 나이를 출력하는 코드를 구현해보세요.
		const parsed = url.parse(req.url);		
		const query = qs.parse(parsed.query);		
		console.log(query.uname, query.uage);
		
		res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(`${query.uname}, ${query.uage}`);
	}*/
//case 2	
	else if(myUrl.pathname === &quot;/input.do&quot;) {
		const params = myUrl.searchParams;
		//console.log(params);	//URLSearchParams { 'name' =&amp;gt; 'kakaroo', 'age' =&amp;gt; '20' }
		console.log(params.get(&quot;uname&quot;), params.get(&quot;uage&quot;));	//kakaroo 20
		
		res.writeHead(200, {&quot;content-type&quot;: &quot;text/html, charset=utf-8&quot;});
		res.end(`${params.get(&quot;uname&quot;)}, ${params.get(&quot;uage&quot;)}`);

	}
	
}).listen(8000);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Node.js</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/115</guid>
      <comments>https://kakaroo.tistory.com/115#entry115comment</comments>
      <pubDate>Wed, 24 Aug 2022 08:24:18 +0900</pubDate>
    </item>
    <item>
      <title>Node.js - 수업 2일차</title>
      <link>https://kakaroo.tistory.com/114</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOVjsX/btrKuKTGwuM/jYFfFkJWarYQ6ZKIxp6mKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOVjsX/btrKuKTGwuM/jYFfFkJWarYQ6ZKIxp6mKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOVjsX/btrKuKTGwuM/jYFfFkJWarYQ6ZKIxp6mKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOVjsX%2FbtrKuKTGwuM%2FjYFfFkJWarYQ6ZKIxp6mKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1284&quot; height=&quot;443&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트는 태생적으로 웹 브라우저 위에서만 실행할 수 있었다. 웹 브라우저는 자바스크립트 런타임을 내장하고 있으므로 자바스크립트 코드를 실행할 수 있다. 브라우저 외의 환경에서 자바스크립트를 실행하기 위한 여러 시도가 있었으나 자바스크립트의 실행속도 문제 때문에 큰 반향을 얻지는 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2008년 구글이 자바스크립트 실행을 위한 vs 엔진을 크롬이 출시하면서 속도 문제가 해결이 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이언 달(Ryan Dahl)이라는 사람이 2009년 vs 엔진 기반의 노드 프로젝트를 시작했고, 이것이 바로 Node.js 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;:: Node&lt;span style=&quot;background-color: #ffffff; color: #4d5156;&quot;&gt;.&lt;/span&gt;js&lt;span style=&quot;background-color: #ffffff; color: #4d5156;&quot;&gt;&amp;reg;는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&quot;&gt;자바스크립트&lt;/a&gt;를 활용하며 논블로킹(Non-blocking)&lt;a href=&quot;https://ko.wikipedia.org/wiki/Node.js#cite_note-3&quot;&gt;[3]&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;lt;Node.js의 특징&amp;gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 자바 스크립트 언어 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 싱글 쓰레드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 이벤트 기반&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 비동기 I/O&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 비동기 I/O와 싱글 쓰레드 기반의 이벤트 처리를 사용하여 높은 성능을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동기 : 결과값 반환을 무한정 기다린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비동기 : 결과값을 마냥 기다리지 않고 완료되면 호출되는 콜백으로 대체한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Node.js 에서 자바스크립트 실행방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. node 실행 -&amp;gt; REPL 모드로 변경되어 바로 입력하면 됨&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kEhl7/btrKgtkNcA1/miNCM5IYWdQVSzZfIPy11K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kEhl7/btrKgtkNcA1/miNCM5IYWdQVSzZfIPy11K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kEhl7/btrKgtkNcA1/miNCM5IYWdQVSzZfIPy11K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkEhl7%2FbtrKgtkNcA1%2FmiNCM5IYWdQVSzZfIPy11K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;99&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. node 파일명.js 실행&amp;nbsp; (확장자 생략 가능)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cveVsD/btrKb9fqpDl/XbKBoQHFYZMpiwsGc58ysK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cveVsD/btrKb9fqpDl/XbKBoQHFYZMpiwsGc58ysK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cveVsD/btrKb9fqpDl/XbKBoQHFYZMpiwsGc58ysK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcveVsD%2FbtrKb9fqpDl%2FXbKBoQHFYZMpiwsGc58ysK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;621&quot; height=&quot;42&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;42&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661213723638&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//0_hello.js

console.log(&quot;Hello world&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;REPL&lt;/b&gt;&lt;br /&gt;Read : 사용자가 입력한 코드를 읽음&lt;br /&gt;Evaluate : 읽은 코드를 실행(평가)&lt;br /&gt;Print : 실행(평가)된 결과를 출력&lt;br /&gt;Loop : 위의 순서를 반복&lt;br /&gt;&lt;br /&gt;브라우저에서 콘솔창(F12)이나 Node 실행시 리플이 실행됨&lt;br /&gt;&lt;br /&gt;주요 단축기&lt;br /&gt;REPL 종료 : Ctrl + C 2번 또는 Ctrl + D&lt;br /&gt;TAB : 일부 입력된 값으로 시작하는 명령어 또는 변수 목록을 확인&lt;br /&gt;.save 파일명 : 현재 REPL 세션을 파일로 저장&lt;br /&gt;.load 파일명 : 파일로 저장된 REPL 세션을 불러옴&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Sync vs ASync&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661213744232&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//1_sync.js

//어떤 일을 수행하고 있다는 것을 확인하기 위해 1초마다 점을 출력하는 함수
const doSomething = () =&amp;gt; {
	const process = require(&quot;process&quot;);
	setInterval(() =&amp;gt; {
		process.stdout.write(&quot;.&quot;);
	}, 1000);
}

//doSomething();

//다운로드를 동기적으로 수행하는 함수
const downloadSync = (url) =&amp;gt; {
	console.log(&quot;download start&quot;);
	let endTime = new Date(new Date().getTime() + 5000);
	while (endTime &amp;gt;= new Date()) {}
	console.log(&quot;download complete!&quot;);
}
//downloadSync(&quot;xyz.com/hello.mp3&quot;);
//doSomething();	//download가 다 수행된 다음에 해당 함수가 실행된다.

//다운로드를 비동기적으로 수행하는 함수
//download가 수행되면서 doSomething 도 같이 수행된다.
const download = (url) =&amp;gt; {
	console.log(&quot;download start&quot;);
	setTimeout(() =&amp;gt; { console.log(&quot;download complete!&quot;);}, 5000);
}
download(&quot;xyz.com/hello.mp3&quot;);
doSomething();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661214675807&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//2_callback.js

//동기식 함수 : 결과값이 리턴된다.
const accumulateSync = (start, end) =&amp;gt; {
	let cumsum = 0;
	for(let n=start; n&amp;lt;=end; n++) {
		cumsum += n;
	}
	return cumsum;
}

console.log(accumulateSync(1, 1000000));

//비동기식 함수
const accumulate = (start, end, callback) =&amp;gt; {
	let cumsum = 0;
	for(let n=start; n&amp;lt;=end; n++) {
		cumsum += n;
	}
	callback(cumsum);	//결과를 콜백함수로 전달, 오류처리를 해야 하지만 일단 skip
}

accumulate(1, 1000000, result =&amp;gt; console.log(result));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661214687016&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//3_callback2.js

const fs = require(&quot;fs&quot;);	//파일관련 처리를 모아둔 것

//동기식 함수의 사용
//Node.js 에서는 동기식 함수에 대하여 주로 Sync라는 접미사를 사용
const fileNames = fs.readdirSync(&quot;.&quot;);
for(const fname of fileNames) {
	console.log(fname);
}

console.log(&quot;--------------&quot;);

//비동기식 함수의 사용
fs.readdir(&quot;.&quot;, (err, fileNames) =&amp;gt; {
	for(const fname of fileNames) {
		console.log(fname);
	}
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Object&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661218734659&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//4_object.js

//Node.js에서는 별도의 로딩 없이 바로 사용가능한 객체들을 제공하는데
//이를 전역 객체라고 한다.

//1. global 객체 : 브라우저에서 window 객체의 개념과 유사
//global 객체는 다양한 객체를 속성으로 가지고 있으며 대표적인 예가 console 이다.
global.console.log(&quot;hello world&quot;);	//window.document

//global 객체의 속성은 global 없이 사용할 수 있다.
console.log(&quot;hello world&quot;);	//document

//2. process: 현재 프로세스의 실행정보를 가지고 있는 전역객체
//console과 마찬가지로 global 객체의 속성으로 존재
console.log(process.env);	//환경정보
console.log(process.arch);	//CPU 아키텍처 정보
console.log(process.platform);	//플랫폼 정보
console.log(process.uptime());	//Node.js 실행시간
console.log(process.version);	//Node.js 버전정보
console.log(process.pid);	//프로세스 아이디
//console.log(process.argv);	//명령행의 인자 정보

//명령행에 node add.js 10 20 라고 입력할 경우 각 토큰은 배열에 저장되어 전달한다
//			0   1     2  3

const argv = process.argv
for(let i=0; i&amp;lt;argv.length; i++) {
	console.log(`argv[${i}] = ${argv[i]}`);
}
/* node 4_object.js 10 20 수행결과
argv[0] = /usr/bin/node
argv[1] = /workspace/SWEDU_nodejs_mysql3/20220823/4_object.js
argv[2] = 10
argv[3] = 20
*/

//명령행으로부터 들어온 값은 문자열이므로 수치연산을 수행하려면 수치데이터로 변환해야 한다.
const n1 = parseInt(argv[2]);
const n2 = parseInt(argv[3]);
console.log(n1+n2);

//현재 프로세스를 종료하고 싶다면 exit 메서드를 사용하면 된다.
//process.exit();
//console.log(&quot;end&quot;);	//화면에 출력되지 않는다.

//3. console
//로그 레벨을 지정하여 출력할 수 있다.
console.log(&quot;로그 출력&quot;);
console.info(&quot;정보 출력&quot;);
console.warn(&quot;경고 출력&quot;);
console.error(&quot;오류 출력&quot;);

//표준 입출력: 컴퓨터에서 기본으로 사용하는 입출력 스트림
//표준 입력: 키보드(버퍼)
//표준 출력: 모니터(버퍼)
//표준 오류: 모니터

//info와 log는 표준출력으로 전송하고 warn과 error는 표준오류로 전송한다.
const value = 3.14;
console.log(&quot;value: &quot;+value);	//덧셈 연산자 사용
console.log(&quot;value: &quot;,value);

//객체 출력시 덧셈 연산자보다는 쉼표를 사용하는 것이 좋다.
const obj = { name:&quot;kakaroo&quot;, age:20 };
console.log(&quot;obj: &quot;+obj);	//obj: [object Object]
console.log(&quot;obj: &quot;,obj);	//obj: { name: 'kakaroo', age: 20 }


//실행시간 축정
//console.time(타이머이름): 시작시점 설정
//console.timeEnd(동일 타이머 이름) : 종료시점까지 걸린시간을 계산해서 출력
const accumulateSync = (start, end) =&amp;gt; {
	let cumsum = 0;
	for(let n=start; n&amp;lt;=end; n++) {
		cumsum += n;
	}
	return cumsum;
}
console.time(&quot;MY_TIMER&quot;);
console.log(accumulateSync(1, 1000000));
console.timeEnd(&quot;MY_TIMER&quot;);	//MY_TIMER: 6.800ms


//4. 현재 경로 출력하기
console.log(__filename);
console.log(__dirname);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Module&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661223026676&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//5_module.js

//모듈이란 응용프로그램을 구성하는 개별적 요소
//파일 단위로 이루어져 있으며 필요에 따라 명시적으로 불러올 수 있다.

//1. 기본모듈: Node.js와 함께 설치되는 모듈로 별도의 추가설치가 필요없음
//2. 확장모듈: 기본 모듈 이외의 모듈로 npm(node pakcage manager)

//Node.js에서 제공하는 기본 모듈
// - 프로세스 및 환경 : os, process, cluster
// - 파일, 경로, URL : fs, path, url, querystring, stream
// - 네트워크 : http, https, net, dgram, dns, ...

//모듈을 사용하려면 먼저 해당 모듈이 설치되어 있어야 하며 이를 불러와야 한다.
//사용방법: const 변수명 = require(모듈명);

//1. os 모듈
const os = require(&quot;os&quot;);
console.log(os.arch());	//x64	= process.arch
console.log(os.platform());	//linux = process.platform
console.log(os.type());	//Linux
console.log(os.uptime());
console.log(os.hostname());//goorm
console.log(os.homedir());// /root
console.log(os.cpus().length);

//2. path: 디렉토리나 파일의 경로를 처리하기 위한 모듈
//Windows의 경우 경로 구분자: \
//Unix(Linux, Mac)의 경우, 경로 구분자: /

const path = require(&quot;path&quot;);

//경로 정규화: 경로표현이 잘못되었을 때, 이를 정상적인 경로로 변환한다
console.log(path.normalize(&quot;/user/tmp/../local//\//bin/&quot;))	//user/local/bin

//경로의 마지막 요소 추출하기
console.log(path.basename(&quot;/foo/bar/asdf/index.html&quot;));	//index.html

//확장자를 제외한 이름만 추출하기
console.log(path.basename(&quot;/foo/bar/asdf/index.html&quot;, &quot;.html&quot;));	//index

//디렉토리만 추출하기
console.log(path.dirname(&quot;/foo/bar/asdf/index.html&quot;));	//foo/bar/asdf

//확장자만 추출하기
console.log(path.extname(&quot;/foo/bar/asdf/index.html&quot;));	//.html

//경로를 분석하여 추출하기
const data = path.parse(&quot;/home/user/hello.png&quot;);
console.log(data);	//root, dir, base, ext, name

//반대로 수행
const my_path = path.format({
	root: &quot;/&quot;,
	dir: &quot;/home/user&quot;,
	base: &quot;file.txt&quot;,
	ext: &quot;txt&quot;
})

console.log(my_path);	// /home/user/file.txt

//path.sep : 경로 구분자로 윈도우의 경우 \, 유닉스 계열의 경우 /로 설정된다
console.log(__dirname + path.sep + &quot;image.png&quot;);

//path.join(): 여러개의 경로를 연결하는 함수
console.log(path.join(&quot;/foo&quot;, &quot;bar&quot;, &quot;bar\qwerty&quot;, &quot;..&quot;));	//foo/bar (3,4번째 인자는 오류라서 join 안 됨)

//각 운영체제 별 기능을 제공한다
//Unix Family: path.posix.sep, path.posix.join
//Windows: path.win32.sep, path.win32.join
console.log(path.posix.sep, path.win32.sep);	// / \&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;URL&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1345&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eawKA8/btrKzZV02Ap/WNiTK4eqJvwUWBgDiTK6U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eawKA8/btrKzZV02Ap/WNiTK4eqJvwUWBgDiTK6U1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eawKA8/btrKzZV02Ap/WNiTK4eqJvwUWBgDiTK6U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeawKA8%2FbtrKzZV02Ap%2FWNiTK4eqJvwUWBgDiTK6U1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1345&quot; height=&quot;351&quot; data-origin-width=&quot;1345&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1661262772116&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//6_url.js

const url = require(&quot;url&quot;);
const myurl = &quot;http://www.hello.com:8080/p/a/t/h?name=kakaroo&amp;amp;age=20&quot;

const parsed = url.parse(myurl);
console.log(parsed);

/*
Url {                                                                                prot
  slashes: true,
  auth: null,
  host: 'www.hello.com:8080',
  port: '8080',
  hostname: 'www.hello.com',
  hash: null,
  search: '?name=kakaroo&amp;amp;age=20',
  query: 'name=kakaroo&amp;amp;age=20',
  pathname: '/p/a/t/h',
  path: '/p/a/t/h?name=kakaroo&amp;amp;age=20',
  href: 'http://www.hello.com:8080/p/a/t/h?name=kakaroo&amp;amp;age=20'
}*/

//URL에서 query 부분만 파싱을 할 수 있도록 Node.js에서는 querystring 모듈을 제공한다.
console.log(parsed.query);//name=kakaroo&amp;amp;age=20
const qs = require(&quot;querystring&quot;);
const query = qs.parse(parsed.query);
console.log(query.name, query.age);	//kakaroo 20&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1661262858240&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//7_url.js

//기존의 Node.js 는 URL을 파싱하기 위해 url 모듈의 parse 함수를 제공했다.
//Node.js 7 이상부터는 URL을 좀 더 세분화하여 파싱할 수 있도록 URL 클래스를 제공한다.

const myurl = &quot;http://www.hello.com:8080/p/a/t/h?name=kakaroo&amp;amp;age=20&quot;
const url = new URL(myurl);
console.log(url);
/*
URL {
  href: 'http://www.hello.com:8080/p/a/t/h?name=kakaroo&amp;amp;age=20',
  origin: 'http://www.hello.com:8080',
  protocol: 'http:',
  username: '',
  password: '',
  host: 'www.hello.com:8080',
  hostname: 'www.hello.com',
  port: '8080',
  pathname: '/p/a/t/h',
  search: '?name=kakaroo&amp;amp;age=20',
  searchParams: URLSearchParams { 'name' =&amp;gt; 'kakaroo', 'age' =&amp;gt; '20' },
  hash: ''
}
*/

const params = url.searchParams;
console.log(params);	//URLSearchParams { 'name' =&amp;gt; 'kakaroo', 'age' =&amp;gt; '20' }
console.log(params.get(&quot;name&quot;), params.get(&quot;age&quot;));	//kakaroo 20

//URLSearchParams 객체는 필요하면 단독으로 사용할 수 있다.
const p = new URLSearchParams(&quot;name=william&amp;amp;age=12&amp;amp;book=python&quot;);
console.log(p.get(&quot;name&quot;), p.get(&quot;age&quot;)) //william 12

//get(key): 처음으로 일치하는 키만 가져온다
console.log(p.get(&quot;book&quot;));
console.log(p.get(&quot;email&quot;)); //null //일치하는 키가 없는 경우 null이 반환

//has(key): 해당 키의 유무를 참/거짓 형태로 반환
console.log(p.has(&quot;age&quot;) ? p.get(&quot;age&quot;) : &quot;no age&quot;);	//12

//getAll(key): 일치하는 모든 키를 가져온다
console.log(p.getAll(&quot;book&quot;)); //[ 'python' ] //value를 배열에 저장하여 반환

//append(key, value): 해당 키를 추가, 동일키가 존재하는 경우에도 해당 키를 추가함
p.append(&quot;book&quot;, &quot;ruby&quot;);
console.log(p.getAll(&quot;book&quot;));	//[ 'python', 'ruby' ]

//toString() : 조작한 객체를 문자열로 생성
console.log(p.toString());	//name=william&amp;amp;age=12&amp;amp;book=python&amp;amp;book=ruby

//set(key, value): 동일 키의 값들을 모두 지우고 새로 추가
p.set(&quot;book&quot;, &quot;nodejs&quot;);
console.log(p.getAll(&quot;book&quot;));	//[ 'nodejs' ]

//delete(key): 해당 키를 삭제
p.delete(&quot;book&quot;);
console.log(p.getAll(&quot;book&quot;));	//[]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;FS&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661262874520&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//8_fs.js

//파일시스템 : 컴퓨터 상의 파일이나 자료를 쉽게 조작할 수 있도록 하는 관리프로그램
//Node.js는 컴퓨터 상의 파일이나 디렉토리를 쉽게 접근 및 조작을 수행할 수 있도록
//fs 모듈을 제공한다.

const fs = require(&quot;fs&quot;);

//1. 파일 읽기: hello.txt를 만들고 그 안에 'hello world'를 저장해보자
fs.readFile(&quot;./hello.txt&quot;, (err, data) =&amp;gt; {
	if(err) throw err;
	
	//readFile 을 사용하여 파일을 읽어오면 데이터는 바이너리 형태로 전달된다.
	console.log(data);	//&amp;lt;Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64&amp;gt;
	
	console.log(data.toString());	//hello world //문자 디코딩을 수행
})

//문자 인코딩 옵션 사용
fs.readFile(&quot;./hello.txt&quot;, &quot;utf-8&quot;, (err, data) =&amp;gt; {
	if(err) throw err;
	
	console.log(data);	//hello world 
})

//2. 파일 쓰기
fs.writeFile(&quot;./goodbye.txt&quot;, //해당파일이 없으면 생성 후, 쓰기를 수행
	 &quot;goodbye, friend&quot;, //쓸 내용을 전달
	(err) =&amp;gt; {
		if(err) throw err;
		console.log(&quot;create done!&quot;);	
});

//해당 파일이 이미 존재하는 경우, 덮어쓰기를 수행
fs.writeFile(&quot;./goodbye.txt&quot;, &quot;hello,world&quot;, (err) =&amp;gt; {
	if(err) throw err;
	console.log(&quot;overwrite done!&quot;);  //hello,worldiend
});

/*  비동기라서 순차적으로 출력되지는 않는다.
hello world
create done!
hello world
overwrite done!
*/

//3. 내용 추가하기
const arr = [1,2,3,4,5,6,7,8,9];
arr.forEach((item, idx, arr) =&amp;gt; {
	//아래 함수는 비동기 함수이므로 파일 쓰기가 순차적으로 쓰여지지 않을 수 있다.
/*	fs.appendFile(&quot;./number.txt&quot;, `${item}\n`, (err) =&amp;gt; {
		if(err) throw err;
	})
*/
	//동기 방식으로 처리하면 순차적으로 처리가 된다. 콜백 불필요
	fs.appendFileSync(&quot;./number.txt&quot;, `${item}\n`);
});

const userList = [
	{name: &quot;kakaroo&quot;, age:20},
	{name: &quot;william&quot;, age:12}
];
console.log(JSON.stringify(userList));
fs.writeFile(&quot;./user.json&quot;, JSON.stringify(userList), (err) =&amp;gt; {
	if(err) throw err;
})	//[{&quot;name&quot;:&quot;kakaroo&quot;,&quot;age&quot;:20},{&quot;name&quot;:&quot;william&quot;,&quot;age&quot;:12}]

fs.readFile(&quot;./user.json&quot;, &quot;utf-8&quot;, (err,data) =&amp;gt; {
	if(err) throw err;
	const users = JSON.parse(data);
	console.log(users[0].name, users[0].age);	//kakaroo 20
	console.log(users[1].name, users[1].age);	//william 12
})&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661262886733&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//9_fs.js

const fs = require(&quot;fs&quot;);	//콜백 버전
const fsp = require(&quot;fs&quot;).promises;	//프로미스 버전

//1. 콜백을 사용한 읽기
fs.readFile(&quot;./hello.txt&quot;, &quot;utf-8&quot;, (err,data) =&amp;gt; {
	if(err) throw err;
	console.log(data);
});

//2. 프로미스 버전을 사용한 읽기
fsp.readFile(&quot;./hello.txt&quot;, &quot;utf-8&quot;)
	.then((data) =&amp;gt; {console.log(data); })
	.catch((err) =&amp;gt; {console.log(err); });

//3. 콜백을 사용한 쓰기
fs.writeFile(&quot;./goodbye.txt&quot;, &quot;goodbye, friend&quot;, (err) =&amp;gt; {
	if(err) throw err;
	console.log(&quot;done!&quot;);
})

//4. 프로미스 버전을 사용한 쓰기
fsp.writeFile(&quot;./goodbye.txt&quot;, &quot;hello world&quot;)
.then(() =&amp;gt; { console.log(&quot;Done-1&quot;); })
.catch((err) =&amp;gt; { console.log(err); });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Buffer vs Stream&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661262905044&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//a_buffer.js

const fs = require(&quot;fs&quot;);

//파일 입출력 방식
//1. 버퍼 : 데이터를 모아서 처리하는 방식
//2. 스트림: 데이터를 흘려서 처리하는 방식

//버퍼의 사용  --&amp;gt; 아주 큰 데이터라면 문제가 된다.
const buf = Buffer.from(&quot;hello, world&quot;);
console.log(buf);
console.log(buf.length);	//버퍼의 크기로 단위는 바이트(byte)
console.log(buf.toString());//버퍼를 문자로 디코딩

const arr = [
	Buffer.from(&quot;apple &quot;),
	Buffer.from(&quot;banana &quot;),
	Buffer.from(&quot;cherry &quot;),
	Buffer.from(&quot;durian&quot;)
];
const buf2 = Buffer.concat(arr);	//연결
console.log(buf2);
console.log(buf2.toString());//버퍼를 문자로 디코딩&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661262916964&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//b_stream.js

const fs = require(&quot;fs&quot;);

//실습파일 생성 : 터미널에서 다음과 같이 입력
//# ls /bin &amp;gt; bin.txt

const rs = fs.createReadStream(&quot;./bin.txt&quot;, {highWaterMark:16});
//											^--- 한번에 읽을 크기(byte), 기본값은 64KB

//이벤트: 어떤 사건
//data: 읽을 데이터가 존재할 때 생성되는 이벤트
const dataArr = [];	//읽어온 데이터를 저장하기 위해 배열을 생성
rs.on(&quot;data&quot;, (chunk) =&amp;gt; {
	dataArr.push(chunk);
	console.log(&quot;chunk:&quot;,chunk);
})
//end: 더 이상 읽을 데이터가 없을 때 생성되는 이벤트
rs.on(&quot;end&quot;, () =&amp;gt; {
	console.log(Buffer.concat(dataArr).toString());
})
//error: 오류가 발생되었을 때 생성되는 이벤트
rs.on(&quot;error&quot;, (err) =&amp;gt; {
	console.log(&quot;error:&quot;,err);
})&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661297134959&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//1_stream.js

const fs = require(&quot;fs&quot;);

//쓰기
const ws = fs.createWriteStream(&quot;./write.txt&quot;);

//finish - 파일쓰기가 종료되었을 때 발생되는 이벤트
ws.on(&quot;finish&quot;, () =&amp;gt; {
	console.log(&quot;done!&quot;);
});

//파일쓰기
ws.write(&quot;hello, world\n&quot;);
//					  ^--- 라인단위로 처리하려면 개행을 입력해야 함

ws.write(&quot;goodbye, friend!&quot;);
ws.end();	//쓰기가 완료되었다고 알려주는 메소드&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Node.js</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/114</guid>
      <comments>https://kakaroo.tistory.com/114#entry114comment</comments>
      <pubDate>Tue, 23 Aug 2022 11:50:42 +0900</pubDate>
    </item>
    <item>
      <title>Node.js - 수업 1일차</title>
      <link>https://kakaroo.tistory.com/113</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEEab2/btrKvEkXmbT/NTiSi9nZUYIEEEfMX1Ts6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEEab2/btrKvEkXmbT/NTiSi9nZUYIEEEfMX1Ts6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEEab2/btrKvEkXmbT/NTiSi9nZUYIEEEfMX1Ts6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEEab2%2FbtrKvEkXmbT%2FNTiSi9nZUYIEEEfMX1Ts6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;690&quot; height=&quot;364&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 웹 서버 구동위한 준비 -&amp;nbsp; (구름 IDE)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #bad5fd; color: #2b2d36;&quot;&gt;서버 구동&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #bad5fd; color: #2b2d36;&quot;&gt;python3 -m http.server&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 실행 URL과 포트 지정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;969&quot; data-origin-height=&quot;674&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNgXtW/btrKdRkpsZ0/hMnhx3DAtGboahdeVCZkHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNgXtW/btrKdRkpsZ0/hMnhx3DAtGboahdeVCZkHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNgXtW/btrKdRkpsZ0/hMnhx3DAtGboahdeVCZkHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNgXtW%2FbtrKdRkpsZ0%2FhMnhx3DAtGboahdeVCZkHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;969&quot; height=&quot;674&quot; data-origin-width=&quot;969&quot; data-origin-height=&quot;674&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL 이동&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eGW502/btrJ8HXC3cQ/32A0vQ12Wyj48LG3wSFTg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eGW502/btrJ8HXC3cQ/32A0vQ12Wyj48LG3wSFTg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eGW502/btrJ8HXC3cQ/32A0vQ12Wyj48LG3wSFTg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeGW502%2FbtrJ8HXC3cQ%2F32A0vQ12Wyj48LG3wSFTg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;339&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJPDR9/btrKgsqUhVU/LAey5b0qbeGvxKO3B4KwjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJPDR9/btrKgsqUhVU/LAey5b0qbeGvxKO3B4KwjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJPDR9/btrKgsqUhVU/LAey5b0qbeGvxKO3B4KwjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJPDR9%2FbtrKgsqUhVU%2FLAey5b0qbeGvxKO3B4KwjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1220&quot; height=&quot;734&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. Node.js 를 하기 위한 기본적인 문법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Variable&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1661141555708&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;1 variable &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			//브라우저의 개발자 도구에서 console 탭을 확인해 주세요
			//console.log(&quot;hello, world&quot;);
			
			//스코프(scope): 참조대상 식별자(identifier, 변수나 함수의 이름)을 찾아내기 위한 규칙
			//-&amp;gt; 어떤 이름을 참조하기 위해 사용할 수 있는 유효 범위
			
			//스코프의 종류
			//1. 전역 스코프: 코드 어디에서든지 참조할 수 있음
			//2. 지역 스코프 또는 함수 레벨 스코프: 함수 코드 블럭이 만든 스코프로 함수자신과
			//									하위 함수에서만 참조할 수 있음
			//3. 블럭 레벨 스코프: 중괄호를 사용한 스코프로 주로 제어문에 사용함
			
			//전역스코프 : 함수 외부 영역
			
			function foo() {
				//지역 스코프 또는 함수 레벨 스코프
			}
			if(true) {
				//블록 레벨 스코프
			}
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//모든 변수는 선언된 위치에 따라서 크게 2가지로 나뉠수 있다
			//1. 전역변수: 전역 스코프에서 선언된 변수로 어디에서나 참조할 수 있음
			//2. 지역변수: 지역 스코프에서 선언된 변수로 그 지역과 그 지역 하위지역에서만 참조할 수 있음
			var global = &quot;global&quot;;	//전역변수
			
			function bar() {
				console.log(global);
				
				var local = &quot;local&quot;
				console.log(local);
			}
			
			bar();
			//console.log(local);	//오류
			
			if(true) {
			   //블럭 레벨 스코프
				//자바 스크립트는 기본적으로 블럭레벨 스코프를 지원하지 않으므로 아래의 변수는
				//전역 변수로 해석됩니다.
				var test = &quot;test&quot;
			}			
			console.log(test);	//문제없이 동작함
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661141568491&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;2 variable &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			//var 키워드
			var x = &quot;X&quot;;
			console.log(x);
			
			y= &quot;Y&quot;;		//var 키워드가 없다. 안 써도 되는거 아니냐? 왜 쓰는지 알아보자
			console.log(y);
			
			function foo() {
				//지역 스코프에서 var 키워드를 사용하여 변수를 선언하면
				//해당 변수는 지역 스코프의 특성을 갖는다
				var z = &quot;Z&quot;;
			}
			foo();
			//console.log(z);	//오류
			
			function bar() {
				//지역 스코프에서 var 키워드를 사용하지 않고 변수를 선언하면
				//해당 변수는 전역 스코프의 특성을 갖는다
				a = &quot;A&quot;;
			}
			bar();
			console.log(a);	//된다
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661141581655&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;3 variable &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			var age = 20;
			console.log(age);
			
			//변수를 다시 선언할 수 있다.
			var age = 30;
			console.log(age);
			
			//스크립트 언어는 인터프리터 언어로 라인단위로 읽어서 실행한다
			//하지만, 자바스크립트는 생성된 변수나 함수등을 먼저 추출해서
			//해석기 내의 메모리에 로딩한 뒤(호이스팅:끌어올림), 코드를 실행한다.
			//그렇기 때문에 아래 코드는 에러가 발생하지 않는다.
			//초기화 된 값은 호이스팅하지는 않고 변수가 선언된 것만 로딩한다.
			console.log(uname);	//undefined 로 출력됨
			var uname = &quot;daniel&quot;;
			console.log(&quot;------------------------------&quot;);
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			var n = 1;
			function test() {
				//지역 스코프에서 선언된 변수가 없으면 전역변수에서 찾는다.
				//함수 레벨 안에서 아래 변수로 선언되었기 때문에 호이스팅되어 버린다.
				console.log(n);	//undefined
				
				var n = 2;
				console.log(n);	//2
			}
			test();
			console.log(&quot;------------------------------&quot;);
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//let 키워드는 var 키워드의 문제를 해결하기 위해 ES6에서 추가됨
			var temp1;	//선언만 가능
			let temp2;	//변수 선언이 가능
			
			var temp3 = 20;
			let temp4 = 20;	//변수를 선언과 동시에 초기화가 가능
			
			var temp3 = 30;	//var 키워드는 중복선언이 가능하다
			//let temp4 = 30; //오류! 중복선언이 불가능하다.
			
			//console.log(temp5);	//오류! 호이스팅은 되지만 초기화가 안 되었다고 에러발생시킴
			let temp5 = 10;
			console.log(&quot;------------------------------&quot;);
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			if(true) {
				var v = &quot;var&quot;;
				let l = &quot;let&quot;;
			}
			console.log(v);
			//console.log(l);	//오류! let으로 선언된 변수는 블럭 레벨 스코를 갖는다.
			
			for( var i=0; false; ) {}
			console.log(i);	//ok
			
			for( let j=0; false; ) {}
			console.log(j);	//오류! let으로 선언된 변수는 블럭 레벨 스코를 갖는다.
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661141592992&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;4 variable &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			let r = 2;			
			console.log(r ** 2 * 3.14);	//하드코딩
			//let pi = 3.14;
			//console.log(r ** 2 * pi);	//심볼,, 하지만 이건 값을 변경할 수 있다.
			const pi = 3.14;
			console.log(r ** 2 * pi);	//심볼
			
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//리터럴(literal): 그 자체가 값을 의미하는 것
			10, 3.14, &quot;hello&quot;, true;
			
			//변수
			let data;
			data = 10;
			data = 3.14;
			data = &quot;hello&quot;;
			data = true;
			
			//상수(const variable)
			const PI = 3.14;
			//PI = 0;	//오류!
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Function&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661141602887&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;5 function &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			//1급 시민(first class citizen)
			//1. 변수에 할당될 수 있다
			//2. 인자(argument)로 전달될 수 있다.
			//3. 함수로부터 반환될 수 있다.
			// ex)리터럴
			//let age = 20;
			
			//자바스크립트에서는 함수도 1급 시민이다. 추가적으로 다음의 조건을 요구하는 경우도 있다.
			//런타임에 생성할 수 있다.
			//익명으로 생성할 수 있다.
			
			//자바스크립트는 위의 추가적인 요건을 만족한다. 이처럼 1급 시민의 조건을 만족하는 함수를
			//일급함수(first class function)이라고 한다.
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//1. 변수에 할당할 수 있다.
			function print_hello() { console.log(&quot;hello&quot;);}
			const fn = print_hello;
			fn();
			
			//2. 함수의 인자로 전달할 수 있다.
			function sayHello() { return &quot;hello, &quot;; }
			function greeting(helloMessage, name) {
				console.log(helloMessage() + name)
			}
			greeting(sayHello, &quot;kakaroo&quot;);
			
			//3. 함수로부터 반환될 수 있다.
			function return_print_hello() { return print_hello; }
			return_print_hello()();
			
			//4. 런타임에 생성될 수 있다.
			const add = new Function(&quot;x&quot;, &quot;y&quot;, &quot;return x+y&quot;);
			console.log(add(1,2));	//3
			
			//5. 이름이 없는 함수를 생성할 수 있다.
			const sub = function(x,y) { return x - y; }
			console.log(sub(1,2));	//-1
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661142144999&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;6 function &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			foo();	//함수도 호이스트 됩니다.	//called foo
			function foo() { console.log(&quot;called foo&quot;); }
			foo();	//called foo
			
			//함수 표현식을 사용하여 생성된 익명 함수의 경우에는 호이스트가 발생하지 않는다.
			//bar();	//에러! Cannot access bar before initialization
			const bar = function() { console.log(&quot;called bar&quot;); }
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661143655661&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;7 function &amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			//일일이 함수 선언시 function tag 넣고 괄호 넣고 이런게 불편하다
			const pi1 = function() {
				return 3.141592;
			}			
			console.log(pi1());
			
			//화살표 함수
			const pi2 = () =&amp;gt; {
				return 3.141592;
			}
			console.log(pi2());
			
		&amp;lt;/script&amp;gt;
		
		&amp;lt;script&amp;gt;
			//화살표 함수의 표현방법 1. 매개변수가 없는 경우, 소괄호를 생략할 수 없다
			//const hello = function() { console.log(&quot;hello&quot;);}
			const hello = () =&amp;gt; {console.log(&quot;hello&quot;);}
			hello();
			
			//화살표 함수의 표현방법 2. 매개변수가 1개인 경우, 소괄호를 생략할 수 있다.
			//const square = function(x) { return x * 2;}
			const square = x =&amp;gt; { return x * 2;}
			console.log(square(5));
			
			//화살표 함수의 표현방법 3. 매개변수가 2개 이상인 경우, 소괄호를 생략할 수 없다
			//const mul = function(x,y) { return x * y;}
			const mul = (x,y) =&amp;gt; { return x * y;}
			console.log(mul(5,6));
						
			
			//화살표 함수의 표현방법 4. 함수 코드가 1줄인 경우 한줄 블럭을 사용할 수 있다
			//const world = function() { console.log(&quot;world&quot;);}
			const world = () =&amp;gt; { console.log(&quot;world&quot;); }
			world();
			
			//화살표 함수의 표현방법 5. 함수 코드가 1줄인 경우 블럭을 생략할 수 있다
			//const goodbye = function() { console.log(&quot;goodbye~&quot;);}
			const goodbye = () =&amp;gt; console.log(&quot;goodbye~&quot;);
			goodbye();
			
			//화살표 함수의 표현방법 6. 함수코드가 값만 반환한다면 return 키워드를 생략할 수 있다.
			//const pi = function() { return 3.141592;}
			const pi = () =&amp;gt; 3.141592;
			console.log(pi());
			const sqr = x =&amp;gt; x**2 ;
			console.log(sqr(10));
			
			//화살표 함수의 표현방법 7. 필요하다면 여러줄을 사용할 수 있다.
			//const area = function(r) {
			// const result = r ** 2 * 3.14;
			// return result;
			//}
			const area = (r) =&amp;gt; {
				const result = r ** 2 * 3.14;
				return result;
			}
			console.log(area(4));
			
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;---&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비동기 처리 - promise&lt;/p&gt;
&lt;pre id=&quot;code_1661145575540&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;8 promise&amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			function delay(sec, callback) {
				setTimeout(function() {callback(new Date().toISOString())}, 
						   sec*1000);
			}
			
			//console.log(&quot;start&quot;);
			//delay(5, (time) =&amp;gt; {
			//	console.log(time);
			//});
			//console.log(&quot;end&quot;);			
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//job1(다운로드), job2(파일저장), job3(압축해제)
			//job1,job2,job3 이 동시에 시작된다.
			delay(1, (time) =&amp;gt; {
				console.log(&quot;job1&quot;, time);
			});
			delay(1, (time) =&amp;gt; {
				console.log(&quot;job2&quot;, time);
			})
			delay(1, (time) =&amp;gt; {
				console.log(&quot;job3&quot;, time);
			})
			
			//아래와 같이 처리하면 비동기적으로 처리가 되지만,
			//callbak 지옥에 빠진 케이스 (코드 복잡도)
			delay(1, (time) =&amp;gt; {
				console.log(&quot;job1&quot;, time);
				delay(1, (time) =&amp;gt; {
					console.log(&quot;job2&quot;, time);
					delay(1, (time) =&amp;gt; {
						console.log(&quot;job3&quot;, time);
					})
				})
			});
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661149564239&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;9 promise&amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			//promise 객체 생성
			//어떤 작업에 대하여 성공 또는 실패를 사용자에게 알려주기 위해 
			//2개의 콜백을 받는다. (아래 예에서는 성공하면 resolve, 실패하면 reject 호출하면 됨)
			//const job = new Promise();//Uncaught TypeError: Promise resolver undefined is not a function
			/*
			const job = new Promise( (resolve, reject) =&amp;gt; {
				//do something..				
				//resolve(&quot;done&quot;);
				//reject(&quot;error&quot;); //위 resolve 함수가 호출되면 reject 함수는 호출안됨
				
				//아래 코드는 다운로드를 하는 코드라고 가정
				setTimeout( ()=&amp;gt; {
					resolve(&quot;Download Completed&quot;);
				}, 3000);
			});
			
			//promise 객체 생성 후, 성공과 실패에 대한 처리 코드를 추가한다.
			job.then((result) =&amp;gt; {	//성공
				console.log(result);
			});
			job.catch((reason) =&amp;gt; { //실패
				console.log(reason);				
			});
			*/
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//한번 사용할 함수이므로 변수 선언을 따로 하지 않는다.			
			/*
			new Promise((resolve, reject) =&amp;gt; {
				setTimeout( ()=&amp;gt; {resolve(&quot;완료&quot;);}, 3000);
			})
			.then((result)=&amp;gt;{console.log(result)})
			.catch((reason)=&amp;gt;{console.log(reason)});
			*/
			//위 코드는 어떤 작업인지를 식별하기 어렵다.
			//이를 해결하기 위해 보통 함수로 래핑(wraooing)하여 사용한다.
			const download = () =&amp;gt; {
				return new Promise((resolve, reject) =&amp;gt; {
					setTimeout(()=&amp;gt;{resolve(&quot;다운로드완료&quot;);}, 3000);
				});
			}
			download().then((result)=&amp;gt;{
				console.log(result);
			})
			.catch((reason)=&amp;gt;{
				console.log(reason);
			});
		&amp;lt;/script&amp;gt;		
		&amp;lt;script&amp;gt;
			
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661149587510&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;a promise&amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			/*
			delay(1, (time) =&amp;gt; {
				console.log(&quot;job1&quot;, time);
				delay(1, (time) =&amp;gt; {
					console.log(&quot;job2&quot;, time);
					delay(1, (time) =&amp;gt; {
						console.log(&quot;job3&quot;, time);
					})
				})
			});
			*/
			const job1 = () =&amp;gt; {
				return new Promise((resolve, reject) =&amp;gt; {
				setTimeout(()=&amp;gt; resolve(&quot;job1&quot;), 1000);
			})};
			const job2 = () =&amp;gt; {
				return new Promise((resolve, reject) =&amp;gt; {
				setTimeout(()=&amp;gt; resolve(&quot;job2&quot;), 1000);
			})};
			const job3 = () =&amp;gt; {
				return new Promise((resolve, reject) =&amp;gt; {
				setTimeout(()=&amp;gt; resolve(&quot;job3&quot;), 1000);
			})};
			
			job1().then((result)=&amp;gt;{
				console.log(result);
				
				//아래의 경우 동일한 콜백 지옥이다.
				//job2().then((result)=&amp;gt;{
				//	console.log(result);
				//})
				
				//헤결: job2에 대한 promise 객체를 반환
				//이 경우 then 함수가 호출이 끝나면 job2 함수에서 반환된 promise 객체를 반환
				return job2();
			}).then((result)=&amp;gt; {
				console.log(result);
			})
			.catch((reason)=&amp;gt; {
				console.log(reason);	//job1, job2 의 오류는 여기로 귀결된다.
			});
			
		&amp;lt;/script&amp;gt;	
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661155072817&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML&amp;gt;

&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;		
	&amp;lt;/head&amp;gt;	
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;
			AjaxTest
		&amp;lt;/h1&amp;gt;
		&amp;lt;script&amp;gt;
			//AJAX : Asynchronous Javascript And XML의 약자로 서버와 비동기 통신을 위한 기법
			//장점은 특정페이지 전체를 새로고침하지 않고도 일부만 업데이트 가능
			//https://jsonplaceholder.typicode.com/
			function fn() {
				xhr = new XMLHttpRequest();
				xhr.open(&quot;GET&quot;, &quot;https://jsonplaceholder.typicode.com/users&quot;);
				xhr.onload = () =&amp;gt; {
					const data = JSON.parse(xhr.response);
					console.log(data);
				};
				xhr.send();
			}
			fn();
		&amp;lt;/script&amp;gt;
		&amp;lt;script&amp;gt;
			//fetch는 Promise 객체를 반환한다.
			fetch(&quot;https://jsonplaceholder.typicode.com/users&quot;)
			.then((response) =&amp;gt; {
				//console.log(response);
				//response.text().then((result)=&amp;gt; {	//콜백지옥
				//	console.log(result)
				return response.json();
				})
				.then((result) =&amp;gt; {
					console.log(result);
				});
		&amp;lt;/script&amp;gt;
	&amp;lt;/body&amp;gt;
		
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Node.js</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/113</guid>
      <comments>https://kakaroo.tistory.com/113#entry113comment</comments>
      <pubDate>Mon, 22 Aug 2022 10:36:53 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - Text  계단 스타일</title>
      <link>https://kakaroo.tistory.com/112</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 글자 입력 &amp;gt; Object &amp;gt; Expand&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l5FFO/btrJ71ASGNu/KIHm2MwiO3kqYdBlkHe0x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l5FFO/btrJ71ASGNu/KIHm2MwiO3kqYdBlkHe0x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l5FFO/btrJ71ASGNu/KIHm2MwiO3kqYdBlkHe0x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl5FFO%2FbtrJ71ASGNu%2FKIHm2MwiO3kqYdBlkHe0x0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;813&quot; height=&quot;176&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 위/아래 라인에 맞추어 Rectangle 로 덮어씌운 뒤,&amp;nbsp; Split into Grid 로 나눠줄 계단수(5) 만큼 Row로 split 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Object &amp;gt; Path &amp;gt; Split into Grid&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOMrF4/btrJ7n49qNy/k9fJOMbEXxEHIoWjhCooo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOMrF4/btrJ7n49qNy/k9fJOMbEXxEHIoWjhCooo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOMrF4/btrJ7n49qNy/k9fJOMbEXxEHIoWjhCooo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOMrF4%2FbtrJ7n49qNy%2Fk9fJOMbEXxEHIoWjhCooo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;857&quot; height=&quot;155&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 전체선택 &amp;gt; PathFinder &amp;gt; Divide &amp;gt; Ungroup&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqjvPM/btrKax6CbBA/U09rKa7cfWKMJkh5Hkicf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqjvPM/btrKax6CbBA/U09rKa7cfWKMJkh5Hkicf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqjvPM/btrKax6CbBA/U09rKa7cfWKMJkh5Hkicf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqjvPM%2FbtrKax6CbBA%2FU09rKa7cfWKMJkh5Hkicf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;151&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Anchor Point Tool 로 필요없는 부분을 지워준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4LwTq/btrJ9vnH8JS/Gk8jLkF5rUQQjGZ3vNweYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4LwTq/btrJ9vnH8JS/Gk8jLkF5rUQQjGZ3vNweYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4LwTq/btrJ9vnH8JS/Gk8jLkF5rUQQjGZ3vNweYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4LwTq%2FbtrJ9vnH8JS%2FGk8jLkF5rUQQjGZ3vNweYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;771&quot; height=&quot;164&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 라인별로 Unite&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdtZ8M/btrJ7d9TAVc/7vKcLx5vhzbFfVFecefWV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdtZ8M/btrJ7d9TAVc/7vKcLx5vhzbFfVFecefWV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdtZ8M/btrJ7d9TAVc/7vKcLx5vhzbFfVFecefWV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdtZ8M%2FbtrJ7d9TAVc%2F7vKcLx5vhzbFfVFecefWV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;766&quot; height=&quot;153&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;153&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 2번째 4번째 오브젝트는 조금 어둡게 색을 바꾼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 홀수번째 오브젝트를 선택한 뒤, Effect &amp;gt; 3D &amp;gt; Rotate &amp;gt; Isometric Top&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 짝수번째 오브젝트를 선택한 뒤, Effect &amp;gt; 3D &amp;gt; Rotate &amp;gt; Isometric Left&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Expand Appaerance 한 뒤, 위치를 맞쳐준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;745&quot; data-origin-height=&quot;305&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mMqv9/btrJ6ZD5InD/DWR6yB8vJqhmbobTUGw8e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mMqv9/btrJ6ZD5InD/DWR6yB8vJqhmbobTUGw8e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mMqv9/btrJ6ZD5InD/DWR6yB8vJqhmbobTUGw8e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmMqv9%2FbtrJ6ZD5InD%2FDWR6yB8vJqhmbobTUGw8e1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;745&quot; height=&quot;305&quot; data-origin-width=&quot;745&quot; data-origin-height=&quot;305&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/112</guid>
      <comments>https://kakaroo.tistory.com/112#entry112comment</comments>
      <pubDate>Sat, 20 Aug 2022 13:32:59 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - Blend Text (feat. Shear)</title>
      <link>https://kakaroo.tistory.com/111</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. Shear 5, Stroke 2 pt, 0.5 pt&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;471&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5Swde/btrJ71HBE0s/InMl2oQoLqWwQ1qdo9TvLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5Swde/btrJ71HBE0s/InMl2oQoLqWwQ1qdo9TvLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5Swde/btrJ71HBE0s/InMl2oQoLqWwQ1qdo9TvLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5Swde%2FbtrJ71HBE0s%2FInMl2oQoLqWwQ1qdo9TvLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;377&quot; height=&quot;471&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;471&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Object 선택한 뒤 Object &amp;gt; Blend &amp;gt; Make&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Expand Appearance&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 맨 앞의 Object Copy &amp;gt; Paste Front&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Masking 할 영역 펜툴로 지정 &amp;gt; Make Mask&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bllRCS/btrJ8nKrpQv/KuZTd6qDWznllzWzjMa1T0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bllRCS/btrJ8nKrpQv/KuZTd6qDWznllzWzjMa1T0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bllRCS/btrJ8nKrpQv/KuZTd6qDWznllzWzjMa1T0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbllRCS%2FbtrJ8nKrpQv%2FKuZTd6qDWznllzWzjMa1T0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;318&quot; height=&quot;340&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/111</guid>
      <comments>https://kakaroo.tistory.com/111#entry111comment</comments>
      <pubDate>Sat, 20 Aug 2022 12:03:59 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 텍스트 3D 효과 (Make with Top)</title>
      <link>https://kakaroo.tistory.com/110</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. Rectangle - 3D&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;557&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6tQmj/btrJ59TIRIb/aMQ7a12s0buVb5mnAaHRk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6tQmj/btrJ59TIRIb/aMQ7a12s0buVb5mnAaHRk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6tQmj/btrJ59TIRIb/aMQ7a12s0buVb5mnAaHRk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6tQmj%2FbtrJ59TIRIb%2FaMQ7a12s0buVb5mnAaHRk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;917&quot; height=&quot;557&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;557&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Object &amp;gt; Expand Appearance&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/usvtY/btrJ6DAj9dw/2yRtZZVF1fVZVWmY7DdUTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/usvtY/btrJ6DAj9dw/2yRtZZVF1fVZVWmY7DdUTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/usvtY/btrJ6DAj9dw/2yRtZZVF1fVZVWmY7DdUTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FusvtY%2FbtrJ6DAj9dw%2F2yRtZZVF1fVZVWmY7DdUTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;539&quot; height=&quot;321&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 윗면과 앞면이 나눠질때까지 ungroup&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k1z6n/btrJ7RqvMn1/OdVQ6dIwrqSnP9c5zkeVbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k1z6n/btrJ7RqvMn1/OdVQ6dIwrqSnP9c5zkeVbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k1z6n/btrJ7RqvMn1/OdVQ6dIwrqSnP9c5zkeVbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk1z6n%2FbtrJ7RqvMn1%2FOdVQ6dIwrqSnP9c5zkeVbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;364&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 선(Fill)으로 구역을 나눈다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z5Cgq/btrJ7bpvb7Y/F3zQkklgd5K6qGoJiYkQWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z5Cgq/btrJ7bpvb7Y/F3zQkklgd5K6qGoJiYkQWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z5Cgq/btrJ7bpvb7Y/F3zQkklgd5K6qGoJiYkQWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ5Cgq%2FbtrJ7bpvb7Y%2FF3zQkklgd5K6qGoJiYkQWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;313&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Shape Builder Tool로 나눈다. 색은 하늘색으로 지정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/seLt4/btrJ7sYPisk/jttSo2emXna7NR3K8taC4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/seLt4/btrJ7sYPisk/jttSo2emXna7NR3K8taC4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/seLt4/btrJ7sYPisk/jttSo2emXna7NR3K8taC4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FseLt4%2FbtrJ7sYPisk%2FjttSo2emXna7NR3K8taC4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;523&quot; height=&quot;303&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. Text 보다 면을 위로 정렬한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFikXk/btrJ6ZXcx60/FcHWtQ2z0SVIOVCkih9n90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFikXk/btrJ6ZXcx60/FcHWtQ2z0SVIOVCkih9n90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFikXk/btrJ6ZXcx60/FcHWtQ2z0SVIOVCkih9n90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFikXk%2FbtrJ6ZXcx60%2FFcHWtQ2z0SVIOVCkih9n90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;687&quot; height=&quot;269&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 같이 선택하고, Make with Top&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjiJYI/btrJ6D8dJBJ/CVaK7Nt0ycLuXYMnFMls90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjiJYI/btrJ6D8dJBJ/CVaK7Nt0ycLuXYMnFMls90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjiJYI/btrJ6D8dJBJ/CVaK7Nt0ycLuXYMnFMls90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjiJYI%2FbtrJ6D8dJBJ%2FCVaK7Nt0ycLuXYMnFMls90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;710&quot; height=&quot;86&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 면에 각각 Make with Top 처리를 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;441&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o6KPy/btrJ7niX46A/HmjpRKff1kd0yUhukvDDHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o6KPy/btrJ7niX46A/HmjpRKff1kd0yUhukvDDHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o6KPy/btrJ7niX46A/HmjpRKff1kd0yUhukvDDHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo6KPy%2FbtrJ7niX46A%2FHmjpRKff1kd0yUhukvDDHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;262&quot; data-origin-width=&quot;441&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vA7vh/btrJ7ezSdPp/J5XQevsk4EIclcAHDBvrgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vA7vh/btrJ7ezSdPp/J5XQevsk4EIclcAHDBvrgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vA7vh/btrJ7ezSdPp/J5XQevsk4EIclcAHDBvrgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvA7vh%2FbtrJ7ezSdPp%2FJ5XQevsk4EIclcAHDBvrgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;412&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/110</guid>
      <comments>https://kakaroo.tistory.com/110#entry110comment</comments>
      <pubDate>Fri, 19 Aug 2022 17:12:56 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 텍스트 Transform 처리</title>
      <link>https://kakaroo.tistory.com/109</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 면 그리기 &amp;gt; Rectangle 을 여러개 이어준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;787&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/swD2C/btrJBdCx3AG/vFZSAOah4zB2VkGZFbGbl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/swD2C/btrJBdCx3AG/vFZSAOah4zB2VkGZFbGbl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/swD2C/btrJBdCx3AG/vFZSAOah4zB2VkGZFbGbl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FswD2C%2FbtrJBdCx3AG%2FvFZSAOah4zB2VkGZFbGbl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;492&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;787&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Pathfinder - Unite &amp;gt; Direct selection tool&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;801&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mvYVT/btrJIsyAVmB/XLhB16JBEvbJJgJ7Gl7hKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mvYVT/btrJIsyAVmB/XLhB16JBEvbJJgJ7Gl7hKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mvYVT/btrJIsyAVmB/XLhB16JBEvbJJgJ7Gl7hKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmvYVT%2FbtrJIsyAVmB%2FXLhB16JBEvbJJgJ7Gl7hKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;494&quot; height=&quot;541&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;801&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 모서리를 둥글게&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnvBCX/btrJD46wOYz/39o670UvMRoZYmONqms2uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnvBCX/btrJD46wOYz/39o670UvMRoZYmONqms2uK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnvBCX/btrJD46wOYz/39o670UvMRoZYmONqms2uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnvBCX%2FbtrJD46wOYz%2F39o670UvMRoZYmONqms2uK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;343&quot; height=&quot;354&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 하나씩 색을 다르게 복사해서 클리핑 마스크&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2Iwjr/btrJC4Z13tp/KmvjtvCJZ4ykqKk1uVlor1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2Iwjr/btrJC4Z13tp/KmvjtvCJZ4ykqKk1uVlor1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2Iwjr/btrJC4Z13tp/KmvjtvCJZ4ykqKk1uVlor1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2Iwjr%2FbtrJC4Z13tp%2FKmvjtvCJZ4ykqKk1uVlor1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;181&quot; height=&quot;197&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글자 효과 넣기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 타이핑을 한뒤, 원본을 하나 복사한 뒤, Fill, Stroke 을 0으로 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Appearance &amp;gt; Add New Stroke &amp;gt; Gradient 를 아래와 같이 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어두워 지는 색을 배경색으로 하면 글자가 안 보이는 효과를 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;645&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDLfwm/btrJMzDL2LE/8QImtqlkduifcZkBatBfcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDLfwm/btrJMzDL2LE/8QImtqlkduifcZkBatBfcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDLfwm/btrJMzDL2LE/8QImtqlkduifcZkBatBfcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDLfwm%2FbtrJMzDL2LE%2F8QImtqlkduifcZkBatBfcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;294&quot; height=&quot;645&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;645&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Transform 효과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Y축으로 Scale 을 좀 더 커지는 값으로 복사한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;335&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dM5ZZz/btrJD3NkUD3/wDc71boTpO3UGkb4Hdo5z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dM5ZZz/btrJD3NkUD3/wDc71boTpO3UGkb4Hdo5z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dM5ZZz/btrJD3NkUD3/wDc71boTpO3UGkb4Hdo5z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdM5ZZz%2FbtrJD3NkUD3%2FwDc71boTpO3UGkb4Hdo5z1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;335&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;335&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 아래 그림자는 위와 반대로 설정하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzm3Uu/btrJIsrSlMy/eqjfRROvlxRMiK7NXwwX0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzm3Uu/btrJIsrSlMy/eqjfRROvlxRMiK7NXwwX0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzm3Uu/btrJIsrSlMy/eqjfRROvlxRMiK7NXwwX0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbzm3Uu%2FbtrJIsrSlMy%2FeqjfRROvlxRMiK7NXwwX0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;287&quot; height=&quot;662&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct07KQ/btrJLTCt0jg/6gf8GmTKxYgNPSzkC3kgwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct07KQ/btrJLTCt0jg/6gf8GmTKxYgNPSzkC3kgwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct07KQ/btrJLTCt0jg/6gf8GmTKxYgNPSzkC3kgwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct07KQ%2FbtrJLTCt0jg%2F6gf8GmTKxYgNPSzkC3kgwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;386&quot; height=&quot;299&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>글자</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/109</guid>
      <comments>https://kakaroo.tistory.com/109#entry109comment</comments>
      <pubDate>Mon, 15 Aug 2022 14:42:27 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 엠블럼 로고</title>
      <link>https://kakaroo.tistory.com/108</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 엠블럼의 틀이 될 모양을 만든다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.1 가장 바깥 테두리의 원을 Fill 로 해서 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.2 Offset Path 를 -1mm 로 해서 Fill 흰색을 채운다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.3 Offset Path 를 -1mm 로 해서 Fill 검정색을 채운다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.4 Offset Path 를 -6mm 로 해서 Fill 흰색을 채운다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.5 Offset Path 를 -1mm 로 해서 Fill 빨간색을 채운다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lIhUy/btrI6dOJnWb/0ypcFfktikv2hJoS0QMxmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lIhUy/btrI6dOJnWb/0ypcFfktikv2hJoS0QMxmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lIhUy/btrI6dOJnWb/0ypcFfktikv2hJoS0QMxmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlIhUy%2FbtrI6dOJnWb%2F0ypcFfktikv2hJoS0QMxmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;436&quot; height=&quot;429&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 글자를 따라 쓸 path를 하나 더 만든다. 역시 offset path를 이용한다. 아래 초록색 원&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDc97i/btrI3tYPDDp/4fmw4oGyR6hetiHT2oNqQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDc97i/btrI3tYPDDp/4fmw4oGyR6hetiHT2oNqQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDc97i/btrI3tYPDDp/4fmw4oGyR6hetiHT2oNqQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDc97i%2FbtrI3tYPDDp%2F4fmw4oGyR6hetiHT2oNqQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;438&quot; height=&quot;436&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 위 path를 선택한 상태에서 Type on a path tool을 선택, 글자를 입력해주고 가운데 정렬을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글자의 중간부부에 마우스로 잘 갖다 대어 보면 'ㅗ' 자 아이콘이 보이는데, 이걸 돌려주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;579&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKxNGH/btrI0eaYxzd/bu17kja4Bdon5QFi2JpHhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKxNGH/btrI0eaYxzd/bu17kja4Bdon5QFi2JpHhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKxNGH/btrI0eaYxzd/bu17kja4Bdon5QFi2JpHhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKxNGH%2FbtrI0eaYxzd%2Fbu17kja4Bdon5QFi2JpHhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;579&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;579&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 아래 글자를 위한 path도 하나 그려준다. 바깥 테두리에서 3번째 원에서 offset path -1mm 로 잡아준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;path로 사용되면 Fill은 없어지기 때문에 order는 상관없다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3YlcS/btrI6d827Jo/Aw3MHvMpB2MagNkW1Q1hYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3YlcS/btrI6d827Jo/Aw3MHvMpB2MagNkW1Q1hYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3YlcS/btrI6d827Jo/Aw3MHvMpB2MagNkW1Q1hYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3YlcS%2FbtrI6d827Jo%2FAw3MHvMpB2MagNkW1Q1hYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;573&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;573&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbMAbN/btrI2cQ43ib/aBngmSmmjbkKV2B5OJEB80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbMAbN/btrI2cQ43ib/aBngmSmmjbkKV2B5OJEB80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbMAbN/btrI2cQ43ib/aBngmSmmjbkKV2B5OJEB80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbMAbN%2FbtrI2cQ43ib%2FaBngmSmmjbkKV2B5OJEB80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;580&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 마지막으로 원에 넣을 이미지를 Clipping mask 해주기 위해 안의 원을 복사해서 이미지 위에 ordering 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 Ctrl + 7 로 cliiping mask를 해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;581&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRsket/btrIY1puGjT/WAEmMetKak05uEwOKjAL6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRsket/btrIY1puGjT/WAEmMetKak05uEwOKjAL6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRsket/btrIY1puGjT/WAEmMetKak05uEwOKjAL6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRsket%2FbtrIY1puGjT%2FWAEmMetKak05uEwOKjAL6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;581&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;371&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwE6Cf/btrI20bxWnf/dUSIVt2MBt92b34rF70vZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwE6Cf/btrI20bxWnf/dUSIVt2MBt92b34rF70vZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwE6Cf/btrI20bxWnf/dUSIVt2MBt92b34rF70vZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwE6Cf%2FbtrI20bxWnf%2FdUSIVt2MBt92b34rF70vZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;371&quot; height=&quot;365&quot; data-origin-width=&quot;371&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;849&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDUOFN/btrIYBYamVV/KKFRKvdapkK6VWb2l3VLxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDUOFN/btrIYBYamVV/KKFRKvdapkK6VWb2l3VLxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDUOFN/btrIYBYamVV/KKFRKvdapkK6VWb2l3VLxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDUOFN%2FbtrIYBYamVV%2FKKFRKvdapkK6VWb2l3VLxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;635&quot; height=&quot;639&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;849&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/108</guid>
      <comments>https://kakaroo.tistory.com/108#entry108comment</comments>
      <pubDate>Sat, 6 Aug 2022 13:08:50 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 입체글자</title>
      <link>https://kakaroo.tistory.com/107</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 티몬 글자체 다운로드 받아 사용&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFCzyg/btrIvodzKW8/Oz0ZRrlCPyzPlFHE3kLxq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFCzyg/btrIvodzKW8/Oz0ZRrlCPyzPlFHE3kLxq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFCzyg/btrIvodzKW8/Oz0ZRrlCPyzPlFHE3kLxq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFCzyg%2FbtrIvodzKW8%2FOz0ZRrlCPyzPlFHE3kLxq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;251&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 자간을 좀 더 크게 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MOQRK/btrIzE7Gxem/BJkRuzcHg4IQhaIYYhoyrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MOQRK/btrIzE7Gxem/BJkRuzcHg4IQhaIYYhoyrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MOQRK/btrIzE7Gxem/BJkRuzcHg4IQhaIYYhoyrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMOQRK%2FbtrIzE7Gxem%2FBJkRuzcHg4IQhaIYYhoyrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;682&quot; height=&quot;502&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 글자를 Design 하려면 path 화 시켜야 한다.&amp;nbsp; Type &amp;gt; Create Outlines&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅋ 의 밑부분을 조금 수정하고, Fill은 흰색으로 채운다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1048&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4lgns/btrIuYmwLBi/3lVVjDDkqIz2K56AaRNtpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4lgns/btrIuYmwLBi/3lVVjDDkqIz2K56AaRNtpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4lgns/btrIuYmwLBi/3lVVjDDkqIz2K56AaRNtpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4lgns%2FbtrIuYmwLBi%2F3lVVjDDkqIz2K56AaRNtpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;704&quot; height=&quot;252&quot; data-origin-width=&quot;1048&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 글자 '카' 에서 거리가 너무 가깝기 때문에 조금 사이에 공간을 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ungroup 을 해도 자음 모음이 나눠지지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QS98P/btrIyYL7T0H/E4DhoHqQX0sflUqlNB5QB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QS98P/btrIyYL7T0H/E4DhoHqQX0sflUqlNB5QB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QS98P/btrIyYL7T0H/E4DhoHqQX0sflUqlNB5QB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQS98P%2FbtrIyYL7T0H%2FE4DhoHqQX0sflUqlNB5QB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;352&quot; height=&quot;368&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;368&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마우스 우측 버튼 &amp;gt; Release Compound Path 으로 분리가 가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;316&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWd7fp/btrIyZxxanl/RvO6ch73iiiERoRNNuOUV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWd7fp/btrIyZxxanl/RvO6ch73iiiERoRNNuOUV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWd7fp/btrIyZxxanl/RvO6ch73iiiERoRNNuOUV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWd7fp%2FbtrIyZxxanl%2FRvO6ch73iiiERoRNNuOUV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;243&quot; height=&quot;282&quot; data-origin-width=&quot;316&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 테두리를 칠하기 위해 Offset Path 를 10 pt 주고 검정색으로 변경한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYOMtJ/btrIx0jprU1/X3K9Yt2UmL9xW1hoOOPlKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYOMtJ/btrIx0jprU1/X3K9Yt2UmL9xW1hoOOPlKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYOMtJ/btrIx0jprU1/X3K9Yt2UmL9xW1hoOOPlKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYOMtJ%2FbtrIx0jprU1%2FX3K9Yt2UmL9xW1hoOOPlKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;212&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Layer 하위 object 들은 아래와 같이 구성되어 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wlFiG/btrIxZLx9O6/WqNQrxOLy71qT9WLQzIcyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wlFiG/btrIxZLx9O6/WqNQrxOLy71qT9WLQzIcyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wlFiG/btrIxZLx9O6/WqNQrxOLy71qT9WLQzIcyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwlFiG%2FbtrIxZLx9O6%2FWqNQrxOLy71qT9WLQzIcyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;308&quot; height=&quot;360&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테두리와 글자를 따로 그룹화 한다. 테두리만 위로 올려 그룹화, 글자만 따로 그룹화 하고 다시 테두리를 아래로 내린다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lPd7t/btrIvTeaYuD/jYhGshRdvSC7BuamZhpgt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lPd7t/btrIvTeaYuD/jYhGshRdvSC7BuamZhpgt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lPd7t/btrIvTeaYuD/jYhGshRdvSC7BuamZhpgt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlPd7t%2FbtrIvTeaYuD%2FjYhGshRdvSC7BuamZhpgt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;693&quot; height=&quot;278&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ob8iS/btrIzE7HBQm/o3QcTvRXrpv2mdL8euByB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ob8iS/btrIzE7HBQm/o3QcTvRXrpv2mdL8euByB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ob8iS/btrIzE7HBQm/o3QcTvRXrpv2mdL8euByB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fob8iS%2FbtrIzE7HBQm%2Fo3QcTvRXrpv2mdL8euByB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;308&quot; height=&quot;152&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 입체효과 (블렌드 툴)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테두리를 Copy, Paste in Back ( CTRL +&amp;nbsp; B) 한 뒤, 아래와 우측으로 약간 이동한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;266&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXtuSM/btrIyZqGQjQ/6VPN9LwFJl5zB4CsO5QZNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXtuSM/btrIyZqGQjQ/6VPN9LwFJl5zB4CsO5QZNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXtuSM/btrIyZqGQjQ/6VPN9LwFJl5zB4CsO5QZNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXtuSM%2FbtrIyZqGQjQ%2F6VPN9LwFJl5zB4CsO5QZNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;714&quot; height=&quot;266&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;266&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테두리를 블렌딩 처리한다. 블렌드 툴을 누르고 블렌드 처리를 하는 두 오브젝트를 선택하면 가운데 하나 오브젝트가 정확히 가운데 위치에 복사된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;327&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7hQiC/btrIA03K4Rm/5vhV7BAU81ceUjFmnnKeJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7hQiC/btrIA03K4Rm/5vhV7BAU81ceUjFmnnKeJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7hQiC/btrIA03K4Rm/5vhV7BAU81ceUjFmnnKeJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7hQiC%2FbtrIA03K4Rm%2F5vhV7BAU81ceUjFmnnKeJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;366&quot; height=&quot;244&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;327&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;블렌드 툴을 더블클릭해서 아래와 같이 값을 넣으면 smooth 하게 처리된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;392&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qEvfO/btrIwGMshzz/QQkQaAAVPdLBKo4jKw9Hf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qEvfO/btrIwGMshzz/QQkQaAAVPdLBKo4jKw9Hf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qEvfO/btrIwGMshzz/QQkQaAAVPdLBKo4jKw9Hf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqEvfO%2FbtrIwGMshzz%2FQQkQaAAVPdLBKo4jKw9Hf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;381&quot; height=&quot;307&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;392&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 블렌드 툴을 사용했다면 라인을 깨뜨려줘야 한다. Object &amp;gt; Expand 를 하면 아래와 같이 50개(위에서 실행한 Belnd steps 값)의 라인이 추가된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyAq8i/btrIBUoFLGm/fKeRLbFigvhrpo5BuwirJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyAq8i/btrIBUoFLGm/fKeRLbFigvhrpo5BuwirJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyAq8i/btrIBUoFLGm/fKeRLbFigvhrpo5BuwirJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyAq8i%2FbtrIBUoFLGm%2FfKeRLbFigvhrpo5BuwirJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;276&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;276&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;50개의 Group이 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;353&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kxb2k/btrIt9Vgyko/V8jcztVwXWeCChKubkXDE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kxb2k/btrIt9Vgyko/V8jcztVwXWeCChKubkXDE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kxb2k/btrIt9Vgyko/V8jcztVwXWeCChKubkXDE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKxb2k%2FbtrIt9Vgyko%2FV8jcztVwXWeCChKubkXDE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;353&quot; height=&quot;373&quot; data-origin-width=&quot;353&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 테두리만 선택된 상태에서 Pathfinder &amp;gt; Unite 로 합쳐준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NbtBT/btrIwGFFLK3/28ZHn7ODxb4Rpxc38EYxh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NbtBT/btrIwGFFLK3/28ZHn7ODxb4Rpxc38EYxh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NbtBT/btrIwGFFLK3/28ZHn7ODxb4Rpxc38EYxh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNbtBT%2FbtrIwGFFLK3%2F28ZHn7ODxb4Rpxc38EYxh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;362&quot; height=&quot;280&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;280&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 글자에도 입체적인 효과를 더 주기 위해 흰색 글자를 Copy , Paste in back 해서 아래, 우측으로 이동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노란색으로 입혀 주고, 다시 글자를 선택해서 글자에는 테두리를 준다.&amp;nbsp; Align Stroke 값을 다르게 설정해본다. (아래는 outside로 설정함)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oyncw/btrIxCQy38E/tdzwukfJU8r0PCU7l5GWiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oyncw/btrIxCQy38E/tdzwukfJU8r0PCU7l5GWiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oyncw/btrIxCQy38E/tdzwukfJU8r0PCU7l5GWiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foyncw%2FbtrIxCQy38E%2FtdzwukfJU8r0PCU7l5GWiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;318&quot; height=&quot;338&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10. 마지막으로 브러쉬로 효과를 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fill 검정색의 타원을 Art brush 로 등록하고 Brush 툴로 아래와 같이 포인트를 준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEE3Yq/btrIzFyM0js/SMfJi0nPwCqmc1kUb8riM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEE3Yq/btrIzFyM0js/SMfJi0nPwCqmc1kUb8riM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEE3Yq/btrIzFyM0js/SMfJi0nPwCqmc1kUb8riM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEE3Yq%2FbtrIzFyM0js%2FSMfJi0nPwCqmc1kUb8riM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;723&quot; height=&quot;263&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>입체효과</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/107</guid>
      <comments>https://kakaroo.tistory.com/107#entry107comment</comments>
      <pubDate>Sat, 30 Jul 2022 16:36:24 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 누끼</title>
      <link>https://kakaroo.tistory.com/106</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 이미지 파일을 불러온다(place) &amp;gt; 움직이지 않게 Ctrl + O 로 잠그고, 원하는 영역을 펜 툴로 영역을 딴다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;323&quot; data-origin-height=&quot;750&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Rd75r/btrH3RA2k3R/ZMXprEwEoaIjSXRDgtExUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Rd75r/btrH3RA2k3R/ZMXprEwEoaIjSXRDgtExUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Rd75r/btrH3RA2k3R/ZMXprEwEoaIjSXRDgtExUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRd75r%2FbtrH3RA2k3R%2FZMXprEwEoaIjSXRDgtExUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;244&quot; height=&quot;567&quot; data-origin-width=&quot;323&quot; data-origin-height=&quot;750&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Fill 색상을 일단 아무 색으로 설정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;708&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDEZTz/btrIc9Ayb4X/mzrvv5LsjP8yLaXPeJTK4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDEZTz/btrIc9Ayb4X/mzrvv5LsjP8yLaXPeJTK4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDEZTz/btrIc9Ayb4X/mzrvv5LsjP8yLaXPeJTK4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDEZTz%2FbtrIc9Ayb4X%2Fmzrvv5LsjP8yLaXPeJTK4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;171&quot; height=&quot;412&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;708&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 뒤의 이미지와 누끼딴 이미지가 겹쳐 보인다. &amp;gt; 마스크를 적용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마스크를 적용하기 위해 잠근 뒤 배경을 Ctrl + Alt + 2 로 lock 을 해제한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 영역을 선택한 뒤, Transparency 패널에서 Make Mask 를 선택한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brmT0E/btrIdx825IA/d7QDG6YkHENy7gN6zxDb60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brmT0E/btrIdx825IA/d7QDG6YkHENy7gN6zxDb60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brmT0E/btrIdx825IA/d7QDG6YkHENy7gN6zxDb60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrmT0E%2FbtrIdx825IA%2Fd7QDG6YkHENy7gN6zxDb60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;485&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;282&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BmmKz/btrIcGFqtlx/qqs3v7x6WdhHiFILTUF7sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BmmKz/btrIcGFqtlx/qqs3v7x6WdhHiFILTUF7sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BmmKz/btrIcGFqtlx/qqs3v7x6WdhHiFILTUF7sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBmmKz%2FbtrIcGFqtlx%2Fqqs3v7x6WdhHiFILTUF7sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;282&quot; height=&quot;458&quot; data-origin-width=&quot;282&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 아무 이미지도 보이지 않는데, Inverse mask 를 선택하면 아래와 같이 정확하게 mask 가 생성된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tPQ0n/btrIbLUuytV/kVkHtRBMXgxMFkXNVwyiIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tPQ0n/btrIbLUuytV/kVkHtRBMXgxMFkXNVwyiIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tPQ0n/btrIbLUuytV/kVkHtRBMXgxMFkXNVwyiIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtPQ0n%2FbtrIbLUuytV%2FkVkHtRBMXgxMFkXNVwyiIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;518&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 누끼 오브젝트를 하나 복사해서 뒤에 붙여넣는다 (Ctrl +B)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞면의 오브젝트를 릴리즈 하면 BG와 2번의 누끼딴 path 로 분리된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구분하기 위해 아래와 같이 이름을 지정해 주었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/owbf9/btrH49alwr1/FWAOIjDeKlp8DCv3Swmln0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/owbf9/btrH49alwr1/FWAOIjDeKlp8DCv3Swmln0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/owbf9/btrH49alwr1/FWAOIjDeKlp8DCv3Swmln0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fowbf9%2FbtrH49alwr1%2FFWAOIjDeKlp8DCv3Swmln0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;292&quot; height=&quot;155&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞의 누끼를 옆으로 이동해보면 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;383&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GIrRO/btrIcHdiqne/fQIAaTZ4YeyYDhP7fHlDz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GIrRO/btrIcHdiqne/fQIAaTZ4YeyYDhP7fHlDz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GIrRO/btrIcHdiqne/fQIAaTZ4YeyYDhP7fHlDz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGIrRO%2FbtrIcHdiqne%2FfQIAaTZ4YeyYDhP7fHlDz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;554&quot; data-origin-width=&quot;383&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/106</guid>
      <comments>https://kakaroo.tistory.com/106#entry106comment</comments>
      <pubDate>Mon, 25 Jul 2022 22:44:48 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 텍스트에 스타일 효과</title>
      <link>https://kakaroo.tistory.com/105</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;바코드 모양 선 긋기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 선긋기 이후 Selection Tool (V) 선택 후, Enter 키&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Move 창이 뜨면 일정 간격 적용 후, Copy 버튼 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Ctrl + D 로 이전 행동 반복&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPhho/btrH32B1x2c/rkk7QClfLnzz1uB4fUjWa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPhho/btrH32B1x2c/rkk7QClfLnzz1uB4fUjWa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPhho/btrH32B1x2c/rkk7QClfLnzz1uB4fUjWa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPhho%2FbtrH32B1x2c%2Frkk7QClfLnzz1uB4fUjWa0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;107&quot; height=&quot;185&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 위 부분을 타원으로 자르자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Path &amp;gt; Outline Stroke &amp;gt; Pathfinder - divide &amp;gt; UnGroup &amp;gt; 잘라내기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;148&quot; data-origin-height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cw6vkA/btrIbNpTt17/sd9Wk8xrXn52QKUDu0UQl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cw6vkA/btrIbNpTt17/sd9Wk8xrXn52QKUDu0UQl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cw6vkA/btrIbNpTt17/sd9Wk8xrXn52QKUDu0UQl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcw6vkA%2FbtrIbNpTt17%2Fsd9Wk8xrXn52QKUDu0UQl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;148&quot; height=&quot;285&quot; data-origin-width=&quot;148&quot; data-origin-height=&quot;285&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDdDr9/btrH5d4sb4R/gK8EtDfMOtX1cYIaF1fvGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDdDr9/btrH5d4sb4R/gK8EtDfMOtX1cYIaF1fvGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDdDr9/btrH5d4sb4R/gK8EtDfMOtX1cYIaF1fvGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDdDr9%2FbtrH5d4sb4R%2FgK8EtDfMOtX1cYIaF1fvGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;343&quot; height=&quot;205&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 전체선택후, 그룹화(Ctrl+G)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Rotate tool(R) 선택 후, ALT 키를 누른채 회전시킬 기준점(아래 하늘색) 클릭 후, 90도로 copy&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 이전 동작 반복 (Ctrl + D), 이동하여 약간의 여백&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;557&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by1Oyr/btrH3cdS0pl/qeg94HIvTB0mCcPGPP26ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by1Oyr/btrH3cdS0pl/qeg94HIvTB0mCcPGPP26ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by1Oyr/btrH3cdS0pl/qeg94HIvTB0mCcPGPP26ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby1Oyr%2FbtrH3cdS0pl%2Fqeg94HIvTB0mCcPGPP26ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;359&quot; height=&quot;364&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;557&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 텍스트를 스타일로 등록해서 넣어보자. 먼저, 텍스트를 입력 (휴먼앳체)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;152&quot; data-origin-height=&quot;134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3HPPK/btrH0s9g8xv/CC8GhNFGCItsQirea7pbkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3HPPK/btrH0s9g8xv/CC8GhNFGCItsQirea7pbkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3HPPK/btrH0s9g8xv/CC8GhNFGCItsQirea7pbkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3HPPK%2FbtrH0s9g8xv%2FCC8GhNFGCItsQirea7pbkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;152&quot; height=&quot;134&quot; data-origin-width=&quot;152&quot; data-origin-height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Appearance 창에서 Add New Stroke 선택, 색상 구분을 위해 임시로 색 지정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lCgey/btrH74TtCUh/QVgJJGfGllTN6r8CDtoDg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lCgey/btrH74TtCUh/QVgJJGfGllTN6r8CDtoDg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lCgey/btrH74TtCUh/QVgJJGfGllTN6r8CDtoDg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlCgey%2FbtrH74TtCUh%2FQVgJJGfGllTN6r8CDtoDg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;497&quot; height=&quot;294&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Stroke 가 선택된 상태에서 Add New Effect &amp;gt; Path &amp;gt; Offset Path 지정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;613&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9Prmo/btrH0uF110C/lmksLj8eSIJp8L82KG3kY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9Prmo/btrH0uF110C/lmksLj8eSIJp8L82KG3kY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9Prmo/btrH0uF110C/lmksLj8eSIJp8L82KG3kY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9Prmo%2FbtrH0uF110C%2FlmksLj8eSIJp8L82KG3kY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;532&quot; height=&quot;613&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;613&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XhTxx/btrH2hsZso3/w3g8e9JnRdPzCwC7KjYihk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XhTxx/btrH2hsZso3/w3g8e9JnRdPzCwC7KjYihk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XhTxx/btrH2hsZso3/w3g8e9JnRdPzCwC7KjYihk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXhTxx%2FbtrH2hsZso3%2Fw3g8e9JnRdPzCwC7KjYihk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;671&quot; height=&quot;422&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 텍스트의 Fill 부분도 Stroke과 동일한 색상으로 지정한 뒤, Add New Fill로 동일한 Fill 을 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fill의 색상은 다르게 지정한뒤, 추가된 Fill을 Layer 처럼 가장 아래로 내린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Path &amp;gt; Offset Path를 Stroke에 준 만큼 동일하게 지정하면 색상이 칠해진다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eqvVsy/btrH74TtYAO/PNXkCMGfdjDJL4Co1hwD0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eqvVsy/btrH74TtYAO/PNXkCMGfdjDJL4Co1hwD0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eqvVsy/btrH74TtYAO/PNXkCMGfdjDJL4Co1hwD0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeqvVsy%2FbtrH74TtYAO%2FPNXkCMGfdjDJL4Co1hwD0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;503&quot; height=&quot;376&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글자가 하나 이상일 경우 테두리가 겹치기 때문에 테두리에 Pathfinder 에서 Add 속성을 추가해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dutxCj/btrH3cZjEPi/usDlGvMd4moCPkwWjcplD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dutxCj/btrH3cZjEPi/usDlGvMd4moCPkwWjcplD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dutxCj/btrH3cZjEPi/usDlGvMd4moCPkwWjcplD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdutxCj%2FbtrH3cZjEPi%2FusDlGvMd4moCPkwWjcplD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;158&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BJRq6/btrIaPnYv2Q/IwTjn4j200oDQK4Gk8kI40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BJRq6/btrIaPnYv2Q/IwTjn4j200oDQK4Gk8kI40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BJRq6/btrIaPnYv2Q/IwTjn4j200oDQK4Gk8kI40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBJRq6%2FbtrIaPnYv2Q%2FIwTjn4j200oDQK4Gk8kI40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;487&quot; height=&quot;127&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등록한 스타일은 Graphic Style에 추가해 주면 재사용이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Object를 선택해 + 버튼을 눌러주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci1G78/btrIaOWUxcK/I6kpFMLk0j4gFpT0vKLKU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci1G78/btrIaOWUxcK/I6kpFMLk0j4gFpT0vKLKU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci1G78/btrIaOWUxcK/I6kpFMLk0j4gFpT0vKLKU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci1G78%2FbtrIaOWUxcK%2FI6kpFMLk0j4gFpT0vKLKU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;299&quot; height=&quot;194&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bR0Rce/btrIaPO4gc8/s66UyaqtlPkVaXYFAJwzQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bR0Rce/btrIaPO4gc8/s66UyaqtlPkVaXYFAJwzQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bR0Rce/btrIaPO4gc8/s66UyaqtlPkVaXYFAJwzQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbR0Rce%2FbtrIaPO4gc8%2Fs66UyaqtlPkVaXYFAJwzQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;567&quot; height=&quot;569&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>바코드</category>
      <category>텍스트 스타일</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/105</guid>
      <comments>https://kakaroo.tistory.com/105#entry105comment</comments>
      <pubDate>Mon, 25 Jul 2022 06:23:17 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 로고 01</title>
      <link>https://kakaroo.tistory.com/104</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 커다란 원안에 4개의 원을 넣는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커다란 원은 Stroke, 내부의 원은 Fill로 각각 다른 색깔을 지정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beYA9F/btrH9IvPGCz/t9nyOSGkG1kgsqynZXQME1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beYA9F/btrH9IvPGCz/t9nyOSGkG1kgsqynZXQME1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beYA9F/btrH9IvPGCz/t9nyOSGkG1kgsqynZXQME1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeYA9F%2FbtrH9IvPGCz%2Ft9nyOSGkG1kgsqynZXQME1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;410&quot; height=&quot;424&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 커다란 원을 기준으로 정렬하기 위해서는 정렬할 두 object (커다란 원과 작은 원)을 shift 키로 선택한 뒤, 마우스를 떼고 다시 정렬 기준이 되는 큰 원을 선택하면 아래와 같이 기준이 되는 object에 굵은 테두리가 생긴다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8jktW/btrH1CqyJn5/lZCKgySKgYQNS26X908uaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8jktW/btrH1CqyJn5/lZCKgySKgYQNS26X908uaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8jktW/btrH1CqyJn5/lZCKgySKgYQNS26X908uaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8jktW%2FbtrH1CqyJn5%2FlZCKgySKgYQNS26X908uaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;401&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Align To를 보면 Key Object로 활성화 된 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbJ9tZ/btrH1BSJ7Af/IsIQCHTkPND4xpq6C7KOR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbJ9tZ/btrH1BSJ7Af/IsIQCHTkPND4xpq6C7KOR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbJ9tZ/btrH1BSJ7Af/IsIQCHTkPND4xpq6C7KOR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbJ9tZ%2FbtrH1BSJ7Af%2FIsIQCHTkPND4xpq6C7KOR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;352&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 동그란 부분을 기준으로 테두리를 shape builder tool로 4개의 영역으로 합쳐준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6wXGy/btrH2gOmuzo/SixS99KRKfTRXOHZ3MST10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6wXGy/btrH2gOmuzo/SixS99KRKfTRXOHZ3MST10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6wXGy/btrH2gOmuzo/SixS99KRKfTRXOHZ3MST10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6wXGy%2FbtrH2gOmuzo%2FSixS99KRKfTRXOHZ3MST10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;410&quot; height=&quot;424&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvjSFh/btrH5dXEYjd/KW62OboZqVM44JOa5EQ6pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvjSFh/btrH5dXEYjd/KW62OboZqVM44JOa5EQ6pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvjSFh/btrH5dXEYjd/KW62OboZqVM44JOa5EQ6pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvjSFh%2FbtrH5dXEYjd%2FKW62OboZqVM44JOa5EQ6pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;394&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테두리를 흰색으로 두껍게, 그리고 면색에 Gradient를 입히고 가운데 부분은 삭제&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk2Zxi/btrH9GY5hF4/OZUvMoyraHKkONM38sC5J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk2Zxi/btrH9GY5hF4/OZUvMoyraHKkONM38sC5J0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk2Zxi/btrH9GY5hF4/OZUvMoyraHKkONM38sC5J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk2Zxi%2FbtrH9GY5hF4%2FOZUvMoyraHKkONM38sC5J0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;394&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/104</guid>
      <comments>https://kakaroo.tistory.com/104#entry104comment</comments>
      <pubDate>Mon, 25 Jul 2022 06:19:45 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - Text 에 Gradient 처리</title>
      <link>https://kakaroo.tistory.com/103</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. Text 선택, Snap ITC 글꼴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fill : Black, Stroke : None&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JF5O2/btrH5dQnkow/eriWk3o1KqZGJhFgsaR35K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JF5O2/btrH5dQnkow/eriWk3o1KqZGJhFgsaR35K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JF5O2/btrH5dQnkow/eriWk3o1KqZGJhFgsaR35K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJF5O2%2FbtrH5dQnkow%2FeriWk3o1KqZGJhFgsaR35K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1368&quot; height=&quot;398&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Pen Tool로 선을 그려 색을 다르게 칠할 부분을 나눠준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bloBlq/btrH0Pv5e4o/HgfKeQwVCnFhLW7HK77Qx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bloBlq/btrH0Pv5e4o/HgfKeQwVCnFhLW7HK77Qx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bloBlq/btrH0Pv5e4o/HgfKeQwVCnFhLW7HK77Qx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbloBlq%2FbtrH0Pv5e4o%2FHgfKeQwVCnFhLW7HK77Qx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1105&quot; height=&quot;243&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Pathfinder - divide 로 나눠준다. 이 때, Text 는 filled path가 아니어서 아래와 같은 에러가 발생한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ut8AL/btrH0QWFr2O/KOOlUqmp196Zkk4qm7U08k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ut8AL/btrH0QWFr2O/KOOlUqmp196Zkk4qm7U08k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ut8AL/btrH0QWFr2O/KOOlUqmp196Zkk4qm7U08k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fut8AL%2FbtrH0QWFr2O%2FKOOlUqmp196Zkk4qm7U08k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;152&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글자는 그림으로 변환시켜줘야 한다. 글자 선택 후, Type &amp;gt; Create Outlines&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/usd0K/btrH32Ik7dA/z4Ow7wPKwOwGLJmTjriwx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/usd0K/btrH32Ik7dA/z4Ow7wPKwOwGLJmTjriwx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/usd0K/btrH32Ik7dA/z4Ow7wPKwOwGLJmTjriwx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fusd0K%2FbtrH32Ik7dA%2Fz4Ow7wPKwOwGLJmTjriwx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1047&quot; height=&quot;260&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 선택을 한 뒤, Pathfinder - divide 를 실행, 그리고 그룹해제를 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 아래와 같이 pen으로 나눈 부분을 다 분리할 수 있게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHKQL/btrH2gtvxao/yccX1uMdYpDzkFx7Juji00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHKQL/btrH2gtvxao/yccX1uMdYpDzkFx7Juji00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHKQL/btrH2gtvxao/yccX1uMdYpDzkFx7Juji00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHKQL%2FbtrH2gtvxao%2FyccX1uMdYpDzkFx7Juji00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;923&quot; height=&quot;229&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 선택된 부분을 Gradient 처리한다. 윤곽선 보기 모드에서 shift로 선택한 뒤, 다시 미리보기 로 넘어가서 Fill 모드로 설정한 뒤, Gradient 값을 넣는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJ3b6h/btrH5ePhfVL/DwAodC1ybKnwGFs7zdOdLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJ3b6h/btrH5ePhfVL/DwAodC1ybKnwGFs7zdOdLK/img.png&quot; data-alt=&quot;윤곽선 보기 모드에서 shift 키로 선택&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJ3b6h/btrH5ePhfVL/DwAodC1ybKnwGFs7zdOdLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJ3b6h%2FbtrH5ePhfVL%2FDwAodC1ybKnwGFs7zdOdLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;206&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;윤곽선 보기 모드에서 shift 키로 선택&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LYAbS/btrH1Bkp4uk/lwbZnUExKeGRAf1C8VLDsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LYAbS/btrH1Bkp4uk/lwbZnUExKeGRAf1C8VLDsK/img.png&quot; data-alt=&quot;다시 Ctrl + Y를 눌러 미리보기 모드로 돌아온다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LYAbS/btrH1Bkp4uk/lwbZnUExKeGRAf1C8VLDsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLYAbS%2FbtrH1Bkp4uk%2FlwbZnUExKeGRAf1C8VLDsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;202&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다시 Ctrl + Y를 눌러 미리보기 모드로 돌아온다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;87&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AYREl/btrH2hFXCys/qv9VKkk5DeKuqsKx1leQpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AYREl/btrH2hFXCys/qv9VKkk5DeKuqsKx1leQpk/img.png&quot; data-alt=&quot;Fill 모드 선택 후, Gradient 선택&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AYREl/btrH2hFXCys/qv9VKkk5DeKuqsKx1leQpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAYREl%2FbtrH2hFXCys%2Fqv9VKkk5DeKuqsKx1leQpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;131&quot; height=&quot;175&quot; data-origin-width=&quot;87&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Fill 모드 선택 후, Gradient 선택&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;면의 색상이 Gradient로 설정 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;665&quot; data-origin-height=&quot;189&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o5LBF/btrH33gaK2b/lcBJp9TKhpoUFxcOL4x6IK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o5LBF/btrH33gaK2b/lcBJp9TKhpoUFxcOL4x6IK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o5LBF/btrH33gaK2b/lcBJp9TKhpoUFxcOL4x6IK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo5LBF%2FbtrH33gaK2b%2FlcBJp9TKhpoUFxcOL4x6IK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;665&quot; height=&quot;189&quot; data-origin-width=&quot;665&quot; data-origin-height=&quot;189&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gradient 의 Start 부분과 End 부분을 적절하게 조정해서 색을 설정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uy2Ns/btrH2gmNhCa/qSv60KncwEeZECzhmu5Sc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uy2Ns/btrH2gmNhCa/qSv60KncwEeZECzhmu5Sc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uy2Ns/btrH2gmNhCa/qSv60KncwEeZECzhmu5Sc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuy2Ns%2FbtrH2gmNhCa%2FqSv60KncwEeZECzhmu5Sc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;602&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 완성.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;926&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FSusb/btrH1BLr3jt/DVr1ikD5S8zJsQksdtK7d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FSusb/btrH1BLr3jt/DVr1ikD5S8zJsQksdtK7d1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FSusb/btrH1BLr3jt/DVr1ikD5S8zJsQksdtK7d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFSusb%2FbtrH1BLr3jt%2FDVr1ikD5S8zJsQksdtK7d1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;926&quot; height=&quot;168&quot; data-origin-width=&quot;926&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/103</guid>
      <comments>https://kakaroo.tistory.com/103#entry103comment</comments>
      <pubDate>Sun, 24 Jul 2022 16:02:05 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 불규칙 패턴</title>
      <link>https://kakaroo.tistory.com/102</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 정사각형을 만든다. 이 때, 크기를 미리 지정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;200 px 의 정사각형을 만든뒤, 배경색을 지정하고 Ctrl + 2로 잠궈둔다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;622&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kUs43/btrHqolikbL/a2ypeiDr6GL349rkcgA9dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kUs43/btrHqolikbL/a2ypeiDr6GL349rkcgA9dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kUs43/btrHqolikbL/a2ypeiDr6GL349rkcgA9dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkUs43%2FbtrHqolikbL%2Fa2ypeiDr6GL349rkcgA9dK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;436&quot; height=&quot;429&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;622&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불규칙적으로 색이 다른 원들을 넣어준다. 테두리를 벗어나도 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;725&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drwBX8/btrHp5MqqXB/l5dPk9H2nVGDJSnktk2ixK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drwBX8/btrHp5MqqXB/l5dPk9H2nVGDJSnktk2ixK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drwBX8/btrHp5MqqXB/l5dPk9H2nVGDJSnktk2ixK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrwBX8%2FbtrHp5MqqXB%2Fl5dPk9H2nVGDJSnktk2ixK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;547&quot; height=&quot;577&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;725&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테두리를 벗어난 원은 반대쪽에도 똑같이 겹칠 수 있게 복사해서 겹칠 자리에 위치해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 오른쪽 위의 파란 원을 그대로 복사, 붙여넣기 해서 Y축 위치만 정사각형 높이 위치만큼 더해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;709&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M4BVi/btrHrwQjsmY/ytbypLxFRda5s6rROJhaM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M4BVi/btrHrwQjsmY/ytbypLxFRda5s6rROJhaM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M4BVi/btrHrwQjsmY/ytbypLxFRda5s6rROJhaM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM4BVi%2FbtrHrwQjsmY%2FytbypLxFRda5s6rROJhaM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;579&quot; height=&quot;592&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;709&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qy1sn/btrHtw3FMXM/mJQfB9C8yypkgIE8LjOSG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qy1sn/btrHtw3FMXM/mJQfB9C8yypkgIE8LjOSG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qy1sn/btrHtw3FMXM/mJQfB9C8yypkgIE8LjOSG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqy1sn%2FbtrHtw3FMXM%2FmJQfB9C8yypkgIE8LjOSG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;563&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;710&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동그라미만 선택해서 그룹화시키고, 뒤 네모배경을 앞으로 보낸뒤, Clipping Mask (Ctrl + 7)를 시킨다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;635&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1zYmw/btrHrOqgqMK/Nn6jIKUZm3sWOkB9QgHvc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1zYmw/btrHrOqgqMK/Nn6jIKUZm3sWOkB9QgHvc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1zYmw/btrHrOqgqMK/Nn6jIKUZm3sWOkB9QgHvc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1zYmw%2FbtrHrOqgqMK%2FNn6jIKUZm3sWOkB9QgHvc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;529&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;635&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 위 생성된 패턴을 swatch 에 추가해보자. 하지만 선택된 게 Clip Group 화되어 있어 이를 path로 만들어야 추가가 가능하다. 패스파인더의 Crop (겹치는 부분만 남기고 나머지는 삭제) 을 처리하면 아래와 같이 원들도 선택이 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;103&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFHAUY/btrHp7co8EM/WTAl2F88jCAhzfSL8rhYV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFHAUY/btrHp7co8EM/WTAl2F88jCAhzfSL8rhYV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFHAUY/btrHp7co8EM/WTAl2F88jCAhzfSL8rhYV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFHAUY%2FbtrHp7co8EM%2FWTAl2F88jCAhzfSL8rhYV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;103&quot; height=&quot;82&quot; data-origin-width=&quot;103&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;627&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Oljrs/btrHpO5hnwm/E0aTp6Cf3jZdZKRniiyha0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Oljrs/btrHpO5hnwm/E0aTp6Cf3jZdZKRniiyha0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Oljrs/btrHpO5hnwm/E0aTp6Cf3jZdZKRniiyha0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOljrs%2FbtrHpO5hnwm%2FE0aTp6Cf3jZdZKRniiyha0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;638&quot; height=&quot;627&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;627&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 swatch 등록이 가능하다.&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/102</guid>
      <comments>https://kakaroo.tistory.com/102#entry102comment</comments>
      <pubDate>Sat, 16 Jul 2022 18:51:33 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 규칙적인 패턴</title>
      <link>https://kakaroo.tistory.com/101</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 반짝이는 빛을 우선 만들어보자&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원을 만든 다음, Stroke는 None 처리하고, Effect에서 Distort &amp;amp; Transform &amp;gt; Pucker &amp;amp; Bloat 을 선택한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/co2IDu/btrHru50bc8/0TsQuiWKE9UKXEztSfbyb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/co2IDu/btrHru50bc8/0TsQuiWKE9UKXEztSfbyb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/co2IDu/btrHru50bc8/0TsQuiWKE9UKXEztSfbyb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fco2IDu%2FbtrHru50bc8%2F0TsQuiWKE9UKXEztSfbyb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;107&quot; height=&quot;90&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ce2SaU/btrHoNF2iJS/KTnZXwv2WKqfID7sbTMkY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ce2SaU/btrHoNF2iJS/KTnZXwv2WKqfID7sbTMkY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ce2SaU/btrHoNF2iJS/KTnZXwv2WKqfID7sbTMkY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fce2SaU%2FbtrHoNF2iJS%2FKTnZXwv2WKqfID7sbTMkY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;326&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영어 사전적인 의미는 아래와 같은데, 실제로 동작되는 건 잘 이해가 안 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;pucker : 주름을 잡다, bloat : 부풀리다&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;pucker 쪽으로 조절을 하면 원에서 대각선 형태로 변형이 된다.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1wzwQ/btrHrvKC0xP/QjSznBCNkfgDX36K3HxUuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1wzwQ/btrHrvKC0xP/QjSznBCNkfgDX36K3HxUuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1wzwQ/btrHrvKC0xP/QjSznBCNkfgDX36K3HxUuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1wzwQ%2FbtrHrvKC0xP%2FQjSznBCNkfgDX36K3HxUuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;514&quot; height=&quot;275&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bloat 쪽으로 조절하면 12, 3, 6, 9시 방향에서 누르는 듯하게 변형이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클로버 타입은 bloat 쪽으로 조절을 하면 모양이 나올듯 하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mg3T2/btrHo7kuvN4/uCsoV7QeFmMhigAtmR2kkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mg3T2/btrHo7kuvN4/uCsoV7QeFmMhigAtmR2kkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mg3T2/btrHo7kuvN4/uCsoV7QeFmMhigAtmR2kkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmg3T2%2FbtrHo7kuvN4%2FuCsoV7QeFmMhigAtmR2kkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;515&quot; height=&quot;282&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 pucker 쪽을 많이 주게 되면 원하는 빛 모양이 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zw3gt/btrHpozsEq5/MMEkfFLdkMDOpnKkYykM7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zw3gt/btrHpozsEq5/MMEkfFLdkMDOpnKkYykM7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zw3gt/btrHpozsEq5/MMEkfFLdkMDOpnKkYykM7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZw3gt%2FbtrHpozsEq5%2FMMEkfFLdkMDOpnKkYykM7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;308&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;308&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 패턴 등록&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1에서 만든 빛 오브젝트를 Swatch 패널로 드래그 해서 등록한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTj763/btrHo7SneEc/xBHqy4WkUkUb3VoYweEUuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTj763/btrHo7SneEc/xBHqy4WkUkUb3VoYweEUuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTj763/btrHo7SneEc/xBHqy4WkUkUb3VoYweEUuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTj763%2FbtrHo7SneEc%2FxBHqy4WkUkUb3VoYweEUuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;192&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등록된 패턴을 더블 클릭하면 아래와 같은 pattern option이 나타난다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WkVTW/btrHp2W1ZvW/VqqdrQkvJYu9gGKDxoJi5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WkVTW/btrHp2W1ZvW/VqqdrQkvJYu9gGKDxoJi5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WkVTW/btrHp2W1ZvW/VqqdrQkvJYu9gGKDxoJi5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWkVTW%2FbtrHp2W1ZvW%2FVqqdrQkvJYu9gGKDxoJi5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;348&quot; height=&quot;559&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hex by colum 으로 선택하고 위 버튼 중 Doen 으로 저장해주자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oY7lx/btrHp3n7MIj/k1gnkvRAYYljfKbRNXE9l1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oY7lx/btrHp3n7MIj/k1gnkvRAYYljfKbRNXE9l1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oY7lx/btrHp3n7MIj/k1gnkvRAYYljfKbRNXE9l1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoY7lx%2FbtrHp3n7MIj%2Fk1gnkvRAYYljfKbRNXE9l1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;263&quot; height=&quot;42&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;42&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도형을 그려 그 안을 패턴으로 채워보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/In6i9/btrHrMFXpvZ/vsb0JvNEVbZph1iZHQOT3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/In6i9/btrHrMFXpvZ/vsb0JvNEVbZph1iZHQOT3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/In6i9/btrHrMFXpvZ/vsb0JvNEVbZph1iZHQOT3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIn6i9%2FbtrHrMFXpvZ%2Fvsb0JvNEVbZph1iZHQOT3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;343&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패턴이 너무 큰 것 같다. Scale 버튼을 눌러 안의 패턴의 사이즈를 줄일 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6THjV/btrHo8cGo89/kXuL8NF0WYIuvVwk4uXEl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6THjV/btrHo8cGo89/kXuL8NF0WYIuvVwk4uXEl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6THjV/btrHo8cGo89/kXuL8NF0WYIuvVwk4uXEl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6THjV%2FbtrHo8cGo89%2FkXuL8NF0WYIuvVwk4uXEl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;304&quot; height=&quot;364&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;419&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPWxra/btrHumfrziK/spm2Ox2VDrWhNgskstuh5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPWxra/btrHumfrziK/spm2Ox2VDrWhNgskstuh5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPWxra/btrHumfrziK/spm2Ox2VDrWhNgskstuh5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPWxra%2FbtrHumfrziK%2Fspm2Ox2VDrWhNgskstuh5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;419&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;419&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>별</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/101</guid>
      <comments>https://kakaroo.tistory.com/101#entry101comment</comments>
      <pubDate>Sat, 16 Jul 2022 17:51:01 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 하트, 왜곡</title>
      <link>https://kakaroo.tistory.com/100</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;하트 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양끝이 둥근 사각형을 만든다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJkZzY/btrHfRzYVXY/iKOwkIhaaOQDa8cvgFLAsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJkZzY/btrHfRzYVXY/iKOwkIhaaOQDa8cvgFLAsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJkZzY/btrHfRzYVXY/iKOwkIhaaOQDa8cvgFLAsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJkZzY%2FbtrHfRzYVXY%2FiKOwkIhaaOQDa8cvgFLAsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;147&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;복, 붙 한뒤 90도로 돌려준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xwyq3/btrHdx36lVT/yS3BJh0oe7efA0HWvu7DDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xwyq3/btrHdx36lVT/yS3BJh0oe7efA0HWvu7DDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xwyq3/btrHdx36lVT/yS3BJh0oe7efA0HWvu7DDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxwyq3%2FbtrHdx36lVT%2FyS3BJh0oe7efA0HWvu7DDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;279&quot; height=&quot;280&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패스파인더 &amp;gt; divide &amp;gt; ungroup &amp;gt; 불필요한 부분 자르기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;394&quot; data-origin-height=&quot;396&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xNGjd/btrHfQnxG45/VJlqz5sGaWqZLaKnXebF11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xNGjd/btrHfQnxG45/VJlqz5sGaWqZLaKnXebF11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xNGjd/btrHfQnxG45/VJlqz5sGaWqZLaKnXebF11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxNGjd%2FbtrHfQnxG45%2FVJlqz5sGaWqZLaKnXebF11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;270&quot; height=&quot;271&quot; data-origin-width=&quot;394&quot; data-origin-height=&quot;396&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;90도로 돌려준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q0zaD/btrHd2bqEPd/thz3yVPeBKoaCXHlK8bnLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q0zaD/btrHd2bqEPd/thz3yVPeBKoaCXHlK8bnLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q0zaD/btrHd2bqEPd/thz3yVPeBKoaCXHlK8bnLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq0zaD%2FbtrHd2bqEPd%2Fthz3yVPeBKoaCXHlK8bnLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;256&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물방울 브러쉬 툴로 구역을 나눠준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkiUm5/btrHdJXrxpd/WkaKYRwIqTdtwZe82bKp31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkiUm5/btrHdJXrxpd/WkaKYRwIqTdtwZe82bKp31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkiUm5/btrHdJXrxpd/WkaKYRwIqTdtwZe82bKp31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkiUm5%2FbtrHdJXrxpd%2FWkaKYRwIqTdtwZe82bKp31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;261&quot; height=&quot;109&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Yvm3o/btrG9MOtgES/JTH6Fjc04J0tkgYQ3PTltK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Yvm3o/btrG9MOtgES/JTH6Fjc04J0tkgYQ3PTltK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Yvm3o/btrG9MOtgES/JTH6Fjc04J0tkgYQ3PTltK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYvm3o%2FbtrG9MOtgES%2FJTH6Fjc04J0tkgYQ3PTltK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;447&quot; height=&quot;373&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패스파인더 - divide - 하나하나 자르거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패스파인더 - minus front&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;538&quot; data-origin-height=&quot;440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CXaLA/btrHdw48tvh/x8oQB76qg37GCXERe15Ia0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CXaLA/btrHdw48tvh/x8oQB76qg37GCXERe15Ia0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CXaLA/btrHdw48tvh/x8oQB76qg37GCXERe15Ia0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCXaLA%2FbtrHdw48tvh%2Fx8oQB76qg37GCXERe15Ia0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;367&quot; height=&quot;300&quot; data-origin-width=&quot;538&quot; data-origin-height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넣어줄 오브젝트를 만든다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdohRi/btrHd2oYIZu/kBqHOXHMkSe2YdXN7hTNvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdohRi/btrHd2oYIZu/kBqHOXHMkSe2YdXN7hTNvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdohRi/btrHd2oYIZu/kBqHOXHMkSe2YdXN7hTNvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdohRi%2FbtrHd2oYIZu%2FkBqHOXHMkSe2YdXN7hTNvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;321&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넣을 오브젝트와 넣어줄 오브젝트 영역을 선택한 뒤, 왜곡 시킨다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nVa2K/btrHdKa0UHT/FFBOjqyNw5knyJSLGoGZ3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nVa2K/btrHdKa0UHT/FFBOjqyNw5knyJSLGoGZ3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nVa2K/btrHdKa0UHT/FFBOjqyNw5knyJSLGoGZ3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnVa2K%2FbtrHdKa0UHT%2FFFBOjqyNw5knyJSLGoGZ3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1153&quot; height=&quot;499&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 에러가 나오는데, 틀이 요소보다 아래에 있기 때문이다. 틀이 될 하트를 상단에 배치한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;157&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsLjOd/btrHdauwepG/QpUtqmkW09spbzojJ5TevK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsLjOd/btrHdauwepG/QpUtqmkW09spbzojJ5TevK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsLjOd/btrHdauwepG/QpUtqmkW09spbzojJ5TevK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsLjOd%2FbtrHdauwepG%2FQpUtqmkW09spbzojJ5TevK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;620&quot; height=&quot;157&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;157&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 Envelop Distort &amp;gt;&amp;nbsp; Make with Top object (Alt + Ctrl + C)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ibkt9/btrHdcskx2V/TchF3DyBiFBmOq2MsvfP51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ibkt9/btrHdcskx2V/TchF3DyBiFBmOq2MsvfP51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ibkt9/btrHdcskx2V/TchF3DyBiFBmOq2MsvfP51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIbkt9%2FbtrHdcskx2V%2FTchF3DyBiFBmOq2MsvfP51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;534&quot; height=&quot;427&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://www.youtube.com/watch?v=UkUw6yXEaEA&amp;amp;t=258s&quot;&gt;https://www.youtube.com/watch?v=UkUw6yXEaEA&amp;amp;t=258s&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=UkUw6yXEaEA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/dL5AKx/hyO4Lzcbz3/scgSV4os7fnSmv2OC7ElX1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/UkUw6yXEaEA&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>왜곡</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/100</guid>
      <comments>https://kakaroo.tistory.com/100#entry100comment</comments>
      <pubDate>Wed, 13 Jul 2022 21:39:39 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - watermelon</title>
      <link>https://kakaroo.tistory.com/99</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BG color : #150923&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바깥 원 : circle 550 x 550 px, #44c614 -&amp;gt; swatch에 색상 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간 원 : Object &amp;gt; Path &amp;gt; Offset path : -20 px, #fff6bc -&amp;gt; swatch에 색상 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안쪽 원 : Object &amp;gt; Path &amp;gt; Offset path : -20 px, #ff2449&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바깥 원을 copy, paste in front&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;295&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csW2Rh/btrGPIS9Qwl/tWKw2Kqi9wAdPLBHbgzb01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csW2Rh/btrGPIS9Qwl/tWKw2Kqi9wAdPLBHbgzb01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csW2Rh/btrGPIS9Qwl/tWKw2Kqi9wAdPLBHbgzb01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsW2Rh%2FbtrGPIS9Qwl%2FtWKw2Kqi9wAdPLBHbgzb01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;295&quot; height=&quot;208&quot; data-origin-width=&quot;295&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bring to front (ctrl+shift+])&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dMxOW6/btrGPIyTaJW/b25P7aet5gKVchUPTltR00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dMxOW6/btrGPIyTaJW/b25P7aet5gKVchUPTltR00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dMxOW6/btrGPIyTaJW/b25P7aet5gKVchUPTltR00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdMxOW6%2FbtrGPIyTaJW%2Fb25P7aet5gKVchUPTltR00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;235&quot; height=&quot;207&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scissors tool로 반을 자른다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;272&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lOXcL/btrGTxhzmhZ/mZN1Y1g7HmOsO5D7aNpt0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lOXcL/btrGTxhzmhZ/mZN1Y1g7HmOsO5D7aNpt0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lOXcL/btrGTxhzmhZ/mZN1Y1g7HmOsO5D7aNpt0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlOXcL%2FbtrGTxhzmhZ%2FmZN1Y1g7HmOsO5D7aNpt0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;272&quot; height=&quot;236&quot; data-origin-width=&quot;272&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반쪽원의 끊어진 패스를 연결한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Path - Join (Ctrl + J)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 반원은 hide&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽 반원을 Gradient 처리&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmp8gT/btrGPI6Evxs/kYf7pRiqkrFMUUXOVzJkDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmp8gT/btrGPI6Evxs/kYf7pRiqkrFMUUXOVzJkDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmp8gT/btrGPI6Evxs/kYf7pRiqkrFMUUXOVzJkDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcmp8gT%2FbtrGPI6Evxs%2FkYf7pRiqkrFMUUXOVzJkDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;421&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽을 좀 더 어둡게&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Color &amp;gt; HSB에서 B를 조절&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;337&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDXKSo/btrGQp6CTYs/qNgDoy6UOx8VKqmYGIBZuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDXKSo/btrGQp6CTYs/qNgDoy6UOx8VKqmYGIBZuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDXKSo/btrGQp6CTYs/qNgDoy6UOx8VKqmYGIBZuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDXKSo%2FbtrGQp6CTYs%2FqNgDoy6UOx8VKqmYGIBZuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;337&quot; height=&quot;200&quot; data-origin-width=&quot;337&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o0Mds/btrGP42L6ZA/h4YXSufLQ29AsrooKEcBH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o0Mds/btrGP42L6ZA/h4YXSufLQ29AsrooKEcBH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o0Mds/btrGP42L6ZA/h4YXSufLQ29AsrooKEcBH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo0Mds%2FbtrGP42L6ZA%2Fh4YXSufLQ29AsrooKEcBH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;436&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수박 줄무늬 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;rectangle &amp;gt; 1000 x 25 px&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Effect &amp;gt; Distort &amp;amp; transform &amp;gt; Zig Zag &amp;gt;&amp;nbsp;Size: 12 px, Ridges per segment : 10, smooth&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;331&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBaV9Z/btrGSyOPqKk/714L9DKckPgI3ENInzEkek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBaV9Z/btrGSyOPqKk/714L9DKckPgI3ENInzEkek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBaV9Z/btrGSyOPqKk/714L9DKckPgI3ENInzEkek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBaV9Z%2FbtrGSyOPqKk%2F714L9DKckPgI3ENInzEkek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;331&quot; height=&quot;65&quot; data-origin-width=&quot;331&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세로로 돌려서 복사&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OnLyV/btrGRHFfjej/T4xRKXGmELu9zNNGs9TzfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OnLyV/btrGRHFfjej/T4xRKXGmELu9zNNGs9TzfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OnLyV/btrGRHFfjej/T4xRKXGmELu9zNNGs9TzfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOnLyV%2FbtrGRHFfjej%2FT4xRKXGmELu9zNNGs9TzfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;372&quot; height=&quot;376&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌우 간격 조절 후, Group&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;192&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNnP6T/btrGPKwIeZz/Qjfo4V0kue8bZluYX0A0mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNnP6T/btrGPKwIeZz/Qjfo4V0kue8bZluYX0A0mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNnP6T/btrGPKwIeZz/Qjfo4V0kue8bZluYX0A0mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNnP6T%2FbtrGPKwIeZz%2FQjfo4V0kue8bZluYX0A0mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;192&quot; height=&quot;120&quot; data-origin-width=&quot;192&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YdN6D/btrGQcTsNTa/WkykBIHT7qHg5vdvZWkyn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YdN6D/btrGQcTsNTa/WkykBIHT7qHg5vdvZWkyn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YdN6D/btrGQcTsNTa/WkykBIHT7qHg5vdvZWkyn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYdN6D%2FbtrGQcTsNTa%2FWkykBIHT7qHg5vdvZWkyn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;107&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;줄무늬 마스크&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반원 선택 &amp;gt; 복사&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;425&quot; data-origin-height=&quot;154&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VNYta/btrGPJ5AfWI/ZJFtMKx8G7lCksrqucBcd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VNYta/btrGPJ5AfWI/ZJFtMKx8G7lCksrqucBcd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VNYta/btrGPJ5AfWI/ZJFtMKx8G7lCksrqucBcd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVNYta%2FbtrGPJ5AfWI%2FZJFtMKx8G7lCksrqucBcd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;425&quot; height=&quot;154&quot; data-origin-width=&quot;425&quot; data-origin-height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;줄무늬 선택 &amp;gt; Transparency &amp;gt; 더블클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8oGYt/btrGPNff5Wh/1BkDwDjLkjrD6cfOlEyLUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8oGYt/btrGPNff5Wh/1BkDwDjLkjrD6cfOlEyLUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8oGYt/btrGPNff5Wh/1BkDwDjLkjrD6cfOlEyLUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8oGYt%2FbtrGPNff5Wh%2F1BkDwDjLkjrD6cfOlEyLUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;183&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Paste in Front (Ctrl + F)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vbtJx/btrGTwiGmGx/8OXRi4nWLJfrHFk1xw1qdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vbtJx/btrGTwiGmGx/8OXRi4nWLJfrHFk1xw1qdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vbtJx/btrGTwiGmGx/8OXRi4nWLJfrHFk1xw1qdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvbtJx%2FbtrGTwiGmGx%2F8OXRi4nWLJfrHFk1xw1qdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;184&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dByiOf/btrGPKpSACN/RI4hHMK8ODWBO5Cgxzw3k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dByiOf/btrGPKpSACN/RI4hHMK8ODWBO5Cgxzw3k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dByiOf/btrGPKpSACN/RI4hHMK8ODWBO5Cgxzw3k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdByiOf%2FbtrGPKpSACN%2FRI4hHMK8ODWBO5Cgxzw3k1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;375&quot; height=&quot;375&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간 원 테두리 따기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간 원 복사해서 맨 앞으로 복사 &amp;gt; Swap Fill and stroke &amp;gt; Fill None으로 처리 &amp;gt; Path로 변경&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bw52C/btrGSUqtkL6/VterHnMulhzh3FkcB9R6q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bw52C/btrGSUqtkL6/VterHnMulhzh3FkcB9R6q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bw52C/btrGSUqtkL6/VterHnMulhzh3FkcB9R6q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBw52C%2FbtrGSUqtkL6%2FVterHnMulhzh3FkcB9R6q1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;421&quot; height=&quot;287&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Scissors tool로 자른다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtOndZ/btrGQoNrkad/TyeOuKELmwzS5N10IOhkpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtOndZ/btrGQoNrkad/TyeOuKELmwzS5N10IOhkpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtOndZ/btrGQoNrkad/TyeOuKELmwzS5N10IOhkpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtOndZ%2FbtrGQoNrkad%2FTyeOuKELmwzS5N10IOhkpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;388&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선을 굵게 처리&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buf1Tk/btrGQEJhsPG/q8dCG3jrdgAzwkij6bOkB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buf1Tk/btrGQEJhsPG/q8dCG3jrdgAzwkij6bOkB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buf1Tk/btrGQEJhsPG/q8dCG3jrdgAzwkij6bOkB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbuf1Tk%2FbtrGQEJhsPG%2Fq8dCG3jrdgAzwkij6bOkB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;747&quot; height=&quot;737&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;737&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수박씨 그리기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Circle 20 px -&amp;gt; Direct selection tool로 아래 부분 잡기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;92&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uKlHV/btrGQZl7vih/tKJeHuMjHmyJZBHh7FuFDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uKlHV/btrGQZl7vih/tKJeHuMjHmyJZBHh7FuFDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uKlHV/btrGQZl7vih/tKJeHuMjHmyJZBHh7FuFDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuKlHV%2FbtrGQZl7vih%2FtKJeHuMjHmyJZBHh7FuFDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;92&quot; height=&quot;94&quot; data-origin-width=&quot;92&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래로 shift + Arrow down 1회&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;83&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crsJ2y/btrGRHrIrQG/0a4VzXhyLhzMz4J57jkKm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crsJ2y/btrGRHrIrQG/0a4VzXhyLhzMz4J57jkKm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crsJ2y/btrGRHrIrQG/0a4VzXhyLhzMz4J57jkKm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrsJ2y%2FbtrGRHrIrQG%2F0a4VzXhyLhzMz4J57jkKm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;83&quot; height=&quot;107&quot; data-origin-width=&quot;83&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뾰족하게 Achor Point Tool 로 아래 부분 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;81&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAV7KK/btrGQclA542/1oJCKCO0lxSbfa6dQ3G9u1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAV7KK/btrGQclA542/1oJCKCO0lxSbfa6dQ3G9u1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAV7KK/btrGQclA542/1oJCKCO0lxSbfa6dQ3G9u1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAV7KK%2FbtrGQclA542%2F1oJCKCO0lxSbfa6dQ3G9u1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;81&quot; height=&quot;109&quot; data-origin-width=&quot;81&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Effect &amp;gt; Distrot &amp;amp; Transform &amp;gt; Transform&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/42D9C/btrGP5UV7eL/22xErmTXL1WOSaEWTPCUMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/42D9C/btrGP5UV7eL/22xErmTXL1WOSaEWTPCUMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/42D9C/btrGP5UV7eL/22xErmTXL1WOSaEWTPCUMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F42D9C%2FbtrGP5UV7eL%2F22xErmTXL1WOSaEWTPCUMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;722&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로 생긴 것은 object 로 등록되지 않기 때문에 Object &amp;gt; Expand Apperance&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 개 복사해서 여기저기 분포시킨다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;735&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/thhDS/btrGS5TdApc/MiKjC4gu0n5Ac5B4tIdcJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/thhDS/btrGS5TdApc/MiKjC4gu0n5Ac5B4tIdcJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/thhDS/btrGS5TdApc/MiKjC4gu0n5Ac5B4tIdcJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FthhDS%2FbtrGS5TdApc%2FMiKjC4gu0n5Ac5B4tIdcJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;605&quot; height=&quot;603&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;735&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 반원을 unhide 한 뒤에 맨 앞으로 보낸다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqdObi/btrGQDjj75w/mL3B9a5bWUHIwv55KCkzEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqdObi/btrGQDjj75w/mL3B9a5bWUHIwv55KCkzEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqdObi/btrGQDjj75w/mL3B9a5bWUHIwv55KCkzEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqdObi%2FbtrGQDjj75w%2FmL3B9a5bWUHIwv55KCkzEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;137&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 반원을 맨안쪽 원 색깔로 Gradient 처리한 뒤, 우측 Gradient 값을 아래와 같이 변경한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UvE25/btrGS38VOkz/KylnkkfERzKQfVArnBneo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UvE25/btrGS38VOkz/KylnkkfERzKQfVArnBneo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UvE25/btrGS38VOkz/KylnkkfERzKQfVArnBneo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUvE25%2FbtrGS38VOkz%2FKylnkkfERzKQfVArnBneo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;470&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반원의 Transparency 를 overlay로 변경&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;845&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dZJvjj/btrGSTE8yeJ/NDRiSXdx6G5xkaIYSDxDt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dZJvjj/btrGSTE8yeJ/NDRiSXdx6G5xkaIYSDxDt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dZJvjj/btrGSTE8yeJ/NDRiSXdx6G5xkaIYSDxDt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdZJvjj%2FbtrGSTE8yeJ%2FNDRiSXdx6G5xkaIYSDxDt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;845&quot; height=&quot;344&quot; data-origin-width=&quot;845&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 번 더 색상을 입혀서 효과를 준다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;438&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI87rM/btrGQb1kXM8/adLqwohePwq08oHnp4a9w0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI87rM/btrGQb1kXM8/adLqwohePwq08oHnp4a9w0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI87rM/btrGQb1kXM8/adLqwohePwq08oHnp4a9w0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI87rM%2FbtrGQb1kXM8%2FadLqwohePwq08oHnp4a9w0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;857&quot; height=&quot;438&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;438&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nn3uK/btrGRHecsiI/e6E06FM6c3VXRHf6TFOs7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nn3uK/btrGRHecsiI/e6E06FM6c3VXRHf6TFOs7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nn3uK/btrGRHecsiI/e6E06FM6c3VXRHf6TFOs7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNn3uK%2FbtrGRHecsiI%2Fe6E06FM6c3VXRHf6TFOs7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;525&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>Expand Apperarance</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/99</guid>
      <comments>https://kakaroo.tistory.com/99#entry99comment</comments>
      <pubDate>Sat, 9 Jul 2022 14:06:14 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 로켓</title>
      <link>https://kakaroo.tistory.com/98</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfSC2s/btrGt1EdcNz/BihVZUevz4PSLoNGBt1hEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfSC2s/btrGt1EdcNz/BihVZUevz4PSLoNGBt1hEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfSC2s/btrGt1EdcNz/BihVZUevz4PSLoNGBt1hEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfSC2s%2FbtrGt1EdcNz%2FBihVZUevz4PSLoNGBt1hEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;826&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;자주 쓰일 color를 미리 Rectangle로 생성&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uE6Oz/btrGnWChyZX/UvqLqk4QJ1H85Ff9dGEaAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uE6Oz/btrGnWChyZX/UvqLqk4QJ1H85Ff9dGEaAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uE6Oz/btrGnWChyZX/UvqLqk4QJ1H85Ff9dGEaAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuE6Oz%2FbtrGnWChyZX%2FUvqLqk4QJ1H85Ff9dGEaAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;757&quot; height=&quot;101&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;200 px X 200px 크기 차례대로 만들어 그룹핑&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;244&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1jSYA/btrGmoMM2F7/vBD1tii6uIQk2BRLRBayRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1jSYA/btrGmoMM2F7/vBD1tii6uIQk2BRLRBayRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1jSYA/btrGmoMM2F7/vBD1tii6uIQk2BRLRBayRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1jSYA%2FbtrGmoMM2F7%2FvBD1tii6uIQk2BRLRBayRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;244&quot; height=&quot;103&quot; data-origin-width=&quot;244&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 000f15&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. fff6c7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ff4e00&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 314d51&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 46665a&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 578476&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. ffa440&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Grid 격자 설정&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz7Vum/btrGjcs2lCC/uC3DES0f57JAoKzR3llLik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz7Vum/btrGjcs2lCC/uC3DES0f57JAoKzR3llLik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz7Vum/btrGjcs2lCC/uC3DES0f57JAoKzR3llLik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz7Vum%2FbtrGjcs2lCC%2FuC3DES0f57JAoKzR3llLik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;216&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ax6MT/btrGlgOZT8t/fjATKl9twUuvQEZzkCR1YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ax6MT/btrGlgOZT8t/fjATKl9twUuvQEZzkCR1YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ax6MT/btrGlgOZT8t/fjATKl9twUuvQEZzkCR1YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAx6MT%2FbtrGlgOZT8t%2FfjATKl9twUuvQEZzkCR1YK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;272&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + ' : 격자 보이기(감추기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;배경 그리기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Artboard 크기의 rectangle 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;몸통 그리기&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;117&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QPfIm/btrGlTFIP5k/r747UwFEWF2AuaMuYJOIr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QPfIm/btrGlTFIP5k/r747UwFEWF2AuaMuYJOIr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QPfIm/btrGlTFIP5k/r747UwFEWF2AuaMuYJOIr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQPfIm%2FbtrGlTFIP5k%2Fr747UwFEWF2AuaMuYJOIr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;117&quot; height=&quot;412&quot; data-origin-width=&quot;117&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Copy, Paste in Front&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXj1IY/btrGiQQgDDV/V1D3kYT4UoaSHrqvkg8j30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXj1IY/btrGiQQgDDV/V1D3kYT4UoaSHrqvkg8j30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXj1IY/btrGiQQgDDV/V1D3kYT4UoaSHrqvkg8j30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXj1IY%2FbtrGiQQgDDV%2FV1D3kYT4UoaSHrqvkg8j30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;208&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Transform &amp;gt; Refelct &amp;gt; Vertical&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6w9V9/btrGnilh0JH/tbtzROuc43FTs9uyIPM8UK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6w9V9/btrGnilh0JH/tbtzROuc43FTs9uyIPM8UK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6w9V9/btrGnilh0JH/tbtzROuc43FTs9uyIPM8UK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6w9V9%2FbtrGnilh0JH%2FtbtzROuc43FTs9uyIPM8UK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;144&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRulEB/btrGjdrUrvO/kJyGyN6qYCdWxYujkUgSh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRulEB/btrGjdrUrvO/kJyGyN6qYCdWxYujkUgSh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRulEB/btrGjdrUrvO/kJyGyN6qYCdWxYujkUgSh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRulEB%2FbtrGjdrUrvO%2FkJyGyN6qYCdWxYujkUgSh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;212&quot; height=&quot;408&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 구성된 layer는 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;190&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMvkQ9/btrGjDYdL8o/rkMj75Bd8tRkAESV7kpLCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMvkQ9/btrGjDYdL8o/rkMj75Bd8tRkAESV7kpLCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMvkQ9/btrGjDYdL8o/rkMj75Bd8tRkAESV7kpLCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMvkQ9%2FbtrGjDYdL8o%2FrkMj75Bd8tRkAESV7kpLCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;312&quot; height=&quot;190&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;190&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2개의 pathfinder &amp;gt; merge&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래에 rectange &amp;gt; pathfinder minus front&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nyVcR/btrGnXnFI7x/B83jkhKudOSoODh6IehdiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nyVcR/btrGnXnFI7x/B83jkhKudOSoODh6IehdiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nyVcR/btrGnXnFI7x/B83jkhKudOSoODh6IehdiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnyVcR%2FbtrGnXnFI7x%2FB83jkhKudOSoODh6IehdiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;327&quot; height=&quot;426&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;426&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceUlrd/btrGlgVQMHX/cFf1UKylNT5tEKSE2QtCI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceUlrd/btrGlgVQMHX/cFf1UKylNT5tEKSE2QtCI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceUlrd/btrGlgVQMHX/cFf1UKylNT5tEKSE2QtCI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceUlrd%2FbtrGlgVQMHX%2FcFf1UKylNT5tEKSE2QtCI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;211&quot; height=&quot;355&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;색칠하기&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjdX6m/btrGngOylvA/jkMSRTteODsA1lG1rxiiC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjdX6m/btrGngOylvA/jkMSRTteODsA1lG1rxiiC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjdX6m/btrGngOylvA/jkMSRTteODsA1lG1rxiiC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjdX6m%2FbtrGngOylvA%2FjkMSRTteODsA1lG1rxiiC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;306&quot; height=&quot;159&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 path는 merge가 되었다.&amp;nbsp;반씩 나눠서 칠하려면 path를 나눠준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 하나를 복사해서 붙여준뒤,&amp;nbsp;rectange로 나눠주고 pathfinder &amp;gt; intersect&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;331&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YpDXu/btrGjEiz6tz/nsnZmskGjiCdmKK3n9QK7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YpDXu/btrGjEiz6tz/nsnZmskGjiCdmKK3n9QK7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YpDXu/btrGjEiz6tz/nsnZmskGjiCdmKK3n9QK7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYpDXu%2FbtrGjEiz6tz%2FnsnZmskGjiCdmKK3n9QK7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;202&quot; height=&quot;331&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;331&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1OBGy/btrGiugqe9a/ZFEaLIvvdR8cEpnNsKZ5AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1OBGy/btrGiugqe9a/ZFEaLIvvdR8cEpnNsKZ5AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1OBGy/btrGiugqe9a/ZFEaLIvvdR8cEpnNsKZ5AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1OBGy%2FbtrGiugqe9a%2FZFEaLIvvdR8cEpnNsKZ5AK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;187&quot; height=&quot;120&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bO9ID3/btrGhVZBEbH/nNFWvgcxchMrLSlP5R0ng0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bO9ID3/btrGhVZBEbH/nNFWvgcxchMrLSlP5R0ng0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bO9ID3/btrGhVZBEbH/nNFWvgcxchMrLSlP5R0ng0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbO9ID3%2FbtrGhVZBEbH%2FnNFWvgcxchMrLSlP5R0ng0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;180&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;띠 만들기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2개의 원을 그려준다. 큰 원이 back에 위치한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vewna/btrGksa7LUt/xzixXIVkTDs7p7zAQykQt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vewna/btrGksa7LUt/xzixXIVkTDs7p7zAQykQt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vewna/btrGksa7LUt/xzixXIVkTDs7p7zAQykQt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvewna%2FbtrGksa7LUt%2FxzixXIVkTDs7p7zAQykQt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;481&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Minus front 로 작은 원을 없애준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWuCmc/btrGjFaIjBM/vQbOiC1TgvxPCrf5dHtUPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWuCmc/btrGjFaIjBM/vQbOiC1TgvxPCrf5dHtUPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWuCmc/btrGjFaIjBM/vQbOiC1TgvxPCrf5dHtUPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWuCmc%2FbtrGjFaIjBM%2FvQbOiC1TgvxPCrf5dHtUPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;286&quot; height=&quot;237&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몸통을 복제한 뒤, 맨 앞으로 보내준 다음 intersect로 겹치는 부분만 가져온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1U0AU/btrGnhUe4YQ/0ac77NZp8uzb20x6fnMZS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1U0AU/btrGnhUe4YQ/0ac77NZp8uzb20x6fnMZS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1U0AU/btrGnhUe4YQ/0ac77NZp8uzb20x6fnMZS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1U0AU%2FbtrGnhUe4YQ%2F0ac77NZp8uzb20x6fnMZS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;853&quot; height=&quot;824&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래에도 동일한 방법으로 띠를 만든다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;804&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r5qKd/btrGg1LLTMT/BQESZTcs1FLo2pf2znOnA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r5qKd/btrGg1LLTMT/BQESZTcs1FLo2pf2znOnA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r5qKd/btrGg1LLTMT/BQESZTcs1FLo2pf2znOnA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr5qKd%2FbtrGg1LLTMT%2FBQESZTcs1FLo2pf2znOnA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;934&quot; height=&quot;804&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;804&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bs8nnJ/btrGh0ZUxPe/AaxBrPkU6YdpwezjkU4Xn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bs8nnJ/btrGh0ZUxPe/AaxBrPkU6YdpwezjkU4Xn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bs8nnJ/btrGh0ZUxPe/AaxBrPkU6YdpwezjkU4Xn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbs8nnJ%2FbtrGh0ZUxPe%2FAaxBrPkU6YdpwezjkU4Xn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;793&quot; height=&quot;455&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창문과 라인 넣기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fill, Stroke(7px)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WcZ85/btrGmpZhY5x/fjOeFZ8Ea8ZfjekXbAypj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WcZ85/btrGmpZhY5x/fjOeFZ8Ea8ZfjekXbAypj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WcZ85/btrGmpZhY5x/fjOeFZ8Ea8ZfjekXbAypj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWcZ85%2FbtrGmpZhY5x%2FfjOeFZ8Ea8ZfjekXbAypj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;479&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;랜딩 기어 넣기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvJxIx/btrGpEBrIGq/IqH06RHxPidlpt0IpIQ3Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvJxIx/btrGpEBrIGq/IqH06RHxPidlpt0IpIQ3Jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvJxIx/btrGpEBrIGq/IqH06RHxPidlpt0IpIQ3Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvJxIx%2FbtrGpEBrIGq%2FIqH06RHxPidlpt0IpIQ3Jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;284&quot; height=&quot;472&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Direct selection tool 선택 &amp;gt; 원의 아래 영역 선택 &amp;gt; Down 화살표 키&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbfC9z/btrGlgO43Fa/UlmBEFlbVPulZZvc7RVH3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbfC9z/btrGlgO43Fa/UlmBEFlbVPulZZvc7RVH3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbfC9z/btrGlgO43Fa/UlmBEFlbVPulZZvc7RVH3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbfC9z%2FbtrGlgO43Fa%2FUlmBEFlbVPulZZvc7RVH3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;262&quot; height=&quot;556&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 부분 뾰족하게 만들기 &amp;gt;&amp;nbsp;Anchor Point Tool 로 아래 부분 터치&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UFSBm/btrGlhULa4S/RIqBa1bV9uSKqOQWCFXieK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UFSBm/btrGlhULa4S/RIqBa1bV9uSKqOQWCFXieK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UFSBm/btrGlhULa4S/RIqBa1bV9uSKqOQWCFXieK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUFSBm%2FbtrGlhULa4S%2FRIqBa1bV9uSKqOQWCFXieK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;313&quot; height=&quot;118&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cH7MIg/btrGiQpffH8/gF0cTeEXI8kbkaL4vEXIgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cH7MIg/btrGiQpffH8/gF0cTeEXI8kbkaL4vEXIgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cH7MIg/btrGiQpffH8/gF0cTeEXI8kbkaL4vEXIgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcH7MIg%2FbtrGiQpffH8%2FgF0cTeEXI8kbkaL4vEXIgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;264&quot; height=&quot;562&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌우 다리를 펜툴로 그려서 back으로 옮겨준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/da5dXB/btrGnXOPrqP/UbqhO5PH9KvgZPW3F5bbX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/da5dXB/btrGnXOPrqP/UbqhO5PH9KvgZPW3F5bbX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/da5dXB/btrGnXOPrqP/UbqhO5PH9KvgZPW3F5bbX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fda5dXB%2FbtrGnXOPrqP%2FUbqhO5PH9KvgZPW3F5bbX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;580&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;행성 그리기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원을 2개 그리고, 하나만 gradient 처리한다. 나머지 하나는 띠 형태로 늘려준다 (ALT 키를 누르고 드래그 하면 좌우상하 대칭)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;282&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1kLSU/btrGun8mDFa/WkhewGeooPS3ux6LX4NC71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1kLSU/btrGun8mDFa/WkhewGeooPS3ux6LX4NC71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1kLSU/btrGun8mDFa/WkhewGeooPS3ux6LX4NC71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1kLSU%2FbtrGun8mDFa%2FWkhewGeooPS3ux6LX4NC71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;282&quot; height=&quot;164&quot; data-origin-width=&quot;282&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;띠를 하나 더 복사해서 행성 뒤에 나타낼수 있게 작게 만든다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/616mV/btrGq0zeUAJ/zFK46v8llDiVSBJGmcPUk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/616mV/btrGq0zeUAJ/zFK46v8llDiVSBJGmcPUk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/616mV/btrGq0zeUAJ/zFK46v8llDiVSBJGmcPUk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F616mV%2FbtrGq0zeUAJ%2FzFK46v8llDiVSBJGmcPUk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;306&quot; height=&quot;144&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pathfinder &amp;gt; minus front&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;305&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/serSJ/btrGoaPKscs/ypa4qhl0eIOTnv8JpFivoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/serSJ/btrGoaPKscs/ypa4qhl0eIOTnv8JpFivoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/serSJ/btrGoaPKscs/ypa4qhl0eIOTnv8JpFivoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FserSJ%2FbtrGoaPKscs%2Fypa4qhl0eIOTnv8JpFivoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;305&quot; height=&quot;131&quot; data-origin-width=&quot;305&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;띠 부분이 보인다. layer mask로 가려주자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;305&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y6S9N/btrGuTlAFQ5/xokODSuh68xHdpIWKn4Ph0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y6S9N/btrGuTlAFQ5/xokODSuh68xHdpIWKn4Ph0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y6S9N/btrGuTlAFQ5/xokODSuh68xHdpIWKn4Ph0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy6S9N%2FbtrGuTlAFQ5%2FxokODSuh68xHdpIWKn4Ph0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;305&quot; height=&quot;131&quot; data-origin-width=&quot;305&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원을 Ctrl+C 로 복사 -&amp;gt; 띠를 선택해서 Transparent 더블 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNbLjO/btrGuSfUKVA/JNk2sNf6ZPEPVlPwfCgI5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNbLjO/btrGuSfUKVA/JNk2sNf6ZPEPVlPwfCgI5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNbLjO/btrGuSfUKVA/JNk2sNf6ZPEPVlPwfCgI5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNbLjO%2FbtrGuSfUKVA%2FJNk2sNf6ZPEPVlPwfCgI5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;746&quot; height=&quot;208&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHeTW9/btrGupyjr2o/56Ya1BKhPS1PKQmzNQtrKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHeTW9/btrGupyjr2o/56Ya1BKhPS1PKQmzNQtrKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHeTW9/btrGupyjr2o/56Ya1BKhPS1PKQmzNQtrKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHeTW9%2FbtrGupyjr2o%2F56Ya1BKhPS1PKQmzNQtrKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;678&quot; height=&quot;299&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;uncheck clip&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dp3TOA/btrGt2pKWMS/6kQCZCer8b4HpfUkM9Ue90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dp3TOA/btrGt2pKWMS/6kQCZCer8b4HpfUkM9Ue90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dp3TOA/btrGt2pKWMS/6kQCZCer8b4HpfUkM9Ue90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdp3TOA%2FbtrGt2pKWMS%2F6kQCZCer8b4HpfUkM9Ue90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;741&quot; height=&quot;299&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;paste in front&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QkxxL/btrGt1RYGuI/3p5DhP5190tJTR5YKUKh40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QkxxL/btrGt1RYGuI/3p5DhP5190tJTR5YKUKh40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QkxxL/btrGt1RYGuI/3p5DhP5190tJTR5YKUKh40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQkxxL%2FbtrGt1RYGuI%2F3p5DhP5190tJTR5YKUKh40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;739&quot; height=&quot;299&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;set color to black&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pzo96/btrGupryVHU/uWl2lBFvtB0CQKSOGrsmI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pzo96/btrGupryVHU/uWl2lBFvtB0CQKSOGrsmI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pzo96/btrGupryVHU/uWl2lBFvtB0CQKSOGrsmI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPzo96%2FbtrGupryVHU%2FuWl2lBFvtB0CQKSOGrsmI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;300&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원이 mask가 되려면 앞으로 나와야 한다. clip 을 check 했다가 다시 uncheck 해보자&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rqHNO/btrGt2chkwc/Wz4wlhqE0pbes5vEhVCUH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rqHNO/btrGt2chkwc/Wz4wlhqE0pbes5vEhVCUH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rqHNO/btrGt2chkwc/Wz4wlhqE0pbes5vEhVCUH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrqHNO%2FbtrGt2chkwc%2FWz4wlhqE0pbes5vEhVCUH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;866&quot; height=&quot;379&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;knife 선택해서 원을 반 가른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4kV7I/btrGvn05IaW/xMzuQBT3Qb6L1xPkF80RM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4kV7I/btrGvn05IaW/xMzuQBT3Qb6L1xPkF80RM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4kV7I/btrGvn05IaW/xMzuQBT3Qb6L1xPkF80RM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4kV7I%2FbtrGvn05IaW%2FxMzuQBT3Qb6L1xPkF80RM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;263&quot; height=&quot;102&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rjgkV/btrGsof9ksV/Gg7s6OtccnXHxk82vwS7lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rjgkV/btrGsof9ksV/Gg7s6OtccnXHxk82vwS7lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rjgkV/btrGsof9ksV/Gg7s6OtccnXHxk82vwS7lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrjgkV%2FbtrGsof9ksV%2FGg7s6OtccnXHxk82vwS7lk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;257&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선택툴로 원을 선택하면 2개로 나뉘어져 있다. 아래를 선택해 지운다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjoodc/btrGrW5brzC/jPxYc1gXyFYRLvKaspkPK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjoodc/btrGrW5brzC/jPxYc1gXyFYRLvKaspkPK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjoodc/btrGrW5brzC/jPxYc1gXyFYRLvKaspkPK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjoodc%2FbtrGrW5brzC%2FjPxYc1gXyFYRLvKaspkPK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;271&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌측 그림을 클릭해 mask 선택모드를 해제한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B7mI3/btrGtQJUTrP/Q1TNsad2Fqr2k2zgmswpCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B7mI3/btrGtQJUTrP/Q1TNsad2Fqr2k2zgmswpCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B7mI3/btrGtQJUTrP/Q1TNsad2Fqr2k2zgmswpCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB7mI3%2FbtrGtQJUTrP%2FQ1TNsad2Fqr2k2zgmswpCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;321&quot; height=&quot;187&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;187&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b71WGo/btrGuTTsj46/yYZq6M5hH8v1o4lwHgkqn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b71WGo/btrGuTTsj46/yYZq6M5hH8v1o4lwHgkqn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b71WGo/btrGuTTsj46/yYZq6M5hH8v1o4lwHgkqn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb71WGo%2FbtrGuTTsj46%2FyYZq6M5hH8v1o4lwHgkqn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;230&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일러스트</category>
      <category>illustrator</category>
      <category>Rocket</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/98</guid>
      <comments>https://kakaroo.tistory.com/98#entry98comment</comments>
      <pubDate>Sun, 3 Jul 2022 17:29:50 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 약도 그리기</title>
      <link>https://kakaroo.tistory.com/97</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 따라 그릴 지도를 캡쳐해서 배경으로 놓고 따라 큰 길만 그린다.&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;611&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9YPLq/btrF0Z7kBrL/RyatsduGDjyd9xiBk3zoW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9YPLq/btrF0Z7kBrL/RyatsduGDjyd9xiBk3zoW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9YPLq/btrF0Z7kBrL/RyatsduGDjyd9xiBk3zoW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9YPLq%2FbtrF0Z7kBrL%2FRyatsduGDjyd9xiBk3zoW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1046&quot; height=&quot;611&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;611&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 그린 길은 그룹으로 묶는다. Ctrl + G&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 배경을 사각형으로 그린뒤, 뒤로 보낸다( Ctrl + '[' )&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;653&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dVglqR/btrF1CjJS4C/5cGSBCDjz7xTLdOxHuRK30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dVglqR/btrF1CjJS4C/5cGSBCDjz7xTLdOxHuRK30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dVglqR/btrF1CjJS4C/5cGSBCDjz7xTLdOxHuRK30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVglqR%2FbtrF1CjJS4C%2F5cGSBCDjz7xTLdOxHuRK30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;646&quot; height=&quot;383&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;653&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 옆으로 옮겨준 뒤, stroke를 면으로 바꿔준다. (object &amp;gt; expand)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1089&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oH3Ea/btrFZlcqgvM/T1BF9E65okDC9jtjoUbG0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oH3Ea/btrFZlcqgvM/T1BF9E65okDC9jtjoUbG0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oH3Ea/btrFZlcqgvM/T1BF9E65okDC9jtjoUbG0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoH3Ea%2FbtrFZlcqgvM%2FT1BF9E65okDC9jtjoUbG0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1089&quot; height=&quot;371&quot; data-origin-width=&quot;1089&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공원 이름을 넣어 본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qw94C/btrFY7r1rYb/hK6IfBy6thMUEdCjm5D1uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qw94C/btrFY7r1rYb/hK6IfBy6thMUEdCjm5D1uK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qw94C/btrFY7r1rYb/hK6IfBy6thMUEdCjm5D1uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqw94C%2FbtrFY7r1rYb%2FhK6IfBy6thMUEdCjm5D1uK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;515&quot; height=&quot;309&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;309&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 명함 크기만한 네모 상자를 그린다 위에 올려준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2oZGq/btrFWdMKzFI/wcQZc6kMRzo4KtZhs0GLfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2oZGq/btrFWdMKzFI/wcQZc6kMRzo4KtZhs0GLfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2oZGq/btrFWdMKzFI/wcQZc6kMRzo4KtZhs0GLfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2oZGq%2FbtrFWdMKzFI%2FwcQZc6kMRzo4KtZhs0GLfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;532&quot; height=&quot;332&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 전체 선택한 뒤, Clipping Mask를 해 준다. (Ctrl + 7)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsWKc6/btrF0jkC6FW/SUP1wKUQkYgqQkP1LHYrX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsWKc6/btrF0jkC6FW/SUP1wKUQkYgqQkP1LHYrX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsWKc6/btrF0jkC6FW/SUP1wKUQkYgqQkP1LHYrX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsWKc6%2FbtrF0jkC6FW%2FSUP1wKUQkYgqQkP1LHYrX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;218&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://www.youtube.com/watch?v=I8L82pTZiPM&quot;&gt;https://www.youtube.com/watch?v=I8L82pTZiPM&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=I8L82pTZiPM&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/gVaGB/hyOUWgName/Gb8amKluisnAO4ppTttqYk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/I8L82pTZiPM&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/97</guid>
      <comments>https://kakaroo.tistory.com/97#entry97comment</comments>
      <pubDate>Tue, 28 Jun 2022 22:40:06 +0900</pubDate>
    </item>
    <item>
      <title>일러스트 - 무지개 그리기</title>
      <link>https://kakaroo.tistory.com/96</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. Elipse Tool 로 원 그리기 - 면 색 x, 선 stroke 5 pt&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;241&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPpjNk/btrFZLn8E6C/azLWhpR4CilNPpMXMg2Ytk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPpjNk/btrFZLn8E6C/azLWhpR4CilNPpMXMg2Ytk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPpjNk/btrFZLn8E6C/azLWhpR4CilNPpMXMg2Ytk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPpjNk%2FbtrFZLn8E6C%2FazLWhpR4CilNPpMXMg2Ytk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;241&quot; height=&quot;236&quot; data-origin-width=&quot;241&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 원하는 수치만큼 오브젝트를 복사&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;gt; object를 선택한 다음 &amp;gt; object &amp;gt; path &amp;gt; offset path&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;678&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqm5pd/btrFYxj5Eg9/nqhxGDKfH0KtUneNKZKsJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqm5pd/btrFYxj5Eg9/nqhxGDKfH0KtUneNKZKsJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqm5pd/btrFYxj5Eg9/nqhxGDKfH0KtUneNKZKsJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqm5pd%2FbtrFYxj5Eg9%2FnqhxGDKfH0KtUneNKZKsJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;491&quot; height=&quot;497&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;678&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1에서 지정한 stroke 굵기만큼 offset 을 주면 그 offset 크기만큼의 object가 그려진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. offset path는 무지개 수 만큼 사용해야 하기 때문에 shortcuts에 등록한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Edit &amp;gt; Keyboard Shortcuts &amp;gt; Menu Commands &amp;gt; .....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oUYlm/btrF1DpnwEc/OGJSByhhkWD61Q085tBMi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oUYlm/btrF1DpnwEc/OGJSByhhkWD61Q085tBMi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oUYlm/btrF1DpnwEc/OGJSByhhkWD61Q085tBMi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoUYlm%2FbtrF1DpnwEc%2FOGJSByhhkWD61Q085tBMi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;401&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. PathFinder를 이용해 무지개 만들기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가운데 line 긋기 (Line segment Tool)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdpjoT/btrFZZzV0yG/LAnWSuYfDeZvwm0UY1pTt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdpjoT/btrFZZzV0yG/LAnWSuYfDeZvwm0UY1pTt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdpjoT/btrFZZzV0yG/LAnWSuYfDeZvwm0UY1pTt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdpjoT%2FbtrFZZzV0yG%2FLAnWSuYfDeZvwm0UY1pTt0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;484&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pathfinder는 면으로 된 object를 나눌 수 있기 때문에 위에서 그린 무지개 object 만 선택해서 면으로 변경한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; object &amp;gt; expand&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;277&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p2Dl3/btrF0kjvcqi/YYSDOaJWh3bueP5RIyknHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p2Dl3/btrF0kjvcqi/YYSDOaJWh3bueP5RIyknHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p2Dl3/btrF0kjvcqi/YYSDOaJWh3bueP5RIyknHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp2Dl3%2FbtrF0kjvcqi%2FYYSDOaJWh3bueP5RIyknHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;208&quot; height=&quot;303&quot; data-origin-width=&quot;277&quot; data-origin-height=&quot;403&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원을 클릭해 보면 면에 색상이 들어간 걸 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;76&quot; data-origin-height=&quot;88&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l2uir/btrFWb9drdp/lm4q17vDka9ktrKE9nWX3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l2uir/btrFWb9drdp/lm4q17vDka9ktrKE9nWX3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l2uir/btrFWb9drdp/lm4q17vDka9ktrKE9nWX3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl2uir%2FbtrFWb9drdp%2Flm4q17vDka9ktrKE9nWX3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;76&quot; height=&quot;88&quot; data-origin-width=&quot;76&quot; data-origin-height=&quot;88&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 object 선택 &amp;gt; pathfinder &amp;gt; divide&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;direct selection tool 선택해서 자를 부분을 선택 &amp;gt; delete&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bioM6f/btrFZkdvxbn/kOKYaJYOd6SaF1eoyJe87k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bioM6f/btrFZkdvxbn/kOKYaJYOd6SaF1eoyJe87k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bioM6f/btrFZkdvxbn/kOKYaJYOd6SaF1eoyJe87k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbioM6f%2FbtrFZkdvxbn%2FkOKYaJYOd6SaF1eoyJe87k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;517&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdWWUZ/btrFZ1dtgLp/kD0jSs92oyBEgstPqtl77K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdWWUZ/btrFZ1dtgLp/kD0jSs92oyBEgstPqtl77K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdWWUZ/btrFZ1dtgLp/kD0jSs92oyBEgstPqtl77K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdWWUZ%2FbtrFZ1dtgLp%2FkD0jSs92oyBEgstPqtl77K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;654&quot; height=&quot;348&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 구름 그리기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원 3개를 그린다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DNFnS/btrFWxLF3Hd/BUvYYrJjaUFSXYJjFABww0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DNFnS/btrFWxLF3Hd/BUvYYrJjaUFSXYJjFABww0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DNFnS/btrFWxLF3Hd/BUvYYrJjaUFSXYJjFABww0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDNFnS%2FbtrFWxLF3Hd%2FBUvYYrJjaUFSXYJjFABww0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;256&quot; height=&quot;139&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;139&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원 밑에 선을 그어 준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIydFk/btrFZk5BVnT/u8zxC6UAvunTCsQwZORaxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIydFk/btrFZk5BVnT/u8zxC6UAvunTCsQwZORaxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIydFk/btrFZk5BVnT/u8zxC6UAvunTCsQwZORaxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIydFk%2FbtrFZk5BVnT%2Fu8zxC6UAvunTCsQwZORaxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;228&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;shape builder tool 을 이용해 채워 준다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 오브젝트를 선택한 다음, 먼저 색을 채울 면을 선택해서 누른채로 드래그 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQfk3h/btrF0tngaaH/ZiI0cUDn7QFqyZYrhRwbW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQfk3h/btrF0tngaaH/ZiI0cUDn7QFqyZYrhRwbW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQfk3h/btrF0tngaaH/ZiI0cUDn7QFqyZYrhRwbW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQfk3h%2FbtrF0tngaaH%2FZiI0cUDn7QFqyZYrhRwbW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;225&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완성!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;353&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nKj6p/btrFWzCLo2v/21hdVkjrK49xwKF04jSP20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nKj6p/btrFWzCLo2v/21hdVkjrK49xwKF04jSP20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nKj6p/btrFWzCLo2v/21hdVkjrK49xwKF04jSP20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnKj6p%2FbtrFWzCLo2v%2F21hdVkjrK49xwKF04jSP20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;690&quot; height=&quot;353&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;353&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://www.youtube.com/watch?v=lmF3AJuXYOA&quot;&gt;https://www.youtube.com/watch?v=lmF3AJuXYOA&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=lmF3AJuXYOA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bISat2/hyOUW8VrXG/yx4PYKOqxEZIaGQnKuwuo0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/lmF3AJuXYOA&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>일러스트</category>
      <author>kakaroo</author>
      <guid isPermaLink="true">https://kakaroo.tistory.com/96</guid>
      <comments>https://kakaroo.tistory.com/96#entry96comment</comments>
      <pubDate>Tue, 28 Jun 2022 22:00:11 +0900</pubDate>
    </item>
  </channel>
</rss>