<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>J's Study Log</title>
    <link>https://jstudylog.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 6 Apr 2026 04:33:29 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>프로성장러</managingEditor>
    <item>
      <title>[C++ STL 정리하기] Standard Template Library</title>
      <link>https://jstudylog.tistory.com/56</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;STL : Standard Template Library&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러가지 자료구조와 알고리즘 등을 데이터타입에 의존하지 않게 미리 만들어놓은 라이브러리.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. container&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동일한 type 의 원소들을 저장하는 객체 ( 자료구조 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sequence&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;array : 정적 배열&lt;/li&gt;
&lt;li&gt;vector : 동적 배열&lt;/li&gt;
&lt;li&gt;deque : 동적 배열&lt;/li&gt;
&lt;li&gt;foward_list : singly linked list&lt;/li&gt;
&lt;li&gt;list: doubly linked list&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Adaptors&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;stack&amp;nbsp; : 스택 자료구조 , last in first out&lt;/li&gt;
&lt;li&gt;queue : 큐 자료구조 , first in first out&lt;/li&gt;
&lt;li&gt;priority_ queue : 우선순위 큐&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Associative&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;set : (key) 중복 X&lt;/li&gt;
&lt;li&gt;map : (key,value) 중복 x&lt;/li&gt;
&lt;li&gt;multiset : (key) 중복 O&lt;/li&gt;
&lt;li&gt;map : (key,value) 중복 O&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Unordered associative(Hash)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;unordered_set: (key) 중복 x&lt;/li&gt;
&lt;li&gt;unordered_map :(key,value) 중복 x&lt;/li&gt;
&lt;li&gt;unordered_multiset: (key) 중복 O&lt;/li&gt;
&lt;li&gt;unordered_multimap :(key,value) 중복 O&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. algorithm&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;data를 다룰 때 유용하게 쓸 수 있는 함수들 ( 알고리즘 )&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sort, partial_sort, nth_element, find&lt;/li&gt;
&lt;li&gt;max,min, swap&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. iterator&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;컨테이너에 저장된 원소들을 접근하고 순회하는 객체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. function object&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;operator() 연산자를 오버로딩한 클래스의 객체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/56</guid>
      <comments>https://jstudylog.tistory.com/56#entry56comment</comments>
      <pubDate>Sat, 17 Sep 2022 18:14:25 +0900</pubDate>
    </item>
    <item>
      <title>[코딩테스트 고득점 KIT] 이분탐색 - 징검다리</title>
      <link>https://jstudylog.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;1. 문제&lt;/b&gt;&lt;br&gt;&lt;b&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43236&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://programmers.co.kr/learn/courses/30/lessons/43236&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;코딩테스트 연습 - 징검다리&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43236&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bSfLM3/hyOxqW4rJ7/Vlvow5xSxvGKKk9fKWX1jk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/nBByQ/hyOxpDRPWO/u4j8EAWZbknMKaLKmkoxD1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43236&quot;&gt;
 &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43236&quot; target=&quot;_blank&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43236&quot;&gt;
  &lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bSfLM3/hyOxqW4rJ7/Vlvow5xSxvGKKk9fKWX1jk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/nBByQ/hyOxpDRPWO/u4j8EAWZbknMKaLKmkoxD1/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626')&quot;&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;og-text&quot;&gt;
   &lt;p class=&quot;og-title&quot;&gt;코딩테스트 연습 - 징검다리&lt;/p&gt;
   &lt;p class=&quot;og-desc&quot;&gt;출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가&lt;/p&gt;
   &lt;p class=&quot;og-host&quot;&gt;programmers.co.kr&lt;/p&gt;
  &lt;/div&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;[level 4]&lt;br&gt; &lt;br&gt; &lt;br&gt; &lt;br&gt;&lt;b&gt;2. 풀이&lt;/b&gt;&lt;/p&gt;
&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def solution(distance, rocks, n):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rocks.sort()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end = distance
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer = distance
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while start &amp;lt;= end :
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mid = (start+end)//2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sp = 0 # 치우지않은 돌의 좌표
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minlen = distance #현재까지 거리의 최소값
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ncount = 0 #치운 돌의수
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i in rocks:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 거리의 최솟값이 mid이려면 mid 미만일때는 돌을 계속 치운다
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if i-sp &amp;lt;mid:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ncount +=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# mid 이상일때는 돌을 치우지 않습니다.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 지금까지의 최소값을 기록
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minlen = min(minlen, i-sp)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sp = i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;minlen= min(distance-sp,minlen)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# 돌을 더 많이 치워야 했다면 최솟값은 더 작아야합니다.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ncount &amp;gt;n:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end =mid -1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#돌을 적게 치운경우.. 확인을 해봐야합니다.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#일단 정답으로 두고 위쪽 범위에서 가능한지 확인해본다.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ncount &amp;lt;n:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer = mid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start =mid +1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if minlen &amp;lt; mid:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end = mid-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elif minlen &amp;gt; mid:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start = mid +1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else :
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer =mid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return answer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;이분탐색 문제임을 알고 있었음에도 접근하기 까다로웠다.&lt;br&gt; &lt;br&gt;처음 문제를 봤을 때는 바위 간의 거리를 정리해서 최소값을 구해야 된다고 생각했는데, 정해진 바위의 개수를 빼는 경우의 수가 너무 많고 복잡할 것 같았다. &lt;br&gt;이분 탐색문제라는 레이블이 없었다면 풀기 어려웠을 것 같다.&lt;br&gt; &lt;br&gt; &lt;br&gt;구하려는 &quot;각 지점사이의 거리의 최솟값&quot; 을 먼저 예측하고 이에 맞춰서 돌을 치우는 방식이다.&lt;br&gt;거리의 최소값을 알고있다면, 최소값보다 작은 거리를 만들게 되는 돌들을 치워준다.&lt;br&gt;만약 실제로 치워야하는 돌보다 많이 치웠다면 , 타깃으로 한 거리가 너무 길었다는 뜻이기 때문에 왼쪽을 추가로 탐색한다. 돌을 예상 보다 적게 치운 경우, 남은 돌에서 더 치울경우 최솟값이 더 커질 수 도 있기 때문에 정답이 될수도 있지만 그보다 큰 값이 정답일 수도 있다. 그래서 정답으로 두고 오른쪽을 추가로 탐색한다. (이때의 값을 정답으로 저장하는 로직을 여기에 넣지 않았을 때는 9개 테스트케이스중 3개 오답이 발생했었는데 추가하고서 통과했다)&lt;br&gt; &lt;br&gt;그리고 마지막은 일반적인 이분탐색의 방법대로 최소값이 타깃보다 작을경우 왼쪽, 클경우 오른쪽을 추가로 탐색한다.&lt;br&gt; &lt;br&gt; &lt;/p&gt;</description>
      <category>Algorithm</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/51</guid>
      <comments>https://jstudylog.tistory.com/51#entry51comment</comments>
      <pubDate>Fri, 27 May 2022 00:04:45 +0900</pubDate>
    </item>
    <item>
      <title>[코딩테스트 고득점 KIT] 이분탐색 -입국심사</title>
      <link>https://jstudylog.tistory.com/50</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;1. 문제&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://programmers.co.kr/learn/courses/30/lessons/43238&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;코딩테스트 연습 - 입국심사&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 &quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bAx3qN/hyOyzrhJ0f/Fm9XKYs0zYQUC6tU6ukO5K/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/hGiaD/hyOxyHy4Th/2IeEAlEyE1wx94J8KGl3FK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot;&gt;
 &lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot; target=&quot;_blank&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/43238&quot;&gt;
  &lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bAx3qN/hyOyzrhJ0f/Fm9XKYs0zYQUC6tU6ukO5K/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/hGiaD/hyOxyHy4Th/2IeEAlEyE1wx94J8KGl3FK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626')&quot;&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;og-text&quot;&gt;
   &lt;p class=&quot;og-title&quot;&gt;코딩테스트 연습 - 입국심사&lt;/p&gt;
   &lt;p class=&quot;og-desc&quot;&gt;n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 &lt;/p&gt;
   &lt;p class=&quot;og-host&quot;&gt;programmers.co.kr&lt;/p&gt;
  &lt;/div&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt; &lt;br&gt;&lt;b&gt;2. 코드 제출&lt;/b&gt;&lt;/p&gt;
&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def solution(n, times):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start = min(times)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end = max(times) * n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while start &amp;lt;= end:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mid = (start+end) // 2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pcount = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i in times:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pcount += mid//i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if pcount &amp;lt; n:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start = mid +1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer = mid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end = mid -1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return answer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;b&gt;3. 풀이&lt;/b&gt;&lt;br&gt;전형적인 이진탐색 풀이 방법으로 풀 수 있는 문제였다.&lt;br&gt; &lt;/p&gt;</description>
      <category>Algorithm</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/50</guid>
      <comments>https://jstudylog.tistory.com/50#entry50comment</comments>
      <pubDate>Thu, 26 May 2022 22:03:12 +0900</pubDate>
    </item>
    <item>
      <title>우아한 Tech 테코톡 리뷰</title>
      <link>https://jstudylog.tistory.com/49</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;우아한 형제들 기술 유튜브(?) 우아한 Tech 에는 기술 관련된 세미나나 짧은 영상들이 많이 올라온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중에서도 자주 보이는건 10분 테코톡이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우아한 테크코스에 참여하는 교육생들이 하나씩 주제를 맡아서 돌아가면서 세미나를 하는 형태인데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 직접 공부해서 다른 교육생들에게 설명하는 영상이다보니 설명이 쉽고 이해가 편한 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료구조, Web protocol, 네트워크, 프레임워크 등&amp;nbsp; 다양한 분야를 망라하는데, 확실히 모두 웹 개발자들에게 필요한 내용들이다. 그리고 기수가 거듭되다보니 같은 주제로 다른기수에서 설명한 영상도 있어서 같이 보기에도 좋았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IT 분야가 워낙 방대하다보니 어디부터 공부할 지 모르겠고 시간도 없을 때는, 하루에 하나씩 테코톡을 보면 도움이 될 것 같다.&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;a href=&quot;https://www.youtube.com/playlist?list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&quot;&gt;https://www.youtube.com/playlist?list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1649752558800&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;#우아한테크코스 테코톡&quot; data-og-description=&quot; &quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/playlist?list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&quot; data-og-url=&quot;http://www.youtube.com/playlist?list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gxuyC/hyN0hzDgxq/7xPJjRaOo31u6NfNUGkdR0/img.jpg?width=168&amp;amp;height=94&amp;amp;face=0_0_168_94,https://scrap.kakaocdn.net/dn/btBrdm/hyN1Fll4st/x6pfjaMjJLdi1QscUdeOGk/img.jpg?width=196&amp;amp;height=110&amp;amp;face=0_0_196_110,https://scrap.kakaocdn.net/dn/WrKFb/hyN1FySNqg/ScqBlNfYo4FdXaOBwWBWV1/img.jpg?width=246&amp;amp;height=138&amp;amp;face=0_0_246_138,https://scrap.kakaocdn.net/dn/dLJkc9/hyN0c6ahdR/zyK8qKlPnOfqc89vnNRLqK/img.jpg?width=336&amp;amp;height=188&amp;amp;face=0_0_336_188&quot;&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/playlist?list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gxuyC/hyN0hzDgxq/7xPJjRaOo31u6NfNUGkdR0/img.jpg?width=168&amp;amp;height=94&amp;amp;face=0_0_168_94,https://scrap.kakaocdn.net/dn/btBrdm/hyN1Fll4st/x6pfjaMjJLdi1QscUdeOGk/img.jpg?width=196&amp;amp;height=110&amp;amp;face=0_0_196_110,https://scrap.kakaocdn.net/dn/WrKFb/hyN1FySNqg/ScqBlNfYo4FdXaOBwWBWV1/img.jpg?width=246&amp;amp;height=138&amp;amp;face=0_0_246_138,https://scrap.kakaocdn.net/dn/dLJkc9/hyN0c6ahdR/zyK8qKlPnOfqc89vnNRLqK/img.jpg?width=336&amp;amp;height=188&amp;amp;face=0_0_336_188');&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;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.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;</description>
      <category>Study/우아한 tech</category>
      <category>우아한Tech</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/49</guid>
      <comments>https://jstudylog.tistory.com/49#entry49comment</comments>
      <pubDate>Tue, 12 Apr 2022 17:43:49 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] Vue 인스턴스 &amp;amp; 컴포넌트</title>
      <link>https://jstudylog.tistory.com/48</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;뷰 인스턴스&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뷰로 화면을 개발하기 위해 생성해야 하는 기본 단위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1647606615485&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html&amp;gt;
	&amp;lt;body&amp;gt;
    	&amp;lt;div id=&quot;app&quot;&amp;gt;
        	{{ message }}
        &amp;lt;/div&amp;gt;
        &amp;lt;script&amp;gt;
        	new Vue({
            	el:'#app',
                data : {
                	message : 'Hello Vue.js!'
                }
            });
        &amp;lt;/script&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;속성을 통해 인스턴스가 그려질 지점, 데이터, 함수, 메서드 등 화면과 관계된 요소들을 정의함&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;뷰 인스턴스 속성&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;el&lt;/td&gt;
&lt;td&gt;화면이 그려질 돔 요소를 지정 html element 혹은 css selector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;data&lt;/td&gt;
&lt;td&gt;화면을 그리는데 사용하는 data를 반환하는 함수 혹은 data객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;template&lt;/td&gt;
&lt;td&gt;화면에 표시할 HTML, CSS 등의 마크업 요소를 정의하는 속성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;methods&lt;/td&gt;
&lt;td&gt;화면 로직 제어와 관련된 메서드를 정의하는 속성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;created&lt;/td&gt;
&lt;td&gt;뷰 인스턴스가 생성되자마자 실행할 로직을 정의할 수 있는 속성&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;인스턴스가 화면에 적용되는 과정&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 뷰 라이브러리 파일 로딩&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 뷰 컴포넌트 등록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 인스턴스 객체 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 특정 화면요소에 인스턴스를 붙임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 인스턴스 내용이 화면 요소로 변환되어 값이 치환됨. ( 등록된 컴포넌트 내용도 변환)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 변환된 화면요소를 사용자가 확인&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;뷰 인스턴스의 유효범위&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp; 지정한 유효범위 를 벗어나면 반영되지 않는다.&lt;/p&gt;
&lt;pre id=&quot;code_1647606877895&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- el : '#app' 이므로 div 내부가 유효범위--&amp;gt;
&amp;lt;div id = &quot;app&quot;&amp;gt;
   {{message}} 
&amp;lt;/div&amp;gt;
   {{message}}   &amp;lt;!-- 바뀌지 않고 그대로 출력 --&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;뷰 인스턴스 라이프사이클&lt;/b&gt;&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;beforeCreate : 인스턴스 생성후 처음 실행/ data, method 속성이 인스턴스에 정의되기전&amp;nbsp;&lt;/li&gt;
&lt;li&gt;created : data,method 정의되어 접근 가능, 인스턴스가 아직 화면에 부착되지 않음 ( 돔 요소 접근 불가)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;서버에 데이터 요청하여 받아오는 로직 실행&lt;/li&gt;
&lt;li&gt;beforeMount :&amp;nbsp; render ( 자바스크립트로 화면의 돔을 그리는 함수) 가 호출되기 직전의 로직&lt;/li&gt;
&lt;li&gt;mounted :&amp;nbsp; el 속성에 지정한 화면요소에 인스턴스 부착후 실행&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 돔에 접근 가능&lt;/li&gt;
&lt;li&gt;beforeUpdate&amp;nbsp; : 데이터 변경시 가상돔으로 화면 다시 그리기 전 수행&lt;/li&gt;
&lt;li&gt;updated&amp;nbsp; &amp;nbsp;:&amp;nbsp; 데이터 변경되고 가상돔으로 화면 다시 그린후 실행&lt;/li&gt;
&lt;li&gt;beforeDestroy : 뷰 인스턴스가 파괴되기전,&amp;nbsp; 뷰 인스턴스의 데이터를 삭제&lt;/li&gt;
&lt;li&gt;destroyed&amp;nbsp; : 뷰 인스턴스에 정의한 모든 속성 제거. 하위 인스턴스 파괴 후&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;뷰 컴포넌트&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면을 구성 할 수 있는 블록 (화면의 특정 영역)&lt;/p&gt;
&lt;pre id=&quot;code_1647607342589&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;app&quot;&amp;gt;
	&amp;lt;!-- 컴포넌트 표시 --&amp;gt;
    &amp;lt;my-component&amp;gt;&amp;lt;/my-component&amp;gt;
    &amp;lt;my-local-component&amp;gt;&amp;lt;/my-local-component&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
	//전역 컴포넌트 등록
	Vue.component('my-component', {
   		template : '&amp;lt;div&amp;gt;전역 컴포넌트&amp;lt;/div&amp;gt;'	
	});	
	//지역 컴포넌트 등록
	var cmp = {
    	template : '&amp;lt;div&amp;gt;지역 컴포넌트&amp;lt;/div&amp;gt;'
	}
	new Vue({
    	el : '#app',
   		components:{
        	'my-local-component' : cmp
        }
	});
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전역 컴포넌트 : 여러 인스턴스에서 공통으로 사용될 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지역 컴포넌트 : 특정 인스턴스에서만 유효한 범위를 갖는다.&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;reference&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #777777;&quot;&gt;Do it! Vus.js 입문&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #777777;&quot;&gt;Vue.js 공식 가이드&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://kr.vuejs.org/&quot;&gt;https://kr.vuejs.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/WEB</category>
      <category>vue</category>
      <category>vue.js</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/48</guid>
      <comments>https://jstudylog.tistory.com/48#entry48comment</comments>
      <pubDate>Fri, 18 Mar 2022 21:52:31 +0900</pubDate>
    </item>
    <item>
      <title>[algorithm] 2018 Kakao Blind Recruitment 3차 - n진수 게임.</title>
      <link>https://jstudylog.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 문제&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/17687&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/17687&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1646806400029&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;코딩테스트 연습 - [3차] n진수 게임&quot; data-og-description=&quot;N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/17687&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/17687&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dY2Lyh/hyNFHjc4US/frrY309Tk8nD8MURxK2wfK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/sbU1r/hyNFyfu4Rv/6sc7N6FmaBKafK13oWZYh0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/17687&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/17687&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dY2Lyh/hyNFHjc4US/frrY309Tk8nD8MURxK2wfK/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/sbU1r/hyNFyfu4Rv/6sc7N6FmaBKafK13oWZYh0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&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;코딩테스트 연습 - [3차] n진수 게임&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 풀이&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1646806545941&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def change(n, num ):
    if num==0:
        return [0]
    li=[]
    while num:
        li.append(num%n)
        num=num//n
    return li[::-1] 
def solution(n, t, m, p):
    # N
    # a * (n**a-n**(a-1))
    T =&quot;0123456789ABCDEF&quot;
    a= 1
    b=0
    low =0
    size =n
    high = n
    points=[ p + x*m -1 for x in range(t)]
    answer = ''
    for point in points:
        while point &amp;gt;= high:
            b+=size//a
            low+=size
            a+=1
            size=a* (n**a-n**(a-1))
            high+=size
        answer+=T[change(n,b+(point-low)//a)[(point-low)%a]]
    return answer&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;T는 최대 16진법을 커버할 수 있는 0~F 까지의 character를 모아놓은 스트링이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서 인덱스는 0 부터고 만약 16 진법이라고 할때, 16 번째 이전까지의 포인트는 0~F 까지 하나의 숫자를 그대로 출력하주면 된다.&amp;nbsp; point 3 에서&amp;nbsp; T[3] =3 이고 point 10 에서 T[10]=A 이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진법을 넘어가면서부터는 문제가 발생한다. 하나의 숫자가 두자리수 이상이 되기 때문이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2진법을 예로 들어서 생각해보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한자리수 숫자 : 0&amp;nbsp; 1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt;&amp;nbsp; &amp;lt; 2**1&amp;nbsp; = 2 보다 작은 숫자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2자리수 숫자&amp;nbsp; :&amp;nbsp; &amp;nbsp;10&amp;nbsp; 11&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;-&amp;gt;&amp;nbsp; &amp;nbsp;&amp;lt; 2**2 =4&amp;nbsp; 보다 작은 숫자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3자리수 숫자 :&amp;nbsp; 100 101 110 111&amp;nbsp; &amp;nbsp; &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;-&amp;gt;&amp;nbsp; &amp;nbsp; &amp;lt; 2**3 = 8 보다 작은 숫자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그래서 a 자리수의 숫자들이 만들게되는 기호의&amp;nbsp; 총 개수는&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; a * (n**a - n**(a-1)) 이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 point가 몇자리수의 숫자인지 확인하고나면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;change(n,b+(point-low)//a ) 를 통해 해당되는 숫자의 모든 자리수를 가져오고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(point-low)%a 로 그중에 몇번째 숫자인지 확인해서 가져온다.&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;&lt;b&gt;4. 후기&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;/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;</description>
      <category>Algorithm</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/47</guid>
      <comments>https://jstudylog.tistory.com/47#entry47comment</comments>
      <pubDate>Thu, 10 Mar 2022 06:41:30 +0900</pubDate>
    </item>
    <item>
      <title>[algorithm] 2018 Kakao Blind Recruitment 1차 - 셔틀버스</title>
      <link>https://jstudylog.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 문제&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/17678#&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programmers.co.kr/learn/courses/30/lessons/17678#&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1646805613847&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;코딩테스트 연습 - [1차] 셔틀버스&quot; data-og-description=&quot;10 60 45 [&amp;quot;23:59&amp;quot;,&amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;, &amp;quot;23:59&amp;quot;] &amp;quot;18:00&amp;quot;&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/17678#&quot; data-og-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/17678&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/boXTw7/hyNFJafslJ/KUwMezigWE8csmbeet3gxk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bs79cG/hyNFBQPnJG/NJNxovDH5GJbucyQyu5xK0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/learn/courses/30/lessons/17678#&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programmers.co.kr/learn/courses/30/lessons/17678#&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/boXTw7/hyNFJafslJ/KUwMezigWE8csmbeet3gxk/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626,https://scrap.kakaocdn.net/dn/bs79cG/hyNFBQPnJG/NJNxovDH5GJbucyQyu5xK0/img.jpg?width=626&amp;amp;height=626&amp;amp;face=0_0_626_626');&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;코딩테스트 연습 - [1차] 셔틀버스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;10 60 45 [&quot;23:59&quot;,&quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;, &quot;23:59&quot;] &quot;18:00&quot;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 풀이&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1646805950575&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def timer(timestr):
    timearr=timestr.split(&quot;:&quot;)
    return int(timearr[0])*60+int(timearr[1])
def strtimer(timeint):
    li  =[str(timeint//60).rjust(2,&quot;0&quot;),str(timeint%60).rjust(2,&quot;0&quot;)]
    return &quot;:&quot;.join(li)

def solution(n, t, m, timetable):
    #마지막 버스는 몇시인가
    lastbus  = 9*60+(n-1)*t
    # 버스를 모두 저장하자
    bustime = [9*60+i*t for i in range(n)]
    #한 버스에 탈 수 있는 사람은 m 명이다.
    #사람들이 어떤 시간 구간에 왔는지를 확인하자
    group =[ [] for i in range(n)]
    idx =0
    timetable_sorted=sorted(timetable)
    for i in range(len(timetable_sorted)):
        x=timer(timetable_sorted[i])
        while True:
            if idx&amp;gt;=n : break
            
            if x&amp;gt;bustime[idx]  :
                idx+=1
            else: break
            
        if idx&amp;gt;=n:
            break
        group[idx].append(x)
    cur=0
    queue=[]
    for x,y in zip(bustime,group):
        # queue 는 이전시간대에 와서 못탄사람 + 이번 시간대에 온사람
        queue.extend(y)
        ## 기존에 온사람을 다 채워도 남는다면, 버스 출발시간 맞춰서 타면 됨
        if len(queue)&amp;lt;m:
            cur=x
            queue =[] # 다 찼으니 큐는 비운다.
        # 기존에 온사람들로 다 차버린다면
        else:
            #제일 뒤에 탑승 성공한 사람보다 1초 빨리 탈 수 있어야함.
            cur=queue[m-1]-1
            queue =queue[m:]

    return strtimer(cur)&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;3. lessons&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 정답출력시 strtimer 라는 함수를 따로 만들어서 수행했는데 zfill을 사용했으면 더 쉽게 구현할 수 있었다.&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: #f8f8f8;&quot;&gt;str(temp//&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8;&quot;&gt;).zfill(&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8;&quot;&gt;) + &lt;/span&gt;&lt;span style=&quot;color: #dd1144;&quot;&gt;&quot;:&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8;&quot;&gt; + str(temp%&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8;&quot;&gt;).zfill(&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;background-color: #f8f8f8;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 후기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상당히 고생했던 문제다. 로직이 맞다고 생각했는데도 70퍼센트대 정답률이 나와서 많이 해멨다.&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;queue를 처리하고서 다음 루프로 넘어갈 때 queue =queue[m:] 로 해야되는 queue[m=1]&amp;nbsp; 로 쓰기도 했고..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제일 뒤에 탑승한사람에서 -1 을 해야되는데 제일 앞에 탑승한 사람에서 -1을하고..&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;=&amp;gt; 카카오 2018 1차 문제 풀이 완료&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/&lt;/a&gt;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/46</guid>
      <comments>https://jstudylog.tistory.com/46#entry46comment</comments>
      <pubDate>Wed, 9 Mar 2022 15:09:24 +0900</pubDate>
    </item>
    <item>
      <title>Netlify 로 static project 배포</title>
      <link>https://jstudylog.tistory.com/45</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Netlify_logo.svg&quot; data-origin-width=&quot;147&quot; data-origin-height=&quot;40&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvI1Ok/btrvcIbU7M2/iJil7i63ucappQTheV8qbK/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvI1Ok/btrvcIbU7M2/iJil7i63ucappQTheV8qbK/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvI1Ok/btrvcIbU7M2/iJil7i63ucappQTheV8qbK/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvI1Ok%2FbtrvcIbU7M2%2FiJil7i63ucappQTheV8qbK%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;147&quot; height=&quot;40&quot; data-filename=&quot;Netlify_logo.svg&quot; data-origin-width=&quot;147&quot; data-origin-height=&quot;40&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무료로 정적 웹서비스를 배포하는 가장 대표적인 방법인 &lt;a href=&quot;https://www.netlify.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Netlify&lt;/a&gt;를 사용해 보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 정적 웹 서비스를 만들어 보았을 때는 github pages를 사용했었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;netlify 로 배포하는 과정이 생각보다 너무 쉽고 간단해서 놀랐습니다.&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;Netlify는 무료 회원도 배포할 수 있는 웹 페이지 개수가 제한이 없는등 개인이 활용하기에 무리가 없을 것 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;635&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btdk35/btrvduj9XrP/kmgPIFhJ6pThHiCXypOsRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btdk35/btrvduj9XrP/kmgPIFhJ6pThHiCXypOsRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btdk35/btrvduj9XrP/kmgPIFhJ6pThHiCXypOsRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtdk35%2Fbtrvduj9XrP%2FkmgPIFhJ6pThHiCXypOsRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;946&quot; height=&quot;635&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;635&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가입 절차는 어떤 방법을 쓰느냐에 따라 다르겠지만 저는 email을 사용했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;email을 입력하면 verify 메일이 오고 이를 클릭하면 바로 사용할 수 있습니다.&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;1295&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ey8bb/btrvcGym8By/7HbvyI0ZJNQaS10z1E7FT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ey8bb/btrvcGym8By/7HbvyI0ZJNQaS10z1E7FT1/img.png&quot; data-alt=&quot;계정 overview page&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ey8bb/btrvcGym8By/7HbvyI0ZJNQaS10z1E7FT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEy8bb%2FbtrvcGym8By%2F7HbvyI0ZJNQaS10z1E7FT1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1295&quot; height=&quot;450&quot; data-origin-width=&quot;1295&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;계정 overview page&lt;/figcaption&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;사이트를 올리는 방법은 세가지로 , git 에서 기존 프로젝트를 가져오는방법, template를 통해 netlify에서 프로젝트를 시작하는 방법, 직접 올리는 방법이 있습니다.&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;저는 로컬에서 Vue.js를 학습하던 페이지를 한번 올려보기로 했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm run build&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어를 사용하면 dist 라는 빌드 폴더가 생성됩니다.&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;1022&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIgkMO/btrviIV0SMr/XHSYLkxnu8ISQ3pIBA9iEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIgkMO/btrviIV0SMr/XHSYLkxnu8ISQ3pIBA9iEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIgkMO/btrviIV0SMr/XHSYLkxnu8ISQ3pIBA9iEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIgkMO%2FbtrviIV0SMr%2FXHSYLkxnu8ISQ3pIBA9iEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1022&quot; height=&quot;638&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 zip 파일로 압축하고 drag &amp;amp; drop을 하면 끝! 입니다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/65R9N/btrvbgNsMNV/g5FejvrGioeXlNoP7GGtq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/65R9N/btrvbgNsMNV/g5FejvrGioeXlNoP7GGtq1/img.png&quot; data-alt=&quot;몇초만에 static 사이트가 생성되었다.&amp;amp;amp;nbsp;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/65R9N/btrvbgNsMNV/g5FejvrGioeXlNoP7GGtq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F65R9N%2FbtrvbgNsMNV%2Fg5FejvrGioeXlNoP7GGtq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1247&quot; height=&quot;655&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;몇초만에 static 사이트가 생성되었다.&amp;amp;nbsp;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬에서 개발하던 그대로 배포된 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;netlify의 또다른 장점은 custom 도메인을 사용하지 않고도 domain을 자유롭게( 다른사람과 겹치지 않는다면) 사용할 수 있다는 점일 것 같습니다. github pages는 디폴트 주소가 깃헙 아이디와 연계 되어서 살짝 불편할 수 있지만 netlify는 프로젝트별로 다른 도메인 이름을 활용할 수 있을 듯합니다.&lt;/p&gt;</description>
      <category>Programming/WEB</category>
      <category>netlify</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/45</guid>
      <comments>https://jstudylog.tistory.com/45#entry45comment</comments>
      <pubDate>Sun, 6 Mar 2022 21:48:51 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] Vue.js 의 특징</title>
      <link>https://jstudylog.tistory.com/44</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;MVVM 패턴 ( Model -View - ViewModel)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mvvm.png&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2N7NK/btrtWtziusq/QekhKop0sfGVkkE4RwvE90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2N7NK/btrtWtziusq/QekhKop0sfGVkkE4RwvE90/img.png&quot; data-alt=&quot;이미지 출처 : Do it! Vus.js 입문&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2N7NK/btrtWtziusq/QekhKop0sfGVkkE4RwvE90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2N7NK%2FbtrtWtziusq%2FQekhKop0sfGVkkE4RwvE90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;494&quot; height=&quot;240&quot; data-filename=&quot;mvvm.png&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이미지 출처 : Do it! Vus.js 입문&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 화면동작 로직과 데이터 처리 로직을 분리&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;돔 : HTML 문서에 들어가는 요소의 정보를 담고있는 데이터트리&lt;/li&gt;
&lt;li&gt;돔 리스너 : 돔의 변경 내역에 대해 즉각적으로 반응하여 특정 로직 수행 ( 클릭 감지 &amp;rarr; 로직)&lt;/li&gt;
&lt;li&gt;모델 : 데이터, 서버에서 가져온 데이터를 js 객체 형태로 저장&lt;/li&gt;
&lt;li&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;컴포넌트 기반 프레임워크&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1406&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buOhDf/btrtNStPW1t/kA2xauJKFXNRdpOz4zHB01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buOhDf/btrtNStPW1t/kA2xauJKFXNRdpOz4zHB01/img.png&quot; data-alt=&quot;이미지 출처 : Vue.js 공식 가이드 :https://kr.vuejs.org/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buOhDf/btrtNStPW1t/kA2xauJKFXNRdpOz4zHB01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuOhDf%2FbtrtNStPW1t%2FkA2xauJKFXNRdpOz4zHB01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1406&quot; height=&quot;544&quot; data-origin-width=&quot;1406&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이미지 출처 : Vue.js 공식 가이드 :https://kr.vuejs.org/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로고, 버튼, 모달 등 다양한 ui 요소들을 component 로 정의함&lt;/li&gt;
&lt;li&gt;component 들을 조합하여 화면 구성&lt;/li&gt;
&lt;li&gt;코드를 재사용하기 쉽고 화면 구조를 직관적으로 파악가능&lt;/li&gt;
&lt;li&gt;Component 는 전역 / 지역으로 선언 할 수 있고 컴포넌트의 유효범위가 독립적이기 대문에 다른 컴포넌트의 값을 직접적으로 참조할 수 없다.&lt;/li&gt;
&lt;/ul&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;앵귤러의 양방향 데이터 바인딩 ( Two -way Data binding) , 리엑트의 단방향 데이터흐름 ( One-way Data flow ) 장점을 결합&lt;/li&gt;
&lt;li&gt;화면에 표시되는 값과 모델 데이터값이 동기화되어 한쪽이 변경되면 다른쪽도 변경&lt;/li&gt;
&lt;li&gt;컴포넌트간 데이터 전달시 상위 컴포넌트에서 하위 컴포넌트 방향으로만 전달되게 구조화&lt;/li&gt;
&lt;li&gt;빠른 화면 랜더링을 위해 리액트의 가상 돔(Virtual DOM) 랜더링 방식 적용&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;reference&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #777777;&quot;&gt;Do it! Vus.js 입문&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #777777;&quot;&gt;Vue.js 공식 가이드 &lt;a href=&quot;https://kr.vuejs.org/&quot;&gt;https://kr.vuejs.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/WEB</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/44</guid>
      <comments>https://jstudylog.tistory.com/44#entry44comment</comments>
      <pubDate>Mon, 21 Feb 2022 15:49:05 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] vue cli 로 프로젝트 시작하기</title>
      <link>https://jstudylog.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Static으로 만들어보고싶은 아이디어가 생각났는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;React를 한지 좀 시간이 지나서 이 기회에 vue를 배워서 사용해보려고한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vue가 쉽고 가볍고 생산성이 높다고 하는데 react와 비교해보면서 알아볼 수 있을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDE는 기존에 사용하던 vscode를 사용하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;설치&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vscode에서 terminal을 열고 node 와 npm이 깔려있는지 확인한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;686&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcQg99/btrtwqw1Ait/kaLhuSh41KwB1CtmNnmbP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcQg99/btrtwqw1Ait/kaLhuSh41KwB1CtmNnmbP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcQg99/btrtwqw1Ait/kaLhuSh41KwB1CtmNnmbP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcQg99%2Fbtrtwqw1Ait%2FkaLhuSh41KwB1CtmNnmbP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;686&quot; height=&quot;105&quot; data-origin-width=&quot;686&quot; data-origin-height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘다 깔려있다면 npm install -g @vue/cli&amp;nbsp; 로 vue cli를 설치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 이후 확인을 해보는데 아래와같은 에러가 발생했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1417&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcT6oH/btrtt3I6cHN/d8giEOP1p99JcQ7TEhXEFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcT6oH/btrtt3I6cHN/d8giEOP1p99JcQ7TEhXEFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcT6oH/btrtt3I6cHN/d8giEOP1p99JcQ7TEhXEFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcT6oH%2Fbtrtt3I6cHN%2Fd8giEOP1p99JcQ7TEhXEFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1417&quot; height=&quot;161&quot; data-origin-width=&quot;1417&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안오류라고 해서 powershell 대신 bash shell을 사용해서 설치후 실행해보았더니 정상 동작하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;145&quot; data-origin-height=&quot;43&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eAYKrx/btrtrqRTG1h/V2PZeFSo9APse5GOrCtAdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eAYKrx/btrtrqRTG1h/V2PZeFSo9APse5GOrCtAdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eAYKrx/btrtrqRTG1h/V2PZeFSo9APse5GOrCtAdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeAYKrx%2FbtrtrqRTG1h%2FV2PZeFSo9APse5GOrCtAdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;145&quot; height=&quot;43&quot; data-origin-width=&quot;145&quot; data-origin-height=&quot;43&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 나중에 찾아본 결과 powershell에서는 vue 대신 vue.cmd 명령어를 사용하면 정상 수행된다고 한다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0aHQB/btrtwqRpJtW/dYHpYLV1akfFSFHqcKPOF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0aHQB/btrtwqRpJtW/dYHpYLV1akfFSFHqcKPOF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0aHQB/btrtwqRpJtW/dYHpYLV1akfFSFHqcKPOF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0aHQB%2FbtrtwqRpJtW%2FdYHpYLV1akfFSFHqcKPOF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;329&quot; height=&quot;145&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;145&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue create [project]&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어를 사용하면 vue2 vue3 중에서 선택지가 나오고 설치가 진행된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p38VS/btrtBPoJh88/hoQrCfp4Dwvk6oT6iFJQKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p38VS/btrtBPoJh88/hoQrCfp4Dwvk6oT6iFJQKK/img.png&quot; data-alt=&quot;설치완료~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p38VS/btrtBPoJh88/hoQrCfp4Dwvk6oT6iFJQKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp38VS%2FbtrtBPoJh88%2FhoQrCfp4Dwvk6oT6iFJQKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;179&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;설치완료~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폴더 구조는 이렇게 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VVP9d/btrtt5AnfyX/61I8g0vwIu25KsWtsC1GN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VVP9d/btrtt5AnfyX/61I8g0vwIu25KsWtsC1GN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VVP9d/btrtt5AnfyX/61I8g0vwIu25KsWtsC1GN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVVP9d%2Fbtrtt5AnfyX%2F61I8g0vwIu25KsWtsC1GN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;195&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;195&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;$npm run serve 실행하면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 기본 페이지를 띄워 볼 수 있다.&amp;nbsp; ( development build)&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;1903&quot; data-origin-height=&quot;933&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zA5Wd/btrtt4uECry/0kzPnXKskd5AMuh0qkW4J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zA5Wd/btrtt4uECry/0kzPnXKskd5AMuh0qkW4J0/img.png&quot; data-alt=&quot;주소 : localhost:8080&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zA5Wd/btrtt4uECry/0kzPnXKskd5AMuh0qkW4J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzA5Wd%2Fbtrtt4uECry%2F0kzPnXKskd5AMuh0qkW4J0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1903&quot; height=&quot;933&quot; data-origin-width=&quot;1903&quot; data-origin-height=&quot;933&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;주소 : localhost:8080&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 여기서 vue 프로젝트 개발을 시작하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 production build 를 만들기 위해서는 npm run build 를 수행해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Vetur&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NqIQE/btrwmrl0WyB/vVVDhrywOPENyA7O3MKkDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NqIQE/btrwmrl0WyB/vVVDhrywOPENyA7O3MKkDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NqIQE/btrwmrl0WyB/vVVDhrywOPENyA7O3MKkDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNqIQE%2Fbtrwmrl0WyB%2FvVVDhrywOPENyA7O3MKkDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;179&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vetur extension을 설치하면 Syntax highlight, Formatting, Auto complete 등 기능을 사용할 수 있다.&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;522&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvtS6t/btrwooWct4R/B42DdeARuxvcnZSzVCsEy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvtS6t/btrwooWct4R/B42DdeARuxvcnZSzVCsEy1/img.png&quot; data-alt=&quot;&amp;amp;amp;lt; 만 쳐도 기본 format을 만들 수 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvtS6t/btrwooWct4R/B42DdeARuxvcnZSzVCsEy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvtS6t%2FbtrwooWct4R%2FB42DdeARuxvcnZSzVCsEy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;522&quot; height=&quot;283&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;amp;lt; 만 쳐도 기본 format을 만들 수 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;vue&amp;gt; 를 치면 아래와 같은 기본 vue template format을 만들 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1647609163990&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;
export default {

}
&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;

&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/WEB</category>
      <author>프로성장러</author>
      <guid isPermaLink="true">https://jstudylog.tistory.com/43</guid>
      <comments>https://jstudylog.tistory.com/43#entry43comment</comments>
      <pubDate>Thu, 17 Feb 2022 13:49:45 +0900</pubDate>
    </item>
  </channel>
</rss>