<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>끄적끄적 개발자 노트</title>
    <link>https://doodledevnote.tistory.com/</link>
    <description>모바일 개발 노트</description>
    <language>ko</language>
    <pubDate>Tue, 14 Apr 2026 12:31:36 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>LeeeGi</managingEditor>
    <item>
      <title>[격파르타] SQLD 자격증 챌린지 11기 솔직한 후기</title>
      <link>https://doodledevnote.tistory.com/56</link>
      <description>&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4144530119316836&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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 data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;현업에 있으면서 새로 들어온 후배들 그리고 주변에 이직하시는 분들을 보니 대부분 &lt;b&gt;SQLD자격증&lt;/b&gt;을 이미 취득했거나 공부하고 있더라구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;이전까지는 저도 정보처리기사 하나만 가지고 있었고, 자격증의 필요성을 별로 느끼지 못하다가 최근 문득 자격증을 따야겠다는 생각을 하게되었는데 &lt;b&gt;어디서부터 시작을 해야할지 영 감이 잡히지 않더라구요.&lt;/b&gt;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;016&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/016.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/016.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;그때, 마침 &lt;b&gt;격파르타 자격증 챌린지&lt;/b&gt;를 보게 되었고, 이거다 싶어서 무작정 시작하게 되었습니다. 처음 내용은 아무래도 현업에 있다보니 아는 내용이 많았지만, 응용하는 과정으로 넘어갈수록 생소한 부분들이 꽤나 보이더라구요. 그래도 강의를 하나하나 듣고 복습하다보니 내용은 어렵지 않게 이해되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;다만, 정말 &lt;b&gt;데이터베이스에 대해 상세하게 공부하고 싶다&lt;/b&gt;고 생각하시는 분들은 추천하지 않습니다. 왜냐하면, 이 과정은 분명 &lt;b&gt;자격증을 취득하기 위한 과정&lt;/b&gt;이기 때문에 단기적으로 자격증을 취득하고 싶은 분들에게 최적화되어 있습니다. 강사님도 그렇게 강의를 하시는것 같다고 느꼈구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;저는 오히려 이 부분이 가장 마음에 들었는데, 강의가 평균적으로 20~30분 정도이고, 짧은 것은 5~10분 정도되는 영상도 있어서, &lt;b&gt;필요한 부분만 쏙쏙 뽑아 &lt;/b&gt;들으면서 듣기가 좋더라구요.&amp;nbsp; &lt;b&gt;퇴근 후에 짬내서 공부&lt;/b&gt;하니 크게 다른일을 하는데 있어서 무리가 가지도 않았구요. 좀 길이가 긴 강의는 주말을 이용해 듣기도 했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;또, 본인이 들은 &lt;b&gt;강의 진척률&lt;/b&gt;과 &lt;b&gt;이어서 듣기&lt;/b&gt; 등 간단하게 강의를 들을 수 있는 UI를 제공해서 본인&lt;b&gt; 공부 스케줄 관리&lt;/b&gt;가 쉽고, 각 회차마다 &lt;b&gt;강의자료를 제공&lt;/b&gt;하기도 하고, 커뮤니티를 제공해서 &lt;b&gt;질문과 답변&lt;/b&gt;을 할 수 있는 환경이 좋더라구요. 복잡한 사이트들보다는 간단명료하게 내가 해야할 것이 보이니 좀 더 집중이 되었던거 같아요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;949&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chXsGR/btsIdVpJEt3/CqDcoyNjvlHOCu06fwnSlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chXsGR/btsIdVpJEt3/CqDcoyNjvlHOCu06fwnSlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chXsGR/btsIdVpJEt3/CqDcoyNjvlHOCu06fwnSlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchXsGR%2FbtsIdVpJEt3%2FCqDcoyNjvlHOCu06fwnSlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;297&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;949&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;325&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJMnHt/btsIeSeybg8/ZLGfxc6A5XCUrUgoWwRm71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJMnHt/btsIeSeybg8/ZLGfxc6A5XCUrUgoWwRm71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJMnHt/btsIeSeybg8/ZLGfxc6A5XCUrUgoWwRm71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJMnHt%2FbtsIeSeybg8%2FZLGfxc6A5XCUrUgoWwRm71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;325&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;325&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;저는 대부분 만족을 했는데, 아쉬운 점이 한가지 있는데요. 풀이를 같이 할 수 있는 문제가 좀 더 많았으면 좋겠다는 생각을 했습니다. 아무래도 강사님도 준비하는데 한계가 있겠지만, 적어도 그날 배운 내용에 대해서 문제를 풀어볼 수 있는 환경이 좀 더 제공되면 아주 좋을 것 같다는 생각이 들더라구요. 저는 문제가 좀 모자라서 개인적으로 책을 사서 문제풀이를 하기도 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그래도, 저는 격파르타에서 강의를 듣고 문제풀이를 하니 내용이 좀 더 이해가 되기도 하고, 좋았어요. 격파르타 덕분에 한 번에 &lt;b&gt;합격!&lt;/b&gt; 했습니다. 여러분들도 격파르타 강의를 들어보시길 바랍니다!! 사이트에 가보시면 무료 강연들도 있으니 한번씩 겸사겸사 들어보는 것도 좋을 것 같아요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_noname.png&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;1123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vnPAH/btsIfFFvlbJ/OaTPM9bbHRbNKLbE7Otxwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vnPAH/btsIfFFvlbJ/OaTPM9bbHRbNKLbE7Otxwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vnPAH/btsIfFFvlbJ/OaTPM9bbHRbNKLbE7Otxwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvnPAH%2FbtsIfFFvlbJ%2FOaTPM9bbHRbNKLbE7Otxwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;185&quot; height=&quot;262&quot; data-filename=&quot;edited_noname.png&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;1123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>ETC</category>
      <category>sqld 자격증 합격</category>
      <category>격파르타 장점</category>
      <category>격파르타 합격후기</category>
      <category>격파르타 후기</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/56</guid>
      <comments>https://doodledevnote.tistory.com/56#entry56comment</comments>
      <pubDate>Thu, 27 Jun 2024 22:05:46 +0900</pubDate>
    </item>
    <item>
      <title>[Git] Git 시작하기 (feat. Android)</title>
      <link>https://doodledevnote.tistory.com/55</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;보통 소스코드를 원격저장소에 저장하기 위해서 &lt;b&gt;Git&lt;/b&gt;을 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 &lt;b&gt;Git&lt;/b&gt; 시작하는 방법과 커밋, 푸시까지 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4144530119316836&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. 깃 레파지토리 생성&lt;br /&gt;2. Git init, remote, clone&lt;br /&gt;3. Git add, commit, pull, push&lt;br /&gt;4. Android 프로젝트 생성 및 저장&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;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 깃 레파지토리 생성&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmuLAI/btsHTAKTFO0/k0N7RFjxIfYqdQsguTAfw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmuLAI/btsHTAKTFO0/k0N7RFjxIfYqdQsguTAfw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmuLAI/btsHTAKTFO0/k0N7RFjxIfYqdQsguTAfw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmuLAI%2FbtsHTAKTFO0%2Fk0N7RFjxIfYqdQsguTAfw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;92&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;92&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;먼저 &lt;b&gt;Git&lt;/b&gt;을 설치해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;아래 링크에서 &lt;b&gt;PC&lt;/b&gt;사양에 맞춰 설치하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.git-scm.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1717859890814&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;Git&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.git-scm.com&quot; data-og-source-url=&quot;https://www.git-scm.com/&quot; data-og-url=&quot;https://www.git-scm.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/wFnui/hyWgZjKSFA/KC8suBHjcSIrMdcabxSdnk/img.png?width=778&amp;amp;height=502&amp;amp;face=0_0_778_502&quot;&gt;&lt;a href=&quot;https://www.git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.git-scm.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/wFnui/hyWgZjKSFA/KC8suBHjcSIrMdcabxSdnk/img.png?width=778&amp;amp;height=502&amp;amp;face=0_0_778_502');&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;Git&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.git-scm.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;size18&quot;&gt;다음은 &lt;b&gt;GitHub&lt;/b&gt;에 로그인해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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;&lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1717859160398&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub: Let&amp;rsquo;s build from here&quot; data-og-description=&quot;GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/&quot; data-og-url=&quot;https://github.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/P6lIv/hyWg7aZDKm/q9lclHssBFBgwkSAgOBx70/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/P6lIv/hyWg7aZDKm/q9lclHssBFBgwkSAgOBx70/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;GitHub: Let&amp;rsquo;s build from here&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;size18&quot;&gt;그리고 아래&lt;b&gt; [New]&lt;/b&gt; 버튼을 찾아서 누르면 새로운 레파지토리를 생성합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;80&quot; data-origin-height=&quot;46&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mz73a/btsHSq3AZgo/PBEgGlZlN8KOQoCafyiWCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mz73a/btsHSq3AZgo/PBEgGlZlN8KOQoCafyiWCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mz73a/btsHSq3AZgo/PBEgGlZlN8KOQoCafyiWCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmz73a%2FbtsHSq3AZgo%2FPBEgGlZlN8KOQoCafyiWCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;80&quot; height=&quot;46&quot; data-origin-width=&quot;80&quot; data-origin-height=&quot;46&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;size18&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;723&quot; data-origin-height=&quot;759&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r0jzg/btsHRPwaCQ0/AIlJWwdQfut2lxVCXM6bb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r0jzg/btsHRPwaCQ0/AIlJWwdQfut2lxVCXM6bb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r0jzg/btsHRPwaCQ0/AIlJWwdQfut2lxVCXM6bb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr0jzg%2FbtsHRPwaCQ0%2FAIlJWwdQfut2lxVCXM6bb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;759&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;759&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;size18&quot;&gt;저는 보통 따로 &lt;b&gt;README&lt;/b&gt;를 만들지 않고 레파지토리를 생성할 때 파일을 생성해 줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이유는 아래에서 설명하도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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;1263&quot; data-origin-height=&quot;549&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brnoVG/btsHS9GOzdK/EnKAW3MRDChKAv1cOR7abk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brnoVG/btsHS9GOzdK/EnKAW3MRDChKAv1cOR7abk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brnoVG/btsHS9GOzdK/EnKAW3MRDChKAv1cOR7abk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrnoVG%2FbtsHS9GOzdK%2FEnKAW3MRDChKAv1cOR7abk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1263&quot; height=&quot;549&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;549&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;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2.&lt;span style=&quot;background-color: #fcfcfc; color: #000000; text-align: left;&quot;&gt; Git init, clone&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fcfcfc;&quot;&gt;원하는 경로에 원격저장소와 동일한 이름의 폴더를 하나 만들어줍니다.&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;170&quot; data-origin-height=&quot;29&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ble6cM/btsHR2vqj0k/zTlXtxbDnZq61kt6ZtAdtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ble6cM/btsHR2vqj0k/zTlXtxbDnZq61kt6ZtAdtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ble6cM/btsHR2vqj0k/zTlXtxbDnZq61kt6ZtAdtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fble6cM%2FbtsHR2vqj0k%2FzTlXtxbDnZq61kt6ZtAdtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;170&quot; height=&quot;29&quot; data-origin-width=&quot;170&quot; data-origin-height=&quot;29&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;b&gt;.git&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;2-1) git init&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;깃을 사용하기 위해서는 폴더에 깃을 초기화해 주어야 사용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;git bash&lt;/b&gt; 또는 &lt;b&gt;cmd&lt;/b&gt;에서 &lt;b&gt;git&lt;/b&gt;을 사용할 수 있도록 해당 폴더로 이동 후 명령어를 입력해 주시면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717860205273&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git init&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;b&gt;.git&lt;/b&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;250&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/64yHw/btsHRw4GZOl/9SVmARjJzYXsJYLo61YEsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/64yHw/btsHRw4GZOl/9SVmARjJzYXsJYLo61YEsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/64yHw/btsHRw4GZOl/9SVmARjJzYXsJYLo61YEsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F64yHw%2FbtsHRw4GZOl%2F9SVmARjJzYXsJYLo61YEsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;39&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;39&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;b&gt;git status&lt;/b&gt;를 입력해 줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717860292560&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git status
On branch main

No commits yet

nothing to commit (create/copy files and use &quot;git add&quot; to track)&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;b&gt;git&lt;/b&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;b&gt;2-2) git remote&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬 저장소는 만들어졌으니 원격저장소와 연결을 해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이럴 때 쓰는 명령어가 &lt;b&gt;git remote&lt;/b&gt; 명령어입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717861055385&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git remote&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;b&gt;git&lt;/b&gt; 원격저장소가 연결되지 않았기 때문이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 원격저장소를 추가해 줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717861299129&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// git remote add [원격저장소명] [복사한 원격저장소 주소]
$ git remote add origin https://github.com/rlwhd0716/MyRepository.git&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;b&gt;git remote&lt;/b&gt;를 실행해 보면 원격저장소 &lt;b&gt;origin&lt;/b&gt;이 보입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717861338315&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git remote
origin&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;b&gt;remote&lt;/b&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;b&gt;2-3) git clone&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;git init&lt;/b&gt;과 &lt;b&gt;remote&lt;/b&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;b&gt;Code&lt;/b&gt; 버튼을 클릭하고 저장소 주소를 복사합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;540&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qNu6b/btsHSvjqgEb/JA2g5K4VxwJlv7xQLoXSv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qNu6b/btsHSvjqgEb/JA2g5K4VxwJlv7xQLoXSv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qNu6b/btsHSvjqgEb/JA2g5K4VxwJlv7xQLoXSv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqNu6b%2FbtsHSvjqgEb%2FJA2g5K4VxwJlv7xQLoXSv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1282&quot; height=&quot;540&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;540&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;b&gt; git clone&lt;/b&gt;을 실행해 줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717860507649&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// git clone [복사한 원격저장소 주소]
$ git clone https://github.com/rlwhd0716/MyRepository.git&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;b&gt;README.md&lt;/b&gt; 파일과 &lt;b&gt;git init&lt;/b&gt;부터 &lt;b&gt;remote&lt;/b&gt; 설정까지 자동으로 수행되게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정할 것이 많다면 위와 같이 &lt;b&gt;git init&lt;/b&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;257&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eMLOy5/btsHSXs0nRV/ZlkCVhw07lZPqGTLmKp4VK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eMLOy5/btsHSXs0nRV/ZlkCVhw07lZPqGTLmKp4VK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eMLOy5/btsHSXs0nRV/ZlkCVhw07lZPqGTLmKp4VK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeMLOy5%2FbtsHSXs0nRV%2FZlkCVhw07lZPqGTLmKp4VK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;70&quot; data-origin-width=&quot;257&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 &lt;b&gt;README&lt;/b&gt;를 생성해 놓지 않은 상태로 &lt;b&gt;clone&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;을 하게 되면&lt;/span&gt;&lt;b&gt;branch&lt;/b&gt;가 없는 상태로. git&lt;span style=&quot;color: #333333; text-align: start;&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;아래 과정들을 모두 수행해야 &lt;b&gt;main&lt;/b&gt; 브랜치가 생성되는 번거로움이 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717862891478&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git init
git add README.md
git commit -m &quot;first commit&quot;
git branch -M main
git remote add origin https://github.com/rlwhd0716/test.git
git push -u origin main&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;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. git pull, add, commit, push&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 수동으로 &lt;b&gt;git&lt;/b&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3-1) git pull&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1717863243932&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git pull origin main
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 864 bytes | 123.00 KiB/s, done.
From https://github.com/rlwhd0716/MyRepository
 * branch            main       -&amp;gt; FETCH_HEAD
 * [new branch]      main       -&amp;gt; origin/main&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;b&gt;origin&lt;/b&gt;)의 &lt;b&gt;README&lt;/b&gt; 파일을 가져왔습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 진행하면 &lt;b&gt;git clone&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;3-2) git add, commit&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 &lt;b&gt;README&lt;/b&gt; 파일을 수정하고 원격저장소에 저장해 보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717863429190&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# MyRepository

깃 사용법&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;b&gt;git status&lt;/b&gt;로 상태를 확인해 보면,&lt;/p&gt;
&lt;pre id=&quot;code_1717863467641&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git status
On branch main
Changes not staged for commit:
  (use &quot;git add &amp;lt;file&amp;gt;...&quot; to update what will be committed)
  (use &quot;git restore &amp;lt;file&amp;gt;...&quot; to discard changes in working directory)
        modified:   README.md

no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)&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;(&lt;b&gt;git bash&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;git add&lt;/b&gt;로 로컬저장소 &lt;b&gt;git&lt;/b&gt;에 파일을 추가해 줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717863539469&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git add README.md

$ git status
On branch main
Changes to be committed:
  (use &quot;git restore --staged &amp;lt;file&amp;gt;...&quot; to unstage)
        modified:   README.md&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(마찬가지로 &lt;b&gt;git bash&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;p data-ke-size=&quot;size16&quot;&gt;파일을 추가했으니 &lt;b&gt;commit&lt;/b&gt;을 해주어야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717863824829&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git commit -m 'update README'
[main 20cb447] update README
 1 file changed, 3 insertions(+), 1 deletion(-)

$ git status
On branch main
nothing to commit, working tree clean&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태를 확인해 보면 &lt;b&gt;working tree&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;3-3) git push&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 수정한 파일을 원격저장소에 저장해 보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1717863976764&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git push origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 277 bytes | 277.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/rlwhd0716/MyRepository.git
   0da7657..20cb447  main -&amp;gt; main&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;git push&lt;/b&gt;를 사용해 이때까지 &lt;b&gt;commit &lt;/b&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;1257&quot; data-origin-height=&quot;540&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KYcf2/btsHSzzeShl/adxSFHepdUCoBaYNdc5rgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KYcf2/btsHSzzeShl/adxSFHepdUCoBaYNdc5rgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KYcf2/btsHSzzeShl/adxSFHepdUCoBaYNdc5rgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKYcf2%2FbtsHSzzeShl%2FadxSFHepdUCoBaYNdc5rgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1257&quot; height=&quot;540&quot; data-origin-width=&quot;1257&quot; data-origin-height=&quot;540&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;&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. Android 프로젝트 생성 및 저장&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 안드로이드 프로젝트를 한번 저장소에 &lt;b&gt;push&lt;/b&gt; 해보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qPnaZ/btsHSdwAEts/dig8gCjTsKXn2TBLgKHULK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qPnaZ/btsHSdwAEts/dig8gCjTsKXn2TBLgKHULK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qPnaZ/btsHSdwAEts/dig8gCjTsKXn2TBLgKHULK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqPnaZ%2FbtsHSdwAEts%2Fdig8gCjTsKXn2TBLgKHULK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;902&quot; height=&quot;651&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 또한 저장소 이름과 동일하게 만들어주면 다른 설정 없이 쉽게 &lt;b&gt;git&lt;/b&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;1920&quot; data-origin-height=&quot;1040&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqdHzC/btsHSV26pvq/JFuRLXsM8ikuABnsQseDGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqdHzC/btsHSV26pvq/JFuRLXsM8ikuABnsQseDGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqdHzC/btsHSV26pvq/JFuRLXsM8ikuABnsQseDGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqdHzC%2FbtsHSV26pvq%2FJFuRLXsM8ikuABnsQseDGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1040&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1040&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;b&gt;push 된&lt;/b&gt; 모습을 보실 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R9ZFq/btsHSC3HNHg/Ew0qDfRKld0h5IJpRPv711/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R9ZFq/btsHSC3HNHg/Ew0qDfRKld0h5IJpRPv711/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R9ZFq/btsHSC3HNHg/Ew0qDfRKld0h5IJpRPv711/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR9ZFq%2FbtsHSC3HNHg%2FEw0qDfRKld0h5IJpRPv711%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1326&quot; height=&quot;680&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;680&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;긴 글 읽어주셔서 감사하고 글은 이만 여기에서 마무리하도록 하겠습니다 :)&lt;/p&gt;</description>
      <category>ETC/Git</category>
      <category>Git</category>
      <category>git add</category>
      <category>git clone</category>
      <category>git commit</category>
      <category>git pull</category>
      <category>git push</category>
      <category>git remote</category>
      <category>github</category>
      <category>깃</category>
      <category>깃허브</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/55</guid>
      <comments>https://doodledevnote.tistory.com/55#entry55comment</comments>
      <pubDate>Sun, 9 Jun 2024 01:51:46 +0900</pubDate>
    </item>
    <item>
      <title>[Flutter] Firebase - No app has been configured yet.</title>
      <link>https://doodledevnote.tistory.com/54</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;플러터 앱으로 FCM을 사용하기 위해 기능을 구현하다보니 아래와 같은 에러가 발생합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;[Firebase/Core][I-COR000005] No app has been configured yet.&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;nbsp;&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4144530119316836&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&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;분명 main.dart에는 모두 구현한 것처럼 보여지는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정이 안되어 있다고 하니 수동으로 configure 코드를 넣어줍니다.&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;blockquote data-ke-style=&quot;style2&quot;&gt;ios/Runner/AppDelegate.swift&amp;nbsp;&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;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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;AppDelegate.swift&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1715865306355&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import UIKit
import Flutter
import Firebase // Firebase import

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -&amp;gt; Bool {
    // Firebase 사용 설정
    FirebaseApp.configure()
    
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}&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;만약 이 코드를 추가하고도 FCM이 수신되지 않는다면, 아래의 이유들을 의심해 볼 수 있습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. Firebase Console에 APNS 키를 등록하지 않았다.&lt;br /&gt;2. Firebase Console에 Key ID 또는 Team ID가 잘못 입력되었다.&lt;br /&gt;3. Xcode에서 Notifications, Background Fetch 등 설정을 적용하지 않았다.&lt;br /&gt;4. 메시지는 수신했으나, Notification Detail을 구현해주지 않아서 눈에 보이지 않았다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 위의 사항들을 모두 확인하고 나니 정상적으로 푸시가 수신되는 것을 볼 수 있었습니다.&lt;/p&gt;</description>
      <category>Flutter</category>
      <category>FCM</category>
      <category>FLUTTER</category>
      <category>Notification</category>
      <category>Push</category>
      <category>Swift</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/54</guid>
      <comments>https://doodledevnote.tistory.com/54#entry54comment</comments>
      <pubDate>Thu, 16 May 2024 22:23:17 +0900</pubDate>
    </item>
    <item>
      <title>[Swift] 범위연산자</title>
      <link>https://doodledevnote.tistory.com/53</link>
      <description>&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4144530119316836&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Swift의 범위 연산자 사용법에 대해 정리해보았다.&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 data-ke-size=&quot;size18&quot;&gt;n...m 과 같이 사용하며, 보통 for 문에 많이 쓰인다.&lt;/p&gt;
&lt;pre id=&quot;code_1714799687389&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in 0...10 {
	// 0 ~ 10 까지 반복
}

for i in 0..&amp;lt;10 {
	// 0 ~ 9 까지 반복
}&lt;/code&gt;&lt;/pre&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 data-ke-size=&quot;size18&quot;&gt;n... 또는 ...n 과 같이 사용한다. 보통 배열에서 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;일반 for 에서 사용하게 되면 n... 같은 형태는 무한대가 되기 때문에 1초에 수천번을 실행하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;...n 도 또한 시작 지점이 명확하지 않기에 에러가 발생하게 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1714800036419&quot; class=&quot;swift&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let names = [&quot;orange&quot;, &quot;grape&quot;, &quot;apple&quot;, &quot;pear&quot;]
        
for name in names[2...] {
    print(name)
}

// -----실행 결과-----
// apple
// pear

for name in names[...2] {
    print(name)
}

// -----실행 결과-----
// orange
// grape
// apple

        
for name in names[..&amp;lt;2] {
    print(name)
}

// -----실행 결과-----
// orange
// grape&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 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;~=&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;범위 안에 속하는 값인지 확인하는 연산자이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;실제로는 많이 사용하지는 않지만 그래도 알아두면 유용할듯하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;아래와 같이 닫힌범위 연산자를 guard 와 함께 사용해서 변수의 범위를 지정해주기도 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1714800342815&quot; class=&quot;swift&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;swift&quot;&gt;&lt;code&gt;let num = 1...10

num ~= 5  // true
num ~= 11 // false


guard 0...100 ~= n else {
	// n이 0 보다 작거나 100 보다 크면 return
	return 0
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>iOS/Swift</category>
      <category>IOS</category>
      <category>Swift</category>
      <category>~=</category>
      <category>범위연산자</category>
      <category>연산자</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/53</guid>
      <comments>https://doodledevnote.tistory.com/53#entry53comment</comments>
      <pubDate>Sat, 4 May 2024 14:29:05 +0900</pubDate>
    </item>
    <item>
      <title>[Flutter] 개발환경 셋팅하기(Hedgehog, flutter 3.19.1-stable)</title>
      <link>https://doodledevnote.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;모바일 하이브리드 앱 개발을 위해 플러터 개발 환경을 구축해보자.&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Android Sutdio 설치&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VsCode도 사용가능하지만 기본적으로 익숙한 Android Studio로 환경구축을 해보자.&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://developer.android.com/studio?hl=ko&quot;&gt;https://developer.android.com/studio?hl=ko&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1708963550647&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;Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 &amp;nbsp;|&amp;nbsp; Android Studio &amp;nbsp;|&amp;nbsp; Android Developers&quot; data-og-description=&quot;Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.&quot; data-og-host=&quot;developer.android.com&quot; data-og-source-url=&quot;https://developer.android.com/studio?hl=ko&quot; data-og-url=&quot;https://developer.android.com/studio?hl=ko&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bxOf1a/hyVqq9vMzt/W6BFk5rz3SIQuFIZLEBXfk/img.png?width=1201&amp;amp;height=676&amp;amp;face=0_0_1201_676,https://scrap.kakaocdn.net/dn/V7H4t/hyVqjWSlmA/eZoJWgKpEgKNSXJFXKR65K/img.png?width=1480&amp;amp;height=772&amp;amp;face=0_0_1480_772,https://scrap.kakaocdn.net/dn/jVX0r/hyVqojzEkt/RJ95DjIbtuasn9Zf0k5yJk/img.png?width=1044&amp;amp;height=601&amp;amp;face=0_0_1044_601&quot;&gt;&lt;a href=&quot;https://developer.android.com/studio?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.android.com/studio?hl=ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bxOf1a/hyVqq9vMzt/W6BFk5rz3SIQuFIZLEBXfk/img.png?width=1201&amp;amp;height=676&amp;amp;face=0_0_1201_676,https://scrap.kakaocdn.net/dn/V7H4t/hyVqjWSlmA/eZoJWgKpEgKNSXJFXKR65K/img.png?width=1480&amp;amp;height=772&amp;amp;face=0_0_1480_772,https://scrap.kakaocdn.net/dn/jVX0r/hyVqojzEkt/RJ95DjIbtuasn9Zf0k5yJk/img.png?width=1044&amp;amp;height=601&amp;amp;face=0_0_1044_601');&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;Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 &amp;nbsp;|&amp;nbsp; Android Studio &amp;nbsp;|&amp;nbsp; Android Developers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.android.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;1274&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUK6F6/btsFjUzbJNC/HLVekyGQhmPtjcInVMqIr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUK6F6/btsFjUzbJNC/HLVekyGQhmPtjcInVMqIr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUK6F6/btsFjUzbJNC/HLVekyGQhmPtjcInVMqIr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUK6F6%2FbtsFjUzbJNC%2FHLVekyGQhmPtjcInVMqIr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1274&quot; height=&quot;522&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성일 기준 Hedgehog 버전을 다운로드 할 수 있다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;플러터 설치&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;&lt;a href=&quot;https://flutter-ko.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://flutter-ko.dev/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1708963732521&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;Flutter documentation&quot; data-og-description=&quot;Get started with Flutter. Widgets, examples, updates, and API docs to help you write your first Flutter app.&quot; data-og-host=&quot;docs.flutter.dev&quot; data-og-source-url=&quot;https://flutter-ko.dev/&quot; data-og-url=&quot;https://docs.flutter.dev/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPYuVv/hyVqujZhTu/BUJgNaUO3suHFC7lkE9ZFk/img.png?width=937&amp;amp;height=461&amp;amp;face=0_0_937_461&quot;&gt;&lt;a href=&quot;https://flutter-ko.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://flutter-ko.dev/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPYuVv/hyVqujZhTu/BUJgNaUO3suHFC7lkE9ZFk/img.png?width=937&amp;amp;height=461&amp;amp;face=0_0_937_461');&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;Flutter documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Get started with Flutter. Widgets, examples, updates, and API docs to help you write your first Flutter app.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.flutter.dev&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;1896&quot; data-origin-height=&quot;951&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnzkzq/btsFjJxGlYQ/xTpL3oXIk2EgwFykSiw4tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnzkzq/btsFjJxGlYQ/xTpL3oXIk2EgwFykSiw4tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnzkzq/btsFjJxGlYQ/xTpL3oXIk2EgwFykSiw4tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnzkzq%2FbtsFjJxGlYQ%2FxTpL3oXIk2EgwFykSiw4tK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1896&quot; height=&quot;951&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;951&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 상단에 &lt;span style=&quot;color: #006dd7;&quot;&gt;Get started&lt;/span&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;글쓴이는 현재 윈도우 환경이므로 Windows로 다운로드한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 기준 3.19.1-stable 버전이 배포되어 있다.&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;.zip 파일이 받아질 것인데, 사용하기 편하도록 각자의 메인드라이브에 src라는 폴더를 하나 만들어주고 거기에 압축을 풀어준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FXzcA/btsFgq0qO5p/6SxtCPvgOHmUVokqKr30j0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FXzcA/btsFgq0qO5p/6SxtCPvgOHmUVokqKr30j0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FXzcA/btsFgq0qO5p/6SxtCPvgOHmUVokqKr30j0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFXzcA%2FbtsFgq0qO5p%2F6SxtCPvgOHmUVokqKr30j0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;254&quot; height=&quot;132&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;132&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;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4144530119316836&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&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;blockquote data-ke-style=&quot;style2&quot;&gt;환경변수 설정&lt;/blockquote&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;312&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3TzWi/btsFhhWcJsm/VueNQ4LkHqyb8nntxQz4YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3TzWi/btsFhhWcJsm/VueNQ4LkHqyb8nntxQz4YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3TzWi/btsFhhWcJsm/VueNQ4LkHqyb8nntxQz4YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3TzWi%2FbtsFhhWcJsm%2FVueNQ4LkHqyb8nntxQz4YK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;50&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;50&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;479&quot; data-origin-height=&quot;533&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMknvp/btsFm2Qzmva/rhxXWkYQHKGRZhPZnGD5A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMknvp/btsFm2Qzmva/rhxXWkYQHKGRZhPZnGD5A0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMknvp/btsFm2Qzmva/rhxXWkYQHKGRZhPZnGD5A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMknvp%2FbtsFm2Qzmva%2FrhxXWkYQHKGRZhPZnGD5A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;479&quot; height=&quot;533&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;533&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;사용자 변수에 path 라는 항목을 찾아 클릭하고 편집을 눌러준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bW75F5/btsFh6GSFnn/fpmLtorGCoS4KgMhkxOVl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bW75F5/btsFh6GSFnn/fpmLtorGCoS4KgMhkxOVl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bW75F5/btsFh6GSFnn/fpmLtorGCoS4KgMhkxOVl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbW75F5%2FbtsFh6GSFnn%2FfpmLtorGCoS4KgMhkxOVl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;618&quot; height=&quot;585&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;585&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;거기서 아까 C:\src\flutter\bin 폴더를 찾는다.&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-filename=&quot;blob&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brqE1k/btsFjX3N7QA/hkh4Dv4zVaq8wXiZrg59m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brqE1k/btsFjX3N7QA/hkh4Dv4zVaq8wXiZrg59m0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brqE1k/btsFjX3N7QA/hkh4Dv4zVaq8wXiZrg59m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrqE1k%2FbtsFjX3N7QA%2Fhkh4Dv4zVaq8wXiZrg59m0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;527&quot; height=&quot;501&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;501&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Flutter, Dart 플러그인 설치&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스튜디오를 실행해주고, 왼쪽에 Plugins를 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flutter를 검색해 설치해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;911&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VcRr2/btsFiNAlw8C/9PIVj32A4zH0mUzkGvCJx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VcRr2/btsFiNAlw8C/9PIVj32A4zH0mUzkGvCJx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VcRr2/btsFiNAlw8C/9PIVj32A4zH0mUzkGvCJx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVcRr2%2FbtsFiNAlw8C%2F9PIVj32A4zH0mUzkGvCJx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1581&quot; height=&quot;911&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;911&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;flutter를 사용하기 위해 dart라는 언어를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dart도 검색하여 설치해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;911&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bikRNM/btsFhnPDBRI/CcWMwncawKLNAQs3mU7Ck0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bikRNM/btsFhnPDBRI/CcWMwncawKLNAQs3mU7Ck0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bikRNM/btsFhnPDBRI/CcWMwncawKLNAQs3mU7Ck0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbikRNM%2FbtsFhnPDBRI%2FCcWMwncawKLNAQs3mU7Ck0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1581&quot; height=&quot;911&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;911&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;그리고 IDE Restart를 하면, &lt;span style=&quot;color: #006dd7;&quot;&gt;New Flutter Project&lt;/span&gt;가 생긴것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;911&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/psaea/btsFmfWV4vw/bA6p7aBPiPaZwyAvOHY9k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/psaea/btsFmfWV4vw/bA6p7aBPiPaZwyAvOHY9k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/psaea/btsFmfWV4vw/bA6p7aBPiPaZwyAvOHY9k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpsaea%2FbtsFmfWV4vw%2FbA6p7aBPiPaZwyAvOHY9k1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1581&quot; height=&quot;911&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;911&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;blockquote data-ke-style=&quot;style2&quot;&gt;프로젝트 생성&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDE 버전마다 좀 다르지만 현재 버전에서는 누르게 되면 아래와 같은 창이 보여진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무것도 보이지 않는다면, 왼쪽에서 &lt;span style=&quot;color: #006dd7;&quot;&gt;Flutter&lt;/span&gt;를 선택해주고, SDK path를 아까 설치한 플러터 path를 설정해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJ4gik/btsFhit4aEG/P0hiZt6tUhBbiy8KjoSRF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJ4gik/btsFhit4aEG/P0hiZt6tUhBbiy8KjoSRF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJ4gik/btsFhit4aEG/P0hiZt6tUhBbiy8KjoSRF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJ4gik%2FbtsFhit4aEG%2FP0hiZt6tUhBbiy8KjoSRF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1526&quot; height=&quot;712&quot; data-origin-width=&quot;1526&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;&lt;span style=&quot;color: #006dd7;&quot;&gt;Next&lt;/span&gt;를 누르면 이런 화면이 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에부터 프로젝트 이름, 프로젝트 경로, 한줄 설명, 타입, package, AOS/iOS 언어설정, 플랫폼 설정 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각자 필요한 정보를 입력하고 &lt;span style=&quot;color: #006dd7;&quot;&gt;Create&lt;/span&gt;를 눌러 프로젝트를 만들어 준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1526&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOWYOk/btsFkV5IoVa/7BZWPt0YcQ2MvIhKEwy9e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOWYOk/btsFkV5IoVa/7BZWPt0YcQ2MvIhKEwy9e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOWYOk/btsFkV5IoVa/7BZWPt0YcQ2MvIhKEwy9e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOWYOk%2FbtsFkV5IoVa%2F7BZWPt0YcQ2MvIhKEwy9e1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1526&quot; height=&quot;712&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1526&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;프로젝트 생성이 끝났다.&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-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1040&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/npMLC/btsFgQR66LW/IBlOg8G7Lpsvy2xI4Xqvtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/npMLC/btsFgQR66LW/IBlOg8G7Lpsvy2xI4Xqvtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/npMLC/btsFgQR66LW/IBlOg8G7Lpsvy2xI4Xqvtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnpMLC%2FbtsFgQR66LW%2FIBlOg8G7Lpsvy2xI4Xqvtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1040&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1040&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;style2&quot;&gt;flutter doctor&lt;/blockquote&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;866&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btdYXg/btsFjJYLuTo/WMYCYdKzPkA2Zcahvr0zOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btdYXg/btsFjJYLuTo/WMYCYdKzPkA2Zcahvr0zOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btdYXg/btsFjJYLuTo/WMYCYdKzPkA2Zcahvr0zOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtdYXg%2FbtsFjJYLuTo%2FWMYCYdKzPkA2Zcahvr0zOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;232&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;232&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;나머지 항목들에 체크표시가 보이면 정상적으로 연결된 것이다.&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;Android toolchain에 처음 설치하게되면, 에러가 발생할 것인데 아래 포스트를 참고하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://doodledevnote.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.02.25 - [Flutter] - [Flutter] Unable to locate Android SDK.&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1708965450814&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Flutter] Unable to locate Android SDK.&quot; data-og-description=&quot;플러터 설치 후 오류 flutter doctor 를 실행했더니 아래와 같은 오류가 발생한다. [X] Android toolchain - develop for Android devices X Unable to locate Android SDK. Install Android Studio from: https://developer.android.com/studio/in&quot; data-og-host=&quot;doodledevnote.tistory.com&quot; data-og-source-url=&quot;https://doodledevnote.tistory.com/47&quot; data-og-url=&quot;https://doodledevnote.tistory.com/47&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oU0vh/hyVqv4hCSS/3LqgeAbjT71IgCrvIJmwSk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/EMshn/hyVqiKDpdd/umBZ4wsBtjJozytuINVrwK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://doodledevnote.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://doodledevnote.tistory.com/47&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oU0vh/hyVqv4hCSS/3LqgeAbjT71IgCrvIJmwSk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/EMshn/hyVqiKDpdd/umBZ4wsBtjJozytuINVrwK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[Flutter] Unable to locate Android SDK.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;플러터 설치 후 오류 flutter doctor 를 실행했더니 아래와 같은 오류가 발생한다. [X] Android toolchain - develop for Android devices X Unable to locate Android SDK. Install Android Studio from: https://developer.android.com/studio/in&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;doodledevnote.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;017&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/017.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/017.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;</description>
      <category>Flutter</category>
      <category>FLUTTER</category>
      <category>환경설정</category>
      <category>환경세팅</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/51</guid>
      <comments>https://doodledevnote.tistory.com/51#entry51comment</comments>
      <pubDate>Tue, 27 Feb 2024 01:39:21 +0900</pubDate>
    </item>
    <item>
      <title>[Dart] 연산자, 타입 검사, 형변환</title>
      <link>https://doodledevnote.tistory.com/50</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;다트에서 연산자에 대해서 알아보자&lt;/h2&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;pre id=&quot;code_1708852853072&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1 + 1 = 2		// 더하기
2 - 1 = 0		// 빼기
2 * 2 = 4		// 곱하기
4 / 2 = 2		// 나누기 (double)
3 ~/ 2 = 1		// 몫 (int)
3 % 2 = 1		// 나머지 (int)&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;style2&quot;&gt;* assert() 함수로 계산 결과가 참인지 검사할 수 있다.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708852923184&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;assert(2 + 3 == 5);		// true&lt;/code&gt;&lt;/pre&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;pre id=&quot;code_1708853066152&quot; class=&quot;dart&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;var num = 0;
print(num++);		// 0 출력 후 1 증가하여 num = 1 이 된다.
print(++num);		// 1증가 후 2를 출력한다. num = 2 가 된다.&lt;/code&gt;&lt;/pre&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;pre id=&quot;code_1708853185146&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;assert(1 == 1);		// true
assert(1 != 2);		// true
assert(2 &amp;gt; 1);		// true
assert(2 &amp;lt; 1);		// false
assert(2 &amp;gt;= 2);		// true
assert(2 &amp;lt;= 2);		// true&lt;/code&gt;&lt;/pre&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;pre id=&quot;code_1708853362641&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;true &amp;amp;&amp;amp; true		// true
true &amp;amp;&amp;amp; false		// false
false &amp;amp;&amp;amp; false		// false

true || true		// true
true || false		// true
false || false		// false

true == true		// true
true == false		// false
false == false		// true

true != true		// false
true != false		// true
false != false		// false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;다음은 타입검사에 대해서 알아보자&lt;/h2&gt;
&lt;pre id=&quot;code_1708853526155&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 100;
print(a is int);		// true

String text = &quot;Hello world!&quot;;
print(text is! int)		// true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘의 마지막으로 형변환에 대해 알아보자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형 변환 키워드는 as 키워드를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 서로 다른 타입끼리는 변환이 되지 않고, 더 상위의 개념으로 변환할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1708854136815&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var i = 10;
int d = i as double;		// Error

dynamic d = 10;
num n = d as num;		// as num; 생략 가능&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Flutter/dart</category>
      <category>dart</category>
      <category>연산자</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/50</guid>
      <comments>https://doodledevnote.tistory.com/50#entry50comment</comments>
      <pubDate>Sun, 25 Feb 2024 18:43:17 +0900</pubDate>
    </item>
    <item>
      <title>[Dart] 변수 선언</title>
      <link>https://doodledevnote.tistory.com/49</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Dart 언어도 타 언어와 마찬가지로 변수형이 존재한다.&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;타 언어처럼 Primitive Type을 기본적으로 제공한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;- int : 정수&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;- double : 실수&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;- String : 문자열&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;- bool : 참, 거짓&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;아무거나 선언해보자.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708796830306&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String name = &quot;Hong Gil-Dong&quot;;		// 문자열 선언
name = &quot;Kim&quot;		// 값 재할당

bool b = true;		// 참

int i = 1;		// 정수형 1
double d = 1.0;		// 실수형 1.0

num a = 10;		// 10
num b = 10.0;		// 10.0&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;style2&quot;&gt;num 타입은 int, double이 모두 사용가능한 포괄적인 숫자 타입이다.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708796954481&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int i = 1;		// 정수형 1
double d = 1.0;		// 실수형 1.0

num a = i;		// 1
num b = d;		// 1.0&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;style2&quot;&gt;int &amp;lt;&amp;gt; double 간 자동 형변환이 지원되지 않는다.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708797008095&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int i = 1;		// 정수형 1
double d = i;		// Error&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;style2&quot;&gt;var 타입 선언으로 타입 추론이 가능하다.&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708797132360&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var name = &quot;Hong Gil-Dong&quot;;		// 문자열 선언\
var b = true;		// 참
var i = 1;		// 정수형 1
var d = 1.0;		// 실수형 1.0

var b2 = i &amp;lt; 10;		// true
var b3 = s.isEmpty;		// false&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;style2&quot;&gt;상수 final, const&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708797399394&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;final String name = 'Hong Gil-Dong';
name = 'Kim'		// Error&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Flutter/dart</category>
      <category>dart</category>
      <category>변수</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/49</guid>
      <comments>https://doodledevnote.tistory.com/49#entry49comment</comments>
      <pubDate>Sun, 25 Feb 2024 02:56:57 +0900</pubDate>
    </item>
    <item>
      <title>[Dart] 주석 처리 방법</title>
      <link>https://doodledevnote.tistory.com/48</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;주석 처리 방법에는 3가지가 존재한다.&lt;/h2&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;pre id=&quot;code_1708854362436&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 이건 주석&lt;/code&gt;&lt;/pre&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;pre id=&quot;code_1708854379972&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* ... */&lt;/code&gt;&lt;/pre&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;pre id=&quot;code_1708854389264&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/// 문서 주석 방법
void functionA() {}&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;문서 주석은 위 처럼 메서드나 클래스 정의 위에 작성하고 dartdoc과 같은 문서 생성 도구를 사용하면 자동으로 문서를 생성해 준다.&lt;/p&gt;</description>
      <category>Flutter/dart</category>
      <category>dart</category>
      <category>FLUTTER</category>
      <category>주석</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/48</guid>
      <comments>https://doodledevnote.tistory.com/48#entry48comment</comments>
      <pubDate>Sun, 25 Feb 2024 02:40:47 +0900</pubDate>
    </item>
    <item>
      <title>[Flutter] Unable to locate Android SDK.</title>
      <link>https://doodledevnote.tistory.com/47</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;플러터 설치 후 오류&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flutter doctor 를 실행했더니 아래와 같은 오류가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1708790583769&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[X] Android toolchain - develop for Android devices                               
    X Unable to locate Android SDK.                                               
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.&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;`flutter config --android-sdk` 를 해보라고 하니 시도해 봤다.&lt;/p&gt;
&lt;pre id=&quot;code_1708790640459&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Missing argument for &quot;android-sdk&quot;.


Run 'flutter -h' (or 'flutter &amp;lt;command&amp;gt; -h') for available flutter commands and options.&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;찾아보니 `flutter config android-sdk` 를 시도해보라고 해서 해봤더니&lt;/p&gt;
&lt;pre id=&quot;code_1708790850666&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;error: flutter config: Too many arguments.

If a value has a space in it, enclose in quotes on the command line
to make a single argument.  For example:
    flutter config --android-studio-dir &quot;/opt/Android Studio&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;안된다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;015&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/015.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/015.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&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;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4144530119316836&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; 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;(아래 방법을 시도하기 전에 각자의 Android SDK Path를 알아야 한다. 이 부분은 생략.)&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flutter config --android-sdk &amp;lt;Android SDK path&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1708791187973&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Setting &quot;android-sdk&quot; value to &quot;C:\Public\Android&quot;.

You may need to restart any open editors for them to read new settings.&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;설정되었다고 하니, doctor를 실행해 보자.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;flutter doctor&lt;/blockquote&gt;
&lt;pre id=&quot;code_1708791257162&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[&amp;radic;] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc2)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Gooood~&lt;/b&gt;&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;032&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/032.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/032.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;</description>
      <category>Flutter</category>
      <category>FLUTTER</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/47</guid>
      <comments>https://doodledevnote.tistory.com/47#entry47comment</comments>
      <pubDate>Sun, 25 Feb 2024 01:17:01 +0900</pubDate>
    </item>
    <item>
      <title>[Android] TTS 실행하기</title>
      <link>https://doodledevnote.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;TTS(Text To Speech)는 말 그대로 텍스트를 음성으로 읽어주는 기능이다.&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;간단하게 리스너를 달아주고 speak 함수를 통해 내가 원하는 텍스트를 음성으로 출력할 수 있다.&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;먼저 아래처럼 TextToSpeech 변수를 만든다.&lt;/p&gt;
&lt;pre id=&quot;code_1705412262646&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private var tts: TextToSpeech? = null&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;나는 확장함수를 이용해 어디서든 초기화해서 사용할 수 있도록 구현했다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;TTSManager.kt&lt;/blockquote&gt;
&lt;pre id=&quot;code_1705412378277&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fun initTTS(context: Context): TextToSpeech {
    var tts: TextToSpeech? = null
    tts = TextToSpeech(context) {
            if (it == TextToSpeech.SUCCESS) {
                val result = tts!!.setLanguage(Locale.KOREAN)
                if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                    Log.e(&quot;TextToSpeech&quot;, &quot;해당 언어는 지원되지 않습니다.&quot;)
                    return@TextToSpeech
                }
            }
        }
    return tts
}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;TtsActivity.kt&lt;/blockquote&gt;
&lt;pre id=&quot;code_1705412424355&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_tts)
      
    tts = initTTS(this@TtsActivity)
}&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;간단하게 실행할 함수를 구현해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역시 확장함수를 이용해 어디서든 편하게 실행될 수 있도록 구현해보았다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;TTSManager.kt&lt;/blockquote&gt;
&lt;pre id=&quot;code_1705412550369&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fun TextToSpeech?.readText(text: String) {
    this?.speak(text, TextToSpeech.QUEUE_FLUSH, null, &quot;&quot;)
    this?.playSilentUtterance(500, TextToSpeech.QUEUE_ADD, null)
}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;TtsActivity.kt&lt;/blockquote&gt;
&lt;pre id=&quot;code_1705412669656&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;findViewById&amp;lt;Button&amp;gt;(R.id.btn_tts_play).setOnClickListener {
    tts?.readText(&quot;Start Text To Speech!&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;&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;blockquote data-ke-style=&quot;style2&quot;&gt;TtsActivity.kt&lt;/blockquote&gt;
&lt;pre id=&quot;code_1705412852336&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;override fun onDestroy() {
    if (tts != null) {
        tts?.stop()
        tts?.shutdown()
    }
    super.onDestroy()
}&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;이상 TTS를 실행하고 리소스를 정리해주는 것까지 간단하게 알아보았다.&lt;/p&gt;</description>
      <category>Android</category>
      <category>Android</category>
      <category>TextToSpeech</category>
      <category>tts</category>
      <category>안드로이드</category>
      <category>음성재생</category>
      <author>LeeeGi</author>
      <guid isPermaLink="true">https://doodledevnote.tistory.com/46</guid>
      <comments>https://doodledevnote.tistory.com/46#entry46comment</comments>
      <pubDate>Tue, 16 Jan 2024 22:48:26 +0900</pubDate>
    </item>
  </channel>
</rss>