<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>JGP Space</title>
    <link>https://jigeonpark.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 17 May 2026 04:59:39 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>JGP</managingEditor>
    <image>
      <title>JGP Space</title>
      <url>https://tistory1.daumcdn.net/tistory/2942461/attach/d457dce7dda64890ba9272faed754228</url>
      <link>https://jigeonpark.tistory.com</link>
    </image>
    <item>
      <title>토이 프로젝트 시작 - 매일일독</title>
      <link>https://jigeonpark.tistory.com/853</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;로고.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qPddx/btsMkAACfLJ/ZwQJSBbGYrupuFMli9musk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qPddx/btsMkAACfLJ/ZwQJSBbGYrupuFMli9musk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qPddx/btsMkAACfLJ/ZwQJSBbGYrupuFMli9musk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqPddx%2FbtsMkAACfLJ%2FZwQJSBbGYrupuFMli9musk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;로고.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&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;교회에서 성경통독표를 만들어 나누어주었는데, 여기에 성경개론과 읽기 해설, 오디오 QR코드를 함께 제공하고 있다.&lt;br /&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;br /&gt;저작권 문제가 있어서 고민중이긴 하지만 오늘 성경통독할 부분의 본문을 확인(서드파티 앱이나 서비스로 우회 고려중),&lt;br /&gt;당연하게도 성경통독 기록과 개론, 해설, 오디오 확인,&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444; text-align: left;&quot;&gt;친구들끼리, 소그룹, 공동체 단위로 랭킹도 만들어볼 생각이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이번에는 잘 사용하지 않던 Figma도 잘 활용해보고, 한 번도 실전에 사용해보지 못한 Vue.js를 전면으로 사용해보려고 한다.&lt;br /&gt;사실 상 Vue.js 실습을 위한 자기 계발용 토이 프로젝트로 보는 것이 맞다.&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;간단히 구상 중인 기술스택을 명세해보자면..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BE: django&lt;br /&gt;FE: Vue.js (Nuxt.js)&lt;br /&gt;DB: MariaDB&lt;br /&gt;CI/CD: GitHub Actions, Docker Compose&lt;br /&gt;Notification: Firebase&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정도로 고려중이다.&lt;br /&gt;복잡한 로드맵을 구성해두었지만 GPT에게 간단한 요약을 부탁해보았을 때의 결과는 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1차 목표&lt;/b&gt;&lt;br /&gt;-&amp;nbsp;Django&amp;nbsp;백엔드&amp;nbsp;및&amp;nbsp;MariaDB&amp;nbsp;모델링&amp;nbsp;구축&lt;br /&gt;-&amp;nbsp;Vue(Nuxt.js)&amp;nbsp;기반&amp;nbsp;프론트엔드&amp;nbsp;초기&amp;nbsp;화면&amp;nbsp;개발&lt;br /&gt;-&amp;nbsp;OAuth&amp;nbsp;로그인&amp;nbsp;(카카오,&amp;nbsp;구글)&amp;nbsp;구현&lt;br /&gt;-&amp;nbsp;성경통독표&amp;nbsp;및&amp;nbsp;진행률&amp;nbsp;저장&amp;nbsp;기능&amp;nbsp;개발&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2차 목표&lt;/b&gt;&lt;br /&gt;-&amp;nbsp;소그룹&amp;nbsp;생성&amp;nbsp;및&amp;nbsp;참여&amp;nbsp;기능&amp;nbsp;개발&lt;br /&gt;-&amp;nbsp;소그룹별&amp;nbsp;스코어보드&amp;nbsp;UI&amp;nbsp;구현&lt;br /&gt;-&amp;nbsp;유튜브&amp;nbsp;영상&amp;nbsp;등록&amp;nbsp;및&amp;nbsp;관리&amp;nbsp;기능&amp;nbsp;추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3차 목표&lt;/b&gt;&lt;br /&gt;-&amp;nbsp;PWA&amp;nbsp;설정&amp;nbsp;및&amp;nbsp;웹&amp;nbsp;푸시&amp;nbsp;알림&amp;nbsp;기능&amp;nbsp;구현&lt;br /&gt;-&amp;nbsp;Docker&amp;nbsp;Compose&amp;nbsp;기반&amp;nbsp;배포&amp;nbsp;환경&amp;nbsp;구축&lt;br /&gt;-&amp;nbsp;성능&amp;nbsp;최적화&amp;nbsp;및&amp;nbsp;테스트&amp;nbsp;진행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 개발 기간은 1주~2주 정도를 생각하고 있으나,&lt;br /&gt;Figma와 Vue.js 사용이 아직은 익숙하지 않아서 더 걸릴 수도 있을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT 같은 에이전트들의 성능이 너무 좋아져서 좋은 기회가 많이 오는 것 같다.&lt;/p&gt;</description>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/853</guid>
      <comments>https://jigeonpark.tistory.com/853#entry853comment</comments>
      <pubDate>Mon, 17 Feb 2025 09:25:16 +0900</pubDate>
    </item>
    <item>
      <title>django-allauth 카카오 로그인 제공자(Provider)문제 해결</title>
      <link>https://jigeonpark.tistory.com/852</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beZZeO/btsHbTsCZEM/Ez6YFoOZhfy34ALcPVVtK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beZZeO/btsHbTsCZEM/Ez6YFoOZhfy34ALcPVVtK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beZZeO/btsHbTsCZEM/Ez6YFoOZhfy34ALcPVVtK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeZZeO%2FbtsHbTsCZEM%2FEz6YFoOZhfy34ALcPVVtK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1138&quot; height=&quot;726&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이유는 모르겠지만, django-allauth를 통해 카카오 로그인을 진행하는 과정에서 django admin 페이지에 접속하여 REST API 키를 입력하는 단계에서 상단 Provider(제공자)에 'Kakao'가 선택지에 나오지 않는 문제가 있었다.&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lNAgn/btsHbQbxpg1/b9NXpYhgBDCKknbWz8cks0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lNAgn/btsHbQbxpg1/b9NXpYhgBDCKknbWz8cks0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lNAgn/btsHbQbxpg1/b9NXpYhgBDCKknbWz8cks0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlNAgn%2FbtsHbQbxpg1%2Fb9NXpYhgBDCKknbWz8cks0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1138&quot; height=&quot;712&quot; data-origin-width=&quot;1138&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;간단하게, 패키지의 버전을 0.61.1 버전으로 다시 설치하니 문제 없이 연동이 가능했다. (문제가 있는 버전은 0.62.0 및 0.62.1)&lt;/p&gt;</description>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/852</guid>
      <comments>https://jigeonpark.tistory.com/852#entry852comment</comments>
      <pubDate>Tue, 7 May 2024 13:30:34 +0900</pubDate>
    </item>
    <item>
      <title>Flutter(1) Dart - 변수 선언의 두 가지 방법</title>
      <link>https://jigeonpark.tistory.com/851</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2650&quot; data-origin-height=&quot;1488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCi7Y2/btsGNDjnzp4/Dkm4qCWoko3S1kPnKYr6Lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCi7Y2/btsGNDjnzp4/Dkm4qCWoko3S1kPnKYr6Lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCi7Y2/btsGNDjnzp4/Dkm4qCWoko3S1kPnKYr6Lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCi7Y2%2FbtsGNDjnzp4%2FDkm4qCWoko3S1kPnKYr6Lk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2650&quot; height=&quot;1488&quot; data-origin-width=&quot;2650&quot; data-origin-height=&quot;1488&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간에는 Dart에서 변수를 선언하는 방법에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dart에서는 변수를 만드는 두 가지 방법이 있다.&lt;/p&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;b&gt;| var 키워드로 변수 만들기&lt;/b&gt;&lt;/h2&gt;
&lt;pre class=&quot;cs&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;void main(){
	var lang = &quot;Dart&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면, Dart는 &quot;lang&quot;이라는 변수의 항목을 자동으로 String으로 인식한다.&lt;/p&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;b&gt;| 명시적 타입으로 변수 만들기&lt;/b&gt;&lt;/h2&gt;
&lt;pre class=&quot;arduino&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;void main(){
	String lang = &quot;Dart&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 내용처럼, String 이라는 명시적 타입으로 변수를 만들 수도있다.&lt;/p&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;b&gt;| 두 가지 방법의 관습적인 사용법&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통, 아래와 같은 관습을 따른다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;함수나 메소드 내부에 &lt;b&gt;지역변수&lt;/b&gt;를 지정할 때는 &lt;b&gt;var&lt;/b&gt;를 사용한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;class에서&lt;/b&gt; 변수나 property를 선언할 때는 &lt;b&gt;명시적 타입&lt;/b&gt;을 사용한다.&lt;/li&gt;
&lt;/ul&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;b&gt;| 참고&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;var를 사용하는게 Dart 스타일 가이드의 권장 방식이&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발 | Dev/Flutter, Dart</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/851</guid>
      <comments>https://jigeonpark.tistory.com/851#entry851comment</comments>
      <pubDate>Mon, 22 Apr 2024 15:21:58 +0900</pubDate>
    </item>
    <item>
      <title>Flutter(1) Dart - main 함수와 세미콜론</title>
      <link>https://jigeonpark.tistory.com/850</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2650&quot; data-origin-height=&quot;1488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7ancM/btsGNL9fcZu/VyQvYksYNE7k2lxHaPZdBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7ancM/btsGNL9fcZu/VyQvYksYNE7k2lxHaPZdBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7ancM/btsGNL9fcZu/VyQvYksYNE7k2lxHaPZdBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7ancM%2FbtsGNL9fcZu%2FVyQvYksYNE7k2lxHaPZdBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;558&quot; height=&quot;313&quot; data-origin-width=&quot;2650&quot; data-origin-height=&quot;1488&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간에는 Flutter로 가기 위한 초석으로서, Dart 언어로 &quot;Hello world!&quot;를 출력해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 Hello world! 출력이 필자에게는 새 컴퓨터 언어를 배울 때 언제나 가장 설레이는 순간 중 하나이다.&lt;br /&gt;Hello world! 출력이 무언가 개발을 해본 사람이라면 대부분의 시작점이 되기 때문이다!&lt;br /&gt;(시작이 반이라는 말이 있다.)&lt;/p&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;b&gt;| DartPad 소개&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발환경을 세팅하기 귀찮고, 우선 Dart 언어에 대해 파악하고 싶은 사람은 아래 사이트에서 테스트해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dartpad.dev&quot;&gt;https://dartpad.dev&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1713764626842&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;DartPad&quot; data-og-description=&quot;&quot; data-og-host=&quot;dartpad.dev&quot; data-og-source-url=&quot;https://dartpad.dev&quot; data-og-url=&quot;https://dartpad.dev&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://dartpad.dev&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dartpad.dev&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;DartPad&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;dartpad.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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;| Dart의 main 함수&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;1670&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvvzGL%2FbtsGQRAximj%2FYy7obyIk5SnbOnfZVQHPzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1670&quot; height=&quot;352&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cO2sGB/btsGOHk3ccp/ge9CJKuaVrck1ji33Gp331/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cO2sGB/btsGOHk3ccp/ge9CJKuaVrck1ji33Gp331/img.png&quot; data-alt=&quot;독일어 언어유희임&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cO2sGB/btsGOHk3ccp/ge9CJKuaVrck1ji33Gp331/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcO2sGB%2FbtsGOHk3ccp%2Fge9CJKuaVrck1ji33Gp331%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1670&quot; height=&quot;352&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;독일어 언어유희임&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dart에서 main 함수는, Entry Point이다.&lt;br /&gt;그래서 main 함수가 없으면 실행이 되지 않고 오류가 나는 모습을 발견할 수 있다.&lt;/p&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;b&gt;| Dart와 세미콜론&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;1670&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvvzGL%2FbtsGQRAximj%2FYy7obyIk5SnbOnfZVQHPzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1670&quot; height=&quot;352&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOm5XF/btsGPORy7m7/FxDsKSS70ZFZfY5qpNjKaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOm5XF/btsGPORy7m7/FxDsKSS70ZFZfY5qpNjKaK/img.png&quot; data-alt=&quot;세미콜론을 잘 찍지 않으면, 오류가 난다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOm5XF/btsGPORy7m7/FxDsKSS70ZFZfY5qpNjKaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOm5XF%2FbtsGPORy7m7%2FFxDsKSS70ZFZfY5qpNjKaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1670&quot; height=&quot;352&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;세미콜론을 잘 찍지 않으면, 오류가 난다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dart 언어에서는 반드시 세미콜론(;)을 잘 해주어야 한다.&lt;br /&gt;javascript 등에서는 항상 세미콜론을 찍어야하므로, 포맷터 등을 사용한다면 그렇게 중요하게 찍어주지 않아도 되었으나..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dart에서는 세미콜론을 찍지 않아도 되는 경우도 있기 때문에 신경써서 찍어줘야 한다!&lt;/p&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;b&gt;| Hello world 출력해보기&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; data-alt=&quot;재탕&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vvzGL/btsGQRAximj/Yy7obyIk5SnbOnfZVQHPzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvvzGL%2FbtsGQRAximj%2FYy7obyIk5SnbOnfZVQHPzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1670&quot; height=&quot;352&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;재탕&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1713766065965&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void main() {
  print('Hello world!');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드를 실행하면 Hello world!가 콘솔에 출력될 것이다.&lt;/p&gt;</description>
      <category>개발 | Dev/Flutter, Dart</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/850</guid>
      <comments>https://jigeonpark.tistory.com/850#entry850comment</comments>
      <pubDate>Mon, 22 Apr 2024 15:08:21 +0900</pubDate>
    </item>
    <item>
      <title>Flutter(1) Dart - 설치</title>
      <link>https://jigeonpark.tistory.com/849</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;937&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAeL9G/btsGNrwqCas/hmPQ0GxPYIYEB3788aE50K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAeL9G/btsGNrwqCas/hmPQ0GxPYIYEB3788aE50K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAeL9G/btsGNrwqCas/hmPQ0GxPYIYEB3788aE50K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAeL9G%2FbtsGNrwqCas%2FhmPQ0GxPYIYEB3788aE50K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;937&quot; height=&quot;461&quot; data-origin-width=&quot;937&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;필자는 만년 macOS 유저로서, Windows 머신도 사용은 하고 있기 때문에 Chocolately로 설치는 할테지만..&lt;br /&gt;macOS가 주 사용환경이라는 점을 참고해주시면 좋겠다.&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;| Homebrew 설치 (macOS)&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;이미 설치된 사람은 패스!&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시, Homebrew가 본인의 mac에 설치가 되어있지 않다면, 아래 사이트에 접속해서 Homebrew를 설치하도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://brew.sh/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://brew.sh/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1713763575683&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;Homebrew&quot; data-og-description=&quot;The Missing Package Manager for macOS (or Linux).&quot; data-og-host=&quot;brew.sh&quot; data-og-source-url=&quot;https://brew.sh/&quot; data-og-url=&quot;https://brew.sh/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fvbjg/hyVS04chry/jAzua3NAgkW1X8RArkyv0k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/b3ZUSt/hyVS6wBhob/0Ph5NNUPaoQn76j8aSKHrk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://brew.sh/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://brew.sh/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fvbjg/hyVS04chry/jAzua3NAgkW1X8RArkyv0k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/b3ZUSt/hyVS6wBhob/0Ph5NNUPaoQn76j8aSKHrk/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;Homebrew&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The Missing Package Manager for macOS (or Linux).&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;brew.sh&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;| Homebrew로 Dart 설치 (macOS)&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1713763962020&quot; class=&quot;armasm&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;brew update&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1713763994013&quot; class=&quot;armasm&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew tap dart-lang/dart&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1713764006406&quot; class=&quot;mipsasm&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install dart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 명령어로 간단히 Dart를 설치할 수 있다.&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 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;| Chocolately 설치 (Windows)&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;이미 설치된 사람은 패스!&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Chocolately가 본인의 PC에 설치가 되어있지 않다면, 아래 사이트에 접속해서 설치하도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://chocolatey.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://chocolatey.org/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1713764096447&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;product&quot; data-og-title=&quot;Chocolatey - The package manager for Windows&quot; data-og-description=&quot;Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.&quot; data-og-host=&quot;chocolatey.org&quot; data-og-source-url=&quot;https://chocolatey.org/&quot; data-og-url=&quot;https://chocolatey.org/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ba3WsI/hyVS3GD7uI/WHEzqNeKE47i3urr9tRzT0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/uyzmg/hyVS3zSrlI/yXbs2IQgd7fBJKy5DF6111/img.png?width=150&amp;amp;height=150&amp;amp;face=0_0_150_150,https://scrap.kakaocdn.net/dn/P3v8z/hyVS8urqnl/xRO5TdCJwOZrEpMexlh1N0/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://chocolatey.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://chocolatey.org/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ba3WsI/hyVS3GD7uI/WHEzqNeKE47i3urr9tRzT0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/uyzmg/hyVS3zSrlI/yXbs2IQgd7fBJKy5DF6111/img.png?width=150&amp;amp;height=150&amp;amp;face=0_0_150_150,https://scrap.kakaocdn.net/dn/P3v8z/hyVS8urqnl/xRO5TdCJwOZrEpMexlh1N0/img.jpg?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;Chocolatey - The package manager for Windows&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;chocolatey.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;| &lt;b&gt;Chocolately&lt;/b&gt;로 Dart 설치 (Windows)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, git bash를 관리자 권한으로 실행해주자.&lt;/p&gt;
&lt;pre id=&quot;code_1713764155718&quot; class=&quot;cmake&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;choco install dart-sdk&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;위 명령어로 간단히 Dart를 설치할 수 있다.&lt;/p&gt;</description>
      <category>개발 | Dev/Flutter, Dart</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/849</guid>
      <comments>https://jigeonpark.tistory.com/849#entry849comment</comments>
      <pubDate>Mon, 22 Apr 2024 14:36:53 +0900</pubDate>
    </item>
    <item>
      <title>Flutter를 공부해야겠다</title>
      <link>https://jigeonpark.tistory.com/848</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;937&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JGfDY/btsGQ89GkzU/kA6uh5AWsKv02enzvCJerk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JGfDY/btsGQ89GkzU/kA6uh5AWsKv02enzvCJerk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JGfDY/btsGQ89GkzU/kA6uh5AWsKv02enzvCJerk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJGfDY%2FbtsGQ89GkzU%2FkA6uh5AWsKv02enzvCJerk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;937&quot; height=&quot;461&quot; data-origin-width=&quot;937&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 최근 Django로 만들던 웹 앱의 한계를 느끼고, 내가 만드는 UI와 UX를 좀 더 유려하게 개선하고 싶은 욕구,&lt;br /&gt;또 웹에서 더 나아가 앱 환경까지 견문을 넓히고 싶은 욕구가 있어, 자기 계발 차원에서 새로운 라이브러리를 공부해보기로 결정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 고민해본결과 React와 Flutter를 많이 고민했지만,&lt;br /&gt;한국 개발자 생태계의 생리 상 React가 국내 시장에 취업을 하기엔 좀 더 좋기야 하겠지만(개발자의 관성의 관점에서..)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;React는 JavaScript 기반이므로 접근하기 좀 더 쉬움&lt;s&gt;(지금 안하고 싶음)&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;최근 Airbnb가 React를 떠나보낸 사건&lt;/li&gt;
&lt;li&gt;(국내는 더 특히!) Flutter가 개발자의 수가 적음&lt;/li&gt;
&lt;li&gt;Dart라는 빠르고 유려한 개발언어까지 덤으로 공부할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;물론! Google에서 만들었으므로 프로젝트 자체를 드랍해버릴 수도 있는 리스크가 있기는 하지만!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 Flutter가 조금 더 비전이 보여서 Flutter를 공부해보기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 무료 튜토리얼이나 강의가 많이 나와있기 때문에, Dart라는 생소한 언어와 Flutter의 개념을 잡는데 집중하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에, Flutter를 어느 정도 다룰 수 있게 되면, React도 한 번 공부해보고, Kotlin도 공부해보아야겠다.&lt;br /&gt;언제나 그렇듯이, 조급한 마음을 내려놓고 천천히..&lt;/p&gt;</description>
      <category>개발 | Dev/Flutter, Dart</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/848</guid>
      <comments>https://jigeonpark.tistory.com/848#entry848comment</comments>
      <pubDate>Mon, 22 Apr 2024 14:23:21 +0900</pubDate>
    </item>
    <item>
      <title> 세월호 10주기 추모 이미지</title>
      <link>https://jigeonpark.tistory.com/847</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; 잊지 않겠습니다&lt;/b&gt;&lt;/h2&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;| 제작자의 말&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. 매년 나름의 추모로서 세월호 추모 이미지를 만들어 공유하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5주기 때부터 계속 해오던 일인데, 벌써 10주기라니 참 시간이 빠른 것 같습니다.&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;span style=&quot;background-color: #ffffff; color: #111111; text-align: start;&quot;&gt;유용하게 사용하셨다면 댓글 하나 남겨주세요.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #111111; text-align: start;&quot;&gt;혹은 블로그 광고 한 번 눌러주시면 큰 힘이 됩니다. 감사합니다.&lt;/span&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;| 다운로드&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;  &lt;b&gt;다운로드 안내&lt;/b&gt;&lt;br /&gt;&lt;b&gt;크게 2가지의 버전으로 제공됩니다.&lt;/b&gt;&lt;br /&gt;1. SNS 게시물 업로드 용(1:1)&lt;br /&gt;2. SNS 스토리 업로드 용(9:16)&lt;br /&gt;&lt;br /&gt;이번 이미지에는 10주기를 맞아, 리본 뒤에 흐릿한 '10'이라는 타이포를 포함하였습니다.&lt;br /&gt;10이 있는 버전과 없는 버전으로 각각 제공합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;모든 이미지가 모여있는 압축파일 :&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bntBXu/btsGGjXKxCg/NRFnSNV9tRy6mBuNbdQdG0/%E1%84%89%E1%85%A6%E1%84%8B%E1%85%AF%E1%86%AF%E1%84%92%E1%85%A9%2010%E1%84%8C%E1%85%AE%E1%84%80%E1%85%B5.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;세월호 10주기.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.35MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| SNS 게시물 업로드 용(1:1)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;정사각형(인스타그램)-10포함.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpz9UQ/btsGDA7t54z/WG4ESWKNG3gu8KDBWCvae1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpz9UQ/btsGDA7t54z/WG4ESWKNG3gu8KDBWCvae1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpz9UQ/btsGDA7t54z/WG4ESWKNG3gu8KDBWCvae1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpz9UQ%2FbtsGDA7t54z%2FWG4ESWKNG3gu8KDBWCvae1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;정사각형(인스타그램)-10포함.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;정사각형(인스타그램)-10삭제.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cp2WwY/btsGDLOFxta/kVxOdZa0Zhk4ZDGlBm5uH1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cp2WwY/btsGDLOFxta/kVxOdZa0Zhk4ZDGlBm5uH1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cp2WwY/btsGDLOFxta/kVxOdZa0Zhk4ZDGlBm5uH1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp2WwY%2FbtsGDLOFxta%2FkVxOdZa0Zhk4ZDGlBm5uH1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;정사각형(인스타그램)-10삭제.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| SNS 스토리 업로드 용(9:16)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;직사각형(인스타그램)-10포함.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kobtp/btsGCaobNMR/MLHzttKtgz5TtYsVhWe1pK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kobtp/btsGCaobNMR/MLHzttKtgz5TtYsVhWe1pK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kobtp/btsGCaobNMR/MLHzttKtgz5TtYsVhWe1pK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKobtp%2FbtsGCaobNMR%2FMLHzttKtgz5TtYsVhWe1pK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1920&quot; data-filename=&quot;직사각형(인스타그램)-10포함.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;직사각형(인스타그램)-10삭제.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpSxUW/btsGGji89tB/L4W0llmd73fu1hVFJWb5OK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpSxUW/btsGGji89tB/L4W0llmd73fu1hVFJWb5OK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpSxUW/btsGGji89tB/L4W0llmd73fu1hVFJWb5OK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpSxUW%2FbtsGGji89tB%2FL4W0llmd73fu1hVFJWb5OK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1920&quot; data-filename=&quot;직사각형(인스타그램)-10삭제.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1920&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;| iPhone에서 이미지 저장하는 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Info.png&quot; data-origin-width=&quot;2716&quot; data-origin-height=&quot;2716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt1kmB/btsGFyHMpnP/X53YdmdkEO94iCNeS9UZ90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt1kmB/btsGFyHMpnP/X53YdmdkEO94iCNeS9UZ90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt1kmB/btsGFyHMpnP/X53YdmdkEO94iCNeS9UZ90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt1kmB%2FbtsGFyHMpnP%2FX53YdmdkEO94iCNeS9UZ90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2716&quot; height=&quot;2716&quot; data-filename=&quot;Info.png&quot; data-origin-width=&quot;2716&quot; data-origin-height=&quot;2716&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;| 저작권 안내&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;by-nd.png&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yOCyF/btsGCXu7cid/fW4GMXKpHlyyBoyAzbxKo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yOCyF/btsGCXu7cid/fW4GMXKpHlyyBoyAzbxKo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yOCyF/btsGCXu7cid/fW4GMXKpHlyyBoyAzbxKo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyOCyF%2FbtsGCXu7cid%2FfW4GMXKpHlyyBoyAzbxKo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;141&quot; data-filename=&quot;by-nd.png&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 저작물은 Creative Commons 라이선스를 채택한 저작물입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://jgpark.kr/847&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;세월호 10주기 이미지&lt;/a&gt; / &lt;a href=&quot;https://jgpark.kr&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JGP&lt;/a&gt; / CC-BY ND
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;저작자 표시 및 수정금지 조건 하에 상업적/비상업적 이용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>일상 | JGP's Life/영상, 사진 | Video &amp;amp; Photo</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/847</guid>
      <comments>https://jigeonpark.tistory.com/847#entry847comment</comments>
      <pubDate>Mon, 15 Apr 2024 22:05:53 +0900</pubDate>
    </item>
    <item>
      <title>지훈과얼굴들: 기획 회의 이후(개발자 관점)</title>
      <link>https://jigeonpark.tistory.com/846</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;*이 글은 참고로 프로젝트가 종료된 후 작성되고 있다.&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;| 이전 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jgpark.kr/844&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jgpark.kr/844&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1712124326263&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;새 프로젝트 시작: '지훈과 얼굴들'&quot; data-og-description=&quot;필자는 작년(2023)년 12월 말 부터 데이터 분석 공부를 하고 있다. '멀티캠퍼스'라는 훈련기관에서 운영하는 국비지원 과정에 참여하고 있는데, 그 동안 작은 미니 프로젝트들(Kaggle 대회, 자체 과&quot; data-og-host=&quot;jgpark.kr&quot; data-og-source-url=&quot;https://jgpark.kr/844&quot; data-og-url=&quot;https://jgpark.kr/844&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cxZmyg/hyVGNY0tWJ/qed0ZApEKgDDMuyKfSCorK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dbWf0C/hyVJUCb8Qs/uv5Cc1qygNY5KmgZOQd9J0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/4z2qq/hyVGQg5uIM/kkGstlkMGQ6OKmRTX2aAT0/img.png?width=1105&amp;amp;height=1106&amp;amp;face=0_0_1105_1106&quot;&gt;&lt;a href=&quot;https://jgpark.kr/844&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jgpark.kr/844&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cxZmyg/hyVGNY0tWJ/qed0ZApEKgDDMuyKfSCorK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dbWf0C/hyVJUCb8Qs/uv5Cc1qygNY5KmgZOQd9J0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/4z2qq/hyVGQg5uIM/kkGstlkMGQ6OKmRTX2aAT0/img.png?width=1105&amp;amp;height=1106&amp;amp;face=0_0_1105_1106');&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;새 프로젝트 시작: '지훈과 얼굴들'&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;필자는 작년(2023)년 12월 말 부터 데이터 분석 공부를 하고 있다. '멀티캠퍼스'라는 훈련기관에서 운영하는 국비지원 과정에 참여하고 있는데, 그 동안 작은 미니 프로젝트들(Kaggle 대회, 자체 과&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jgpark.kr&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;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;| 들어가며&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 포스팅의 시점 이후 숱한 회의를 거듭하여 아래와 같은 프로젝트 진행 방향에 대해 결정하게 되었다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입지 분석에 대한 머신러닝을 진행하여 최적의 입지를 선정&lt;/li&gt;
&lt;li&gt;입지를 그냥 문서로만 표현하면 전달력이 떨어질 것 같음!&lt;/li&gt;
&lt;li&gt;본인이 Django 개발 경험이 있으니 &amp;gt;&amp;gt; 웹 앱 형태로 구현해보자!&lt;/li&gt;
&lt;li&gt;실시간 전기차 충전소 정보도 보여주고, 제대로 된 분석도구를 최대한 만들어보자!&lt;/li&gt;
&lt;/ul&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;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;|  구상&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;회의 후 어떻게 운영을 해볼까, 고민을 해보았다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;개발 환경을 어떻게 할지부터.. 운영은 어떻게 할지, 고려해야 할 것들이 뭐가 있는지..&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;한정된 시간 속에서 최고의 결과물이 나와야 했기 때문에 고민이 많았다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;개발 환경&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;본인은 파이썬이 가장 익숙하고, Django 개발 경험이 많다. 그래서 Django로 결정.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;새로운 프레임워크에 도전하기 보다는 익숙한 것으로 하기로 결정했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IDE는 역시 가장 익숙한 PyCharm과 VSCode를 쓸거다.&lt;/li&gt;
&lt;li&gt;node.js 서버를 하나 띄워서 github webhook을 이용한 배포 자동화를 시도해볼 생각인데, 배포가 잦진 않을 것 같아 고민중.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;운영 계획&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AWS 프리티어 등을 활용해볼까도 했다.&lt;/li&gt;
&lt;li&gt;그러나 개인 NAS가 항상 자원이 남아서 이쪽에서 운영을 해보기로 했다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Proxmox로 NAS를 운영 중이고, Docker용도로 굴리는 Ubuntu VM이 있어서 그쪽에서 운영할 계획을 세웠다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이미 Django 기반의 고객사 업무 지원도구(전산)를 호스팅하고 있기 때문에 역시 익숙하다는 이유가 주된 결정 이유이다.&lt;/li&gt;
&lt;li&gt;DB는 무난한 mariaDB를 쓰기로 했다.&lt;/li&gt;
&lt;li&gt;웹 서버는 역시 Nginx로 할 계획이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;관리 환경&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker-Compose로 Stack을 만들어 운영해볼 구상을 하게 되었다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i&gt;Docker-Compose가 궁금한 분들은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://jgpark.kr/845&quot;&gt;여기&lt;/a&gt;로..&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;phpMyAdmin을 Docker로 하나 띄워서 DB 관리를 좀 편리하게 해볼 생각이다.&lt;/li&gt;
&lt;li&gt;Docker를 UI로 편리하게 관리할 수 있게 해주는 Portainer는 이미 Ubuntu VM에서 운영 중이라 자동으로 따라온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅을 프로젝트 종료 후 쓰고 있으니, 과거 시점으로 쓰기가 참 어렵다.&lt;br /&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;</description>
      <category>개발 | Dev/데이터 분석&amp;amp;엔지니어 부트캠프</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/846</guid>
      <comments>https://jigeonpark.tistory.com/846#entry846comment</comments>
      <pubDate>Wed, 3 Apr 2024 15:24:31 +0900</pubDate>
    </item>
    <item>
      <title>Docker는 무엇이고, Docker Compose는 무엇인가?</title>
      <link>https://jigeonpark.tistory.com/845</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oxHyZ/btsGldRz2yv/ThjfAxHTHLkTsnx8Ari700/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oxHyZ/btsGldRz2yv/ThjfAxHTHLkTsnx8Ari700/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oxHyZ/btsGldRz2yv/ThjfAxHTHLkTsnx8Ari700/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoxHyZ%2FbtsGldRz2yv%2FThjfAxHTHLkTsnx8Ari700%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;size16&quot;&gt;최근 몇 년 동안, 컨테이너 기술이 애플리케이션 배포와 관리에 있어서 혁신하고 있다.&lt;br /&gt;그 중에서도 Docker는 특히 주목받는데, 그 이유는 개발자와 시스템 관리자 모두에게 애플리케이션을 패키징하고 실행하는 데 있어서 쉽고 효율적인 방법을 제공하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 포스팅에서는 Docker와 그 도구인 Docker Compose에 대해 소개하고, 이들이 개발과 배포의 효율성을 어떻게 높이고 있는지 살펴보자.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| 그래서 Docker가 뭔데?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker는 컨테이너화된 애플리케이션을 만들고 실행하는 플랫폼으로, 애플리케이션을 환경과 분리하여 일관된 배포와 실행이 가능하게 해준다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| Docker의 핵심 개념 정리&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;이미지(Image)&lt;/b&gt;: Docker 컨테이너를 만들기 위한 파일 시스템과 실행할 애플리케이션 설정 등이 포함된 &lt;b&gt;일종의 템플릿&lt;/b&gt;이다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지는 Docker Hub에서 가져올 수도 있고, 직접 빌드하여 만들 수도 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컨테이너(Container)&lt;/b&gt;: 이미지의 실행 가능한 &lt;b&gt;인스턴스&lt;/b&gt;로, &lt;b&gt;격리된 환경&lt;/b&gt;에서 애플리케이션이 실행된다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Host OS(Windows, macOS, Linux 등..) 상에서 Docker Host가 운영되고, Docker Host 상에서 컨테이너가 구동된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;레지스트리(Registry)&lt;/b&gt;: Docker 이미지를 저장하고 배포하는 곳으로, Docker Hub가 가장 널리 사용되는 레지스트리 중 하나이다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| 그럼 Docker Compose는 또 뭔데?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Compose는 &lt;b&gt;여러 개의 Docker 컨테이너&lt;/b&gt;를 정의하고 실행하는 도구이다.&lt;br /&gt;복잡한 다중 컨테이너 애플리케이션을 간단히 정의하고 관리할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 개발 환경에서 사용되며, Docker Compose 파일을 통해 &lt;b&gt;애플리케이션의 구성&lt;/b&gt;과 &lt;b&gt;서비스 간의 의존성을 정의&lt;/b&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| Docker Compose의 주요 기능&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;단순한 정의&lt;/b&gt;: &lt;b&gt;YAML 파일&lt;/b&gt;을 사용하여 애플리케이션의 &lt;b&gt;서비스, 네트워크, 볼륨&lt;/b&gt; 등을 정의할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다중 컨테이너 관리&lt;/b&gt;: &lt;b&gt;여러 개&lt;/b&gt;의 컨테이너를 &lt;b&gt;동시에 관리&lt;/b&gt;하고, &lt;b&gt;서로 간의 의존성을 설정&lt;/b&gt;할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;편리한 환경 구성&lt;/b&gt;: 개발자가 로컬 환경에서 애플리케이션을 실행하고 테스트하기 위해 &lt;b&gt;필요한 모든 설정을 포함&lt;/b&gt;할 수 있다.&lt;/li&gt;
&lt;/ol&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;| 예시&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 웹 애플리케이션을 Docker와 Docker Compose를 사용하여 개발 및 배포할 때 다음과 같은 절차를 거칠 수 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Dockerfile 작성&lt;/b&gt;: 각 애플리케이션 서비스에 대한 Dockerfile을 작성하여 이미지를 빌드한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;docker-compose.yml 작성&lt;/b&gt;: 여러 서비스와 이들 간의 의존성을 정의하는 Docker Compose 파일을 작성한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;서비스 실행&lt;/b&gt;: &lt;code&gt;docker-compose up&lt;/code&gt; 명령어를 사용하여 정의한 서비스를 실행한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;테스트 및 디버깅&lt;/b&gt;: 개발자는 로컬 환경에서 애플리케이션을 테스트하고 디버깅할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;배포&lt;/b&gt;: 개발이 완료되면 Docker Compose를 사용하여 애플리케이션을 서버에 배포할 수 있다.&lt;/li&gt;
&lt;/ol&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Django 웹 앱의 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 서버 : Nginx&lt;/li&gt;
&lt;li&gt;웹 프레임워크 : Django&lt;/li&gt;
&lt;li&gt;DB : MariaDB&lt;/li&gt;
&lt;li&gt;관리도구 : phpMyAdmin&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 각 서비스들(Nginx, Django, MariaDb, phpMyAdmin)을 &lt;b&gt;각각의 컨테이너&lt;/b&gt;로 만들고, 각 컨테이너의 &lt;b&gt;설정&lt;/b&gt;은 &lt;b&gt;Dockerfile&lt;/b&gt;로 관리하며, &lt;b&gt;각 컨테이너 간의 환경&lt;/b&gt;(네트워크 설정, 저장소 설정 등..)은 &lt;b&gt;docker-compose&lt;/b&gt;로 관리하는 것이며, &lt;b&gt;개발 중&lt;/b&gt;에는 내용의 변경이 있을 때마다 &lt;b&gt;docker-compose&lt;/b&gt;를 재시작하면 &lt;b&gt;변경 내용이 자동으로 다시 빌드&lt;/b&gt;되므로 &lt;b&gt;개발환경의 효율성을 제고&lt;/b&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;마치며&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker와 Docker Compose는 애플리케이션 개발과 배포를 효율적으로 관리할 수 있는 강력한 도구이다.&lt;br /&gt;컨테이너화 기술의 발전으로 더 많은 개발자와 조직이 이러한 도구를 채택하고 있으며, 이는 개발 생산성과 시스템 관리의 효율성을 크게 향상시키고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Docker와 Docker Compose를 활용하여 보다 효율적으로 애플리케이션을 개발하고 배포해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;참고 자료&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker 공식 문서: &lt;a href=&quot;https://docs.docker.com/&quot;&gt;https://docs.docker.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Docker Compose 공식 문서: &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;https://docs.docker.com/compose/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;p.s 지훈과얼굴들 프로젝트 포스팅하다가 Docker 정리하는 포스팅이 필요해서 썼다(...)&lt;/i&gt;&lt;/p&gt;</description>
      <category>개발 | Dev</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/845</guid>
      <comments>https://jigeonpark.tistory.com/845#entry845comment</comments>
      <pubDate>Wed, 3 Apr 2024 14:41:22 +0900</pubDate>
    </item>
    <item>
      <title>새 프로젝트 시작: '지훈과 얼굴들'</title>
      <link>https://jigeonpark.tistory.com/844</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;지훈과얼굴들.png&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;1106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKCeu8/btsFZaoTbW8/T5WS8KitvLYNxfzkOoqgpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKCeu8/btsFZaoTbW8/T5WS8KitvLYNxfzkOoqgpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKCeu8/btsFZaoTbW8/T5WS8KitvLYNxfzkOoqgpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKCeu8%2FbtsFZaoTbW8%2FT5WS8KitvLYNxfzkOoqgpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1105&quot; height=&quot;1106&quot; data-filename=&quot;지훈과얼굴들.png&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;1106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 작년(2023)년 12월 말 부터 데이터 분석 공부를 하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'멀티캠퍼스'라는 훈련기관에서 운영하는 국비지원 과정에 참여하고 있는데,&lt;br /&gt;그 동안 작은 미니 프로젝트들(Kaggle 대회, 자체 과제 등등..)만 진행하다가 이번에 드디어 중규모의 세미 프로젝트를 진행하게 되었다.&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;| 지훈과 얼굴들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 팀원들을 만났음에도 주제 선정에 꽤나 큰 난항을 겪었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대 주제를 거의 2번 정도 엎었고, 세부적인 내용들을 하나부터 열까지, 변수를 어떻게 해야할지, 지역을 어떻게 설정해야할지..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기획안부터 실제 분석과 개발까지,&lt;br /&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;br /&gt;&lt;i&gt;&lt;s&gt;(강사님이 보고 계신다면, 그것은 기분탓임을 다시 한번 강조 ~~ ^__^)&lt;/s&gt;&lt;/i&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;| 주제 선정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt; 분석을 하려는데 주제가 없으면 그냥 즐거운 사교모임 정도에 그치고 말 것이 아닌가!&lt;br /&gt;프로젝트 기간은 길지 않다. 정말 우여곡절 끝에, '전기차'라는 대주제를 정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 우리 조의 최종 목표는 아래와 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;교통 흐름과 도시 내 이동 패턴 데이터를 분석하여 전기차 충전소의 최적 위치를 예측&lt;br /&gt;&lt;/span&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;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 장황하게 이 블로그에서 이 프로젝트를 열어본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 이 글이 업로드 되는 시점은 프로젝트 마무리가 1주일 쯤 남은 시점이긴 하지만..&lt;br /&gt;부지런히 포스팅도 하고, 분석도 하고, 개발도 하고! 발표 자료도 만들어야한다.&lt;/p&gt;</description>
      <category>개발 | Dev/데이터 분석&amp;amp;엔지니어 부트캠프</category>
      <author>JGP</author>
      <guid isPermaLink="true">https://jigeonpark.tistory.com/844</guid>
      <comments>https://jigeonpark.tistory.com/844#entry844comment</comments>
      <pubDate>Fri, 22 Mar 2024 15:34:39 +0900</pubDate>
    </item>
  </channel>
</rss>