<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jpg의 끄적끄적</title>
    <link>https://studybook.tistory.com/</link>
    <description>이것 저것 공부하는 블로그애옹</description>
    <language>ko</language>
    <pubDate>Tue, 26 May 2026 12:11:10 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>dlalwl_jpg</managingEditor>
    <image>
      <title>jpg의 끄적끄적</title>
      <url>https://tistory1.daumcdn.net/tistory/5354188/attach/d4302f1ed36f471f9ce4407fd246ede4</url>
      <link>https://studybook.tistory.com</link>
    </image>
    <item>
      <title>[React] 카카오지도 API(SDK)를 이용한 주소에 해당하는 마커 표시 구현</title>
      <link>https://studybook.tistory.com/128</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사진과 같이 react-kakao-maps-dsk를 이용해 지도를 구현하고 주소에 해당하는 부분(충청북도 단양군 단양읍 고수동굴길 8)에 마커 표시를 구현할 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u4KbZ/btsJacDkK58/oUkHW4wnXPydphtoYQA6y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u4KbZ/btsJacDkK58/oUkHW4wnXPydphtoYQA6y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u4KbZ/btsJacDkK58/oUkHW4wnXPydphtoYQA6y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu4KbZ%2FbtsJacDkK58%2FoUkHW4wnXPydphtoYQA6y0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;518&quot; height=&quot;377&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;377&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 카카오 개발자 어플 등록&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developers.kakao.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developers.kakao.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724223421349&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;Kakao Developers&quot; data-og-description=&quot;카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.&quot; data-og-host=&quot;developers.kakao.com&quot; data-og-source-url=&quot;https://developers.kakao.com/&quot; data-og-url=&quot;https://developers.kakao.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Wu5wd/hyWSpH24eN/mmpW64DeUgy8REad6xWpck/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/JIte0/hyWSdOoj7X/9mWKOsK09Rmw8sPS73EsW0/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000,https://scrap.kakaocdn.net/dn/M5PfG/hyWSdARoa8/Rzeoq2yPo2ToRiF5fbniNk/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000&quot;&gt;&lt;a href=&quot;https://developers.kakao.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developers.kakao.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Wu5wd/hyWSpH24eN/mmpW64DeUgy8REad6xWpck/img.png?width=800&amp;amp;height=400&amp;amp;face=0_0_800_400,https://scrap.kakaocdn.net/dn/JIte0/hyWSdOoj7X/9mWKOsK09Rmw8sPS73EsW0/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000,https://scrap.kakaocdn.net/dn/M5PfG/hyWSdARoa8/Rzeoq2yPo2ToRiF5fbniNk/img.png?width=3840&amp;amp;height=1000&amp;amp;face=0_0_3840_1000');&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;Kakao Developers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developers.kakao.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크로 들어가 로그인을 한 후, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;내 어플리케이션으로 이동해 어플리케이션을 추가&lt;/span&gt;해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등록 후, 아래과 같이 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;플랫폼으로 이동해 Web에 http://localhost:3000을 추가&lt;/span&gt;해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8way9/btsJbfy69cn/w5zmxLj6bQ2tdm7lKg2Du0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8way9/btsJbfy69cn/w5zmxLj6bQ2tdm7lKg2Du0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8way9/btsJbfy69cn/w5zmxLj6bQ2tdm7lKg2Du0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8way9%2FbtsJbfy69cn%2Fw5zmxLj6bQ2tdm7lKg2Du0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1538&quot; height=&quot;683&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;앱 키로 이동해 JavaScript 키를 복사&lt;/span&gt;해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2aW9g/btsJbxzB5Jq/M9lNrJLxWA23ctZ4G6kVYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2aW9g/btsJbxzB5Jq/M9lNrJLxWA23ctZ4G6kVYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2aW9g/btsJbxzB5Jq/M9lNrJLxWA23ctZ4G6kVYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2aW9g%2FbtsJbxzB5Jq%2FM9lNrJLxWA23ctZ4G6kVYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1538&quot; height=&quot;683&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. react에 카카오 Map설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트로 이동해 public에 있는 index.html에서 script부분에 아래와 같이 발급받은 javascript 앱 키를 추가해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 주의할 점은 반드시 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;libraries=services를 추가&lt;/span&gt;해줘야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1724235437751&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;//dapi.kakao.com/v2/maps/sdk.js?appkey=앱 키&amp;amp;libraries=services&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 터미널에 아래 명령어를 입력해 sdk를 설치해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1724235364083&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install react-kakao-maps-sdk&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 지도 불러오기 + 주소에 해당하는 마커 표시하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 코드에 대한 설명을 하자면, DetailMap은 다른 컴포넌트에서 address라는 값을 전달 받아 그 주소에 해당하는 위치에 마커를 표시한다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1724236188096&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  const [state, setState] = useState({
    // 지도의 초기 위치
    center: { lat: null, lng: null },
    // 지도 위치 변경시 panto를 이용할지(부드럽게 이동)
    isPanto: true,
  });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;state는 마커를 표시할 좌표값을 저장하는 변수이다. 그 안에는 center라는 위도, 경도 값을 저장하는 값과, isPanto라는 지도 변경시 어떻게 이동하는지를 결정하는 값이 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1724236198727&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const [searchAddress, SetSearchAddress] = useState(address);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;searchAddress는 주소이다. 다른 컴포넌트에서 전달 받은 address값을 searchAddress에 저장한다. 테스트를 할 때 useState(&quot; &lt;span style=&quot;background-color: #ffffff; color: #676767; text-align: start;&quot;&gt;충청북도 단양군 단양읍 고수동굴길 8&lt;/span&gt; &quot;) 이런 식으로 주소값을 주어 마커가 잘 찍히는지 테스트해보면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1724236280261&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const geocoder = new kakao.maps.services.Geocoder();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주소를 좌표로 변환해주는 함수이다. 정확히는 services 라이브러리를 사용하는 것이다. Geocoder는 주소를 좌표로 변환하거나, 좌표를 주소로 변환하는 기능을 제공하는 객체이다.&lt;/p&gt;
&lt;pre id=&quot;code_1724236435995&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 주소를 좌표로 변환하여 state에 저장
    let callback = function(result, status) {
      if (status === kakao.maps.services.Status.OK) {
        const newSearch = result[0]
        setState({
          center: { lat: newSearch.y, lng: newSearch.x }
        })
      }
    };
      geocoder.addressSearch(`${searchAddress}`, callback);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;callback함수는 주소를 좌표로 변환한 결과(result)와 변환이 성공했는지를 나타내는 상태(status)를 인수로 받는 함수이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;result매개변수는 변환된 좌표 정보를 담고 있는 배열 변수이다. 변환된 주소가 여러 개일 수 있기 때문에 배열로 반환한다. 참고하자면 여러 개 일 때는 키워드로 지도에 여러 개의 마커를 표시할 때 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 주소에서 한 개의 마커만 표시하므로 첫 번째로 반환된 값인 result[0]만 newSearch에 저장하여 마커를 표시하는 좌표를 저장하는 state의 center값에 위도, 경도 값을 저장해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1724236833706&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;KakaoMap
        center={state.center}
        isPanto={state.isPanto}
        style={{
          width: &quot;100%&quot;,
          height: &quot;200px&quot;,
        }}
        level={2}
      &amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카카오 지도를 표시한다. 중심좌표 값인 center를 반환된 위도, 경도 값으로 지정해주고, isPanto값도 저장해준다. level은 확대된 정도로 숫자가 작을 수록 많이 확대된 지도가 출력된다.&lt;/p&gt;
&lt;pre id=&quot;code_1724236899936&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;MapMarker position={state.center}/&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;pre id=&quot;code_1724235708028&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { useEffect, useMemo, useState } from &quot;react&quot;;
import { Map as KakaoMap, MapMarker } from &quot;react-kakao-maps-sdk&quot;;
import { useNavigate } from 'react-router-dom';

const {kakao} = window;
function DetailMap({ address }) {

  const [state, setState] = useState({
    // 지도의 초기 위치
    center: { lat: null, lng: null },
    // 지도 위치 변경시 panto를 이용할지(부드럽게 이동)
    isPanto: true,
  });
  
  // 주소 변수
  const [searchAddress, SetSearchAddress] = useState(address);
  
  // 주소에 해당하는 마커 표시
  useEffect(() =&amp;gt; {
    // 주소를 좌표로 변환한는 함수
    const geocoder = new kakao.maps.services.Geocoder();
    
    // 주소를 좌표로 변환하여 state에 저장
    let callback = function(result, status) {
      if (status === kakao.maps.services.Status.OK) {
        const newSearch = result[0]
        setState({
          center: { lat: newSearch.y, lng: newSearch.x }
        })
      }
    };
      geocoder.addressSearch(`${searchAddress}`, callback);
    }, [])
  
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;KakaoMap
        center={state.center}
        isPanto={state.isPanto}
        style={{
          width: &quot;100%&quot;,
          height: &quot;200px&quot;,
        }}
        level={2}
      &amp;gt;
        {!state.isLoading &amp;amp;&amp;amp; (
          &amp;lt;MapMarker position={state.center}/&amp;gt;
        )}
      &amp;lt;/KakaoMap&amp;gt;
    &amp;lt;/div&amp;gt;
  )
}

export default DetailMap;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;a href=&quot;https://react-kakao-maps-sdk.jaeseokim.dev/docs/sample/overlay/geolocationMarker/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://react-kakao-maps-sdk.jaeseokim.dev/docs/sample/overlay/geolocationMarker/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724237135036&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;geolocation으로 마커 표시하기 | react-kakao-maps-sdk docs&quot; data-og-description=&quot;HTML5 GeoLocation을 이용해 접속위치를 얻어오고 접속위치에 마커와 인포윈도우를 표시합니다.&quot; data-og-host=&quot;react-kakao-maps-sdk.jaeseokim.dev&quot; data-og-source-url=&quot;https://react-kakao-maps-sdk.jaeseokim.dev/docs/sample/overlay/geolocationMarker/&quot; data-og-url=&quot;https://react-kakao-maps-sdk.jaeseokim.dev/docs/sample/overlay/geolocationMarker&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bt3xB6/hyWSbpHfpT/W58FQglytyFekVfgw88fsK/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024,https://scrap.kakaocdn.net/dn/biXyUn/hyWR96s9Cx/6jFwQjKtxkrgpvCbuXz5nk/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024&quot;&gt;&lt;a href=&quot;https://react-kakao-maps-sdk.jaeseokim.dev/docs/sample/overlay/geolocationMarker/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://react-kakao-maps-sdk.jaeseokim.dev/docs/sample/overlay/geolocationMarker/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bt3xB6/hyWSbpHfpT/W58FQglytyFekVfgw88fsK/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024,https://scrap.kakaocdn.net/dn/biXyUn/hyWR96s9Cx/6jFwQjKtxkrgpvCbuXz5nk/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024');&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;geolocation으로 마커 표시하기 | react-kakao-maps-sdk docs&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HTML5 GeoLocation을 이용해 접속위치를 얻어오고 접속위치에 마커와 인포윈도우를 표시합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;react-kakao-maps-sdk.jaeseokim.dev&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@support/React-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%A7%80%EB%8F%84-API-%EC%A3%BC%EC%86%8C-%EA%B2%80%EC%83%89&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@support/React-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%A7%80%EB%8F%84-API-%EC%A3%BC%EC%86%8C-%EA%B2%80%EC%83%89&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724237165721&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;React / 카카오 지도 API - 주소 검색&quot; data-og-description=&quot;지도를 가져오고 나서 첫번째로 해야 될 것은주소를 검색했을 때 그 위치로 지도를 움직이는 기능이었다ReactKakaoMapSDK에는 키워드 장소 검색 기능만 있고주소 검색기능이 없어서 kakaoMapApi 의 주&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@support/React-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%A7%80%EB%8F%84-API-%EC%A3%BC%EC%86%8C-%EA%B2%80%EC%83%89&quot; data-og-url=&quot;https://velog.io/@support/React-카카오-지도-API-주소-검색&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bGpHDS/hyWSe7KBde/WpKUGuolksyBaChwsIOIK1/img.png?width=800&amp;amp;height=483&amp;amp;face=0_0_800_483,https://scrap.kakaocdn.net/dn/I57Pu/hyWSefBSDs/bFYHiYN0zJ1TiVUragOjdk/img.png?width=800&amp;amp;height=483&amp;amp;face=0_0_800_483,https://scrap.kakaocdn.net/dn/JWB6A/hyWSkUryQk/jttSQRxecMkKGmQoYngkiK/img.jpg?width=1778&amp;amp;height=1334&amp;amp;face=0_0_1778_1334&quot;&gt;&lt;a href=&quot;https://velog.io/@support/React-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%A7%80%EB%8F%84-API-%EC%A3%BC%EC%86%8C-%EA%B2%80%EC%83%89&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@support/React-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%A7%80%EB%8F%84-API-%EC%A3%BC%EC%86%8C-%EA%B2%80%EC%83%89&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bGpHDS/hyWSe7KBde/WpKUGuolksyBaChwsIOIK1/img.png?width=800&amp;amp;height=483&amp;amp;face=0_0_800_483,https://scrap.kakaocdn.net/dn/I57Pu/hyWSefBSDs/bFYHiYN0zJ1TiVUragOjdk/img.png?width=800&amp;amp;height=483&amp;amp;face=0_0_800_483,https://scrap.kakaocdn.net/dn/JWB6A/hyWSkUryQk/jttSQRxecMkKGmQoYngkiK/img.jpg?width=1778&amp;amp;height=1334&amp;amp;face=0_0_1778_1334');&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;React / 카카오 지도 API - 주소 검색&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;지도를 가져오고 나서 첫번째로 해야 될 것은주소를 검색했을 때 그 위치로 지도를 움직이는 기능이었다ReactKakaoMapSDK에는 키워드 장소 검색 기능만 있고주소 검색기능이 없어서 kakaoMapApi 의 주&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&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;</description>
      <category>  Web/React</category>
      <category>react</category>
      <category>카카오지도</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/128</guid>
      <comments>https://studybook.tistory.com/128#entry128comment</comments>
      <pubDate>Wed, 21 Aug 2024 19:46:11 +0900</pubDate>
    </item>
    <item>
      <title>[React] 로컬에서 HTTPS 환경 설정하기(Windows)</title>
      <link>https://studybook.tistory.com/127</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 하는 도중 웹캠을 적용해야 해서 getUserMedia API를 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 브라우저의 보안 정책으로 인해 getUserMedia API는 HTTPS 환경에서만 작동한다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 현재 로컬 환경인 HTTP환경을 HTTPS로 변경해주어야 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. mkcert설치&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/FiloSottile/mkcert/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/FiloSottile/mkcert/releases&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719899245234&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;Releases &amp;middot; FiloSottile/mkcert&quot; data-og-description=&quot;A simple zero-config tool to make locally trusted development certificates with any names you'd like. - FiloSottile/mkcert&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/FiloSottile/mkcert/releases&quot; data-og-url=&quot;https://github.com/FiloSottile/mkcert/releases&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gGtDl/hyWrXfemsV/JRLyKYXKOmkw8vQDXUkHEK/img.png?width=1690&amp;amp;height=962&amp;amp;face=0_0_1690_962&quot;&gt;&lt;a href=&quot;https://github.com/FiloSottile/mkcert/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/FiloSottile/mkcert/releases&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gGtDl/hyWrXfemsV/JRLyKYXKOmkw8vQDXUkHEK/img.png?width=1690&amp;amp;height=962&amp;amp;face=0_0_1690_962');&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;Releases &amp;middot; FiloSottile/mkcert&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A simple zero-config tool to make locally trusted development certificates with any names you'd like. - FiloSottile/mkcert&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크로 가서 아래 사진에 표시된 mkcert를 다운 받아준다.&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;1123&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k3Jn5/btsIkiD0wPG/lkxJ3vVPKklapKk7OygFG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k3Jn5/btsIkiD0wPG/lkxJ3vVPKklapKk7OygFG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k3Jn5/btsIkiD0wPG/lkxJ3vVPKklapKk7OygFG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk3Jn5%2FbtsIkiD0wPG%2FlkxJ3vVPKklapKk7OygFG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1123&quot; height=&quot;463&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 프로젝트 폴더 안에 mkcert폴더를 만들고 다운 받은 인증서의 이름을 mkcert.exe로 변경한 후 폴더 안에 이동시킨다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqNXbm/btsIkt6wSw3/VhqnVjkJfmBkDQ3ox9xYJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqNXbm/btsIkt6wSw3/VhqnVjkJfmBkDQ3ox9xYJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqNXbm/btsIkt6wSw3/VhqnVjkJfmBkDQ3ox9xYJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqNXbm%2FbtsIkt6wSw3%2FVhqnVjkJfmBkDQ3ox9xYJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;330&quot; height=&quot;120&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 인증서 다운받기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널을 열어 mkcert폴더로 이동해주고, 아래와 같이 명령어를 입력한다. 이미 설치되어 있으면 아래와 같이 출력되는데 처음이면 인증서 설치 허용에 대한 팝업이 뜬다. 예를 눌러준다.&lt;/p&gt;
&lt;pre id=&quot;code_1719899787873&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\Users\User\Desktop\AIT-frontend&amp;gt; cd mkcert
PS C:\Users\User\Desktop\AIT-frontend\mkcert&amp;gt; ./mkcert -install
The local CA is already installed in the system trust store!  &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 도메인 인증서를 받기 위해서 아래와 같이 원하는 도메인을 입력한다. 띄어쓰기로 구분해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1719899904526&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\Users\User\Desktop\AIT-frontend\mkcert&amp;gt; ./mkcert localhost 127.0.0.1

Created a new certificate valid for the following names  
 - &quot;localhost&quot;
 - &quot;127.0.0.1&quot;

The certificate is at &quot;./localhost+1.pem&quot; and the key at &quot;./localhost+1-key.pem&quot; ✅

It will expire on 2 October 2026  &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 아래 와 같이 .pem과 key.pem 두 개가 다운로드 된다. 이 두 개의 파일 이름을 각각 cert.pem key.pem으로 바꿔준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U8AOl/btsIkcqu7LS/4efCmXEdnElxUBBRDcJc00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U8AOl/btsIkcqu7LS/4efCmXEdnElxUBBRDcJc00/img.png&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;170&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.7076%; margin-right: 10px;&quot; data-widthpercent=&quot;50.29&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U8AOl/btsIkcqu7LS/4efCmXEdnElxUBBRDcJc00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU8AOl%2FbtsIkcqu7LS%2F4efCmXEdnElxUBBRDcJc00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgT5AU/btsIjzfk1n8/cEmsFHAtf0ZFTLv0eAi3Uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgT5AU/btsIjzfk1n8/cEmsFHAtf0ZFTLv0eAi3Uk/img.png&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;172&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.1296%;&quot; data-widthpercent=&quot;49.71&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgT5AU/btsIjzfk1n8/cEmsFHAtf0ZFTLv0eAi3Uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgT5AU%2FbtsIjzfk1n8%2FcEmsFHAtf0ZFTLv0eAi3Uk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 환경 적용&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;package.json파일로 가서 아래와 같이 start환경을 바꿔준다.&lt;/p&gt;
&lt;pre id=&quot;code_1719900187915&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    &quot;start&quot;: &quot;set HTTPS=true&amp;amp;&amp;amp;set SSL_CRT_FILE=./mkcert/cert.pem&amp;amp;&amp;amp;set SSL_KEY_FILE=./mkcert/key.pem&amp;amp;&amp;amp;react-scripts start&quot;,&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 아래와 같이 HTTPS환경이 잘 설정된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1912&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D1x62/btsIjf2jvj6/sKPYPItIzq6u9WKs1aGglK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D1x62/btsIjf2jvj6/sKPYPItIzq6u9WKs1aGglK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D1x62/btsIjf2jvj6/sKPYPItIzq6u9WKs1aGglK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD1x62%2FbtsIjf2jvj6%2FsKPYPItIzq6u9WKs1aGglK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1912&quot; height=&quot;72&quot; data-origin-width=&quot;1912&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;a href=&quot;https://mungkhs1.tistory.com/64&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mungkhs1.tistory.com/64&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719900101709&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;윈도우즈 로컬 컴퓨터에 https를 위한 인증서 발급 방법2 (with mkcert.exe)&quot; data-og-description=&quot;✅ 윈도우즈 로컬 컴퓨터에서 테스트 용도로 https를 위한 인증서를 발급 받는 방법을 이전 게시글에서 작성한 적이 있습니다. https://mungkhs1.tistory.com/59 16. https를 쓰기 위해 로컬에서 SSL 테스트 하&quot; data-og-host=&quot;mungkhs1.tistory.com&quot; data-og-source-url=&quot;https://mungkhs1.tistory.com/64&quot; data-og-url=&quot;https://mungkhs1.tistory.com/64&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ca0Qjv/hyWrV2ReEX/DuUrSkyAjUHJMSazkJX5ZK/img.png?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/vSDzf/hyWrRF7iDP/kWAqOBhBTKd2ZxwvKNeRBk/img.png?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/b6PXb8/hyWrSSy3s4/SRQNWWDaDEXbM8xQCy6vbK/img.png?width=1235&amp;amp;height=700&amp;amp;face=0_0_1235_700&quot;&gt;&lt;a href=&quot;https://mungkhs1.tistory.com/64&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mungkhs1.tistory.com/64&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ca0Qjv/hyWrV2ReEX/DuUrSkyAjUHJMSazkJX5ZK/img.png?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/vSDzf/hyWrRF7iDP/kWAqOBhBTKd2ZxwvKNeRBk/img.png?width=800&amp;amp;height=432&amp;amp;face=0_0_800_432,https://scrap.kakaocdn.net/dn/b6PXb8/hyWrSSy3s4/SRQNWWDaDEXbM8xQCy6vbK/img.png?width=1235&amp;amp;height=700&amp;amp;face=0_0_1235_700');&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;윈도우즈 로컬 컴퓨터에 https를 위한 인증서 발급 방법2 (with mkcert.exe)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;✅ 윈도우즈 로컬 컴퓨터에서 테스트 용도로 https를 위한 인증서를 발급 받는 방법을 이전 게시글에서 작성한 적이 있습니다. https://mungkhs1.tistory.com/59 16. https를 쓰기 위해 로컬에서 SSL 테스트 하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mungkhs1.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@horang-e/React-localhost-%ED%99%98%EA%B2%BD-HTTPS%EB%A1%9C-%EB%B0%94%EA%BE%B8%EA%B8%B0Windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@horang-e/React-localhost-%ED%99%98%EA%B2%BD-HTTPS%EB%A1%9C-%EB%B0%94%EA%BE%B8%EA%B8%B0Windows&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1719900117164&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;React localhost 환경 HTTPS로 바꾸기(Windows)&quot; data-og-description=&quot;React localhost 환경 HTTPS로 바꾸기&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@horang-e/React-localhost-%ED%99%98%EA%B2%BD-HTTPS%EB%A1%9C-%EB%B0%94%EA%BE%B8%EA%B8%B0Windows&quot; data-og-url=&quot;https://velog.io/@horang-e/React-localhost-환경-HTTPS로-바꾸기Windows&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cPOT1m/hyWrRszVFa/P5aZ3kvY37HY25FFpuWLok/img.jpg?width=400&amp;amp;height=299&amp;amp;face=131_75_268_225,https://scrap.kakaocdn.net/dn/eGj0VA/hyWvXq8Zme/n95fftTh0QkUGZoT8gzMc1/img.jpg?width=400&amp;amp;height=299&amp;amp;face=131_75_268_225,https://scrap.kakaocdn.net/dn/ciRCcs/hyWvRRZIXo/uURKZWTSQ3SCEL3kKf4Uw1/img.jpg?width=2967&amp;amp;height=2980&amp;amp;face=0_0_2967_2980&quot;&gt;&lt;a href=&quot;https://velog.io/@horang-e/React-localhost-%ED%99%98%EA%B2%BD-HTTPS%EB%A1%9C-%EB%B0%94%EA%BE%B8%EA%B8%B0Windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@horang-e/React-localhost-%ED%99%98%EA%B2%BD-HTTPS%EB%A1%9C-%EB%B0%94%EA%BE%B8%EA%B8%B0Windows&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cPOT1m/hyWrRszVFa/P5aZ3kvY37HY25FFpuWLok/img.jpg?width=400&amp;amp;height=299&amp;amp;face=131_75_268_225,https://scrap.kakaocdn.net/dn/eGj0VA/hyWvXq8Zme/n95fftTh0QkUGZoT8gzMc1/img.jpg?width=400&amp;amp;height=299&amp;amp;face=131_75_268_225,https://scrap.kakaocdn.net/dn/ciRCcs/hyWvRRZIXo/uURKZWTSQ3SCEL3kKf4Uw1/img.jpg?width=2967&amp;amp;height=2980&amp;amp;face=0_0_2967_2980');&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;React localhost 환경 HTTPS로 바꾸기(Windows)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;React localhost 환경 HTTPS로 바꾸기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&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;</description>
      <category>  Web/React</category>
      <category>https</category>
      <category>react</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/127</guid>
      <comments>https://studybook.tistory.com/127#entry127comment</comments>
      <pubDate>Tue, 2 Jul 2024 15:04:10 +0900</pubDate>
    </item>
    <item>
      <title>[React Native] React Native-Expo 개발환경 구축하기</title>
      <link>https://studybook.tistory.com/126</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 블로그를 참고하여 React Native-Expo를 이용해 개발 환경을 구축해볼 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jae-study.tistory.com/145&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jae-study.tistory.com/145&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1717063216712&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;[React Native] Expo로 리액트 네이티브 설치하기&quot; data-og-description=&quot;왕초보를 위한 React Native 101 https://nomadcoders.co/react-native-for-beginners 노마드코더 강의를 참고하고 있습니다. 리액트 네이티브란? 리액트 네이티브(React Native)는 페이스북이 개발한 오픈 소스 모바일&quot; data-og-host=&quot;jae-study.tistory.com&quot; data-og-source-url=&quot;https://jae-study.tistory.com/145&quot; data-og-url=&quot;https://jae-study.tistory.com/145&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/boATxO/hyWdgZvd5s/14k8I9y5kN8pvoqHYJwW80/img.png?width=498&amp;amp;height=302&amp;amp;face=0_0_498_302,https://scrap.kakaocdn.net/dn/cyIHzd/hyWdfGiRBz/bFKgTBTU0NxqBbfVUek8Z1/img.png?width=498&amp;amp;height=302&amp;amp;face=0_0_498_302,https://scrap.kakaocdn.net/dn/bEPS48/hyWdknkDkb/08srsBT6vrdIO6pAhIJfKk/img.png?width=1401&amp;amp;height=875&amp;amp;face=0_0_1401_875&quot;&gt;&lt;a href=&quot;https://jae-study.tistory.com/145&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jae-study.tistory.com/145&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/boATxO/hyWdgZvd5s/14k8I9y5kN8pvoqHYJwW80/img.png?width=498&amp;amp;height=302&amp;amp;face=0_0_498_302,https://scrap.kakaocdn.net/dn/cyIHzd/hyWdfGiRBz/bFKgTBTU0NxqBbfVUek8Z1/img.png?width=498&amp;amp;height=302&amp;amp;face=0_0_498_302,https://scrap.kakaocdn.net/dn/bEPS48/hyWdknkDkb/08srsBT6vrdIO6pAhIJfKk/img.png?width=1401&amp;amp;height=875&amp;amp;face=0_0_1401_875');&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;[React Native] Expo로 리액트 네이티브 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;왕초보를 위한 React Native 101 https://nomadcoders.co/react-native-for-beginners 노마드코더 강의를 참고하고 있습니다. 리액트 네이티브란? 리액트 네이티브(React Native)는 페이스북이 개발한 오픈 소스 모바일&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jae-study.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. expo-app 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vs code에서 터미널을 열어 원하는 위치에 아래 명령어를 입력하여 프로젝트를 만들어준다.&lt;/p&gt;
&lt;pre id=&quot;code_1717063512721&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx create-expo-app 프로젝트명&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFdIbV/btsHIAd6HTQ/X5jQKSUgGuxuD6KN9lDsW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFdIbV/btsHIAd6HTQ/X5jQKSUgGuxuD6KN9lDsW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFdIbV/btsHIAd6HTQ/X5jQKSUgGuxuD6KN9lDsW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFdIbV%2FbtsHIAd6HTQ%2FX5jQKSUgGuxuD6KN9lDsW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;221&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. expo-app 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 폴더로 이동 후 아래 명령어를 입력하여 실행해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1717064827538&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm expo start&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wYImV/btsHILNcTD0/gMNxkvtriKWHEvdVAwh090/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wYImV/btsHILNcTD0/gMNxkvtriKWHEvdVAwh090/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wYImV/btsHILNcTD0/gMNxkvtriKWHEvdVAwh090/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwYImV%2FbtsHILNcTD0%2FgMNxkvtriKWHEvdVAwh090%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1110&quot; height=&quot;247&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 모바일 연동하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 IOS를 이용하기 때문에 앱스토어에서 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Expo Go&lt;/span&gt;&lt;/b&gt;앱을 설치해주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안드로이드는 플레이스토어에서 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Expo&lt;/span&gt;&lt;/b&gt; 앱을 설치해주면 된다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앱 설치 회원가입, 로그인을 해준다. 그리고 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;노트북과 핸드폰이 같은 와이파이로 연결되어 있는지 확인&lt;/b&gt;&lt;/span&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 npm expo start를 실행했을 때 나온 QR코드를 인식해주면 오른쪽과 같이 Expo Go에서 잘 열리는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sQNaz/btsHHJ3Vvgv/k9Xy7rZPpKj3jTnTXvGq6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sQNaz/btsHHJ3Vvgv/k9Xy7rZPpKj3jTnTXvGq6K/img.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1792&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sQNaz/btsHHJ3Vvgv/k9Xy7rZPpKj3jTnTXvGq6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsQNaz%2FbtsHHJ3Vvgv%2Fk9Xy7rZPpKj3jTnTXvGq6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;1792&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n7cCF/btsHI0QTroz/bdPmUw225wCKmZnyRKwiVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n7cCF/btsHI0QTroz/bdPmUw225wCKmZnyRKwiVk/img.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1792&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n7cCF/btsHI0QTroz/bdPmUw225wCKmZnyRKwiVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn7cCF%2FbtsHI0QTroz%2FbdPmUw225wCKmZnyRKwiVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;1792&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 브라우저 연동하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저를 이용해서 작업을 해야 한다면 아래 사이트로 이동해서 작업을 진행하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://snack.expo.dev/&quot;&gt;https://snack.expo.dev/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1717065286074&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;Snack - React Native in the browser&quot; data-og-description=&quot;Write code in Expo's online editor and instantly use it on your phone.&quot; data-og-host=&quot;snack.expo.dev&quot; data-og-source-url=&quot;https://snack.expo.dev/&quot; data-og-url=&quot;https://snack.expo.dev&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bk8rji/hyWdlNitX6/Mztfi20keJmrNqE8YSlYEk/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/UdLbR/hyWdtLlRhh/eCN57Ol5B50PI1XDEomKQ0/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://snack.expo.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://snack.expo.dev/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bk8rji/hyWdlNitX6/Mztfi20keJmrNqE8YSlYEk/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/UdLbR/hyWdtLlRhh/eCN57Ol5B50PI1XDEomKQ0/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&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;Snack - React Native in the browser&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Write code in Expo's online editor and instantly use it on your phone.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;snack.expo.dev&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 핸드폰에서 보여지는 것과 동일하게 작업이 가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;928&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xrC8f/btsHI0J7kAR/MXt62HmyDJ7tOLprf4ecm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xrC8f/btsHI0J7kAR/MXt62HmyDJ7tOLprf4ecm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xrC8f/btsHI0J7kAR/MXt62HmyDJ7tOLprf4ecm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxrC8f%2FbtsHI0J7kAR%2FMXt62HmyDJ7tOLprf4ecm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1917&quot; height=&quot;928&quot; data-origin-width=&quot;1917&quot; data-origin-height=&quot;928&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> Application/React-Native</category>
      <category>리액트 네이티브</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/126</guid>
      <comments>https://studybook.tistory.com/126#entry126comment</comments>
      <pubDate>Thu, 30 May 2024 19:37:50 +0900</pubDate>
    </item>
    <item>
      <title>[React Native] React-Native-Cli 개발환경 구축하기(2)</title>
      <link>https://studybook.tistory.com/125</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://studybook.tistory.com/124&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://studybook.tistory.com/124&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716896947321&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;[React Native] 리액트 네이티브 React-Native-Cli 개발환경 구축하기(1)&quot; data-og-description=&quot;아래 블로그를 참고하여 리액트 네이티브 안드로이드 개발환경을 구축하였다.리액트 네이티브 개발을 위해서는 Expo와 React-Native-Cli을 사용한다고 하는데 여기서는 React-Native-Cli 설치로 진행할 &quot; data-og-host=&quot;studybook.tistory.com&quot; data-og-source-url=&quot;https://studybook.tistory.com/124&quot; data-og-url=&quot;https://studybook.tistory.com/124&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Yu118/hyWdgY1jzm/CDW0CAGAEo4wnsSlMGoTX0/img.png?width=582&amp;amp;height=247&amp;amp;face=0_0_582_247,https://scrap.kakaocdn.net/dn/AwmfY/hyWdsZsep4/20VL1mcqFcsSkqScJlQ2D0/img.png?width=582&amp;amp;height=247&amp;amp;face=0_0_582_247,https://scrap.kakaocdn.net/dn/CkXUU/hyWdl65ewQ/VBj3vM0Uff8BvWCVTzwHQ1/img.png?width=1172&amp;amp;height=272&amp;amp;face=0_0_1172_272&quot;&gt;&lt;a href=&quot;https://studybook.tistory.com/124&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://studybook.tistory.com/124&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Yu118/hyWdgY1jzm/CDW0CAGAEo4wnsSlMGoTX0/img.png?width=582&amp;amp;height=247&amp;amp;face=0_0_582_247,https://scrap.kakaocdn.net/dn/AwmfY/hyWdsZsep4/20VL1mcqFcsSkqScJlQ2D0/img.png?width=582&amp;amp;height=247&amp;amp;face=0_0_582_247,https://scrap.kakaocdn.net/dn/CkXUU/hyWdl65ewQ/VBj3vM0Uff8BvWCVTzwHQ1/img.png?width=1172&amp;amp;height=272&amp;amp;face=0_0_1172_272');&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;[React Native] 리액트 네이티브 React-Native-Cli 개발환경 구축하기(1)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;아래 블로그를 참고하여 리액트 네이티브 안드로이드 개발환경을 구축하였다.리액트 네이티브 개발을 위해서는 Expo와 React-Native-Cli을 사용한다고 하는데 여기서는 React-Native-Cli 설치로 진행할&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;studybook.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 글에서 이어집니다!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;React&amp;nbsp;Native 신규 프로젝트 생성&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1716897046773&quot; class=&quot;python&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;npx react-native init 프로젝트명&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗해결 오류&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* &lt;span style=&quot;color: #0d0d0d; text-align: start;&quot;&gt;TypeError: cli.init is not a function&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;해당 오류는 버전이 맞지않아 발생한 오류로 &lt;span style=&quot;color: #000000;&quot;&gt;react-native-cli&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;가 최신 버전의 React Native와 호환되지 않거나, 올바르게 설치되지 않았기 때문에 발생한다고 한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;아래 명령어를 입력하여 버전을 낮춰서 프로젝트를 만들어준다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1716898157585&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx react-native init 프로젝트명 --version 0.68.2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;852&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOIz1z/btsHERARjid/HZJKuKorb3fyMCBn4SmcUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOIz1z/btsHERARjid/HZJKuKorb3fyMCBn4SmcUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOIz1z/btsHERARjid/HZJKuKorb3fyMCBn4SmcUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOIz1z%2FbtsHERARjid%2FHZJKuKorb3fyMCBn4SmcUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;629&quot; height=&quot;621&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;852&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.&lt;span&gt; Android 애뮬레이터 설정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 단계는 Android스튜디오에 Device가 아무것도 없는 경우만 설정해주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Android 스튜디오를 열어 만든 Open으로 가 만든 프로젝트를 열어준다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;838&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQBf8H/btsHEmg3lFz/xWlo3lekiwQFY53eY3RAaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQBf8H/btsHEmg3lFz/xWlo3lekiwQFY53eY3RAaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQBf8H/btsHEmg3lFz/xWlo3lekiwQFY53eY3RAaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQBf8H%2FbtsHEmg3lFz%2FxWlo3lekiwQFY53eY3RAaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;687&quot; height=&quot;605&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;838&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Tools &amp;gt; Device Manager를 들어간다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;958&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mUlZx/btsHFpKB3WR/UOJ4GxjBrWaLCqqCWi3Ts0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mUlZx/btsHFpKB3WR/UOJ4GxjBrWaLCqqCWi3Ts0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mUlZx/btsHFpKB3WR/UOJ4GxjBrWaLCqqCWi3Ts0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmUlZx%2FbtsHFpKB3WR%2FUOJ4GxjBrWaLCqqCWi3Ts0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;812&quot; height=&quot;406&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;958&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 버튼 &amp;gt; Create Virtual Device &amp;gt; Pixel 4 &amp;gt; Next를 클릭한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꼭 Pixel 4를 할 필요없이 원하는 Device를 선택해주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnPSqN/btsHGg7g31X/IJCKTWW34MoFKEIRglkBJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnPSqN/btsHGg7g31X/IJCKTWW34MoFKEIRglkBJ1/img.png&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;190&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.8227%; margin-right: 10px;&quot; data-widthpercent=&quot;51.42&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnPSqN/btsHGg7g31X/IJCKTWW34MoFKEIRglkBJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnPSqN%2FbtsHGg7g31X%2FIJCKTWW34MoFKEIRglkBJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;318&quot; height=&quot;190&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RbrDV/btsHEP39raL/5OV30zC4qjttAKuZ5kBBGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RbrDV/btsHEP39raL/5OV30zC4qjttAKuZ5kBBGK/img.png&quot; data-origin-width=&quot;1363&quot; data-origin-height=&quot;862&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.0145%;&quot; data-widthpercent=&quot;48.58&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RbrDV/btsHEP39raL/5OV30zC4qjttAKuZ5kBBGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRbrDV%2FbtsHEP39raL%2F5OV30zC4qjttAKuZ5kBBGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1363&quot; height=&quot;862&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 S를 다운 받았다. 이것도 원하는 걸로 다운 받아주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운이 완료되면 Finish를 눌러준다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvBY7b/btsHF8VOQ9z/9dXU5P6KJ4ZSkWWQlNkQW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvBY7b/btsHF8VOQ9z/9dXU5P6KJ4ZSkWWQlNkQW1/img.png&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;860&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.2853%; margin-right: 10px;&quot; data-widthpercent=&quot;49.87&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvBY7b/btsHF8VOQ9z/9dXU5P6KJ4ZSkWWQlNkQW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvBY7b%2FbtsHF8VOQ9z%2F9dXU5P6KJ4ZSkWWQlNkQW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1366&quot; height=&quot;860&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnHzXa/btsHEEhnpnv/OqqkD7QIK2aHPA3lUnIOTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnHzXa/btsHEEhnpnv/OqqkD7QIK2aHPA3lUnIOTk/img.png&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;856&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.5519%;&quot; data-widthpercent=&quot;50.13&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnHzXa/btsHEEhnpnv/OqqkD7QIK2aHPA3lUnIOTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnHzXa%2FbtsHEEhnpnv%2FOqqkD7QIK2aHPA3lUnIOTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1367&quot; height=&quot;856&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Device 목록에서 오른쪽에 있는 화살표 모양을 클릭해주면 애뮬레이터가 실행된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tkdFM/btsHEBLIp6S/5XFBKqIIJwF21pE8HZY391/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tkdFM/btsHEBLIp6S/5XFBKqIIJwF21pE8HZY391/img.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;525&quot; data-is-animation=&quot;false&quot; style=&quot;width: 73.206%; margin-right: 10px;&quot; data-widthpercent=&quot;74.07&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tkdFM/btsHEBLIp6S/5XFBKqIIJwF21pE8HZY391/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtkdFM%2FbtsHEBLIp6S%2F5XFBKqIIJwF21pE8HZY391%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;711&quot; height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kGW7D/btsHGA5phf9/CCrH4bmtqNMZWBUr1PQ240/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kGW7D/btsHGA5phf9/CCrH4bmtqNMZWBUr1PQ240/img.png&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;871&quot; data-is-animation=&quot;false&quot; style=&quot;width: 25.6312%;&quot; data-widthpercent=&quot;25.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kGW7D/btsHGA5phf9/CCrH4bmtqNMZWBUr1PQ240/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkGW7D%2FbtsHGA5phf9%2FCCrH4bmtqNMZWBUr1PQ240%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;871&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. SDK설정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Android 스튜디오에서 File &amp;gt; Project Structure &amp;gt; SDKs 로 이동해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 Name을 Android Studio defalt JDK로 설정하고 jdk의 위치를 설정해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBO6KP/btsHFoSKcsT/gv2IK2Pr2Xzgucti35X34k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBO6KP/btsHFoSKcsT/gv2IK2Pr2Xzgucti35X34k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBO6KP/btsHFoSKcsT/gv2IK2Pr2Xzgucti35X34k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBO6KP%2FbtsHFoSKcsT%2Fgv2IK2Pr2Xzgucti35X34k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1268&quot; height=&quot;411&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 Tools &amp;gt; SKD Manager &amp;gt; Android SDK로 이동해 SDK Platforms와 SDK Tool에서 자신에게 맞는 버전을 체크해 다운 받는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 API Level 31을 다운 받았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpfr58/btsHFdX9EOn/jaxSftKM2wchXj72KOKu9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpfr58/btsHFdX9EOn/jaxSftKM2wchXj72KOKu9K/img.png&quot; data-origin-width=&quot;1222&quot; data-origin-height=&quot;902&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.5359%; margin-right: 10px;&quot; data-widthpercent=&quot;50.12&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpfr58/btsHFdX9EOn/jaxSftKM2wchXj72KOKu9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpfr58%2FbtsHFdX9EOn%2FjaxSftKM2wchXj72KOKu9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1222&quot; height=&quot;902&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UDiIY/btsHGgsTaXs/aiIfKB54Gf7qfJXqdompYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UDiIY/btsHGgsTaXs/aiIfKB54Gf7qfJXqdompYK/img.png&quot; data-origin-width=&quot;1227&quot; data-origin-height=&quot;910&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3013%;&quot; data-widthpercent=&quot;49.88&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UDiIY/btsHGgsTaXs/aiIfKB54Gf7qfJXqdompYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUDiIY%2FbtsHGgsTaXs%2FaiIfKB54Gf7qfJXqdompYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1227&quot; height=&quot;910&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 안드로이드 실행&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vs code로 와서 프로젝트 위치로 이동해주고 환경이 잘 설정되었는지 확인하기 위해 아래처럼 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1716946836437&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx react-native doctor&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z6sOz/btsHGwWuWyF/nNaOND7zSWSNLk9SXslBa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z6sOz/btsHGwWuWyF/nNaOND7zSWSNLk9SXslBa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z6sOz/btsHGwWuWyF/nNaOND7zSWSNLk9SXslBa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz6sOz%2FbtsHGwWuWyF%2FnNaOND7zSWSNLk9SXslBa1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;570&quot; height=&quot;284&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에 프로젝트 이동 후 안드로이드를 실행시킨다.&lt;/p&gt;
&lt;pre id=&quot;code_1716899359016&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm run android&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗해결 오류&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm run android를 입력했을 때 다음과 같은 오류가 발생하였다. 11버전을 사용하여야 한다는 의미이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OatnK/btsHFnTMliY/mLhsELIAWuYRgLjQekDKPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OatnK/btsHFnTMliY/mLhsELIAWuYRgLjQekDKPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OatnK/btsHFnTMliY/mLhsELIAWuYRgLjQekDKPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOatnK%2FbtsHFnTMliY%2FmLhsELIAWuYRgLjQekDKPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;407&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Android 스튜디오로 가서 gradle.properties 파일에 org.gradle.java.home=C:/Program Files/Java/jdk-11을 추가해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxBBtE/btsHFMTiDi6/b49sHKsbowHM184gFH5Mz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxBBtE/btsHFMTiDi6/b49sHKsbowHM184gFH5Mz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxBBtE/btsHFMTiDi6/b49sHKsbowHM184gFH5Mz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxBBtE%2FbtsHFMTiDi6%2Fb49sHKsbowHM184gFH5Mz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;756&quot; height=&quot;486&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 다시 실행해주면 잘 만들어진다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GOpL7/btsHGeBNikX/fRnZ2o6CEbH2xtCM87Qs9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GOpL7/btsHGeBNikX/fRnZ2o6CEbH2xtCM87Qs9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GOpL7/btsHGeBNikX/fRnZ2o6CEbH2xtCM87Qs9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGOpL7%2FbtsHGeBNikX%2FfRnZ2o6CEbH2xtCM87Qs9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;237&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;* &lt;span style=&quot;background-color: #fcfcfc; text-align: left;&quot;&gt;Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;927&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GMOud/btsHGkIF8Wp/VY5ZeZdcrP4swXSSKpGHKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GMOud/btsHGkIF8Wp/VY5ZeZdcrP4swXSSKpGHKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GMOud/btsHGkIF8Wp/VY5ZeZdcrP4swXSSKpGHKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGMOud%2FbtsHGkIF8Wp%2FVY5ZeZdcrP4swXSSKpGHKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;927&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;927&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #000000; text-align: start;&quot;&gt;npm run android를 하고 애뮬레이터에 다음과 같은 오류가 발생할 경우에는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;android\app\src\main\assets\ 폴더를 만들어준다. 그리고 vs code 터미널로 이동해 아래 명령어를 입력해준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1716950002644&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rta9X/btsHGcxnbhJ/13k0gz8JkUPu1OLQdJ00V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rta9X/btsHGcxnbhJ/13k0gz8JkUPu1OLQdJ00V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rta9X/btsHGcxnbhJ/13k0gz8JkUPu1OLQdJ00V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frta9X%2FbtsHGcxnbhJ%2F13k0gz8JkUPu1OLQdJ00V0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;926&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;926&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 해결 완료된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://borntodevelop.tistory.com/entry/React-Native-Error-Unable-to-load-script-Make-sure-youre-either-running-a-Metro-server-run-react-native-start-or-that-your-bundle-indexandroidbundle-is-packaged-correctly-for-release&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://borntodevelop.tistory.com/entry/React-Native-Error-Unable-to-load-script-Make-sure-youre-either-running-a-Metro-server-run-react-native-start-or-that-your-bundle-indexandroidbundle-is-packaged-correctly-for-release&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716950589556&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;[React Native Error] Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that yo&quot; data-og-description=&quot;Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release 안드로이드 애뮬레이터 빌드 도중, 위와 같은 애러가 발생했&quot; data-og-host=&quot;borntodevelop.tistory.com&quot; data-og-source-url=&quot;https://borntodevelop.tistory.com/entry/React-Native-Error-Unable-to-load-script-Make-sure-youre-either-running-a-Metro-server-run-react-native-start-or-that-your-bundle-indexandroidbundle-is-packaged-correctly-for-release&quot; data-og-url=&quot;https://borntodevelop.tistory.com/entry/React-Native-Error-Unable-to-load-script-Make-sure-youre-either-running-a-Metro-server-run-react-native-start-or-that-your-bundle-indexandroidbundle-is-packaged-correctly-for-release&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8g7Bu/hyWdncRDYD/keqWSqTACa7n361WRRSvF0/img.jpg?width=317&amp;amp;height=367&amp;amp;face=0_0_317_367,https://scrap.kakaocdn.net/dn/cjuG9i/hyWdov4IeL/PWoOm7ODGMm7IQxjiTT1Z1/img.jpg?width=317&amp;amp;height=367&amp;amp;face=0_0_317_367,https://scrap.kakaocdn.net/dn/9cFeY/hyWdhRfchB/bJM0qZp8EBPWaNvjcbKx70/img.jpg?width=317&amp;amp;height=367&amp;amp;face=0_0_317_367&quot;&gt;&lt;a href=&quot;https://borntodevelop.tistory.com/entry/React-Native-Error-Unable-to-load-script-Make-sure-youre-either-running-a-Metro-server-run-react-native-start-or-that-your-bundle-indexandroidbundle-is-packaged-correctly-for-release&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://borntodevelop.tistory.com/entry/React-Native-Error-Unable-to-load-script-Make-sure-youre-either-running-a-Metro-server-run-react-native-start-or-that-your-bundle-indexandroidbundle-is-packaged-correctly-for-release&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8g7Bu/hyWdncRDYD/keqWSqTACa7n361WRRSvF0/img.jpg?width=317&amp;amp;height=367&amp;amp;face=0_0_317_367,https://scrap.kakaocdn.net/dn/cjuG9i/hyWdov4IeL/PWoOm7ODGMm7IQxjiTT1Z1/img.jpg?width=317&amp;amp;height=367&amp;amp;face=0_0_317_367,https://scrap.kakaocdn.net/dn/9cFeY/hyWdhRfchB/bJM0qZp8EBPWaNvjcbKx70/img.jpg?width=317&amp;amp;height=367&amp;amp;face=0_0_317_367');&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;[React Native Error] Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that yo&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release 안드로이드 애뮬레이터 빌드 도중, 위와 같은 애러가 발생했&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;borntodevelop.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> Application/React-Native</category>
      <category>react-native</category>
      <category>안드로이드</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/125</guid>
      <comments>https://studybook.tistory.com/125#entry125comment</comments>
      <pubDate>Wed, 29 May 2024 11:43:17 +0900</pubDate>
    </item>
    <item>
      <title>[React Native] React-Native-Cli 개발환경 구축하기(1)</title>
      <link>https://studybook.tistory.com/124</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래 블로그를 참고하여 리액트 네이티브 안드로이드 개발환경을 구축하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;리액트 네이티브 개발을 위해서는 Expo와 React-Native-Cli을 사용한다고 하는데 여기서는 React-Native-Cli 설치로 진행할 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://yun5o.tistory.com/entry/React-Native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%951-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yun5o.tistory.com/entry/React-Native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%951-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716881597403&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;[React Native] 리액트 네이티브 개발환경 설정(1/6) - 시작하기&quot; data-og-description=&quot;* 리액트 네이티브란? React Native는 페이스북이 개발한 오픈 소스 모바일 애플리케이션 프레임워크입니다. 안드로이드, IOS, 웹, UWP용 애플리케이션을 개발하기 위해 사용되며, 개발자들이 네이티&quot; data-og-host=&quot;yun5o.tistory.com&quot; data-og-source-url=&quot;https://yun5o.tistory.com/entry/React-Native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%951-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://yun5o.tistory.com/entry/React-Native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%951-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/91fzM/hyV9XzYSNy/utV3s83nWR1eArkApMR6F0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dv1y6E/hyWdmkz8qC/L588M6wLQKzpJBWiTu1WO0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://yun5o.tistory.com/entry/React-Native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%951-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yun5o.tistory.com/entry/React-Native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%951-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/91fzM/hyV9XzYSNy/utV3s83nWR1eArkApMR6F0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dv1y6E/hyWdmkz8qC/L588M6wLQKzpJBWiTu1WO0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[React Native] 리액트 네이티브 개발환경 설정(1/6) - 시작하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;* 리액트 네이티브란? React Native는 페이스북이 개발한 오픈 소스 모바일 애플리케이션 프레임워크입니다. 안드로이드, IOS, 웹, UWP용 애플리케이션을 개발하기 위해 사용되며, 개발자들이 네이티&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yun5o.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Node.js 설치&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://nodejs.org/en/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://nodejs.org/en/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716882268681&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;Node.js &amp;mdash; Run JavaScript Everywhere&quot; data-og-description=&quot;Node.js&amp;reg; is a JavaScript runtime built on Chrome's V8 JavaScript engine.&quot; data-og-host=&quot;nodejs.org&quot; data-og-source-url=&quot;https://nodejs.org/en/&quot; data-og-url=&quot;https://nodejs.org/en/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b8AWiC/hyWdjOV5lH/okZ4NetSmx4ojuSreKNlk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/ZFOuo/hyV9ZdvzII/O49eclhPbWWJKh1Qyo5bRk/img.png?width=224&amp;amp;height=256&amp;amp;face=0_0_224_256&quot;&gt;&lt;a href=&quot;https://nodejs.org/en/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nodejs.org/en/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b8AWiC/hyWdjOV5lH/okZ4NetSmx4ojuSreKNlk1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/ZFOuo/hyV9ZdvzII/O49eclhPbWWJKh1Qyo5bRk/img.png?width=224&amp;amp;height=256&amp;amp;face=0_0_224_256');&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;Node.js &amp;mdash; Run JavaScript Everywhere&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Node.js&amp;reg; is a JavaScript runtime built on Chrome's V8 JavaScript engine.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;nodejs.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 계속 Next를 클릭하여 설치한 후 잘 설치되었는지 확인하기 위해 cmd창을 열어 아래와 같이 입력하여 버전이 잘 나오면 잘 설치 된 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l3KqG/btsHDKPQg2d/0IT3p4xJkXekzm2hythYLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l3KqG/btsHDKPQg2d/0IT3p4xJkXekzm2hythYLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l3KqG/btsHDKPQg2d/0IT3p4xJkXekzm2hythYLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl3KqG%2FbtsHDKPQg2d%2F0IT3p4xJkXekzm2hythYLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;247&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. &lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;React-Native-Cli 설치&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;vs-code에서 Terminal &amp;gt; New Terminal을 열러 아래의 명령어를 입력해준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1716883482633&quot; class=&quot;livescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install -g react-native-cli&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/css9eP/btsHGlNUYPj/re1ukqwHYevy9rKxk4bnxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/css9eP/btsHGlNUYPj/re1ukqwHYevy9rKxk4bnxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/css9eP/btsHGlNUYPj/re1ukqwHYevy9rKxk4bnxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcss9eP%2FbtsHGlNUYPj%2Fre1ukqwHYevy9rKxk4bnxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;313&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그리고 잘 설치되어 있는지 확인해준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1716883537284&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;react-native -v&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKsYe6/btsHFwvRjze/fn1WNbrHpErqlZszFVuAUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKsYe6/btsHFwvRjze/fn1WNbrHpErqlZszFVuAUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKsYe6/btsHFwvRjze/fn1WNbrHpErqlZszFVuAUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKsYe6%2FbtsHFwvRjze%2Ffn1WNbrHpErqlZszFVuAUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;82&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.&lt;span&gt; JDK &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;설치&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/#java11-windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.oracle.com/java/technologies/downloads/#java11-windows&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716883666226&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;Download the Latest Java LTS Free&quot; data-og-description=&quot;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&quot; data-og-host=&quot;www.oracle.com&quot; data-og-source-url=&quot;https://www.oracle.com/java/technologies/downloads/#java11-windows&quot; data-og-url=&quot;https://www.oracle.com/java/technologies/downloads/#java11-windows&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bivVop/hyV9W8WsEB/z4CRceDKlWoWKopEkoUO9K/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/R5NVa/hyWdj2s1CP/mQVuWx9aCjEdsSpYRsMSj0/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/#java11-windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.oracle.com/java/technologies/downloads/#java11-windows&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bivVop/hyV9W8WsEB/z4CRceDKlWoWKopEkoUO9K/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/R5NVa/hyWdj2s1CP/mQVuWx9aCjEdsSpYRsMSj0/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200');&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;Download the Latest Java LTS Free&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.oracle.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크로 들어가서 첫 번째를 JAVA11을 설치해주었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btZXyC/btsHEUjHLOy/SWIAfsn5Kekz4ciA3ZcZek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btZXyC/btsHEUjHLOy/SWIAfsn5Kekz4ciA3ZcZek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btZXyC/btsHEUjHLOy/SWIAfsn5Kekz4ciA3ZcZek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtZXyC%2FbtsHEUjHLOy%2FSWIAfsn5Kekz4ciA3ZcZek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1172&quot; height=&quot;272&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 나는 기존에 설치되어 있던Java8을 이용해 경로 설정을 했기 때문에 Java8이 설치되어 있지 않으면 나중에 필요하게 되어 설치해두는게 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/#java8-windows&quot;&gt;https://www.oracle.com/java/technologies/downloads/#java8-windows&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716945822174&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;Download the Latest Java LTS Free&quot; data-og-description=&quot;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&quot; data-og-host=&quot;www.oracle.com&quot; data-og-source-url=&quot;https://www.oracle.com/java/technologies/downloads/#java8-windows&quot; data-og-url=&quot;https://www.oracle.com/java/technologies/downloads/#java8-windows&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bvXGU8/hyV92nSVHO/NCvIuoRRqe3T5LprXHeoT0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/zavEA/hyWdjasjQI/C9oMcF9gTubznlUtWFsX5K/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/#java8-windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.oracle.com/java/technologies/downloads/#java8-windows&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bvXGU8/hyV92nSVHO/NCvIuoRRqe3T5LprXHeoT0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/zavEA/hyWdjasjQI/C9oMcF9gTubznlUtWFsX5K/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200');&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;Download the Latest Java LTS Free&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.oracle.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사진에서 두 번째 것을 설치하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1737&quot; data-origin-height=&quot;721&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBFAxO/btsHFcY5q3u/Wq0j1FLIIkRoBA7NtfyCAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBFAxO/btsHFcY5q3u/Wq0j1FLIIkRoBA7NtfyCAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBFAxO/btsHFcY5q3u/Wq0j1FLIIkRoBA7NtfyCAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBFAxO%2FbtsHFcY5q3u%2FWq0j1FLIIkRoBA7NtfyCAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1737&quot; height=&quot;721&quot; data-origin-width=&quot;1737&quot; data-origin-height=&quot;721&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4.&lt;span&gt;&lt;span&gt; JDK 환경변수 설정&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;내 PC &amp;gt; 우클릭 속성 &amp;gt; 고급 시스템 설정으로 들어와 환경변수를 클릭하고 &lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;User에 대한 사용자 변수에 새로 만들기를 클릭하여 아래와 같이 만들어준다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ph3TO/btsHF9m1CBo/ZGf3knSvbCw0TYbaYcCKWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ph3TO/btsHF9m1CBo/ZGf3knSvbCw0TYbaYcCKWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ph3TO/btsHF9m1CBo/ZGf3knSvbCw0TYbaYcCKWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fph3TO%2FbtsHF9m1CBo%2FZGf3knSvbCw0TYbaYcCKWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;810&quot; height=&quot;310&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;310&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 시스템 변수에 있는 Path변수 편집 &amp;gt; 새로 만들기를 눌러 %JAVA_HOME%\bin을 추가해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GVXn7/btsHGcw9bWs/x7Z1loDiiGZjpLxaqOkdok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GVXn7/btsHGcw9bWs/x7Z1loDiiGZjpLxaqOkdok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GVXn7/btsHGcw9bWs/x7Z1loDiiGZjpLxaqOkdok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGVXn7%2FbtsHGcw9bWs%2Fx7Z1loDiiGZjpLxaqOkdok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;696&quot; height=&quot;224&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 설치되었는지 확인하기 위해 vs code 터미널에 아래와 같이 입력해서 버전이 잘 출력되는지 확인한다.&lt;/p&gt;
&lt;pre id=&quot;code_1716894966160&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java -version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TYPXs/btsHFKntuf0/dUUwSB8lJaAU6v7TEiWJYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TYPXs/btsHFKntuf0/dUUwSB8lJaAU6v7TEiWJYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TYPXs/btsHFKntuf0/dUUwSB8lJaAU6v7TEiWJYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTYPXs%2FbtsHFKntuf0%2FdUUwSB8lJaAU6v7TEiWJYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;706&quot; height=&quot;103&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗해결 오류&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;* 만약 자바버전을 확인했을 때 11이 아닌 경우&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;고급 시스템 설정 보기 &amp;gt; 환경 변수 &amp;gt; 시스템 변수의 Path 변수 편집 &amp;gt; %JAVA_HOME%\bin을 javapath 위로 이동&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;a href=&quot;https://yun5o.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%948%EC%97%90%EC%84%9C-%EC%9E%90%EB%B0%9411%EB%A1%9C-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yun5o.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%948%EC%97%90%EC%84%9C-%EC%9E%90%EB%B0%9411%EB%A1%9C-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716946579459&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;[JAVA] 자바8에서 자바11로 버전 변경하기&quot; data-og-description=&quot;기존에 자바8을 사용하고 있었는데 새로 만들려는 프로젝트가 자바11로 변경되어 버전 변경이 필요해졌습니다. * 자바11 설치 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java&quot; data-og-host=&quot;yun5o.tistory.com&quot; data-og-source-url=&quot;https://yun5o.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%948%EC%97%90%EC%84%9C-%EC%9E%90%EB%B0%9411%EB%A1%9C-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://yun5o.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%948%EC%97%90%EC%84%9C-%EC%9E%90%EB%B0%9411%EB%A1%9C-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BAsQV/hyV922wcif/otIFlqnZNutKPb3dgrf7Xk/img.png?width=685&amp;amp;height=256&amp;amp;face=0_0_685_256,https://scrap.kakaocdn.net/dn/bHJosF/hyWdpBJ0D9/dfG2tRBIT7KMPFRLnGDcy0/img.png?width=685&amp;amp;height=256&amp;amp;face=0_0_685_256,https://scrap.kakaocdn.net/dn/FWUll/hyV904FUrT/9ERmwkhEhGnPPFfzAY41kk/img.png?width=532&amp;amp;height=502&amp;amp;face=0_0_532_502&quot;&gt;&lt;a href=&quot;https://yun5o.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%948%EC%97%90%EC%84%9C-%EC%9E%90%EB%B0%9411%EB%A1%9C-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yun5o.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%948%EC%97%90%EC%84%9C-%EC%9E%90%EB%B0%9411%EB%A1%9C-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BAsQV/hyV922wcif/otIFlqnZNutKPb3dgrf7Xk/img.png?width=685&amp;amp;height=256&amp;amp;face=0_0_685_256,https://scrap.kakaocdn.net/dn/bHJosF/hyWdpBJ0D9/dfG2tRBIT7KMPFRLnGDcy0/img.png?width=685&amp;amp;height=256&amp;amp;face=0_0_685_256,https://scrap.kakaocdn.net/dn/FWUll/hyV904FUrT/9ERmwkhEhGnPPFfzAY41kk/img.png?width=532&amp;amp;height=502&amp;amp;face=0_0_532_502');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[JAVA] 자바8에서 자바11로 버전 변경하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;기존에 자바8을 사용하고 있었는데 새로 만들려는 프로젝트가 자바11로 변경되어 버전 변경이 필요해졌습니다. * 자바11 설치 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yun5o.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;5.&lt;span&gt;&lt;span&gt;&lt;span&gt; 안드로이드 스튜디오 설치&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://developer.android.com/studio?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developer.android.com/studio?hl=ko&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716895135152&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 &amp;nbsp;|&amp;nbsp; Android Studio &amp;nbsp;|&amp;nbsp; Android Developers&quot; data-og-description=&quot;Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.&quot; data-og-host=&quot;developer.android.com&quot; data-og-source-url=&quot;https://developer.android.com/studio?hl=ko&quot; data-og-url=&quot;https://developer.android.com/studio?hl=ko&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPwN5P/hyWdrM1hGv/rJMcrBJTG4YkfsNunnKUQ1/img.png?width=1201&amp;amp;height=676&amp;amp;face=0_0_1201_676,https://scrap.kakaocdn.net/dn/J2tRE/hyV9RzNGAA/4Pw5wVGKorBhjWyzxbf0l0/img.png?width=1832&amp;amp;height=1082&amp;amp;face=0_0_1832_1082,https://scrap.kakaocdn.net/dn/bU7Dmn/hyV9PhGcCN/RQjLdXzOoJTYwC5WvJnbb0/img.png?width=1480&amp;amp;height=772&amp;amp;face=0_0_1480_772&quot;&gt;&lt;a href=&quot;https://developer.android.com/studio?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.android.com/studio?hl=ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPwN5P/hyWdrM1hGv/rJMcrBJTG4YkfsNunnKUQ1/img.png?width=1201&amp;amp;height=676&amp;amp;face=0_0_1201_676,https://scrap.kakaocdn.net/dn/J2tRE/hyV9RzNGAA/4Pw5wVGKorBhjWyzxbf0l0/img.png?width=1832&amp;amp;height=1082&amp;amp;face=0_0_1832_1082,https://scrap.kakaocdn.net/dn/bU7Dmn/hyV9PhGcCN/RQjLdXzOoJTYwC5WvJnbb0/img.png?width=1480&amp;amp;height=772&amp;amp;face=0_0_1480_772');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 &amp;nbsp;|&amp;nbsp; Android Studio &amp;nbsp;|&amp;nbsp; Android Developers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.android.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사이트로 들어가 Android 스튜디오 Jellyfish 다운로드를 클릭하고 다 Next를 클릭해 다운로드를 진행한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1885&quot; data-origin-height=&quot;805&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1jOgv/btsHGzk5Dwe/jkFeZp2HNSXbQRkP7BkhQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1jOgv/btsHGzk5Dwe/jkFeZp2HNSXbQRkP7BkhQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1jOgv/btsHGzk5Dwe/jkFeZp2HNSXbQRkP7BkhQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1jOgv%2FbtsHGzk5Dwe%2FjkFeZp2HNSXbQRkP7BkhQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1885&quot; height=&quot;805&quot; data-origin-width=&quot;1885&quot; data-origin-height=&quot;805&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6.&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;안드로이드 스튜디오 환경변수 설정&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안드로이스 스튜디오를 설치하고 나오는 첫 화면에서 SDK Manager &amp;gt; Android SDK에서 Android SDK Location을 복사해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;727&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/do3i0y/btsHEAzltIc/GJgM1j1GRsLCeAqECd7MA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/do3i0y/btsHEAzltIc/GJgM1j1GRsLCeAqECd7MA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/do3i0y/btsHEAzltIc/GJgM1j1GRsLCeAqECd7MA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdo3i0y%2FbtsHEAzltIc%2FGJgM1j1GRsLCeAqECd7MA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1918&quot; height=&quot;727&quot; data-origin-width=&quot;1918&quot; data-origin-height=&quot;727&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;1125&quot; data-origin-height=&quot;916&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/do6TrO/btsHFMyPQQA/FkKk48syhRwaDDKlnT3JK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/do6TrO/btsHFMyPQQA/FkKk48syhRwaDDKlnT3JK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/do6TrO/btsHFMyPQQA/FkKk48syhRwaDDKlnT3JK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdo6TrO%2FbtsHFMyPQQA%2FFkKk48syhRwaDDKlnT3JK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1125&quot; height=&quot;916&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;916&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 고급 시스템 설정에 와서 시스템 변수의 ANDROID_HOME의 변수 값을 동일하게 설정해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷(3).png&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lrjO8/btsHGSkwol2/O4iTcmP2OsQOcXcKGHBZ9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lrjO8/btsHGSkwol2/O4iTcmP2OsQOcXcKGHBZ9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lrjO8/btsHGSkwol2/O4iTcmP2OsQOcXcKGHBZ9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlrjO8%2FbtsHGSkwol2%2FO4iTcmP2OsQOcXcKGHBZ9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;910&quot; height=&quot;463&quot; data-filename=&quot;edited_스크린샷(3).png&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;User에 대한 사용자 변수에서 Path 편집 &amp;gt; 새로만들기 &amp;gt; %ANDROID_HOME%\platfom-tools를 추가해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;945&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IXrvw/btsHEBx89bw/mk0ou0UcMwMUhjsscIuupK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IXrvw/btsHEBx89bw/mk0ou0UcMwMUhjsscIuupK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IXrvw/btsHEBx89bw/mk0ou0UcMwMUhjsscIuupK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIXrvw%2FbtsHEBx89bw%2Fmk0ou0UcMwMUhjsscIuupK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;945&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;945&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 설치되었는지 확인하기 위해 vs code 터미널에 아래와 같이 입력해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1716896337887&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;adb --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC88P6/btsHGfN0FtA/oU9zGO2ClQMIzIkjZKejqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC88P6/btsHGfN0FtA/oU9zGO2ClQMIzIkjZKejqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC88P6/btsHGfN0FtA/oU9zGO2ClQMIzIkjZKejqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC88P6%2FbtsHGfN0FtA%2FoU9zGO2ClQMIzIkjZKejqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;696&quot; height=&quot;118&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗해결 오류&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;* &lt;/span&gt;&lt;/b&gt;&lt;b&gt;'adb'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.&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;a href=&quot;https://curiousengineer.tistory.com/12&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://curiousengineer.tistory.com/12&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716896754096&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;'adb'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.&quot; data-og-description=&quot;adb.exe는 Android SDK의 일부분입니다. Android Studio가 보급됨에 따라 Android Studio를 설치하면서 Android SDK도 그 과정의 일부분으로 자동설치됩니다. 그러다보니 커맨드 창에서 adb 실행 시 제목과 같이 &quot; data-og-host=&quot;curiousengineer.tistory.com&quot; data-og-source-url=&quot;https://curiousengineer.tistory.com/12&quot; data-og-url=&quot;https://curiousengineer.tistory.com/12&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eSIdt/hyWdfeIz41/UxLRk8hYXFbq7CH6Fnbdz0/img.png?width=504&amp;amp;height=52&amp;amp;face=0_0_504_52,https://scrap.kakaocdn.net/dn/bwRZtT/hyV9Y6MjC3/kEKLRig8GDVQV079tT3In1/img.png?width=504&amp;amp;height=52&amp;amp;face=0_0_504_52,https://scrap.kakaocdn.net/dn/bSrNmK/hyWdq8oZII/Xe0La2CRhMT0nao2ClC9k1/img.png?width=617&amp;amp;height=584&amp;amp;face=0_0_617_584&quot;&gt;&lt;a href=&quot;https://curiousengineer.tistory.com/12&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://curiousengineer.tistory.com/12&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eSIdt/hyWdfeIz41/UxLRk8hYXFbq7CH6Fnbdz0/img.png?width=504&amp;amp;height=52&amp;amp;face=0_0_504_52,https://scrap.kakaocdn.net/dn/bwRZtT/hyV9Y6MjC3/kEKLRig8GDVQV079tT3In1/img.png?width=504&amp;amp;height=52&amp;amp;face=0_0_504_52,https://scrap.kakaocdn.net/dn/bSrNmK/hyWdq8oZII/Xe0La2CRhMT0nao2ClC9k1/img.png?width=617&amp;amp;height=584&amp;amp;face=0_0_617_584');&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;'adb'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;adb.exe는 Android SDK의 일부분입니다. Android Studio가 보급됨에 따라 Android Studio를 설치하면서 Android SDK도 그 과정의 일부분으로 자동설치됩니다. 그러다보니 커맨드 창에서 adb 실행 시 제목과 같이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;curiousengineer.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> Application/React-Native</category>
      <category>Android</category>
      <category>react-native</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/124</guid>
      <comments>https://studybook.tistory.com/124#entry124comment</comments>
      <pubDate>Tue, 28 May 2024 20:46:22 +0900</pubDate>
    </item>
    <item>
      <title>[KT AIVLE School] KT에이블스쿨 5기 - 4차 미니프로젝트</title>
      <link>https://studybook.tistory.com/123</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt; ️ 일정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4차 미니 프로젝트: 4/8 ~ 4/12&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1381&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kWvy5/btsHnX2kuBJ/ARSUXk0YQrRk98xvfnRY20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kWvy5/btsHnX2kuBJ/ARSUXk0YQrRk98xvfnRY20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kWvy5/btsHnX2kuBJ/ARSUXk0YQrRk98xvfnRY20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkWvy5%2FbtsHnX2kuBJ%2FARSUXk0YQrRk98xvfnRY20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1381&quot; height=&quot;383&quot; data-origin-width=&quot;1381&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❓&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;KT에이블스쿨 미니프로젝트란?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;미니 프로젝트는 이론, 실습 강의가 끝난 후 배운 강의를 토대로 실제 사례에 적용해보는 시간이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;해결해야 할 미션, 데이터, 도메인 정보, 가이드가 제공되면 개별 실습을 통해 스스로 문제를 해결한 후, 조별 실습을 통해 공동과제를 수행한다. 그리고 전체 발표 시간을 가져 다양한 솔루션을 공유한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;4차 미니프로젝트 1~2일차 주제 및 미션은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;차량 공유업체의 차량파손분류를 위한 모델&lt;/span&gt;&lt;/b&gt;을 만드는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;1일차에는 개별 과제로 도메인을 이해하고, 각자 모델을 설계해보는 시간을 가졌다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;도메인 이해&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;차량 공유는 흔히 알고 있는 쏘카, 그린카 등의 카셰어링 서비스이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 서비스에서는 사용자에게 대여할 차량 운영대수 및 안전한 차량 이용을 위해 차량 관리가 중요하다고 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;카셰어링 서비스에서 차량 공유가 이루어지는 절차를 살펴보았고, 이 과정에서 파손된 차량을 식별하는 업무의 번거로움을 덜기 위한 서비스의 필요성을 확인하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;데이터가 정상차량 이미지와 파손차량 이미지로 따로 주어졌다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그래서 먼저, 아래와 같이 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;정상차량 이미지(normal)와 파손차량 이미지(abnormal)를 각각 0과 1로 구분&lt;/b&gt;&lt;/span&gt;하였다.&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRjgVk/btsHp0XsWm6/RPnbWrNhkVwvZVosyieeMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRjgVk/btsHp0XsWm6/RPnbWrNhkVwvZVosyieeMK/img.png&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;488&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.8821%; margin-right: 10px;&quot; data-widthpercent=&quot;51.48&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRjgVk/btsHp0XsWm6/RPnbWrNhkVwvZVosyieeMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRjgVk%2FbtsHp0XsWm6%2FRPnbWrNhkVwvZVosyieeMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;492&quot; height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S71wA/btsHncr9EM8/hkWF1Ky5nfKCde7bzguvh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S71wA/btsHncr9EM8/hkWF1Ky5nfKCde7bzguvh1/img.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;502&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.9551%;&quot; data-widthpercent=&quot;48.52&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S71wA/btsHncr9EM8/hkWF1Ky5nfKCde7bzguvh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS71wA%2FbtsHncr9EM8%2FhkWF1Ky5nfKCde7bzguvh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;파손 차량의 예시와 정상 차량과 파손차량을 구분한 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그 다음, 하나의 리스트로 통합하여 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;학습데이터와 테스트데이터, 검증데이터를 각 9:1:1&lt;/b&gt;&lt;/span&gt;로 나누었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;데이터는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;RGB로 전처리&lt;/b&gt;&lt;/span&gt;를 진행하였고, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;모델은 CNN으로 Funtional API를 사용해 4 Layer로 계층을 만들어 모델을 설계&lt;/b&gt;&lt;/span&gt;하였다.&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;EarlyStropping을 이용하여 모델을 학습시켰고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: left;&quot;&gt;confusion_matrix, classification_report 활용하여 성능을 평가하였다.&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rAw4o/btsHo7Xtufa/zpp7DUJODGG4nrtUwylkCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rAw4o/btsHo7Xtufa/zpp7DUJODGG4nrtUwylkCK/img.png&quot; data-origin-width=&quot;1055&quot; data-origin-height=&quot;582&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.6067%; margin-right: 10px;&quot; data-widthpercent=&quot;50.19&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rAw4o/btsHo7Xtufa/zpp7DUJODGG4nrtUwylkCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrAw4o%2FbtsHo7Xtufa%2Fzpp7DUJODGG4nrtUwylkCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1055&quot; height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cm2dqq/btsHnjycJFu/JmVxxWrSeyKgE1is9yLvK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cm2dqq/btsHnjycJFu/JmVxxWrSeyKgE1is9yLvK0/img.png&quot; data-origin-width=&quot;1047&quot; data-origin-height=&quot;582&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.2305%;&quot; data-widthpercent=&quot;49.81&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cm2dqq/btsHnjycJFu/JmVxxWrSeyKgE1is9yLvK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm2dqq%2FbtsHnjycJFu%2FJmVxxWrSeyKgE1is9yLvK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1047&quot; height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;epoch에 따른 모델의 학습데이터, 실제값의 정확도와 오류값 진행상황&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;1에 가까울수록 파손 차량에 가깝고, 0에 가까울수록 정상차량&lt;/b&gt;&lt;/span&gt;에 가깝다고 판단하기 위해 즉, 0.5보다 크거나 같으면 아예 1로, 0.5보다 작으면 0으로 구분하였다.&lt;/p&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qyswn/btsHp3s7Fvj/WfdVUPbKe9VsU2G5v8PnJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qyswn/btsHp3s7Fvj/WfdVUPbKe9VsU2G5v8PnJK/img.png&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;657&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;49.24&quot; style=&quot;width: 48.6674%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qyswn/btsHp3s7Fvj/WfdVUPbKe9VsU2G5v8PnJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQyswn%2FbtsHp3s7Fvj%2FWfdVUPbKe9VsU2G5v8PnJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;527&quot; height=&quot;657&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5ZYJw/btsHo5rVerI/EIkRW75HE6zwNL8cogp3k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5ZYJw/btsHo5rVerI/EIkRW75HE6zwNL8cogp3k0/img.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;647&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.1698%;&quot; data-widthpercent=&quot;50.76&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5ZYJw/btsHo5rVerI/EIkRW75HE6zwNL8cogp3k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5ZYJw%2FbtsHo5rVerI%2FEIkRW75HE6zwNL8cogp3k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;예측 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;테스트 데이터로 돌렸을 때 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;정확도는 88.52%&lt;/b&gt;&lt;/span&gt;가 나왔고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: left;&quot;&gt;confusion_matrix, classification_report는 아래와 같이 나왔다.&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IUOBO/btsHopxnYhh/psU9Cc3xKliBDOV8PhZj00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IUOBO/btsHopxnYhh/psU9Cc3xKliBDOV8PhZj00/img.png&quot; style=&quot;width: 35.6684%; margin-right: 10px;&quot; data-origin-width=&quot;87&quot; data-origin-height=&quot;56&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;36.09&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IUOBO/btsHopxnYhh/psU9Cc3xKliBDOV8PhZj00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIUOBO%2FbtsHopxnYhh%2FpsU9Cc3xKliBDOV8PhZj00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;87&quot; height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n45dZ/btsHpkI0KAK/ckmFY60iiFnDDtspJcORS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n45dZ/btsHpkI0KAK/ckmFY60iiFnDDtspJcORS1/img.png&quot; style=&quot;width: 63.1688%;&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;181&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;63.91&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n45dZ/btsHpkI0KAK/ckmFY60iiFnDDtspJcORS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn45dZ%2FbtsHpkI0KAK%2FckmFY60iiFnDDtspJcORS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;498&quot; height=&quot;181&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;confusion_matrix와 classification_report&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2일차에는 어제에 이어서 모델의 성능을 더 높이기 위해 다양한 시도를 하고, 팀원들끼리 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;아래의 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;다양한 모델을 사용하여 결과값을 비교&lt;/b&gt;&lt;/span&gt;하였다.&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 모델 성능을 높이기 위해 두 가지를 시도하였다. 첫 번째로 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Image Preprocessing Layer, Image Augmentation Layer를 통해 이미지를 변형&lt;/b&gt;&lt;/span&gt;시켜 학습시켰다.&lt;/p&gt;
&lt;pre id=&quot;code_1716512402846&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Image Preprocessing Layer
preprocessing_layer = tf.keras.layers.Rescaling(1./255)  # 이미지를 0-1 범위로 조정

# Image Augmentation Layer
data_augmentation = tf.keras.Sequential([
    tf.keras.layers.RandomFlip(&quot;horizontal&quot;),  # 랜덤으로 이미지를 수평으로 뒤집기
    tf.keras.layers.RandomRotation(0.2),       # 랜덤으로 이미지를 최대 20도 회전
    tf.keras.layers.RandomZoom(0.2),           # 랜덤으로 이미지를 최대 20% 확대 또는 축소
])&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JZ2KY/btsHA1oyNWI/AtH5wAkcU6Nn4qu55Bi4w0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JZ2KY/btsHA1oyNWI/AtH5wAkcU6Nn4qu55Bi4w0/img.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;427&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JZ2KY/btsHA1oyNWI/AtH5wAkcU6Nn4qu55Bi4w0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJZ2KY%2FbtsHA1oyNWI%2FAtH5wAkcU6Nn4qu55Bi4w0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DD6oH/btsHBtLS5XX/16dYmNeanUjdSWTIMH1gF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DD6oH/btsHBtLS5XX/16dYmNeanUjdSWTIMH1gF1/img.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;427&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DD6oH/btsHBtLS5XX/16dYmNeanUjdSWTIMH1gF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDD6oH%2FbtsHBtLS5XX%2F16dYmNeanUjdSWTIMH1gF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;원본 사진(왼쪽) 이미지와 변형 시킨 사진(왼쪽)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 1일차에 사용했던 모델에 변형시킨 이미지로 학습시킨 뒤 평가지표를 확인하니 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;정확도가 96.88%&lt;/b&gt;&lt;/span&gt;로 성능이 더 좋아진 것을 확인할 수 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l4suA/btsHzsVsM1x/d0MVPHFCzQ2fykMAN9IAGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l4suA/btsHzsVsM1x/d0MVPHFCzQ2fykMAN9IAGK/img.png&quot; data-origin-width=&quot;107&quot; data-origin-height=&quot;57&quot; data-is-animation=&quot;false&quot; style=&quot;width: 40.086%; margin-right: 10px;&quot; data-widthpercent=&quot;40.56&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l4suA/btsHzsVsM1x/d0MVPHFCzQ2fykMAN9IAGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl4suA%2FbtsHzsVsM1x%2Fd0MVPHFCzQ2fykMAN9IAGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;107&quot; height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8JKFw/btsHyTMM6OU/v4qxjnk96Tyz4vT09r0Ig1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8JKFw/btsHyTMM6OU/v4qxjnk96Tyz4vT09r0Ig1/img.png&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;197&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;59.44&quot; style=&quot;width: 58.7512%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8JKFw/btsHyTMM6OU/v4qxjnk96Tyz4vT09r0Ig1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8JKFw%2FbtsHyTMM6OU%2Fv4qxjnk96Tyz4vT09r0Ig1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;542&quot; height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;confusion_matrix와 classification_report&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;두 번째로 CNN보다 더 좋은 모델인 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;InceptionV3모델을 이용해서 softmax를 sigmoid로 바꿔 모델링을 진행&lt;/b&gt;&lt;/span&gt;하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 결과를 확인했더니 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;테스트 정확도가 100%&lt;/b&gt;&lt;/span&gt;가 나왔다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pM27q/btsHp2HKyfk/tVavpkUnOcrZ5Ynr3ydoWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pM27q/btsHp2HKyfk/tVavpkUnOcrZ5Ynr3ydoWk/img.png&quot; data-alt=&quot;모델별 성능 비교표&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pM27q/btsHp2HKyfk/tVavpkUnOcrZ5Ynr3ydoWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpM27q%2FbtsHp2HKyfk%2FtVavpkUnOcrZ5Ynr3ydoWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;185&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모델별 성능 비교표&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btr1Yf/btsHBtd3yzJ/GkFcbVvuQqB5rBYhydwLI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btr1Yf/btsHBtd3yzJ/GkFcbVvuQqB5rBYhydwLI0/img.png&quot; data-origin-width=&quot;100&quot; data-origin-height=&quot;57&quot; data-is-animation=&quot;false&quot; style=&quot;width: 38.7906%; margin-right: 10px;&quot; data-widthpercent=&quot;39.25&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btr1Yf/btsHBtd3yzJ/GkFcbVvuQqB5rBYhydwLI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtr1Yf%2FbtsHBtd3yzJ%2FGkFcbVvuQqB5rBYhydwLI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;100&quot; height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4dp3S/btsHBnx9MwC/f41lLzqY6XnCLN6xW6WlZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4dp3S/btsHBnx9MwC/f41lLzqY6XnCLN6xW6WlZk/img.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;197&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;60.75&quot; style=&quot;width: 60.0466%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4dp3S/btsHBnx9MwC/f41lLzqY6XnCLN6xW6WlZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4dp3S%2FbtsHBnx9MwC%2Ff41lLzqY6XnCLN6xW6WlZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;confusion_matrix와 classification_report&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;이 과정에서&lt;/span&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;파라미터 수가 많을수록 성능이 좋아지지만, 너무 많은 파라미터를 학습하면 성능이 떨어지는 것을 확인&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;하였다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;3&lt;/span&gt;&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;4차 미니프로젝트 3~4일차 주제 및 미션은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;인공위성 데이터로 도시환경을 개선&lt;/span&gt;&lt;/b&gt;하기이다. 도시환경 개선을 위해 쿨루프(Cool Roof) 사업을 진행할 예정이고, 이에 대한 지원 대상 선정을 위해서는 옥상을 일일히 사전조사 하는 번거로움이 있다. 이를 해결하기 위해 1차적으로 시공 대상 여부를 효율적으로 식별할 수 있는 딥러닝 기반 모델을 만드는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;즉,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;쿨루프 사업 담당 공무원을 대상으로 인공위성 데이터(옥상사진 이미지)로 쿨루프 시공 대상 여부 분류를 알려주는 서비스를 개발하는 것&lt;/span&gt;&lt;/b&gt;이 이번 3~4일차 주제 및 미션이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; 도메인 이해&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;우선 쿨루프(Cool Roof) 조성 사업에 대한 설명, 필요성, 효과에 대해 알아보았다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그리고 사업을 진행하는 과정을 살펴보았고, 추진하는데 어떤 어려움을 겪고 있는지 확인하였다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;데이터 수집&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원래 항상 미니프로젝트를 할 때 주어진 데이터로만 프로젝트를 진행했는데 이번에는 모델링을 진행하기에는 적은 수여서 직접 인공위성 이미지(옥상사진)데이터를 수집하고 roboflow를 이용해 직접 바운딩박스로 가공하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;네이버 지도에서 하얀색 지붕과 그 외의 지붕이 섞여있는 사진을 캡쳐해서 하얀색 지붕과 그 외 지붕(쿨루프가 필요한 지붕)을 구분하여 가공하였다. (무려 748장을 하나하나..팀원들과 같이해서 하나도 안 힘들었다..!^^)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1755&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ynC2N/btsHALsLw7u/BW7QlAmTwAnZkq2YrjHXO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ynC2N/btsHALsLw7u/BW7QlAmTwAnZkq2YrjHXO0/img.png&quot; data-alt=&quot;팀원들과 roboflow에서 작업한 바운딩박스 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ynC2N/btsHALsLw7u/BW7QlAmTwAnZkq2YrjHXO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FynC2N%2FbtsHALsLw7u%2FBW7QlAmTwAnZkq2YrjHXO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1755&quot; height=&quot;788&quot; data-origin-width=&quot;1755&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;팀원들과 roboflow에서 작업한 바운딩박스 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 roboflow에서 test, train, valid으로 나누어 데이터를 다운 받았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cK426M/btsHAM7b5k6/ZtYkQvjiXRFS4FFlbtk1Ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cK426M/btsHAM7b5k6/ZtYkQvjiXRFS4FFlbtk1Ek/img.png&quot; data-origin-width=&quot;173&quot; data-origin-height=&quot;248&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;41.27&quot; data-filename=&quot;blob&quot; style=&quot;width: 40.7924%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cK426M/btsHAM7b5k6/ZtYkQvjiXRFS4FFlbtk1Ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcK426M%2FbtsHAM7b5k6%2FZtYkQvjiXRFS4FFlbtk1Ek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;173&quot; height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byu42V/btsHBCJyhix/dmbRuDrqxf6AGxdp3GFha1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byu42V/btsHBCJyhix/dmbRuDrqxf6AGxdp3GFha1/img.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;812&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;58.73&quot; style=&quot;width: 58.0448%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byu42V/btsHBCJyhix/dmbRuDrqxf6AGxdp3GFha1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyu42V%2FbtsHBCJyhix%2FdmbRuDrqxf6AGxdp3GFha1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;812&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;roboflow에서 다운받은 dataset과 cool-roof와 generic-roof 사례&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;먼저, 모델링은 YOLO를 사용하도록 주어져 YOLO 모델에 적용할 YAML파일을 생성했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;우선 주어진 사진 데이터에서 하얀색 지붕(cool roof)와 쿨루프지원이 필요한 일반 지붕(generic roof)을 구별하기 위해 각각 0과 1로 class를 cool_roof와 generic_roof를 만들었다.&lt;/p&gt;
&lt;pre id=&quot;code_1715650378214&quot; class=&quot;python&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 모델을 학습할 때 yaml파일을 참고해 train, test데이터가 어디있는지 등의 역할
yaml_dict = {
    &quot;train&quot;: &quot;학습데이터 경로&quot;,			 
    &quot;test&quot;: &quot;테스트데이터 경로&quot;,
    &quot;val&quot;: &quot;검증데이터 경로&quot;,
    &quot;nc&quot;: 2,								# 클래스 수
    &quot;names&quot;: ['cool roof', 'generic roof']		# 클래스 이름
}

# 쓰기모드로 연 yolo.yaml파일은 f라고 지정
with open(&quot;/yolo.yaml파일 저장할 경로/yolo.yaml&quot;, &quot;w&quot;) as f:
    yaml.dump(yaml_dict, f)

# 읽기모드로 yolo.yaml파일 확인
with open(&quot;/yolo.yaml파일 저장할 경로/yolo.yaml&quot;, &quot;r&quot;) as f:
    lines = yaml.safe_load(f)
    print(lines)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위 처럼 yaml파일을 만들었다. 그리고 모델을 만들었다.&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래 표는 YOLO 모델의 종류인데 아래로 갈수록 무겁고 정확한 모델이다. 시간이 많이 걸릴 것 같아 나는 s모델을 사용하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BO14I/btsHodRostW/dsUMdzmktq1qEFKI2HDSF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BO14I/btsHodRostW/dsUMdzmktq1qEFKI2HDSF0/img.png&quot; data-alt=&quot;YOLO모델 종류&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BO14I/btsHodRostW/dsUMdzmktq1qEFKI2HDSF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBO14I%2FbtsHodRostW%2FdsUMdzmktq1qEFKI2HDSF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;243&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;YOLO모델 종류&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;epochs를 조절해가며 모델을 돌려본 결과 아래와 같이 나왔다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcZ7rq/btsHpx9dYwC/9hAus16noXPOZewFXJBzhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcZ7rq/btsHpx9dYwC/9hAus16noXPOZewFXJBzhK/img.png&quot; data-alt=&quot;epochs = 100&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcZ7rq/btsHpx9dYwC/9hAus16noXPOZewFXJBzhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcZ7rq%2FbtsHpx9dYwC%2F9hAus16noXPOZewFXJBzhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;677&quot; height=&quot;92&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;epochs = 100&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; 4&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3일차에 YOLO의 s모델을 이용해서 결과를 출력하는 것까지 진행하였다. 4일차에는 YOLO모델의 다양한 버전을 돌려 모델들의 성능을 비교해보았다.&lt;/p&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;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BO14I/btsHodRostW/dsUMdzmktq1qEFKI2HDSF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BO14I/btsHodRostW/dsUMdzmktq1qEFKI2HDSF0/img.png&quot; data-alt=&quot;YOLO모델 종류&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BO14I/btsHodRostW/dsUMdzmktq1qEFKI2HDSF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBO14I%2FbtsHodRostW%2FdsUMdzmktq1qEFKI2HDSF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;243&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;YOLO모델 종류&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어제는 YOLO모델의 s버전에 돌려봤다면 오늘은 다 돌려서 어떤 모델이 제일 좋은지 비교해보았다. &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;성능이 좋은 모델일 수록 시간이 매우 오래&lt;/b&gt;&lt;/span&gt;걸렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 모델의 성능을 높이기 위해 의논해본 결과 &lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Data augmentation noise 영향을 받을 수 있겠다&lt;/b&gt;&lt;/span&gt;는 의견이 나왔다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Data augmentation noise(&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;데이터 증강 노이즈&lt;/span&gt;)란 &lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;원본 데이터에 다양한 형태의 노이즈를 추가하여 인공적으로 학습 데이터를 늘리는 방법이다. &lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;머신러닝 모델, 특히 딥러닝 모델의 일반화 성능을 향상시키기 위해 사용한다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;이 방법을 이용하여 모델을 다시 돌려본 결과 아래 사진을 보면 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;왼쪽은 운동장을 지붕으로 인식하는 반면, 오른쪽 노이즈가 있는 사진은 지붕만 잘 인식&lt;/b&gt;&lt;/span&gt;하였다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ej1tjT/btsHBpKv0Io/neWuc8UnLFkgAtQChWKnU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ej1tjT/btsHBpKv0Io/neWuc8UnLFkgAtQChWKnU0/img.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;849&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50.03&quot; style=&quot;width: 49.4477%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ej1tjT/btsHBpKv0Io/neWuc8UnLFkgAtQChWKnU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fej1tjT%2FbtsHBpKv0Io%2FneWuc8UnLFkgAtQChWKnU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;849&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyx8ye/btsHApxTzL2/TGLWUnHM3UN2Yuukyndgzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyx8ye/btsHApxTzL2/TGLWUnHM3UN2Yuukyndgzk/img.png&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;880&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3895%;&quot; data-widthpercent=&quot;49.97&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyx8ye/btsHApxTzL2/TGLWUnHM3UN2Yuukyndgzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdyx8ye%2FbtsHApxTzL2%2FTGLWUnHM3UN2Yuukyndgzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;880&quot; height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;노이즈가 없는 roof이미지(왼쪽)와 노이즈가 있는 roof이미지(오른쪽)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQsXUi/btsHCsTKR4u/VxX8hnXm1ya2ViuD1KrPMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQsXUi/btsHCsTKR4u/VxX8hnXm1ya2ViuD1KrPMK/img.png&quot; data-alt=&quot;노이즈가 없는 데이터셋&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQsXUi/btsHCsTKR4u/VxX8hnXm1ya2ViuD1KrPMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQsXUi%2FbtsHCsTKR4u%2FVxX8hnXm1ya2ViuD1KrPMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;278&quot; height=&quot;325&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노이즈가 없는 데이터셋&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 잘 인식하는 경우가 너무 적었고 오히려&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;모델의 성능이 더 안 좋아져 노이즈를 제거한 데이터셋으로 모델을 돌렸다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;실제로 많은 연구와 실험에서 노이즈 추가와 같은 기법이 모델의 성능을 향상시킨다는 결과를 보여주고 있다고 해서 직접 해봤지만 성능이 더 안 좋아져 그 이유가 궁금해 찾아보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;찾아본 결과,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;데이터와 문제의 특성에 따라 결과가 다를 수 있어 특정 상황에서는 노이즈가 모델 성능을 저하시킬 수도 있다&lt;/b&gt;&lt;/span&gt;고 한다. 따라서, 데이터 증강 기법의 효과는 실험을 통해 검증하는 것이 중요하다고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f2328;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;모든 모델을 돌려본 결과 YOLOv8n의 성능이 제일 좋았다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f2328;&quot;&gt;&lt;span style=&quot;color: #1f2328;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;파라미터도 다양하게 조절하여 모델을 돌려본 결과 1-2일차에서 확인한 것과 마찬가지로 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;파라미터 수가 너무 많은 경우 오히려 예측성능이 떨어졌다&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt; &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;아쉬웠던 점은 &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Object detection &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;돌리기 전&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;위성 사진 분류해주는 모델을 돌리는 것이 좋을 것 같은데 시간이 부족해서 수행하지 못했던 것&lt;/span&gt;&lt;/b&gt;이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1307&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mdz14/btsHz1Ykig2/UmW2El31D3QaauM9vzrIaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mdz14/btsHz1Ykig2/UmW2El31D3QaauM9vzrIaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mdz14/btsHz1Ykig2/UmW2El31D3QaauM9vzrIaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMdz14%2FbtsHz1Ykig2%2FUmW2El31D3QaauM9vzrIaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1307&quot; height=&quot;166&quot; data-origin-width=&quot;1307&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNm1eX/btsHBgfQ7W1/LnRaY25qqm0qrNgUBH4apK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNm1eX/btsHBgfQ7W1/LnRaY25qqm0qrNgUBH4apK/img.png&quot; style=&quot;width: 32.533%; margin-right: 10px;&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;864&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;33.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNm1eX/btsHBgfQ7W1/LnRaY25qqm0qrNgUBH4apK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNm1eX%2FbtsHBgfQ7W1%2FLnRaY25qqm0qrNgUBH4apK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;863&quot; height=&quot;864&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/evxdCe/btsHBTjWc9e/nmLaCL2Rf79Ch70jVKsRjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/evxdCe/btsHBTjWc9e/nmLaCL2Rf79Ch70jVKsRjk/img.png&quot; style=&quot;width: 32.5707%; margin-right: 10px;&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;854&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;33.35&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/evxdCe/btsHBTjWc9e/nmLaCL2Rf79Ch70jVKsRjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FevxdCe%2FbtsHBTjWc9e%2FnmLaCL2Rf79Ch70jVKsRjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;854&quot; height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQLAkt/btsHBX7F1hL/UkbhKrW5uPFEovkvc2WtD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQLAkt/btsHBX7F1hL/UkbhKrW5uPFEovkvc2WtD0/img.png&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;880&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.5707%;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQLAkt/btsHBX7F1hL/UkbhKrW5uPFEovkvc2WtD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQLAkt%2FbtsHBX7F1hL%2FUkbhKrW5uPFEovkvc2WtD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;880&quot; height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; 4차 미니프로젝트를 마치고&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;항상 주어진 데이터만 가지고 모델링을 진행하다가 직접 수집한 데이터로 모델링은 진행한 것은 처음이었는데 직접 수집하고 가공해보니 실제 현업에서도 데이터를 수집하는데 가장 시간이 오래걸리고, 힘들겠다는 생각이 들었다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;또한, 모델의 성능이 제일 좋다고 해서 결과가 가장 좋은 것도 아니었다. 파라미터 수, 데이터의 양 등 다양한 요소가 모델의 결과에 영향을 미친다는 것을 느꼈다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;아무래도 시각적인 것을 구분해주는 모델링이었어서 그런지 지금까지 했던 모델링 중에서 제일 재미있고 흥미로웠다. 나중에 시각지능 딥러닝을 접목한 프로젝트를 직접 만들어보고 싶다는 생각이 들었다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rdS7n/btsHBheReLX/mq4HbH5R0r73SM1fig9Pv0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rdS7n/btsHBheReLX/mq4HbH5R0r73SM1fig9Pv0/img.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot; data-filename=&quot;벚꽃.jpg&quot; width=&quot;375&quot; height=&quot;500&quot; style=&quot;width: 41.5262%; margin-right: 10px;&quot; data-widthpercent=&quot;42.01&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rdS7n/btsHBheReLX/mq4HbH5R0r73SM1fig9Pv0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrdS7n%2FbtsHBheReLX%2Fmq4HbH5R0r73SM1fig9Pv0%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;3024&quot; height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wVXJR/btsHAqwUgtz/NB8wXjmOaT9stXqcjxAKJK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wVXJR/btsHAqwUgtz/NB8wXjmOaT9stXqcjxAKJK/img.jpg&quot; data-origin-width=&quot;236&quot; data-origin-height=&quot;228&quot; data-is-animation=&quot;false&quot; style=&quot;width: 57.311%;&quot; data-widthpercent=&quot;57.99&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wVXJR/btsHAqwUgtz/NB8wXjmOaT9stXqcjxAKJK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwVXJR%2FbtsHAqwUgtz%2FNB8wXjmOaT9stXqcjxAKJK%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;236&quot; height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;탄천 산책로/^0^/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;kt분당본사타워를 이용하시게 된다면 다른 팀원들과 점심시간에 탄천 산책로에서 산책하고 들어가기 추천합니다~!&lt;/p&gt;</description>
      <category>  대외활동/KT 에이블스쿨</category>
      <category>KT에이블스쿨</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/123</guid>
      <comments>https://studybook.tistory.com/123#entry123comment</comments>
      <pubDate>Fri, 24 May 2024 16:33:01 +0900</pubDate>
    </item>
    <item>
      <title>[KT AIVLE School] KT에이블스쿨 5기 - 3차 미니프로젝트</title>
      <link>https://studybook.tistory.com/122</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt; ️ 일정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3차 미니 프로젝트 :3/27 ~ 3/29&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1397&quot; data-origin-height=&quot;392&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpnKSb/btsG6L8x7nP/T6vtj37hOkVe3vOkj9IE40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpnKSb/btsG6L8x7nP/T6vtj37hOkVe3vOkj9IE40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpnKSb/btsG6L8x7nP/T6vtj37hOkVe3vOkj9IE40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpnKSb%2FbtsG6L8x7nP%2FT6vtj37hOkVe3vOkj9IE40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1397&quot; height=&quot;392&quot; data-origin-width=&quot;1397&quot; data-origin-height=&quot;392&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❓&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;KT에이블스쿨 미니프로젝트란?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;미니 프로젝트는 이론, 실습 강의가 끝난 후 배운 강의를 토대로 실제 사례에 적용해보는 시간이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;해결해야 할 미션, 데이터, 도메인 정보, 가이드가 제공되면 개별 실습을 통해 스스로 문제를 해결한 후, 조별 실습을 통해 공동과제를 수행한다. 그리고 전체 발표 시간을 가져 다양한 솔루션을 공유한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3차 미니 프로젝트 주제는 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;스마트폰 기반의 센서 데이터를 활용해 동작을 분류 하는 모델을 완성&lt;/span&gt;&lt;/b&gt;하는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이번 프로젝트에서는 사용하는 데이터의 양이 많아 아래와 같이 미션을 진행하는 가이드가 주어졌고, 1일차에는 단계1까지 진행하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1687&quot; data-origin-height=&quot;820&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZS5s0/btsHofBGu28/RVDGe9iqOOz95vHxQDphbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZS5s0/btsHofBGu28/RVDGe9iqOOz95vHxQDphbk/img.png&quot; data-alt=&quot;3차 미니프로젝트 가이드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZS5s0/btsHofBGu28/RVDGe9iqOOz95vHxQDphbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZS5s0%2FbtsHofBGu28%2FRVDGe9iqOOz95vHxQDphbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;665&quot; height=&quot;374&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1687&quot; data-origin-height=&quot;820&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;3차 미니프로젝트 가이드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;도메인 이해&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;이번 주제는 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;인간 행동 인식 (HAR: Human Activity Recognition) 기술&lt;/span&gt;&lt;/b&gt;과 관련되어 있다. 인간 행동 인식이란 다양한 센서를 활용하여 사람의 모션에 관련된 정보를 수집하고 해석하여 행동을 인식하는 기술이다. 흔히 애플워치를 착용하고 있는 사람의 행동을 예측에 이에 맞는 서비스를 제공하는 사례가 있다. 인간 행동 인식에 대한 데이터 추출 방법에 대해서도 살펴보았다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;사용한 데이터는 UCI의&lt;span&gt;&amp;nbsp;&lt;/span&gt;Human Activity Recognition이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f2328; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://archive.ics.uci.edu/dataset/240/human+activity+recognition+using+smartphones&quot;&gt;https://archive.ics.uci.edu/dataset/240/human+activity+recognition+using+smartphones&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1714701693350&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;UCI Machine Learning Repository&quot; data-og-description=&quot;This dataset is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. This allows for the sharing and adaptation of the datasets for any purpose, provided that the appropriate credit is given.&quot; data-og-host=&quot;archive.ics.uci.edu&quot; data-og-source-url=&quot;https://archive.ics.uci.edu/dataset/240/human+activity+recognition+using+smartphones&quot; data-og-url=&quot;https://archive.ics.uci.edu/dataset/240/human+activity+recognition+using+smartphones&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/6GsPa/hyVZuckf60/X5cHQw22CUKKElOKyyNoc0/img.jpg?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://archive.ics.uci.edu/dataset/240/human+activity+recognition+using+smartphones&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://archive.ics.uci.edu/dataset/240/human+activity+recognition+using+smartphones&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/6GsPa/hyVZuckf60/X5cHQw22CUKKElOKyyNoc0/img.jpg?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&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;UCI Machine Learning Repository&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This dataset is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. This allows for the sharing and adaptation of the datasets for any purpose, provided that the appropriate credit is given.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;archive.ics.uci.edu&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위 데이터를 바탕으로 인간 행동 인식 데이터의 수집 과정과 데이터의 구조를 살펴보면서 데이터에 대해 이해하는 시간을 가졌다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;데이터 분석&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;data프레임에는 Active라는 변수로 사람의 행동에 대해 6가지로 분류되어 있다. 먼저 행동변수인 6개의 변수들의 분포를 막대그래프, 원그래프, 군집화 등 다양한 시각화 방법으로 살펴보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYCCyT/btsHnvxMb3n/0KhIVKkc48kypWbF9x7Zwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYCCyT/btsHnvxMb3n/0KhIVKkc48kypWbF9x7Zwk/img.png&quot; data-origin-width=&quot;1455&quot; data-origin-height=&quot;507&quot; data-is-animation=&quot;false&quot; width=&quot;439&quot; height=&quot;153&quot; style=&quot;width: 61.9597%; margin-right: 10px;&quot; data-widthpercent=&quot;62.69&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYCCyT/btsHnvxMb3n/0KhIVKkc48kypWbF9x7Zwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYCCyT%2FbtsHnvxMb3n%2F0KhIVKkc48kypWbF9x7Zwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1455&quot; height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwxjJZ/btsHmGthkOR/v8L6HMoqu3qiglMcAwdB7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwxjJZ/btsHmGthkOR/v8L6HMoqu3qiglMcAwdB7k/img.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;483&quot; data-is-animation=&quot;false&quot; style=&quot;width: 36.8775%;&quot; data-widthpercent=&quot;37.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwxjJZ/btsHmGthkOR/v8L6HMoqu3qiglMcAwdB7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwxjJZ%2FbtsHmGthkOR%2Fv8L6HMoqu3qiglMcAwdB7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;변수의 분포 시각&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;T-SNE 기법&lt;/b&gt;&lt;/span&gt;을 이용하여 차원 축소 후 군집 데이터 시각화 분석을 처음 해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법은 T-분산 확률적 이웃 임베딩(t-SNE)으로도 불리는데, 각 데이터 포인트에 2차원 또는 3차원 지도의 위치를 ​​제공하여 고차원 데이터를 시각화하는 통계적 방법으로 저차원에서 시각화를 위해 고차원 데이터를 임베딩하는 데 적합한 비선형 차원 축소 기술이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;810&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zn5or/btsHpsGvVkT/da0dbMoAUdkdzSgcvqvUiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zn5or/btsHpsGvVkT/da0dbMoAUdkdzSgcvqvUiK/img.png&quot; data-alt=&quot;T-분산 확률적 이웃 임베딩(t-SNE)을 이용한 군집시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zn5or/btsHpsGvVkT/da0dbMoAUdkdzSgcvqvUiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZn5or%2FbtsHpsGvVkT%2Fda0dbMoAUdkdzSgcvqvUiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;663&quot; height=&quot;541&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;810&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;T-분산 확률적 이웃 임베딩(t-SNE)을 이용한 군집시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;T-SNE의 결과를 통해 LAYING변수의 경우, 센서가 지표면과 평평한 상태에서 움직이지 않는 경향으로 따로 분류가된다는 것을 알 수 있다. STANDING 변수와 SITTING변수의 경우, 센서가 움직이지 않는 상태에서 서있기와 앉기는 단순 높낮이의 차이만 보이기에 비슷하게 분류가 된다는 것을 알 수 있다. WALKING, WALKING_DOWNSTAIRS, WALKING_UPSTAIRS의 경우, 동적인 활동으로 지표면으로 부터의 높낮이에 따라 차이가 나기 때문에 크게 비교할 수가 없기에 같이 분류가 된다는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Active변수에 따라 데이터 분석을 진행한 이후, 이제 Active변수를 정적행동과 동적행동으로 구분하여 분석을 진행하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;is_dynamic변수를 추가하여 정적행동(STANDING, SITTING, LAYING)이면 0, 동적행동(WALKING, WALKING_DOWNSTAIRS, WALKING_UPSTAIRS)이면 1로 구분하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 다음, 정적행동과 동적행동으로 구분하는데 중요한 변수를 찾기 위해 feature 변수들에 대한 분석을 하였다. 행동을 구분하는 feature변수는 총 561개 있는데 너무 많으므로 randomforest 모델링을 이용해 중요한 변수 상위 5개만 선정하였다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 target을 is_dynamic로 하고 randomforest를 이용해 정적, 동적 변수를 구분하는 모델을 만들어 변수중요도를 추출한 결과, 아래와 같이 추출되었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nnzow/btsHngAUuMo/WpQJmJfTOYX5CloIoL8pkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nnzow/btsHngAUuMo/WpQJmJfTOYX5CloIoL8pkK/img.png&quot; data-alt=&quot;randomforest를 이용한 feature의 중요 변수 상위 5개&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nnzow/btsHngAUuMo/WpQJmJfTOYX5CloIoL8pkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnnzow%2FbtsHngAUuMo%2FWpQJmJfTOYX5CloIoL8pkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;207&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;randomforest를 이용한 feature의 중요 변수 상위 5개&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 is_stading, is_walking 등의 변수들을 추가하여 개별 행동 변수별 추가 분석을 진행하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cH22k9/btsHpb59Kya/FTQxFasIjhB298koerlHr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cH22k9/btsHpb59Kya/FTQxFasIjhB298koerlHr0/img.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;207&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.3931%; margin-right: 10px;&quot; data-widthpercent=&quot;33.16&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cH22k9/btsHpb59Kya/FTQxFasIjhB298koerlHr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcH22k9%2FbtsHpb59Kya%2FFTQxFasIjhB298koerlHr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EZSej/btsHpk2Zoi2/0zIbG8BYc8pRagxWo2k2P1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EZSej/btsHpk2Zoi2/0zIbG8BYc8pRagxWo2k2P1/img.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;207&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.3931%; margin-right: 10px;&quot; data-widthpercent=&quot;33.16&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EZSej/btsHpk2Zoi2/0zIbG8BYc8pRagxWo2k2P1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEZSej%2FbtsHpk2Zoi2%2F0zIbG8BYc8pRagxWo2k2P1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u6xsI/btsHpyUdYvC/LjnE05NsCvSRejh2P8EK90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u6xsI/btsHpyUdYvC/LjnE05NsCvSRejh2P8EK90/img.png&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;210&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.8882%;&quot; data-widthpercent=&quot;33.68&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u6xsI/btsHpyUdYvC/LjnE05NsCvSRejh2P8EK90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu6xsI%2FbtsHpyUdYvC%2FLjnE05NsCvSRejh2P8EK90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;is_standing, is_walking, is_laying의 개별 행동 변수중요도 분석 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EDA가 끝난 후, 딥러닝을 통해 정적행동과 동적행동을 분류하는 모델을 만들었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdoemN/btsHpcKMpTj/6ogwk1EFEGSRK6kOvlwZFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdoemN/btsHpcKMpTj/6ogwk1EFEGSRK6kOvlwZFK/img.png&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;449&quot; data-is-animation=&quot;false&quot; style=&quot;width: 12.3391%; margin-right: 10px;&quot; data-widthpercent=&quot;12.63&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdoemN/btsHpcKMpTj/6ogwk1EFEGSRK6kOvlwZFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdoemN%2FbtsHpcKMpTj%2F6ogwk1EFEGSRK6kOvlwZFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blLx9x/btsHo6w9wJv/sDalXOwXYs27dZtRQiDif1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blLx9x/btsHo6w9wJv/sDalXOwXYs27dZtRQiDif1/img.png&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;525&quot; data-is-animation=&quot;false&quot; style=&quot;width: 41.396%; margin-right: 10px;&quot; data-widthpercent=&quot;42.38&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blLx9x/btsHo6w9wJv/sDalXOwXYs27dZtRQiDif1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblLx9x%2FbtsHo6w9wJv%2FsDalXOwXYs27dZtRQiDif1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;863&quot; height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oCJiF/btsHpy7K2OQ/iw6nUhxElyptX8bpyX0y10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oCJiF/btsHpy7K2OQ/iw6nUhxElyptX8bpyX0y10/img.png&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;337&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;44.99&quot; style=&quot;width: 43.9394%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oCJiF/btsHpy7K2OQ/iw6nUhxElyptX8bpyX0y10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoCJiF%2FbtsHpy7K2OQ%2Fiw6nUhxElyptX8bpyX0y10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;337&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;정적행동과 동적행동을 분류하는 딥러닝 진행 과정 및 예측 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1일차에 단계1까지 진행하였고, 2일차에는 이어서 단계2를 진행하였다. 1일차에 정적행동과 동적행동을 분류하는 딥러닝까지 만들었고, 이어서 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;분류된 행동을 상세 분류&lt;/span&gt;&lt;/b&gt;하는 정적행동 상세 분류 모델과 동적행동 상세 분류 모델을 각각 만들었다. 그리고 함수를 이용하여 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;단계1과 단계2의 과정을 하나로 통합&lt;/span&gt;&lt;/b&gt;하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1687&quot; data-origin-height=&quot;820&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZS5s0/btsHofBGu28/RVDGe9iqOOz95vHxQDphbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZS5s0/btsHofBGu28/RVDGe9iqOOz95vHxQDphbk/img.png&quot; data-alt=&quot;3차 미니프로젝트 가이드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZS5s0/btsHofBGu28/RVDGe9iqOOz95vHxQDphbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZS5s0%2FbtsHofBGu28%2FRVDGe9iqOOz95vHxQDphbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;665&quot; height=&quot;374&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1687&quot; data-origin-height=&quot;820&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;3차 미니프로젝트 가이드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;먼저, 정적행동과 동적행동의 모델의 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;x는 상세행동(Laying, Sitting, Standing, Walking, Walking-Up, Walking-Down)과 정적행동, 동적행동을 0과 1로 분류한 변수인 is_dynamic을 제외한 것&lt;/span&gt;&lt;/b&gt;으로 설정하였고, &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;y는 상세행동인 Activity&lt;/span&gt;&lt;/b&gt;로 설정하였다. 그리고 y가 범주형이므로 LabelEncoder를 진행하여 수치형으로 변환하였다. 이렇게 데이터를 분리하고 정적행동과 동적행동을 상세분류하는 딥러닝 모델을 만들었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qqy39/btsHnqp9OT9/Bhi1ZWmwnxCUgKTyC5FjA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qqy39/btsHnqp9OT9/Bhi1ZWmwnxCUgKTyC5FjA1/img.png&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;449&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;13.47&quot; style=&quot;width: 13.1606%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qqy39/btsHnqp9OT9/Bhi1ZWmwnxCUgKTyC5FjA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQqy39%2FbtsHnqp9OT9%2FBhi1ZWmwnxCUgKTyC5FjA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d3vjN7/btsHmXBPlZZ/DjtckfIvgTecABuYjGdpv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d3vjN7/btsHmXBPlZZ/DjtckfIvgTecABuYjGdpv0/img.png&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;525&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.2824%; margin-right: 10px;&quot; data-widthpercent=&quot;44.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d3vjN7/btsHmXBPlZZ/DjtckfIvgTecABuYjGdpv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd3vjN7%2FbtsHmXBPlZZ%2FDjtckfIvgTecABuYjGdpv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;846&quot; height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drkPdX/btsHobsnhHD/XIC1yiIBIS9vcRkkQSXmX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drkPdX/btsHobsnhHD/XIC1yiIBIS9vcRkkQSXmX1/img.png&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;385&quot; data-is-animation=&quot;false&quot; style=&quot;width: 41.2313%;&quot; data-widthpercent=&quot;42.22&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drkPdX/btsHobsnhHD/XIC1yiIBIS9vcRkkQSXmX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrkPdX%2FbtsHobsnhHD%2FXIC1yiIBIS9vcRkkQSXmX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;정적행동 상세 분류 딥러닝 모델&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQNIDa/btsHnwRjeI9/jmiG75sDwWXLtxk0X20QS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQNIDa/btsHnwRjeI9/jmiG75sDwWXLtxk0X20QS0/img.png&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;449&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;13.46&quot; style=&quot;width: 13.1455%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQNIDa/btsHnwRjeI9/jmiG75sDwWXLtxk0X20QS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQNIDa%2FbtsHnwRjeI9%2FjmiG75sDwWXLtxk0X20QS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cumsI5/btsHpsz3gan/3v3dtQn8qtxt7vEMwlNCzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cumsI5/btsHpsz3gan/3v3dtQn8qtxt7vEMwlNCzk/img.png&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;525&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.2325%; margin-right: 10px;&quot; data-widthpercent=&quot;44.26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cumsI5/btsHpsz3gan/3v3dtQn8qtxt7vEMwlNCzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcumsI5%2FbtsHpsz3gan%2F3v3dtQn8qtxt7vEMwlNCzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;846&quot; height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbIiFd/btsHnHd6k9p/zSZw4YPRZZgYnmhKkfL85k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbIiFd/btsHnHd6k9p/zSZw4YPRZZgYnmhKkfL85k/img.png&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;382&quot; data-is-animation=&quot;false&quot; style=&quot;width: 41.2965%;&quot; data-widthpercent=&quot;42.28&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbIiFd/btsHnHd6k9p/zSZw4YPRZZgYnmhKkfL85k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbIiFd%2FbtsHnHd6k9p%2FzSZw4YPRZZgYnmhKkfL85k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;382&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;동적행동 상세 분류 딥러닝 모델&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;각 모델을 만들고 지금까지 과정을 한 개로 합치고 실제값을 넣어 테스트하여 heatmap으로 시각화까지 진행하였다. &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;모델의 정확도는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;0.9816가 나왔다.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1715602104181&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def har_predict_pipeline(new_data, binary_model, dynamic_model, static_model):
    
    # 평가 데이터셋에서 X와 y분리
    X = new_data.drop('Activity',axis=1)
    y_test = new_data['Activity']
    test_l_enc = LabelEncoder()
    y_test = test_l_enc.fit_transform(y_test)

    # 정적, 동적행동 분류
    dynamic_pred = binary_model.predict(X) &amp;gt; 0.5
    final_preds = np.zeros((X.shape[0],))
    
    # 동적 행동 데이터에 대한 인덱스
    # flatten으로 1차원으로 변경하고 True에 대한 인덱스 저장
    dynamic_indices = np.where(dynamic_pred.flatten() == True)[0]
    # 정적 행동 데이터에 대한 인덱스 
    # flatten으로 1차원으로 변경하고 False에 대한 인덱스 저장
    static_indices = np.where(dynamic_pred.flatten() == False)[0]
    
    # 동적행동 상세 분류
    if len(dynamic_indices) &amp;gt; 0:
        dynamic_activities_pred = dynamic_model.predict(X.iloc[dynamic_indices])
        dynamic_activities_pred = np.argmax(dynamic_activities_pred, axis=1)
        # 동적 행동 라벨이 정적 행동보다 3부터 시작하기 때문에 동적 행동에 대한 예측값에 3을 더하여 원래 라벨과 맞춰줌
        dynamic_activities_pred += 3  
        final_preds[dynamic_indices] = dynamic_activities_pred

    # 정적행동 상세 분류
    if len(static_indices) &amp;gt; 0:
        static_activities_pred = static_model.predict(X.iloc[static_indices])
        static_activities_pred = np.argmax(static_activities_pred, axis=1)
        final_preds[static_indices] = static_activities_pred
        
    
    # final_preds와 실제 라벨 y_test를 비교하여 정확도 계산
    accuracy = accuracy_score(y_test, final_preds)
    print(f'Accuracy: {accuracy:.4f}')
    
    # 혼동 행렬 계산
    cm = confusion_matrix(y_test, final_preds)
    class_names = test_l_enc.classes_
    
    # 혼동 행렬 시각화
    plt.figure(figsize=(10, 7))
    sns.heatmap(cm, annot=True, fmt=&quot;d&quot;, cmap='Blues', xticklabels=class_names, yticklabels=class_names)
    plt.xlabel('Predicted')
    plt.ylabel('True')
    plt.title('Confusion Matrix')
    plt.show()

    return final_preds&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;936&quot; data-origin-height=&quot;775&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8kEoK/btsHnd5xdps/u27KqI088qHZmWKIXIUYo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8kEoK/btsHnd5xdps/u27KqI088qHZmWKIXIUYo1/img.png&quot; data-alt=&quot;최종 모델 결과에 대한 heatmap&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8kEoK/btsHnd5xdps/u27KqI088qHZmWKIXIUYo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8kEoK%2FbtsHnd5xdps%2Fu27KqI088qHZmWKIXIUYo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;538&quot; height=&quot;445&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;775&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;최종 모델 결과에 대한 heatmap&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;모델을 여러 개 만들어 하나로 합치는 과정이 매우 어려웠다. 처음에 1차로 정적행동과 동적행동으로 0과 1로 구분한 다음, 0이면 정적행동 상세 분류 모델, 1이면 동적행동 상세 분류 모델을 진행하도록 설계하였는데 오류가 발생하였다. 이를 해결하기 위해 &lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;동적 행동에 대한 예측값에 3을 더하여 원래 라벨과 맞춰주는 작업으로 다시 설계&lt;/span&gt;&lt;/b&gt;하였다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: left;&quot;&gt;위와 같이 진행한 이유는 상세 분류 전에 변수들을 라벨링을 통해 숫자형으로 변환되었다. 이로 인해 정적행동은 0, 1, 2로 동적행동은 3, 4, 5로 변환되었다. 그리고 상세 분류를 할 때는정적행동, 동적행동 상세 분류 모델 모두 0, 1, 2로 예측값이 주어진다. 정적행동은 0, 1, 2의 예측값과 실제값이 동일하므로 비교가 가능하지만, &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;동적행동은 실제값은 3, 4, 5인데 예측값이 0, 1, 2이므로 비교할 수가 없다. 따라서 예측값에 +3을 해주어 비교를 위해 값을 일치시켜준 것&lt;/span&gt;&lt;/b&gt;이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: left;&quot;&gt;이 과정을 이해하고 작업하는데 어려움을 느꼈다. 같은 팀원의 도움을 받아 완벽히 이해할 수 있었다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: left;&quot;&gt;마지막 발표까지...!!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bElcCw/btsHnvkAlZW/qe60IoT8pRNhxvZIfpSdYk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bElcCw/btsHnvkAlZW/qe60IoT8pRNhxvZIfpSdYk/img.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240426_171944861.jpg&quot; style=&quot;width: 35.5814%; margin-right: 10px;&quot; data-widthpercent=&quot;36&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bElcCw/btsHnvkAlZW/qe60IoT8pRNhxvZIfpSdYk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbElcCw%2FbtsHnvkAlZW%2Fqe60IoT8pRNhxvZIfpSdYk%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;3024&quot; height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RmYUi/btsHnpSjEGh/wbDJz48VaWZEqDSptpBjM0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RmYUi/btsHnpSjEGh/wbDJz48VaWZEqDSptpBjM0/img.jpg&quot; data-origin-width=&quot;4032&quot; data-origin-height=&quot;3024&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_20240426_171944861_01.jpg&quot; style=&quot;width: 63.2558%;&quot; data-widthpercent=&quot;64&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RmYUi/btsHnpSjEGh/wbDJz48VaWZEqDSptpBjM0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRmYUi%2FbtsHnpSjEGh%2FwbDJz48VaWZEqDSptpBjM0%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;4032&quot; height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;모델을 잘하고 10은조의 발표&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이번 미니프로젝트를 통해 수많은 변수 중에서 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;중요한 변수에 선택과 집중을 해야할 필요성&lt;/span&gt;&lt;/b&gt;과 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;복잡한 문제해결과정을 단계적으로 진행하는 방법&lt;/span&gt;&lt;/b&gt;에 대해 알 수 있었다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;3&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3일차에는 1, 2일차에 했던 미션을 바탕으로 센서 데이터 기반 모션 분류를 만드는 것을 주제로 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Kaggle Competition&lt;/span&gt;&lt;/b&gt;을 진행하였다. 모델 성능 평가기준은 Categorization Accuracy로 하였고, 이를 기준으로 순위를 매겼다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2024-05-14 100417.png&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;902&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oyap8/btsHoJ3BYQk/0ILG6zw2TvbM4at71H9C7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oyap8/btsHoJ3BYQk/0ILG6zw2TvbM4at71H9C7k/img.png&quot; data-alt=&quot;kaggle&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oyap8/btsHoJ3BYQk/0ILG6zw2TvbM4at71H9C7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foyap8%2FbtsHoJ3BYQk%2F0ILG6zw2TvbM4at71H9C7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1895&quot; height=&quot;902&quot; data-filename=&quot;화면 캡처 2024-05-14 100417.png&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;902&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;kaggle&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; 3차 미니프로젝트를 마치고&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;kaggle이 처음이었던 나는 제출한 것에 의의를 두었다.. 상위 등수의 사람들의 발표를 들으면서 측정시간 변수이 정확도에 많은 영향을 미쳤다는 것을 새롭게 알게되었고 의외였다. 나는 행동을 측정하는 시간과 관련된 변수는 행동을 예측하는데 영향이 적을 거라고 예상하여 나는 제거하고 모델을 설계하였기 때문이다. 그 결과 모델의 정확도가 매우 낮았는데 그 이유가 시간 변수의 제외의 영향이라는 것을 상위 등수 사람들의 발표를 통해 알게 되었다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;처음 kaggle을 해봤는데 오전 10시부터 오후 4시까지 긴 시간이었지만 대회라는 생각에 집중이 잘 되어 짧게 느껴졌다. 개인 실습 외에 항상 팀원들과 함께 미션을 수행했었는데 이번 캐글을 통해 스스로 빠르게 모델을 만들기 위해 노력했다는 것에서 좋은 경험이었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rTKmC/btsHo2veUbU/HeexT9cA8FrFpxy8YNa8Ak/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rTKmC/btsHo2veUbU/HeexT9cA8FrFpxy8YNa8Ak/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rTKmC/btsHo2veUbU/HeexT9cA8FrFpxy8YNa8Ak/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrTKmC%2FbtsHo2veUbU%2FHeexT9cA8FrFpxy8YNa8Ak%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;462&quot; height=&quot;345&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;597&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  대외활동/KT 에이블스쿨</category>
      <category>KT에이블스쿨</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/122</guid>
      <comments>https://studybook.tistory.com/122#entry122comment</comments>
      <pubDate>Tue, 14 May 2024 10:28:56 +0900</pubDate>
    </item>
    <item>
      <title>[KT AIVLE School] KT에이블스쿨 5기 - 2차 미니프로젝트</title>
      <link>https://studybook.tistory.com/119</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt; ️ 일정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2차 미니프로젝트: 3/18 ~ 3/20&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3lCvW/btsG2ozlnDB/sy6T5TeW05AKHzjlHSHNOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3lCvW/btsG2ozlnDB/sy6T5TeW05AKHzjlHSHNOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3lCvW/btsG2ozlnDB/sy6T5TeW05AKHzjlHSHNOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3lCvW%2FbtsG2ozlnDB%2Fsy6T5TeW05AKHzjlHSHNOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;367&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❓&lt;/span&gt;KT에이블스쿨 미니프로젝트란? &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두 번째 2차 미니 프로젝트 주제는 서울 지역의 2022, 2023년도 미세먼지 데이터와 날씨 데이터를 활용하여 미세먼지 예측에 관련 있는 데이터 항목으로 데이터를 구성 및 전처리를 진행하여 1시간 후 미세먼지 농도를 예측하는 머신러닝 모델 구현하는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;도메인 이해&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;도메인 이해를 위해서 현재 환경부에서 어떻게 미세먼지 농도를 예보하고 등급을 나누고 있는지 살펴보았다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또한, 미세먼지 농도 예측이 필요한 이유를 미세먼지가 우리에게 미치는 영향, 예측을 통한 대비로 유용한 점 등을 새롭게 알게되었다.&amp;nbsp;제공된 데이터에서 증기압, 이슬점 온도 등 모르는 단어들의 뜻도 살펴보면서 어떤 기후 변수가 미세먼지 농도에 영향을 미치게 될지 예상해보기도 하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;데이터 분석 및 전처리&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;우선 미세먼지 데이터에서 지역, 주소 등 날씨와 관련 없는 변수는 삭제해주었다. 그리고 결측치를 확인했는데 결측치가 모든 변수가 80이상이었다. 이를 모두 0으로 처리하지 않고, 선형보간법을 이용하여 처리해주었다. 그리고 각 변수들의 기초통계량, 분포를 그래프와 표를 통해 확인하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;418&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXfDya/btsG49HDvfA/iXWasqK3bZobW7EJIU0gnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXfDya/btsG49HDvfA/iXWasqK3bZobW7EJIU0gnk/img.png&quot; data-alt=&quot;heatmap을 이용한 날씨데이터 변수 상관관계 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXfDya/btsG49HDvfA/iXWasqK3bZobW7EJIU0gnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXfDya%2FbtsG49HDvfA%2FiXWasqK3bZobW7EJIU0gnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;359&quot; height=&quot;362&quot; data-origin-width=&quot;418&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;heatmap을 이용한 날씨데이터 변수 상관관계 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그리고 미세먼지 데이터와 날씨데이터를 측정시간 기준으로 합쳐주고, 전처리를 이어서 진행하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;합쳐진 새로운 데이터프레임에서도 날씨 변수들 중에서 QC플래그 등 팀원들과 상의하여 미세먼지에 영향을 미치지 않을 것 같은 변수들과, 미세먼지 예측과 상관 없는 측정명 코드 등의 변수들을 삭제해주었다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;날씨 데이터에서도 결측치가 많은 변수들을 대부분 선형보간법으로 처리해주었고, 강수량 변수만 0으로 처리하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;강수량이 NaN이라는 것은 비가 안 왔다고 판단하여 0으로 처리해도 괜찮을 것 같다고 판단하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그리고 한 시간 후의 미세먼지 농도를 측정하기 위해 종속 변수로 새로운 열을 만들어 추가하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;종속변수를 만들 때는 1시간 후인 현재 시간인 t에서 1을 더해준 t+1일 때의 미세먼지 농도 값 만들어줘야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;따라서 기존에 있던 현재 시간인 t일 때의 미세먼지 농도 값에서 .shift(-1)을 사용해서 행을 하나씩 위로 당겨주었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그러면 맨 마지막 행은 1시간 후의 미세먼지 농도 값이 없으므로 NaN값이 발생한다. 이는 바로 위의 행의 값으로 대체해주었다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1714456499748&quot; class=&quot;python&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# 1시간 후의 미세먼지 농도 값(종속변수)를 만들기 위해 행을 위로 한 칸씩 올려준다.
df_23['PM10_1'] = df_23['PM10'].shift(-1)

# 맨 마지막 값은 이전 값으로 채워준다.
df_23['PM10_1'] = df_23['PM10_1'].fillna(method='ffill')&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;마지막으로 모델링을 위해 학습데이터, 검증데이터를 나누었다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1714456499749&quot; class=&quot;ini&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;train_x = df_22.drop(target, axis=1)
train_y = df_22.loc[:, target]
test_x = df_23.drop(target, axis=1)
test_y = df_23.loc[:, target]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모델링은 LinearRegression, RandomForest, GradientBoosting, KNN을 돌렸다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이때 모델링을 돌리면서 변수 중요도를 체크해봤는데 아무래도 1시간 전의 미세먼지 농도, 초미세먼지 농도가 영향을 많이 미치는 것을 확인하였다. 그래서 독립변수 x에서 이 둘을 제거하고 다시 돌리기로 하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다시 돌린 결과, 대부분 모델에서 1시간 전의 일산화탄소 농도, 시정(10m), 습도가 1시간 후의 미세먼지 농도를 예측하는데 중요한 변수로 나왔다. (시정(10m)이란? 10m앞에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;대기 중의 먼지, 스모그, 안개 등으로 인해 시야가 가려진 정도&lt;/span&gt;)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;717&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boe9hW/btsG14nvCOo/SlwmeKGFDZFcRuW6ZwfXA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boe9hW/btsG14nvCOo/SlwmeKGFDZFcRuW6ZwfXA1/img.png&quot; data-alt=&quot;랜덤포레스트의 변수중요도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boe9hW/btsG14nvCOo/SlwmeKGFDZFcRuW6ZwfXA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fboe9hW%2FbtsG14nvCOo%2FSlwmeKGFDZFcRuW6ZwfXA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;578&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;717&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;랜덤포레스트의 변수중요도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 각 모델을 MSE, R-squared Score로 평가하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모델 성능평가로 비교한 결과, 그라디언트 부스팅의 예측 성능이 가장 좋았고, KNN의 경우 다른 모델에 비해 이상치를 잘 예측하는 것을 확인하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 그라디언트 부스팅 성능평가: MSE 617.869 / R2 0.449&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- KNN 성능평가: MSE 761.989 / R2 0.318&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be90KC/btsG3yH91Js/h75Sdpl4K6I0OHBSohlgwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be90KC/btsG3yH91Js/h75Sdpl4K6I0OHBSohlgwk/img.png&quot; data-alt=&quot;그라디언트 부스팅의 예측값과 실제값 그래프&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be90KC/btsG3yH91Js/h75Sdpl4K6I0OHBSohlgwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe90KC%2FbtsG3yH91Js%2Fh75Sdpl4K6I0OHBSohlgwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;255&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그라디언트 부스팅의 예측값과 실제값 그래프&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brTbXP/btsG3pdDJXb/p1mJDS0nUEzaO7EM2UUHYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brTbXP/btsG3pdDJXb/p1mJDS0nUEzaO7EM2UUHYK/img.png&quot; data-alt=&quot;KNN의 예측값과 실제값 그래프&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brTbXP/btsG3pdDJXb/p1mJDS0nUEzaO7EM2UUHYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrTbXP%2FbtsG3pdDJXb%2Fp1mJDS0nUEzaO7EM2UUHYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;992&quot; height=&quot;255&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;KNN의 예측값과 실제값 그래프&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1일차에 미세먼지 농도 예측이라는 미션을 완료하고, 2일차에는 새로운 미션이 주어졌다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두 번째 미션은 장애인 콜택시를 이용하는 고객들의 불편사항을 개선하고 서비스의 품질을 높이기 위해 콜택시 운행이 종료된 시점에 다음 날의 기상 예보를 바탕으로 기상 상황에 따른 장애인 콜택시의 평균 대기 시간을 예측하고 예상 대기 시간을 제공할 수 있는 모델을 완성하는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2일차에는 모델링 전에 데이터 전처리 및 분석을 진행하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;도메인 이해&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;우선, 장애인 콜택시 운영 체계를 살펴보았다. 그리고 장애인 콜택시를 이용하면서 어떤 부분에서 가장 불편함을 느끼는지 살펴보았는데 너무 긴 대기시간이었다. 이어 시간대별 대기시간 현황을 확인하였고, 개선시급도 분석 결과 대기시간이 가장 시급하게 개선해야 할 항목으로 도출되었다는 것을 확인하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;도메인 이해를 통해 비장애인으로써 장애인의 입장에서 장애인 콜택시의 예상 대기 시간을 제공하는 서비스의 필요성을 이해할 수 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;데이터 분석 및 전처리&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;택시운영 데이터에서 접수건, 탑승건, 대기시간 등의 각 변수들을 주기별 분석을 위해 년도, 월, 주, 요일 날짜 변수를 추가했다. 그리고 모든 변수들을 주기별로 기초통계량을 확인하고, Histogram, Boxplot, Barplot 등으로 시각화하여 변수를 탐색하였다.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;490&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cX7oj1/btsG2VKD0fJ/RezOq0YRnKeXwMB5836lp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cX7oj1/btsG2VKD0fJ/RezOq0YRnKeXwMB5836lp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cX7oj1/btsG2VKD0fJ/RezOq0YRnKeXwMB5836lp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcX7oj1%2FbtsG2VKD0fJ%2FRezOq0YRnKeXwMB5836lp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;989&quot; height=&quot;490&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;490&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;989&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjlpjV/btsG5vcBtj9/F41IY8t6k7J4caTy0YNGF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjlpjV/btsG5vcBtj9/F41IY8t6k7J4caTy0YNGF1/img.png&quot; data-alt=&quot;일별, 요일 택시 대기시간 변수 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjlpjV/btsG5vcBtj9/F41IY8t6k7J4caTy0YNGF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjlpjV%2FbtsG5vcBtj9%2FF41IY8t6k7J4caTy0YNGF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;989&quot; height=&quot;590&quot; data-origin-width=&quot;989&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;일별, 요일 택시 대기시간 변수 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKHOx5/btsG5sfST27/lztm3jenlpMI0tcZwjD3kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKHOx5/btsG5sfST27/lztm3jenlpMI0tcZwjD3kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKHOx5/btsG5sfST27/lztm3jenlpMI0tcZwjD3kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKHOx5%2FbtsG5sfST27%2Flztm3jenlpMI0tcZwjD3kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;271&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;271&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;593&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vxzUl/btsG5F0mlu3/ZkhuYfEuuEvHEtzVGmkPyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vxzUl/btsG5F0mlu3/ZkhuYfEuuEvHEtzVGmkPyK/img.png&quot; data-alt=&quot;월별, 년도별 택시 접수건, 탑승건 변수 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vxzUl/btsG5F0mlu3/ZkhuYfEuuEvHEtzVGmkPyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvxzUl%2FbtsG5F0mlu3%2FZkhuYfEuuEvHEtzVGmkPyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;247&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;월별, 년도별 택시 접수건, 탑승건 변수 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;그 다음, 모델링을 진행하기 위해 새로운 데이터프레임을 만들었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;날씨 데이터와 택시 운행 정보 데이터를 합치고, 년, 월, 요일, 일 날짜 변수와 추가로 공휴일 변수, 일주일간 평균대기 시간, 탑승률을 새로운 변수로 추가하였다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;파이썬에 나라별 공휴일 정보를 제공해주는 라이브러리를 이용해 공휴일 변수를 추가하였다. 그리고 휴무일이지만 라이브러리에 없는 휴무일은 직접 추가하였다. 따라서 휴무일이면 1, 아니면 0으로 변수를 생성하였다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1714456499752&quot; class=&quot;properties&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# 휴무일 데이터 패키지 설치
!pip install workalendar

# 2023년 대한민국 휴무일 데이터프레임 생성
from workalendar.asia import SouthKorea
cal = SouthKorea()
pd.DataFrame(cal.holidays(2023))&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;일주일간 평균 대기 시간은 .rolling.mean()을 사용하여 추가해주었다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1714456499752&quot; class=&quot;jboss-cli&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;# 일주일간 평균대기시간 변수 추가
df['wt_ma7'] = df['waiting_time'].rolling( 7, min_periods = 1).mean()&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;탑승률은 탑승건을 접수건으로 나눠 추가해주었다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1714456499753&quot; class=&quot;prolog&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;df['board_ratio'] = df['boarding_c'] / df['receipt_c']&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;새롭게 만들어진 데이터프레임에서 날짜 변수와 새로 추가된 변수에 대한 앞서 변수 분석에서 진행한 방법과 같이 단변량 분석을 진행하였다. 각 변수에 대한 단변량 분석을 마치고, 독립변수와 종속변수(대기시간)을 비교 분석하였다. 비교 분석할 때는 숫자형 변수와 범주형 변수를 나눠 다양한 시각화 분석을 진행하였다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전체적으로 변수들 간의 관계는 heatmap을 통해 확인하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DzH1V/btsG3dK5nc7/N7kaekJkyUhKzQSkEiROl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DzH1V/btsG3dK5nc7/N7kaekJkyUhKzQSkEiROl0/img.png&quot; data-alt=&quot;변수들 간의 관계를 확인한 heatmap&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DzH1V/btsG3dK5nc7/N7kaekJkyUhKzQSkEiROl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDzH1V%2FbtsG3dK5nc7%2FN7kaekJkyUhKzQSkEiROl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;626&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;변수들 간의 관계를 확인한 heatmap&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최종적으로 t-test와 anova 통해 수치화도 진행하여 종속변수와 강한 상관관계를 가지는 변수, 약한 상관관계를 가지는 변수, 관계가 거의 없는 변수로 다음과 같이 정리하였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;강한 상관관계를 가지는 변수 - 탑승률, 휴무일, 요일, 일주일간 대기시간&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;약한 상관관계를 가지는 변수 - 접수건, 탑승건&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;관계가 거의 없는 변수 - 날씨 변수들&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;데이터 전처리 및 분석을 하고 시간이 조금 남아 더 추가할만한 변수가 있는지 팀원들과 논의 후 장애인콜택시와 관련된 자료를 같이 찾아보았다. 따라서 코로나 유무, 강한 비, 계절 등 더 추가하여 분석해보았다.&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;3&lt;/span&gt;일차&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;마지막 날 3일차에는 2일차에 이어서 장애인 콜택시 대기 시간을 예측하는 모델을 만들고, 성능평가를 진행하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델링&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모델링을 정말 다양하게 진행해보았다. 그리고 실제값과 예측값에 대한 그래프 시각화를 통해 하나씩 확인해보았다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;성능 평가는 MAE(Mean Absolute Error), MAPE(Mean Abolute Percentage Error), R2-Score를 통해 평가하였다.&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKTxsu/btsG1ifh6Tw/SEIl3Cqpwe9OsNr2M3wYqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKTxsu/btsG1ifh6Tw/SEIl3Cqpwe9OsNr2M3wYqk/img.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;372&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;33.66&quot; width=&quot;310&quot; height=&quot;288&quot; style=&quot;width: 32.8743%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKTxsu/btsG1ifh6Tw/SEIl3Cqpwe9OsNr2M3wYqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKTxsu%2FbtsG1ifh6Tw%2FSEIl3Cqpwe9OsNr2M3wYqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JRx6d/btsG4gtBdDH/4i7M3DegUnYxHMMMl3Xn50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JRx6d/btsG4gtBdDH/4i7M3DegUnYxHMMMl3Xn50/img.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;377&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;33.21&quot; style=&quot;width: 32.4383%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JRx6d/btsG4gtBdDH/4i7M3DegUnYxHMMMl3Xn50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJRx6d%2FbtsG4gtBdDH%2F4i7M3DegUnYxHMMMl3Xn50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;377&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yCrfo/btsG3loLQ9s/sK1L49k0azsOpQjlakMKDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yCrfo/btsG3loLQ9s/sK1L49k0azsOpQjlakMKDk/img.png&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;376&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.3619%;&quot; data-widthpercent=&quot;33.13&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yCrfo/btsG3loLQ9s/sK1L49k0azsOpQjlakMKDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyCrfo%2FbtsG3loLQ9s%2FsK1L49k0azsOpQjlakMKDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;사용한 모델들에 대한 성능평가지표&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1f2328; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모델링을 다 하고 인사이트를 분석한 결과는 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[논의사항]&lt;br /&gt;1)&amp;nbsp;차량운행&amp;nbsp;수가&amp;nbsp;어느&amp;nbsp;월에&amp;nbsp;가장&amp;nbsp;많은지&lt;br /&gt;&amp;nbsp;-&amp;nbsp;11월이&amp;nbsp;대채로&amp;nbsp;많으며&amp;nbsp;(가을에&amp;nbsp;분포되어있다.&amp;nbsp;공휴일이&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;차량운행&amp;nbsp;수가&amp;nbsp;많을&amp;nbsp;것이다.)&lt;br /&gt;&amp;nbsp;-&amp;nbsp;공휴일이&amp;nbsp;없는&amp;nbsp;월&amp;nbsp;:&amp;nbsp;7월,&amp;nbsp;11월(공휴일x&amp;nbsp;-&amp;nbsp;248/240건)&amp;nbsp;&lt;br /&gt;&lt;br /&gt;2)&amp;nbsp;하루에&amp;nbsp;처리해야할&amp;nbsp;접수건수(파생변수:&amp;nbsp;접수건/차량운행수)가&amp;nbsp;가을에&amp;nbsp;왜&amp;nbsp;낮은지&lt;br /&gt;&amp;nbsp;-&amp;nbsp;r&amp;nbsp;=&amp;nbsp;0.58&amp;nbsp;(한&amp;nbsp;차량당&amp;nbsp;처리해야할&amp;nbsp;건수가&amp;nbsp;많기&amp;nbsp;때문에,&amp;nbsp;평균대기시간이&amp;nbsp;길것이다.)&lt;br /&gt;&amp;nbsp;-&amp;nbsp;9월달이&amp;nbsp;가장&amp;nbsp;차량건수가&amp;nbsp;적고,&amp;nbsp;모든&amp;nbsp;해가&amp;nbsp;그렇진&amp;nbsp;않다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;3) 다른 교통수단에 따른 택시 접수율도 확인에 볼 필요도 있음. (4번)&lt;br /&gt;&amp;nbsp;-&amp;nbsp;공휴일에&amp;nbsp;타&amp;nbsp;대중교통&amp;nbsp;운행이&amp;nbsp;적어지기&amp;nbsp;떄문에&amp;nbsp;택시타는&amp;nbsp;비율이&amp;nbsp;많아질&amp;nbsp;것이다.&lt;br /&gt;&lt;br /&gt;4)&amp;nbsp;차량운행&amp;nbsp;값이&amp;nbsp;왜&amp;nbsp;매일마다&amp;nbsp;다른지&lt;br /&gt;&amp;nbsp;-&amp;nbsp;차가&amp;nbsp;밀리는지&amp;nbsp;안밀리는지&amp;nbsp;따라&amp;nbsp;달라질&amp;nbsp;수&amp;nbsp;있다.&amp;nbsp;(7km&amp;nbsp;반경이&amp;nbsp;넘어가면,&amp;nbsp;대기번호가&amp;nbsp;밀려&amp;nbsp;접수건수가&amp;nbsp;높아도&amp;nbsp;탑승건수가&amp;nbsp;적을것이다.)&lt;br /&gt;&lt;br /&gt;5)&amp;nbsp;한해의&amp;nbsp;차량&amp;nbsp;평균대기시간이&amp;nbsp;12월에&amp;nbsp;도달할수록&amp;nbsp;커지는지&lt;br /&gt;&amp;nbsp;-&amp;nbsp;운행횟수&amp;nbsp;대비&amp;nbsp;접수건이&amp;nbsp;많아져서&amp;nbsp;증가하는&amp;nbsp;양상을&amp;nbsp;보임.&lt;br /&gt;&lt;br /&gt;6) 평균 대기시간이 이상치에 해당하는 경우에 어떤 특징이 있는지&lt;br /&gt;&amp;nbsp;-&amp;nbsp;4)항목과&amp;nbsp;동일하게&amp;nbsp;접수건에&amp;nbsp;영향을&amp;nbsp;많이&amp;nbsp;받있을&amp;nbsp;것이다.&lt;br /&gt;&lt;br /&gt;[추가 인사이트]&lt;br /&gt;- 탑승률이 주말에 낮은 이유 : 병원, 복지관을 평일에 가는 것이 영향이 있을 수 있다고 판단함.&lt;br /&gt;-&amp;nbsp;2020년도&amp;nbsp;코로나로&amp;nbsp;인해&amp;nbsp;차량운행수,&amp;nbsp;접수건,&amp;nbsp;운행건이&amp;nbsp;줄다가&amp;nbsp;23년&amp;nbsp;이후로&amp;nbsp;증가함.&lt;br /&gt;- 장애인콜택시에 대한 운행 대수 증가 등의 정책 변경으로 2020년도 차량운행수 증가함.&lt;br /&gt;- 주말에는 이동거리가 늘어나서 비용이 올라감.&lt;br /&gt;- 가을의 평균대기시간이 길다. (공휴일이 가장 많고, 공휴일의 타 대중교통 운행이 적어지기 때문에 택시타는 비율이 많아질 것이다.)&lt;br /&gt;- 습도가 높을때, 택시 탑승률이 높다.&lt;br /&gt;- 강수량과의 택시운행데이터 통계분석 시 접수건과 가장 유의미하였다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; 2차 미니프로젝트를 마치고&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f2328;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;장애인 이동건 보장을 위해 자주 시위를 하는 뉴스기사를 자주 접하면서 장애인 대중교통 이용 개선에 대해 관심이 있었어서 그런지 프로젝트를 진행하는 동안 재미있었다. 그리고 데이터를 분석하고 모델링을 돌리는 것에서 마무리 하는 것이 아닌 결과가 나온 원인에 대해 찾아보면서 문제 해결에 대한 접근 방향을 더 명확하게 할 수 있었다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1f2328;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;혼자 수업을 듣고 개인 실습을 했을 때 너무 어려웠어서 미니 프로젝트가 걱정했었는데, 팀원들과 함께 프로젝트를 진행하면서 머신러닝에 대한 이해가 더 확실히 되었다는 것이 느껴졌던 2차 미니프로젝트였다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;682&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daMaGQ/btsG3LggCNO/OgXqaI9kUpHSfAJ2m2SrJk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daMaGQ/btsG3LggCNO/OgXqaI9kUpHSfAJ2m2SrJk/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daMaGQ/btsG3LggCNO/OgXqaI9kUpHSfAJ2m2SrJk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaMaGQ%2FbtsG3LggCNO%2FOgXqaI9kUpHSfAJ2m2SrJk%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;322&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;682&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  대외활동/KT 에이블스쿨</category>
      <category>KT에이블스쿨</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/119</guid>
      <comments>https://studybook.tistory.com/119#entry119comment</comments>
      <pubDate>Tue, 30 Apr 2024 14:56:15 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 백준 1991 - 트리 순회</title>
      <link>https://studybook.tistory.com/117</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5Pg7z/btsGI3WGszj/WAeHKADyGrGY1txpzyzyk0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5Pg7z/btsGI3WGszj/WAeHKADyGrGY1txpzyzyk0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5Pg7z/btsGI3WGszj/WAeHKADyGrGY1txpzyzyk0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5Pg7z%2FbtsGI3WGszj%2FWAeHKADyGrGY1txpzyzyk0%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;21&quot; height=&quot;27&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;실버 I&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1991&quot;&gt;https://www.acmicpc.net/problem/1991&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1713438711636&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;1991번: 트리 순회&quot; data-og-description=&quot;첫째 줄에는 이진 트리의 노드의 개수 N(1 &amp;le; N &amp;le; 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1991&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1991&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/tpGBx/hyVPVh04dL/CvgC2Utx1hJFIDGK0Kmzxk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1991&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1991&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tpGBx/hyVPVh04dL/CvgC2Utx1hJFIDGK0Kmzxk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1991번: 트리 순회&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에는 이진 트리의 노드의 개수 N(1 &amp;le; N &amp;le; 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;  문제&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOuXq9/btsGJNTk6Rc/FYYX1LnknyC8Dpuhlv0YC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOuXq9/btsGJNTk6Rc/FYYX1LnknyC8Dpuhlv0YC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOuXq9/btsGJNTk6Rc/FYYX1LnknyC8Dpuhlv0YC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOuXq9%2FbtsGJNTk6Rc%2FFYYX1LnknyC8Dpuhlv0YC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;265&quot; height=&quot;220&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 위와 같은 이진 트리가 입력되면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #555555;&quot;&gt;전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식)&lt;/li&gt;
&lt;li style=&quot;color: #555555;&quot;&gt;중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식)&lt;/li&gt;
&lt;li style=&quot;color: #555555;&quot;&gt;후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가 된다.&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;  입력&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;
&lt;div id=&quot;problem_input&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot;&gt;첫째 줄에는 이진 트리의 노드의 개수 N(1 &amp;le; N &amp;le; 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파벳 대문자로 매겨지며, 항상 A가 루트 노드가 된다. 자식 노드가 없는 경우에는 .으로 표현한다.&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;  출력&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;
&lt;div id=&quot;problem_output&quot;&gt;
&lt;p style=&quot;color: #555555;&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 전위 순회, 둘째 줄에 중위 순회, 셋째 줄에 후위 순회한 결과를 출력한다. 각 줄에 N개의 알파벳을 공백 없이 출력하면 된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;접근방식&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbsDoj/btsGLEt6IY5/21HvhXsu6v230QGWL7QtdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbsDoj/btsGLEt6IY5/21HvhXsu6v230QGWL7QtdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbsDoj/btsGLEt6IY5/21HvhXsu6v230QGWL7QtdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbsDoj%2FbtsGLEt6IY5%2F21HvhXsu6v230QGWL7QtdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;491&quot; height=&quot;288&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;트리의 특징&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;- 그래프의 한 종류로, '최소 연결 트리'라고도 불린다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;- 트리는 계층 모델이고, 사이클이 없다.(비순환 그래프)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;- 노드가 N개인 트리는 항상 N-1개의 간선(edge)를 가진다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;- 순회의 방법은 preorder(전위순회), inorder(중위순회), postorder(후위순회)가 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;(위 사진의 용어는 맨 아래 두 번째 블로그 참고!)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;SE-4995e606-7ea3-4ed8-a4c0-711d546c13b9&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;전위 순회&lt;/b&gt;는 [&lt;b&gt;루트 - 왼쪽 자식 - 오른쪽 자식]&amp;nbsp;&lt;/b&gt;순으로 순회&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-b810d27b-71eb-4560-87c1-d788c9b46013&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;중위 순회&lt;/b&gt;는 [&lt;b&gt;왼쪽 자식 - 루트 - 오른쪽 자식]&amp;nbsp;&lt;/b&gt;순으로 순회&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-44093a68-0560-4c92-aa1a-72f216058895&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;후위 순회&lt;/b&gt;는 [&lt;b&gt;왼쪽 자식 - 오른쪽 자식 - 루트]&amp;nbsp;&lt;/b&gt;순으로 순회&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;코드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1713438747588&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# https://www.acmicpc.net/problem/1991
# 트리 순회

N = int(input())
tree = {}
 
for n in range(N):
    root, left, right = input().split()
    # 트리 구조를 표현하는 방법
    tree[root] = [left, right]
 
# 전위순회
def preorder(root):
    if root != '.':
        print(root, end='')  # root
        preorder(tree[root][0])  # left
        preorder(tree[root][1])  # right
 
# 중위 순회 
def inorder(root):
    if root != '.':
        inorder(tree[root][0])  # left
        print(root, end='')  # root
        inorder(tree[root][1])  # right
 
# 후위 순회 
def postorder(root):
    if root != '.':
        postorder(tree[root][0])  # left
        postorder(tree[root][1])  # right
        print(root, end='')  # root
 
 
preorder('A')
print()
inorder('A')
print()
postorder('A')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #585f69; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;NOTE&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;참고한 블로그들&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://velog.io/@ohk9134/%EB%B0%B1%EC%A4%80-1991%EB%B2%88-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C-python-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%ED%98%84&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@ohk9134/%EB%B0%B1%EC%A4%80-1991%EB%B2%88-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C-python-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%ED%98%84&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1713438782306&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;백준 1991번 - 트리 순회 / python 트리 구현&quot; data-og-description=&quot;root를 key로 / left, right 자식들을 value로 할당한다.tree\[root] = left, right이렇게 tree의 인덱스는 KEY로, 저장되는 값은 VALUE로 사전에 저장할 수 있다.{&amp;quot;A&amp;quot; : (&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;)}  의미 : A가 부모인 노드&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@ohk9134/%EB%B0%B1%EC%A4%80-1991%EB%B2%88-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C-python-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%ED%98%84&quot; data-og-url=&quot;https://velog.io/@ohk9134/백준-1991번-트리-순회-python-트리-구현&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cj7UHP/hyVPOJ2if7/eJ136h577xKG3aw5Gb09CK/img.png?width=1253&amp;amp;height=551&amp;amp;face=0_0_1253_551,https://scrap.kakaocdn.net/dn/txCMu/hyVPJWgRIB/jynZsW7oM3fLW8tW0makaK/img.png?width=1253&amp;amp;height=551&amp;amp;face=0_0_1253_551,https://scrap.kakaocdn.net/dn/by6aLM/hyVPRtcYAe/4hTv2Ekmlfd0myKUiLgxAK/img.png?width=1253&amp;amp;height=551&amp;amp;face=0_0_1253_551&quot;&gt;&lt;a href=&quot;https://velog.io/@ohk9134/%EB%B0%B1%EC%A4%80-1991%EB%B2%88-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C-python-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%ED%98%84&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@ohk9134/%EB%B0%B1%EC%A4%80-1991%EB%B2%88-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C-python-%ED%8A%B8%EB%A6%AC-%EA%B5%AC%ED%98%84&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cj7UHP/hyVPOJ2if7/eJ136h577xKG3aw5Gb09CK/img.png?width=1253&amp;amp;height=551&amp;amp;face=0_0_1253_551,https://scrap.kakaocdn.net/dn/txCMu/hyVPJWgRIB/jynZsW7oM3fLW8tW0makaK/img.png?width=1253&amp;amp;height=551&amp;amp;face=0_0_1253_551,https://scrap.kakaocdn.net/dn/by6aLM/hyVPRtcYAe/4hTv2Ekmlfd0myKUiLgxAK/img.png?width=1253&amp;amp;height=551&amp;amp;face=0_0_1253_551');&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;백준 1991번 - 트리 순회 / python 트리 구현&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;root를 key로 / left, right 자식들을 value로 할당한다.tree\[root] = left, right이렇게 tree의 인덱스는 KEY로, 저장되는 값은 VALUE로 사전에 저장할 수 있다.{&quot;A&quot; : (&quot;B&quot;,&quot;C&quot;)}  의미 : A가 부모인 노드&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1713438913807&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;[자료구조] 트리(Tree)란 - Heee's Development Blog&quot; data-og-description=&quot;Step by step goes a long way.&quot; data-og-host=&quot;gmlwjd9405.github.io&quot; data-og-source-url=&quot;https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html&quot; data-og-url=&quot;http://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bCdupw/hyVPKgyb1F/lJTE8zesMrnfZbYmUwor9k/img.png?width=2097&amp;amp;height=1176&amp;amp;face=0_0_2097_1176,https://scrap.kakaocdn.net/dn/ckPE9O/hyVPW2mLdA/ueZr4fc6NnoptkO3449e01/img.png?width=2515&amp;amp;height=721&amp;amp;face=0_0_2515_721,https://scrap.kakaocdn.net/dn/bXNQ6i/hyVS1AWc4M/QJ8VN9mI5Je6GocwmVPamk/img.png?width=2515&amp;amp;height=712&amp;amp;face=0_0_2515_712&quot;&gt;&lt;a href=&quot;https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bCdupw/hyVPKgyb1F/lJTE8zesMrnfZbYmUwor9k/img.png?width=2097&amp;amp;height=1176&amp;amp;face=0_0_2097_1176,https://scrap.kakaocdn.net/dn/ckPE9O/hyVPW2mLdA/ueZr4fc6NnoptkO3449e01/img.png?width=2515&amp;amp;height=721&amp;amp;face=0_0_2515_721,https://scrap.kakaocdn.net/dn/bXNQ6i/hyVS1AWc4M/QJ8VN9mI5Je6GocwmVPamk/img.png?width=2515&amp;amp;height=712&amp;amp;face=0_0_2515_712');&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;[자료구조] 트리(Tree)란 - Heee's Development Blog&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Step by step goes a long way.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gmlwjd9405.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://withhamit.tistory.com/282&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://withhamit.tistory.com/282&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1713439508418&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;트리를 배우면 같이 배우게 되는 개념 중 하나죠. 트리 순회에 대해 알아보겠습니다. 트리 순회에는 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder) 가 있습니다. 텍스트 추가 [그림 1]은 &quot; data-og-host=&quot;withhamit.tistory.com&quot; data-og-source-url=&quot;https://withhamit.tistory.com/282&quot; data-og-url=&quot;https://withhamit.tistory.com/282&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dj0Mew/hyVPK1Wkme/j0MaS1fXO717mSBAQjyvH0/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/mmPOl/hyVS0WlfsJ/Wnn4qPY7Hr3DhXenMH04V1/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/GVToa/hyVPSFEYL4/NNhX7MZb63kVNAPxNJTLI0/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600&quot;&gt;&lt;a href=&quot;https://withhamit.tistory.com/282&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://withhamit.tistory.com/282&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dj0Mew/hyVPK1Wkme/j0MaS1fXO717mSBAQjyvH0/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/mmPOl/hyVS0WlfsJ/Wnn4qPY7Hr3DhXenMH04V1/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600,https://scrap.kakaocdn.net/dn/GVToa/hyVPSFEYL4/NNhX7MZb63kVNAPxNJTLI0/img.jpg?width=800&amp;amp;height=600&amp;amp;face=0_0_800_600');&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;트리를 배우면 같이 배우게 되는 개념 중 하나죠. 트리 순회에 대해 알아보겠습니다. 트리 순회에는 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder) 가 있습니다. 텍스트 추가 [그림 1]은&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;withhamit.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  Algorithm/Tree(트리)</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>트리</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/117</guid>
      <comments>https://studybook.tistory.com/117#entry117comment</comments>
      <pubDate>Thu, 18 Apr 2024 20:25:48 +0900</pubDate>
    </item>
    <item>
      <title>[KT AIVLE School] KT에이블스쿨 5기 - 1차 미니 프로젝트</title>
      <link>https://studybook.tistory.com/116</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt; ️ 일정&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1차 미니 프로젝트: 3/4 ~ 3/6&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1387&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WQweD/btsGnw5gKpg/BXC48rESa96n7g7rZiPNp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WQweD/btsGnw5gKpg/BXC48rESa96n7g7rZiPNp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WQweD/btsGnw5gKpg/BXC48rESa96n7g7rZiPNp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWQweD%2FbtsGnw5gKpg%2FBXC48rESa96n7g7rZiPNp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1387&quot; height=&quot;387&quot; data-origin-width=&quot;1387&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❓&lt;/span&gt; KT에이블스쿨 미니프로젝트란?&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;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt; 1일차&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;처음으로 시작하는 1일차 1차 미니 프로젝트 주제는&lt;span&gt;&amp;nbsp;&lt;/span&gt;서울시 생활 정보 기반 대중교통 수요 분석이다. 수요 분석을 통해&amp;nbsp;버스 노선 추가가 필요한 서울 시 내 자치구를 선정하는 것이 최종 미션이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1일차에는 개별 과제로 도메인을 이해하고, 데이터를 분석하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;도메인 이해&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;2013년부터 현재까지 서울 생활 이동이 얼마나 일어나고 있는지, 지금까지 노선 결정과 교통 분야 정책을 어떻게 설계해 왔는지를 살펴보았다. 또한, 서울시에서 가장 인구가 많은 구, 서울 소속 버스 노선과 야간 노선의 운행 시간 등을 알아보았다. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;도메인을 이해하는 시간을 통해 어떤 요소를 많이 반영하여 노선 추가가 필요한 자치구를 선정해야 할지 방향성을 잡을 수 있었고, 데이터를 분석할 때 어떤 부분을 집중적으로 분석해야 할지 파악할 수 있었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;데이터 분석&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;데이터는 구별 버스정류장 분석, 구별 이동인구 분석, 구별 등록 인구 분석, 구별 업종 분석을 진행하였다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;구별 버스정류장 분석에서 어느 구에 버스정류장과 노선이 많은지, &lt;/span&gt;각 구별 승차, 하자 평균 승객수 등을 파악할 수 있었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;구별 이동인구 분석에서는 각 자치구별 총 이동인구 수, 이동시간 등을 파악했고, 이를 통해 어느 구에서 제일 유출입이 많고 적은지 등을 확인할 수 있었다.&amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;구별 등록 인구 분석에서는 각 자치구별 성별 인구수와 버스정류장 개수 간의 관계를 파악하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;구별 업종 분석에서는 자치구별 &lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: left;&quot;&gt;등록 업종 상위 10개의 종사자 수를 확인하여 종사자 수가 많은 업종이 많이 위치하고 있는 자치구와 대중교통 수요가 관련이 있을까 고민해보았다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;일차&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;가설 수립&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;우리 조가 세운 가설을 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;가설1. &lt;span style=&quot;color: #000000;&quot;&gt;자치구별 면적이 클수록 정류장수가 많고 평균이동시간이 길 것이다.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가설2. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서울 자치구별 차량 등록수가 많을 수록 버스 이용량이 많을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가설3. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;음식점 종사자 수가 많을 수록, 유동인구가 많고 평균 이동 시간이 길 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;우리 조는 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;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;b&gt;데이터 분석&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;단변량 분석, 이변량 분석을 통해 가설에서 설정한 독립변수가 종속변수에 영향을 주는지 확인하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UATrr/btsGmAmEojN/jKw55joSh9dtaxoiwCi84k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UATrr/btsGmAmEojN/jKw55joSh9dtaxoiwCi84k/img.png&quot; width=&quot;622px;&quot; height=&quot;168px;&quot; data-origin-width=&quot;1298&quot; data-origin-height=&quot;400&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.0971%; margin-right: 10px;&quot; data-widthpercent=&quot;49.67&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UATrr/btsGmAmEojN/jKw55joSh9dtaxoiwCi84k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUATrr%2FbtsGmAmEojN%2FjKw55joSh9dtaxoiwCi84k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1298&quot; height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cExUv4/btsGnOxG2LW/dL8qOLWM8hDIfMcKBDPoO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cExUv4/btsGnOxG2LW/dL8qOLWM8hDIfMcKBDPoO0/img.png&quot; width=&quot;635px;&quot; height=&quot;178px;&quot; data-origin-width=&quot;1315&quot; data-origin-height=&quot;400&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.7401%;&quot; data-widthpercent=&quot;50.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cExUv4/btsGnOxG2LW/dL8qOLWM8hDIfMcKBDPoO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcExUv4%2FbtsGnOxG2LW%2FdL8qOLWM8hDIfMcKBDPoO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1315&quot; height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;자치구별 넓이에 따른 버스정류장 개수와&amp;nbsp; 정류장수에 따른 정차 빈도 그래프&lt;/figcaption&gt;
&lt;/figure&gt;
&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;피어슨 상관계수를 확인했을 때, 넓이과 정류장 수는 강한 양의 상관관계를 가지고, 넓이아 평균 이동시간은 약한 양의 상관관계를 가진다는 것을 확인하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1032&quot; data-origin-height=&quot;773&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rrEB3/btsGn6ERxK5/8ww5FOKJi1VgPR0GDekJQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rrEB3/btsGn6ERxK5/8ww5FOKJi1VgPR0GDekJQK/img.png&quot; data-alt=&quot;서울 자치구별 차량 등록 수에 따른 버스 출발 이동인구합&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rrEB3/btsGn6ERxK5/8ww5FOKJi1VgPR0GDekJQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrrEB3%2FbtsGn6ERxK5%2F8ww5FOKJi1VgPR0GDekJQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;330&quot; data-origin-width=&quot;1032&quot; data-origin-height=&quot;773&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;서울 자치구별 차량 등록 수에 따른 버스 출발 이동인구합&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가설2는 &lt;b&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서울 자치구별 차량 등록 수 데이터를 따로 찾아서 자치구별 개인 자동차만 파악하기 위해 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;영업용 차 등을 제외한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 승용차 등록 대수를 파악하였다. 그리고 버스 이용량을 버스 출발 이동 인구로 확인한 이유는 유출입 등 고려해야 할 요소가 많아 버스 이용이 출발되는 인구로 버스 이용량을 확인하기로 하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그래프와 피어슨 상관계수를 통해서 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서울 자치구별 차량 등록수와&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;버스 출발 인구합은 강한 양의 상관관계를 가진다는 것을 확인하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oEQM5/btsGmA1hwuB/wyUkdy1AKM6M94pozs61aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oEQM5/btsGmA1hwuB/wyUkdy1AKM6M94pozs61aK/img.png&quot; width=&quot;323px;&quot; height=&quot;249px;&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;434&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.7573%; margin-right: 10px;&quot; data-widthpercent=&quot;48.32&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oEQM5/btsGmA1hwuB/wyUkdy1AKM6M94pozs61aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoEQM5%2FbtsGmA1hwuB%2FwyUkdy1AKM6M94pozs61aK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuCqpy/btsGmzH1moE/qkqju68RGlYxnYWklRLW81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuCqpy/btsGmzH1moE/qkqju68RGlYxnYWklRLW81/img.png&quot; width=&quot;349px;&quot; height=&quot;249px;&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;418&quot; data-is-animation=&quot;false&quot; style=&quot;width: 51.0799%;&quot; data-widthpercent=&quot;51.68&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuCqpy/btsGmzH1moE/qkqju68RGlYxnYWklRLW81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuCqpy%2FbtsGmzH1moE%2Fqkqju68RGlYxnYWklRLW81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;음식점 종사자 수에 따른 유동인구 수와 평균 이동 시간&lt;/figcaption&gt;
&lt;/figure&gt;
&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;  &lt;b&gt;결론&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;우리 조는&lt;/span&gt; 위 가설을 종합하여 최종적으로 버스 노선 추가가 필요한 서울 시 내 자치구를 강서구, 중랑구, 도봉구, 영등포구를 선정하였다. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가설 1에서 동일한 자치구 내에서 분석했을 때, 면적이 넓지도 않고, 정류장 수도 많지 않은데 평균 이동시간이 많은 지역이 영등포구였고, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가설 2와 3의 분석을 도합했을 때, 음식점 종사자수가 많고, 대중교통 이용자에 비해 차량 등록 숫자가 높은 자치구가 강서, 중랑, 도봉구였기 때문이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;일차&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;❗&lt;/span&gt;&lt;/span&gt;&lt;b&gt;주제 및 미션&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1,2일차에 거쳐 첫 번째 미션을 완료하고, 3일차에는 새로운 주제와 미션이 주어졌다. 두 번째 주제와 미션은 날씨에 따른 따릉이 수요 분석이다. 어떠한 날씨요소가 따릉이 수요와 관련 있는지 데이터를 다각도로, 입체적으로 분석하여 인사이트를 도출하는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;도메인 이해&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;따릉이 수요가 증가함에 따라 늘어나는 적자를 개선하기 위해 따릉이 데이터를 활용한 인사이트 도출 및 정책 제안 사례를 살펴보았다. 이를 통해 따릉이 수요를 파악하기 위해 어떤 데이터 분석이 필요하고, 데이터 분석을 기반으로 어떤 식으로 인사이트를 도출해야 하는지 파악할 수 있었다. 또한, 주어진 날씨 데이터와 따릉이 수요 데이터를 분석하여 데이터를 이해하였다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt; 가설 수립&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;우리 조는 주어진 날씨 데이터 외에 추가로 불쾌지수, 체감온도, 환절기, 가시도에 따른 따릉이 대여량과의 관계를 조사하였다. 따라서 최종적으로 시간, 온도, 강수 여부 등과 따릉이 대여량 간에 관계가 있다/없다로 총 13개의 가설을 세웠다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;추가한 변수에 대해 가설을 수립한 이유는 날씨가 좋고 안 좋고를 잘 나타내는 지표가 불쾌지수, 체감온도라고 생각하여 불쾌지수와 체감온도를 따릉이 수요량을 연관지어 가설을 도출하였다. 또한, 환절기는 대체로 온도가 적당하여 사람들이 외출을 많이 하는 시기라고 유추하여 사람들의 외출양과 따릉이 수요량을 연관지을 수 있다고 생각하여 가설을 수립하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;데이터 분석&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;단변량 분석과 이변량 분석, 피어슨 상관계수를 통해 독립변수 x와 종속변수 y와의 관계를 살펴보았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1450&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pkndZ/btsGn7DN7A8/VKgOgB7DrflFImnQzTNdBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pkndZ/btsGn7DN7A8/VKgOgB7DrflFImnQzTNdBK/img.png&quot; data-alt=&quot;시간, 미세먼지 농도, 초미세먼지 농도, 오존농도, 온도, 풍속, 습도, 시정에 따른 따릉이 수요량&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pkndZ/btsGn7DN7A8/VKgOgB7DrflFImnQzTNdBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpkndZ%2FbtsGn7DN7A8%2FVKgOgB7DrflFImnQzTNdBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1450&quot; height=&quot;722&quot; data-origin-width=&quot;1450&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;시간, 미세먼지 농도, 초미세먼지 농도, 오존농도, 온도, 풍속, 습도, 시정에 따른 따릉이 수요량&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D81Uc/btsGlWRixhe/7TGmLjJMqfc33K9zG9sKZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D81Uc/btsGlWRixhe/7TGmLjJMqfc33K9zG9sKZ1/img.png&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;591&quot; data-is-animation=&quot;false&quot; style=&quot;width: 62.1516%; margin-right: 10px;&quot; data-widthpercent=&quot;62.88&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D81Uc/btsGlWRixhe/7TGmLjJMqfc33K9zG9sKZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD81Uc%2FbtsGlWRixhe%2F7TGmLjJMqfc33K9zG9sKZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1085&quot; height=&quot;591&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqOh4u/btsGoS0tIIm/E164vUc5vA4DdLyr3kQy5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqOh4u/btsGoS0tIIm/E164vUc5vA4DdLyr3kQy5K/img.png&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;538&quot; data-is-animation=&quot;false&quot; style=&quot;width: 36.6856%;&quot; data-widthpercent=&quot;37.12&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqOh4u/btsGoS0tIIm/E164vUc5vA4DdLyr3kQy5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqOh4u%2FbtsGoS0tIIm%2FE164vUc5vA4DdLyr3kQy5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;538&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;강우와 환절기에 따른 따릉이 수요량&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biatCv/btsGmgWiYi3/1fx0FQtWU4KGjOtr0lwbdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biatCv/btsGmgWiYi3/1fx0FQtWU4KGjOtr0lwbdK/img.png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;581&quot; data-is-animation=&quot;false&quot; style=&quot;width: 29.5891%; margin-right: 10px;&quot; data-widthpercent=&quot;30.29&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biatCv/btsGmgWiYi3/1fx0FQtWU4KGjOtr0lwbdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiatCv%2FbtsGmgWiYi3%2F1fx0FQtWU4KGjOtr0lwbdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk5rQJ/btsGlRbrZbF/pKcLEyZd4hCtg9pGYTOofk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk5rQJ/btsGlRbrZbF/pKcLEyZd4hCtg9pGYTOofk/img.png&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;518&quot; data-is-animation=&quot;false&quot; style=&quot;width: 38.7931%; margin-right: 10px;&quot; data-widthpercent=&quot;39.72&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk5rQJ/btsGlRbrZbF/pKcLEyZd4hCtg9pGYTOofk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk5rQJ%2FbtsGlRbrZbF%2FpKcLEyZd4hCtg9pGYTOofk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;699&quot; height=&quot;518&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUyL67/btsGlyb4UHu/RX3nkniY2xpYONfzZEXGr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUyL67/btsGlyb4UHu/RX3nkniY2xpYONfzZEXGr1/img.png&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;581&quot; data-is-animation=&quot;false&quot; style=&quot;width: 29.2922%;&quot; data-widthpercent=&quot;29.99&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUyL67/btsGlyb4UHu/RX3nkniY2xpYONfzZEXGr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUyL67%2FbtsGlyb4UHu%2FRX3nkniY2xpYONfzZEXGr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;불쾌지수, 가시도, 체감온도에 따른 따릉이 수요량&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 데이터 분석을 통해&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;시간이 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따릉이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대여량에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 중요한 영향을 미치고, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특히 낮 시간대에 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대여량이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 증가하는 경향이 있어&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이용자들의 활동 패턴과 밀접한 관련이 있음을 보여주고 있는 것을 알 수 있었다. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따라서&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대여 서비스 운영 시 시간대별 수요를 고려한 자전거 배치 및 관리 전략이 필요하다고 결론을 내렸다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;또한, 오존 수치&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;온도&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;풍속&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가시성과 같이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;좋은 날씨 조건이 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따릉이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 이용 증가하고 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;반면&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;습도가 높을 때는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대여량이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 감소하는 경향을 보이는 것을 확인하였다. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이를 통해 날씨 예보와 환경 상태를 모니터링하여 이용자에게 적절한 시간에 대여를 권장하는 마케팅 전략을 수립해야 한다고 결론을 내렸다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;강우 여부는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이용자의 대여 결정에 중요한 요소임을 나타내는 것을 확인하였고,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 비가 오는 날 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대여 수요가 많이 변동할 수 있으므로&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이에 대비한 운영 전략이 필요하다고 결론 내렸다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt; 1차 미니프로젝트를 마치고&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;데이터를 파이썬으로 처리하고, 분석하는 것이 처음이라서 속도도 많이 느렸고, 팀에 잘하는 사람들이 너무 많아서 도움만 받았던 첫 미니 프로젝트였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;데이터 분석 뿐만 아니라 도메인을 이해하기 위해 관련된 논문과 기사 자료를 많이 찾아보기도 하였다. 이를 통해 도&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;메인 이해에 대한 중요성을 느낄 수 있었다.&lt;span&gt; 도메인 이해를 통해 어떤 방향으로 인사이트를 도출해 내야 하는지 방향성을 잘 잡을 수 있었기 때문이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;span&gt;다음 프로젝트에는 팀 프로젝트에 더 많이 기여할 수 있도록 열심히 해야겠다는 생각도 들었다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cheZUW/btsGnECa1Mi/0rnJ36Th0qw7VH0FWyUiM0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cheZUW/btsGnECa1Mi/0rnJ36Th0qw7VH0FWyUiM0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cheZUW/btsGnECa1Mi/0rnJ36Th0qw7VH0FWyUiM0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcheZUW%2FbtsGnECa1Mi%2F0rnJ36Th0qw7VH0FWyUiM0%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;400&quot; height=&quot;300&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>  대외활동/KT 에이블스쿨</category>
      <category>에이블스쿨</category>
      <author>dlalwl_jpg</author>
      <guid isPermaLink="true">https://studybook.tistory.com/116</guid>
      <comments>https://studybook.tistory.com/116#entry116comment</comments>
      <pubDate>Thu, 4 Apr 2024 22:32:57 +0900</pubDate>
    </item>
  </channel>
</rss>