<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Colin Kim's  development story</title>
    <link>https://everose.tistory.com/</link>
    <description>웹, 응용프로그램, 빅데이터</description>
    <language>ko</language>
    <pubDate>Mon, 27 Jul 2026 06:57:02 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Colin Kim</managingEditor>
    <image>
      <title>Colin Kim's  development story</title>
      <url>https://tistory1.daumcdn.net/tistory/5471921/attach/0c74e51ef89a41a2b5194682b53be3b4</url>
      <link>https://everose.tistory.com</link>
    </image>
    <item>
      <title>[Supabase] 타임존 한국시간으로 변경</title>
      <link>https://everose.tistory.com/entry/Supabase-%ED%83%80%EC%9E%84%EC%A1%B4-%ED%95%9C%EA%B5%AD%EC%8B%9C%EA%B0%84%EC%9C%BC%EB%A1%9C-%EB%B3%80%EA%B2%BD</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;국제시간에서 한국시간으로 타임존 변경&lt;/h3&gt;
&lt;pre id=&quot;code_1780703516364&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;alter database postgres
set timezone to 'Asia/Seoul'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;모든 타임존 확인하는 쿼리&lt;/h3&gt;
&lt;pre id=&quot;code_1780703572952&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select *
from pg_timezone_names()&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Database/Supabase</category>
      <category>supabase</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/16</guid>
      <comments>https://everose.tistory.com/entry/Supabase-%ED%83%80%EC%9E%84%EC%A1%B4-%ED%95%9C%EA%B5%AD%EC%8B%9C%EA%B0%84%EC%9C%BC%EB%A1%9C-%EB%B3%80%EA%B2%BD#entry16comment</comments>
      <pubDate>Sat, 6 Jun 2026 08:53:13 +0900</pubDate>
    </item>
    <item>
      <title>[MYSQL] STRAIGHT_JOIN 으로 튜닝하기</title>
      <link>https://everose.tistory.com/entry/MYSQL-STRAIGHTJOIN-%EC%9C%BC%EB%A1%9C-%ED%8A%9C%EB%8B%9D%ED%95%98%EA%B8%B0</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;STRAIGHT_JOIN ?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블 JOIN을 강제하기 위해 사용하는 방법으로 MYSQL의 옵티마이저가 선택하는 JOIN 순서가 비효율적으로 선택될수 있어, 쿼리 성능이 제대로 되지 않을때, STRAIGH_JOIN을 사용하여, 테이블의 JOIN 순서를 강제하여, 쿼리의 성능을 개선할수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;STRAIGHT_JOIN 사용이유&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;JOIN 순서 강제 : 때로는 옵티마이저가 선택한 순서가 비효율적이므로, STRAIGHT_JOIN을 사용하여 특정 순서로 JOIN순서를 강제할수 있다.&lt;/li&gt;
&lt;li&gt;성능 최적화 : 데이터 분포나 인덱스 사용 등의 이유로 특정 순서로 조인하는 것이 성능에 더 유리할 때 사용.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;구문&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1721534185159&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT *
FROM table1
STRAIGHT_JOIN table2 ON table1.id = table2.id&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구문에서 table1를 먼저 읽고, table2를 JOIN 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;옵티마이저 비교&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;일반 JOIN&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1721534393979&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT *
FROM table1
JOIN table2 ON table1.id = table2.id&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;예를 들어, table1 테이블이 매우 크고 table2 테이블이 작을 때, 옵티마이저는  table2를 먼저 읽고 table1를 나중에 JOIN하는 것을 선택할 수 있습니다. 이는 때로 비효율적일 수 있습니다.&lt;/p&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;STRAIGHT_JOIN&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1721534539946&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT *
FROM table1
STRAIGHT_JOIN table2 ON table1.id = table2.id&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우, table1 테이블이 항상 먼저 읽히고 table2 테이블이 나중에 조인됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;주의 사항&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 신중한 사용 : 옵티마이저의 결정을 무시하고 조인 순서를 강제할시 예상치 못한 성능 저하가 발생.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 분석 필요 : STRAIGHT_JOIN를 사용할 때는 실행 계획을 분석하여 강제된 순서가 정말로 성능에 도움이 되는지 확인 필요.&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;실행 계획 확인 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;EXPLAIN&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1721534792433&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EXPLAIN SELECT * 
FROM table1 
STRAIGHT_JOIN table2 ON table1.id = table2.id&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어로 MYSQL의 실행계획을 확인할수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STRAIGHT_JOIN는 특정 상황에서 성능을 최적화하기 위해 조인 순서를 강제할 수 있는 유용한 도구이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 이를 사용할 때는 옵티마이저의 기본 결정을 신중하게 분석하고 필요할 때만 사용하는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;참고사이트&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-straight-join.php#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-straight-join.php#google_vignette&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1721535080073&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;tutorial&quot; data-og-title=&quot;&amp;gt;MySQL STRAIGHT_JOIN  - w3resource&quot; data-og-description=&quot;MySQL STRAIGHT_JOIN scans and combines matching rows (if specified any condition) which are stored in associated tables otherwise it behaves like an INNER JOIN or JOIN. This tutorial explains STRAIGHT_JOIN and uses in MySQL.&quot; data-og-host=&quot;www.w3resource.com&quot; data-og-source-url=&quot;https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-straight-join.php#google_vignette&quot; data-og-url=&quot;https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-straight-join.php&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dkKeD4/hyWCIgRMvS/2LywMBzzdoeJuSrvEr0ExK/img.gif?width=150&amp;amp;height=150&amp;amp;face=0_0_150_150&quot;&gt;&lt;a href=&quot;https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-straight-join.php#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.w3resource.com/mysql/advance-query-in-mysql/mysql-straight-join.php#google_vignette&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dkKeD4/hyWCIgRMvS/2LywMBzzdoeJuSrvEr0ExK/img.gif?width=150&amp;amp;height=150&amp;amp;face=0_0_150_150');&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;&amp;gt;MySQL STRAIGHT_JOIN - w3resource&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MySQL STRAIGHT_JOIN scans and combines matching rows (if specified any condition) which are stored in associated tables otherwise it behaves like an INNER JOIN or JOIN. This tutorial explains STRAIGHT_JOIN and uses in MySQL.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.w3resource.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>Database/Mysql</category>
      <category>DATABASE</category>
      <category>DB</category>
      <category>Join</category>
      <category>MariaDB</category>
      <category>MySQL</category>
      <category>Optimize</category>
      <category>optimizer</category>
      <category>query</category>
      <category>straight_join</category>
      <category>Turning</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/15</guid>
      <comments>https://everose.tistory.com/entry/MYSQL-STRAIGHTJOIN-%EC%9C%BC%EB%A1%9C-%ED%8A%9C%EB%8B%9D%ED%95%98%EA%B8%B0#entry15comment</comments>
      <pubDate>Sun, 21 Jul 2024 13:15:59 +0900</pubDate>
    </item>
    <item>
      <title>[React native] JSX 알아보기</title>
      <link>https://everose.tistory.com/entry/React-native-JSX-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;JSX ?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JSX는 JavsScrpt XML를 줄인말로 JavsScript와 XML의 구문을 합친 코드를 말해요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JSX 구문을 바벨 플로그인을 통해 여러 개의 React.createElement 함수를 호출하여 평범한 자바스크립트로 변환해요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀더 쉽게 알아보기 위해 예제로 알아봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1662285018106&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
	return (
    	&amp;lt;SafeAreaView&amp;gt;
			&amp;lt;div&amp;gt;Hello, React native!&amp;lt;/div&amp;gt;
    	&amp;lt;/SafeAreaView&amp;gt;
	)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 html태그를 사용하는 방법과 아래와 같이 JSX를 사용하는 방법이 있어요&lt;/p&gt;
&lt;pre id=&quot;code_1662285153174&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
	return (
    	&amp;lt;SafeAreaView&amp;gt;
			React.createElement(&quot;div&quot;, null, &quot;Hello, React native!&quot;);
    	&amp;lt;/SafeAreaView&amp;gt;
	)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;JSX를 사용할때 주의해야할점은 반드시 부모요소가 있어야 해요.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 조금더 예제를 볼까요&lt;/p&gt;
&lt;pre id=&quot;code_1662286174026&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
  const isLoading = true
  if (isLoading) {
    return (
      &amp;lt;SafeAreaView&amp;gt;
        &amp;lt;Text&amp;gt;Loading...&amp;lt;/Text&amp;gt;
      &amp;lt;/SafeAreaView&amp;gt;
    )
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예제를 보면 if조건문이 return 밖에 선언 되어있는것을 볼수 있는데 return 안에는 if문을 사용할수가 없기 때문이에요.&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;421&quot; data-origin-height=&quot;897&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7zjh9/btrLlF3OHyL/gSot8R4KfR4hmi9RNZRqxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7zjh9/btrLlF3OHyL/gSot8R4KfR4hmi9RNZRqxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7zjh9/btrLlF3OHyL/gSot8R4KfR4hmi9RNZRqxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7zjh9%2FbtrLlF3OHyL%2FgSot8R4KfR4hmi9RNZRqxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;469&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;897&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속해서 예제를 보도록 하겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662286440186&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
  const isLoading = false
  return (
    &amp;lt;SafeAreaView&amp;gt;
      {isLoading &amp;amp;&amp;amp; &amp;lt;Text&amp;gt;Loading...&amp;lt;/Text&amp;gt;}
      {!isLoading &amp;amp;&amp;amp; &amp;lt;Text&amp;gt;Hello JSX world!&amp;lt;/Text&amp;gt;}
    &amp;lt;/SafeAreaView&amp;gt;
  )
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 소스를 보면 조건을 {}안에 넣어 선언해줄수 있어요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;899&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5HKoz/btrLhPmujUT/f03lqSTNIDYQNRfJZIGuw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5HKoz/btrLhPmujUT/f03lqSTNIDYQNRfJZIGuw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5HKoz/btrLhPmujUT/f03lqSTNIDYQNRfJZIGuw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5HKoz%2FbtrLhPmujUT%2Ff03lqSTNIDYQNRfJZIGuw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;242&quot; height=&quot;518&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;899&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1662286537019&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
  const isLoading = true
  const children = isLoading ? (
    &amp;lt;Text&amp;gt;Loading...&amp;lt;/Text&amp;gt;
  ) : (
    &amp;lt;Text&amp;gt;Hello JSX world!&amp;lt;/Text&amp;gt;
  )
  return &amp;lt;SafeAreaView&amp;gt;{children}&amp;lt;/SafeAreaView&amp;gt;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;children에 다항조건문을 사용하여, 변수에 담아두고 return 안에 변수명을 써서 결과를 가져올수도 있구요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;897&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7zjh9/btrLlF3OHyL/gSot8R4KfR4hmi9RNZRqxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7zjh9/btrLlF3OHyL/gSot8R4KfR4hmi9RNZRqxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7zjh9/btrLlF3OHyL/gSot8R4KfR4hmi9RNZRqxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7zjh9%2FbtrLlF3OHyL%2FgSot8R4KfR4hmi9RNZRqxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;469&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;897&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_1662286618723&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
  const children = [
    &amp;lt;Text&amp;gt;Hello world!&amp;lt;/Text&amp;gt;,
    &amp;lt;Text&amp;gt;Hello world!&amp;lt;/Text&amp;gt;,
    &amp;lt;Text&amp;gt;Hello world!&amp;lt;/Text&amp;gt;
  ]
  return &amp;lt;SafeAreaView&amp;gt;{children}&amp;lt;/SafeAreaView&amp;gt;
}&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;422&quot; data-origin-height=&quot;895&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw4qbB/btrLhOVmG4I/J0ywcS7kSLFDuYOLbpTTk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw4qbB/btrLhOVmG4I/J0ywcS7kSLFDuYOLbpTTk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw4qbB/btrLhOVmG4I/J0ywcS7kSLFDuYOLbpTTk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw4qbB%2FbtrLhOVmG4I%2FJ0ywcS7kSLFDuYOLbpTTk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;211&quot; height=&quot;448&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;895&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속해서 다음 예제를 볼까요. 이번 예제는 children에 100개의 요소를 생성하여 결과를 보여주는 예제입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662286748738&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react'
import { SafeAreaView, Text } from 'react-native'

export default function App() {
  const children = new Array(100)
    .fill(null)
    .map((notUsed, index) =&amp;gt; &amp;lt;Text&amp;gt;Hello world! {index}&amp;lt;/Text&amp;gt;)
  return &amp;lt;SafeAreaView&amp;gt;{children}&amp;lt;/SafeAreaView&amp;gt;
}&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;420&quot; data-origin-height=&quot;894&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d0BeEJ/btrLlFbFOTs/kkOevgqzDy5hNpr30bOhdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d0BeEJ/btrLlFbFOTs/kkOevgqzDy5hNpr30bOhdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d0BeEJ/btrLlFbFOTs/kkOevgqzDy5hNpr30bOhdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd0BeEJ%2FbtrLlFbFOTs%2FkkOevgqzDy5hNpr30bOhdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;215&quot; height=&quot;458&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;894&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 예제들을 봤는데요, 이런식으로 여러방법으로 표현을 해줄수 있고, 사용법도 제법 간단한 편에 속하네요. 앞으로도 계속 배워 나가며 글을 작성해 나가겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>리액트/React native</category>
      <category>IOS</category>
      <category>React</category>
      <category>React Native</category>
      <category>리액트</category>
      <category>리액트 네이티브</category>
      <category>안드로이드</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/14</guid>
      <comments>https://everose.tistory.com/entry/React-native-JSX-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0#entry14comment</comments>
      <pubDate>Sun, 4 Sep 2022 19:22:00 +0900</pubDate>
    </item>
    <item>
      <title>[React native] 리액트 네이티브 개발환경셋팅 간단하게 해보기</title>
      <link>https://everose.tistory.com/entry/React-native-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD%EC%85%8B%ED%8C%85-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%ED%95%B4%EB%B3%B4%EA%B8%B0</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;리액트 네이티브를 개발하기 위한 개발환경셋팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리액트 네이티브를 개발하기 위해서는 필요한 설치 프로그램들이 몇가지 존재합니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Scoop 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Scoop을 왜 사용하는가!? 이유는 간단합니다. 개발 환경을 세팅하기 위해서는 각각 필요한 프로그램들이 있는데요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Scoop을 설치하지 않고 개발을 세팅할 경우 각각의 프로그램들을 웹사이트에 접속하여 직접 내려 받아야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한! 설치한 프로그램들이 업데이트 되었을시 다시 웹사이트 접속하여 내려받아야합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 과정들을 한번에 해결할수 있는것이 Scoop이에요. Scoop으로 설치한 프로그램들은 scoop update * 명령어로 한꺼번에 최신 버전으로 업데이트를 할수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows PowerShell을 관리자모드로 실행해주세요.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662217560255&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Set-ExecutionPolicy RemoteSigned -scope CurrentUser&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력하여 모두 예(A) 권한을 부여하고,&lt;/p&gt;
&lt;pre id=&quot;code_1662217590448&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$env:SCOOP='C:\Scoop'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C드라이브 밑에 Scoop폴더를 설정해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우에서 시스템 환경 변수 편집 &amp;gt; 환경변수 &amp;gt; 사용자 변수 &amp;gt; 새로만들기를 클릭하여 아래와 같이 입력해 줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IEmTv/btrLhJlYmBB/A78ETpCQ0K2KW1ZrjftCz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IEmTv/btrLhJlYmBB/A78ETpCQ0K2KW1ZrjftCz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IEmTv/btrLhJlYmBB/A78ETpCQ0K2KW1ZrjftCz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIEmTv%2FbtrLhJlYmBB%2FA78ETpCQ0K2KW1ZrjftCz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;648&quot; height=&quot;161&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1662217902616&quot; class=&quot;ceylon&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;iex (new-object net.webclient).downloadstring('https://get.scoop.sh')​&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 위에 코드가 오류가 발생할시, 아래 코드로 실행해주세요.&lt;/p&gt;
&lt;pre id=&quot;code_1662218097932&quot; class=&quot;stylus&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin [-OtherParameters ...]
iex &quot;&amp;amp; {$(irm get.scoop.sh)} -RunAsAdmin&quot;​&lt;/code&gt;&lt;/pre&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 첫번째 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. node.js 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4a5568;&quot;&gt;JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램으로 nodejs를 사용하여 서버를 구성할수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4a5568;&quot;&gt;nodejs-lts를 설치하는 이유는 최신버전이 아닌, 검증된 버전을 가져오는거에요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1662218216205&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scoop install nodejs-lts
node -v&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. GIT &amp;amp; 자바8 JDK 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GIT은 소스를 관리하기 위한 프로그램이고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바8 JDK는 안드로이드 앱을 구동하기 위해 필요한 프로그램이에요.&lt;/p&gt;
&lt;pre id=&quot;code_1662218346592&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scoop install git
scoop bucket add java
java -version&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 비주얼 스튜디오 코드 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비주얼 스튜디오 코드는 소스 편집기로 리액트 네이티브와 같은 Javascript나 기타 소스를 편집하기에 좋은 프로그램이에요.&lt;/p&gt;
&lt;pre id=&quot;code_1662218484964&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scoop bucket add extras
scoop install vscode&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5. 안드로이드 스튜디오 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리액트 네이티브로 만든 소스를 안드로이드 앱으로 만들려면 안드로이드 스튜디오가 필요해요.&lt;/p&gt;
&lt;pre id=&quot;code_1662218598873&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scoop install android-studio android-sdk&lt;/code&gt;&lt;/pre&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 두번째 고정형 300X250 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;6. 비주얼 스튜디오 코드 환경 설정하기&lt;/b&gt;&lt;/h4&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;302&quot; data-origin-height=&quot;252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oAwDe/btrLh8lo0be/jgLRp6XrXkDIrJ7Iesr5Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oAwDe/btrLh8lo0be/jgLRp6XrXkDIrJ7Iesr5Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oAwDe/btrLh8lo0be/jgLRp6XrXkDIrJ7Iesr5Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoAwDe%2FbtrLh8lo0be%2FjgLRp6XrXkDIrJ7Iesr5Ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;302&quot; height=&quot;252&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;252&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;korean이라고 입력하고 캡쳐와 동일한 항목을 설치해주세요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로는 javascript를 웹이 아닌 콘솔에서 실행가능하게 하는 typescript를 설치 할거에요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비주얼 스튜디오 코드에서 터미널 &amp;gt; 새 터미널을 클릭하고 아래와 같은 코드를 입력해주세요.&lt;/p&gt;
&lt;pre id=&quot;code_1662219017614&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm i -g typescript ts-node&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맥이나 리눅스의 기본 명령 프로그램인 touch를&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우일 경우 파일 생성하는 유틸리티인 touch를 사용을 못하기 때문에, touch를 사용할수 있게 설치를 해줍시다.&lt;/p&gt;
&lt;pre id=&quot;code_1662219149413&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scoop install touch&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료 되면 src라는 폴더를 생성후 index.ts라는 파일을 생성해줄게요.&lt;/p&gt;
&lt;pre id=&quot;code_1662219240265&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mkdir src
touch src/index.ts
code src/index.ts&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;code src/index.ts를 입력하면 비주얼 스튜디오 코드에서 파일이 열립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index.ts파일에 내용을 입력해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662219363147&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;console.log(&quot;Hello world!&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 터미널에서 아래 코드를 입력해서 터미널에서 typescript로 javascript소스가 실행되는걸 확인해보세요.&lt;/p&gt;
&lt;pre id=&quot;code_1662219388925&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ts-node src/index.ts&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 비주얼 스튜디오 코드에서 소스를 입력시! 큰 따옴표(&quot;) &amp;gt; 작은 따옴표(')로 세미콜론(;)을 삭제하는 것을 해볼게요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzYx0E/btrLhYb8Gwi/OibQychH7ALWZvCn44FMTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzYx0E/btrLhYb8Gwi/OibQychH7ALWZvCn44FMTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzYx0E/btrLhYb8Gwi/OibQychH7ALWZvCn44FMTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzYx0E%2FbtrLhYb8Gwi%2FOibQychH7ALWZvCn44FMTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;299&quot; height=&quot;259&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 설치를 해주시고, 비주얼 스튜디오 코드의 파일 &amp;gt; 기본 설정 &amp;gt; 설정을 눌러줍니다. 그리고 오른쪽 상단에 아래와같은 아이콘을 눌러주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;108&quot; data-origin-height=&quot;40&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vg7I0/btrLhs5JwZp/1Ikw4FvGegszj37Rrnz5w1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vg7I0/btrLhs5JwZp/1Ikw4FvGegszj37Rrnz5w1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vg7I0/btrLhs5JwZp/1Ikw4FvGegszj37Rrnz5w1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVg7I0%2FbtrLhs5JwZp%2F1Ikw4FvGegszj37Rrnz5w1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;108&quot; height=&quot;40&quot; data-origin-width=&quot;108&quot; data-origin-height=&quot;40&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 아래와 같이 입력하고, 저장해주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boSQg7/btrLhhpJO1z/5v2zRX1uZ4U5UvXaQam1vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boSQg7/btrLhhpJO1z/5v2zRX1uZ4U5UvXaQam1vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boSQg7/btrLhhpJO1z/5v2zRX1uZ4U5UvXaQam1vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboSQg7%2FbtrLhhpJO1z%2F5v2zRX1uZ4U5UvXaQam1vk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;181&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;181&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_1662219881257&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;touch src/prettierrc.js&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1662219937045&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;module.exports = {
    singleQuote: true,
    semi: false
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자! 이제부터 src에 있는 모든 파일들은 큰 따옴표(&quot;) &amp;gt; 작은 따옴표(')로 세미콜론(;)을 삭제될꺼에요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번시간에는 리액트 네이티브에 필요한 각종 프로그램과 설정을 해보았습니다. 다음시간에는 리액트 네이티브 프로젝트를 생성하고, 실제로 안드로이드화면에 띄워보겠습니다.&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>리액트/React native</category>
      <category>jdk</category>
      <category>nodeJS</category>
      <category>Visual Studio Code</category>
      <category>리액트</category>
      <category>리액트 네이티브</category>
      <category>안드로이드 스튜디오</category>
      <category>자바</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/13</guid>
      <comments>https://everose.tistory.com/entry/React-native-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD%EC%85%8B%ED%8C%85-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%ED%95%B4%EB%B3%B4%EA%B8%B0#entry13comment</comments>
      <pubDate>Fri, 2 Sep 2022 23:02:32 +0900</pubDate>
    </item>
    <item>
      <title>[React native] 리액트 네이티브란? 쉽게 설명하기</title>
      <link>https://everose.tistory.com/entry/React-native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8A%B8%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EA%B8%B0</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;리액트 네이티브! 리액트 네이티브가 뭔지 알아보자&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리액트 네이티브는 페이스북에서 만든 오픈소스로 모바일 애플리케이션 프레임워크입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모바일 크로스 플랫폼으로 프로그래밍 언어(Javascript)로 &lt;b&gt;IOS와 안드로이드 모바일 앱을 동시에 개발&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;예를 들면, IOS 앱을 개발하기 위해선 Object-C 또는 Swift를 배워야하고, 안드로이드 앱을 개발하기 위해선 Java 또는 Kotlin을 배워야 합니다. 앱을 하나 만드는데 각각의 모바일마다 개발하는 언어가 다르다?! 앱은 어렵다고 생각할꺼에요. 이 점을 좀더 &lt;b&gt;쉽게 개발할수 있게 하이브리드 웹앱&lt;/b&gt; 이라는 방법이 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;하이브리드 웹앱&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하이브리드 웹앱이란 모바일 웹 브라우저위에서 동작하고, 이 웹 브라우저를 네이티브 기능으로 감싸서 앱을 제공합니다. UI(화면)는 웹 브라우저로 제공하고, 사진, 위치 정보, 파일 저장등 모바일에서 사용하는 기능을 웹 브라우저로 접근할수 있개 만들어주는겁니다. 하지만 하이브리드 웹앱은 단점이 있습니다. 그건 네이티브 앱보다 성능이 떨어진다는 문제였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하이브리드 웹앱의 성능문제를 해결하기 위해 우리가 알아보는 리액트 네이티브가 나왔습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리액트 네이티브가 동작하는 자바스크립트 스레드는 네이티브 브릿지라는 걸 통해 네이티브 스레드와 통신하면서 기존의 하이브리드 웹앱과 전혀 다르게 성능을 최적화 시켰습니다.&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 첫번째 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;리액트 네이티브의 장점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 리액트 네이티브의 장점을 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫째, 소스코드의 공유와 재사용이 얼마든지 가능합니다.&lt;/b&gt; 리액트 네이티브는 리액트에서 파생된 개발 언어 입니다. 그렇다면, 리액트 네이티브에서 사용한 소스는 웹에서도 80~90% 정도는 재사용이 가능합니다. 또한 컴포넌트을 기반으로 개발을 하기 때문에 그 컴포넌트를 활용하여 소스코드의 재사용률을 극대화 시켰습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;둘째, 진입 장벽이 낮다.&lt;/b&gt; 리액트 네이티브는 자바스크립트 기반이기 때문에 웹 개발자나 자바스크립트 개발자라면 크게 어렵지 않게 언어를 배울수 있다는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;셋째, 생산성!&lt;/b&gt; 리액트 네이티브는 컴포넌트 기반이라 컴포넌트를 최대한 활용하는 방식으로 생산성을 향상 시킬수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;넷째, 일관성!&lt;/b&gt; 리액트 네이티브로 모바일 앱을 개발하면 IOS와 안드로이드 앱을 일관성 있게 개발이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다섯째, 비용!&amp;nbsp;&lt;/b&gt; 하나의 서비스를 모바일 앱으로 제공하기 위해서는 IOS와 안드로이드 앱을 각각 개발할 개발자가 필요합니다. 하지만 리액트 네이티브는 하나의 소스로 두 모바일 앱을 전부 개발할수 있고, 문제가 발생시 하나의 소스만 수정하면 되므로 유지보수 비용도 줄일수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;여섯째, 오픈소스로 누구나 이용가능하다.&lt;/b&gt; 누구나 수정, 배포, 상업적으로 사용이 가능하며, 오픈소스 개발자 커뮤니티가 활발하게 활성화 되어있습니다.&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 두번째 고정형 300X250 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;리액트 네이티브 단점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자 이제 장점을 알아봤으니 리액트 네이티브의 단점을 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫째, 리액트 네이티브 만의 개념과 개발 방식이 존재한다.&lt;/b&gt; 앞서 말했듯이 리액트 네이티브는 자바스크립트 기반입니다. 하지만 리액트 네이티브 만의 구조와 개발 방식이 있기 때문에 어느정도 공부를 해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;둘째, 성능 문제!&lt;/b&gt; 리액트 네이티브는 네이티브 앱 개발 방식이 아닙니다. 물론 하이브리드 웹앱보다는 성능이 뛰어나나 네이티브 앱보다는 성능이 떨어질수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;셋째, 오픈소스!&lt;/b&gt; 오픈소스는 장점도 있지만 단점도 존재합니다. 오픈소스로 공개된 다른 개발자의 소스를 사용할 경우 생산성은 향상 되지만, 버그가 발생시 그 버그를 수정할때까지 기다려야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;넷째, 네이티브 기능!&lt;/b&gt; 대부분의 네이티브 기능은 구현이 가능하지만, IOS와 안드로이드의 각각의 고유의 기능은 각자 개발해 주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다섯째, 업데이트 문제가 발생할수 있다.&lt;/b&gt; 리액트 네이티브의 버전이 업데이트 되거나, IOS나 안드로이드 버전이 업데이트 되었을시 그에 맞는 기능을 수정해야 할 수도 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;리액트 네이티브를 배워야 하는 이유&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;리액트 네이티브는 빠르게 IOS와 안드로이드 앱을 만들수 있으며, 거기에 웹까지 만들수 있다는 충분한 장점이 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;앞으로 지속적으로 공부를 하며, 나만의 서비스를 개발하여 리액트 네이티브만의 매력을 배워볼 생각입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;배운 내용들은 블로그에 지속적으로 공유를 할 예정입니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>리액트/React native</category>
      <category>IOS</category>
      <category>리액트</category>
      <category>리액트 네이티브</category>
      <category>안드로이드</category>
      <category>앱</category>
      <category>자바스크립트</category>
      <category>컴포넌트</category>
      <category>하이브리드 웹앱</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/12</guid>
      <comments>https://everose.tistory.com/entry/React-native-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%84%A4%EC%9D%B4%ED%8A%B8%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EA%B8%B0#entry12comment</comments>
      <pubDate>Fri, 2 Sep 2022 00:08:44 +0900</pubDate>
    </item>
    <item>
      <title>[시계열 분석] 부분자기상관함수(PACF)</title>
      <link>https://everose.tistory.com/entry/%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%B6%84%EC%84%9D-%EB%B6%80%EB%B6%84%EC%9E%90%EA%B8%B0%EC%83%81%EA%B4%80%ED%95%A8%EC%88%98PACF</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;statsmodels.graphics.tsaplots의 plot_pacf를 이용한 시계열데이터의 특성을 파악할수 있는 중요한 지표이다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658324696418&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;statsmodels.graphics.tsaplots. plot_pacf ( 
    x , 
    ax = None , 
    lags = None , 
    alpha = 0.05 , 
    method = 'ywm' , 
    use_vlines = True , 
    title = 'Partial Autocorrelation' , 
    zero = True , 
    vlines_kwargs = None , 
    ** kwargs )&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x : 시계열데이터&lt;/li&gt;
&lt;li&gt;ax : &lt;span style=&quot;color: #000000;&quot;&gt;주어진 경우 이 서브플롯은 새 그림을 만드는 대신 플롯하는 데 사용됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;lags : 가로 축에 사용되는 int 또는 지연 값의 배열입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;lags가 int일 때 np.arange(lags)를 사용합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;제공하지 않으면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;lags=np.arange(len(corr))&lt;/span&gt;사용됩니다.&lt;/li&gt;
&lt;li&gt;alpha : 숫자가 주어지면 주어진 수준에 대한 신뢰 구간이 반환됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;예를 들어 alpha=.05인 경우 표준 편차가 1/sqrt(len(x))에 따라 계산되는 95% 신뢰 구간이 반환됩니다.&lt;/li&gt;
&lt;li&gt;method : &lt;span style=&quot;color: #000000;&quot;&gt;사용할 계산 방법을 지정합니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;ywm&quot; 또는 &quot;ywmle&quot;: 조정 없는 율-워커.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본.&lt;/li&gt;
&lt;li&gt;&quot;yw&quot; 또는 &quot;ywadjusted&quot; : acovf에 대한 분모의 샘플 크기 조정이 있는 Yule-Walker.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본.&lt;/li&gt;
&lt;li&gt;&quot;ols&quot; : 시차와 상수에 대한 시계열 회귀.&lt;/li&gt;
&lt;li&gt;&quot;ols-inefficient&quot;: 모든 pacf 계수를 추정하기 위해 단일 공통 샘플을 사용하여 지연에 대한 시계열 회귀.&lt;/li&gt;
&lt;li&gt;&quot;ols-adjusted&quot; : 편향 조정이 있는 시차에 대한 시계열 회귀.&lt;/li&gt;
&lt;li&gt;&quot;ld&quot; 또는 &quot;ldadjusted&quot; : 편향 수정을 사용한 Levinson-Durbin 재귀.&lt;/li&gt;
&lt;li&gt;&quot;ldb&quot; 또는 &quot;ldbiased&quot; : 편향 수정이 없는 Levinson-Durbin 재귀.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;use_vlines : True이면 수직선과 마커가 그려집니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;False이면 마커만 그려집니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본 마커는 'o'입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;marker&lt;/span&gt;kwarg&lt;span&gt;&amp;nbsp;&lt;/span&gt;로 재정의할 수 있습니다 .&lt;/li&gt;
&lt;li&gt;title : 플롯에 배치할 제목입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본값은 '&lt;span style=&quot;color: #000000;&quot;&gt;Partial Autocorrelation&lt;/span&gt;'입니다.&lt;/li&gt;
&lt;li&gt;zero : 0 지연 자기상관을 포함할지 여부를 나타내는 플래그입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본값은 True입니다.&lt;/li&gt;
&lt;li&gt;vlines_kwargs : &lt;span style=&quot;color: #000000;&quot;&gt;vlines에 전달되는 키워드 인수의 선택적 사전입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;** kwargs : &lt;span&gt;plot&lt;/span&gt;Matplotlib 및&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;axhline&lt;/span&gt;함수&lt;span&gt;&amp;nbsp;&lt;/span&gt;에 직접 전달되는 선택적 키워드 인수입니다 .&lt;/li&gt;
&lt;/ul&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 첫번째 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h3 id=&quot;%EC%-B%--%EB%B-%B-%EB%-D%B-%EC%-D%B-%ED%--%B-&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;원본데이터&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1658324833940&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plot_pacf(data)&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;380&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4KsYL/btrHPJaHTvb/PksChkvPKX7TVg9hZjE2o0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4KsYL/btrHPJaHTvb/PksChkvPKX7TVg9hZjE2o0/img.png&quot; data-alt=&quot;원본데이터의 부분자기상관함수 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4KsYL/btrHPJaHTvb/PksChkvPKX7TVg9hZjE2o0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4KsYL%2FbtrHPJaHTvb%2FPksChkvPKX7TVg9hZjE2o0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;380&quot; height=&quot;264&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;원본데이터의 부분자기상관함수 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id=&quot;%EC%B-%A-%EB%B-%--%ED%--%-C%--%EB%-D%B-%EC%-D%B-%ED%--%B-&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;차분한 데이터&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1658324901053&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plot_pacf(data.diff(periods=1).iloc[1:])&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;pacf.png&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHiFMU/btrHOckuETA/yH66RhzzSTJGFC0VIcCsuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHiFMU/btrHOckuETA/yH66RhzzSTJGFC0VIcCsuk/img.png&quot; data-alt=&quot;차분한 데이터의&amp;amp;amp;nbsp;자기상관함수 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHiFMU/btrHOckuETA/yH66RhzzSTJGFC0VIcCsuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHiFMU%2FbtrHOckuETA%2FyH66RhzzSTJGFC0VIcCsuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;373&quot; height=&quot;262&quot; data-filename=&quot;pacf.png&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;차분한 데이터의&amp;amp;nbsp;자기상관함수 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정상성 데이터의 경우 빠르게 0에 수렴한다.&lt;/li&gt;
&lt;li&gt;첫번째 막대는 자기자신의 상관관계 이므로 항상 1이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시계열 데이터의 특성을 파악하기 위해 부분자기상관함수(PACF)를 이용해 시각화할수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>빅데이터 분석/Python</category>
      <category>PACF</category>
      <category>python</category>
      <category>부분자기상관함수</category>
      <category>시계열</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/5</guid>
      <comments>https://everose.tistory.com/entry/%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%B6%84%EC%84%9D-%EB%B6%80%EB%B6%84%EC%9E%90%EA%B8%B0%EC%83%81%EA%B4%80%ED%95%A8%EC%88%98PACF#entry5comment</comments>
      <pubDate>Wed, 20 Jul 2022 22:50:24 +0900</pubDate>
    </item>
    <item>
      <title>[시계열분석] 자기 상관 함수(ACF)</title>
      <link>https://everose.tistory.com/entry/%EC%8B%9C%EA%B3%84%EC%97%B4%EB%B6%84%EC%84%9D-%EC%9E%90%EA%B8%B0-%EC%83%81%EA%B4%80-%ED%95%A8%EC%88%98ACF</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;statsmodels.graphics.tsaplots의 plot_acf를 이용한 시계열데이터의 특성을 파악할수 있는 중요한 지표이다.&lt;/p&gt;
&lt;pre id=&quot;code_1658323555186&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;statsmodels.graphics.tsaplots. plot_acf ( 
    x , 
    ax = None , 
    lags = None , 
    alpha = 0.05 , 
    use_vlines = True , 
    fixed = False , 
    fft = False , 
    missing = 'none' , 
    title = 'Autocorrelation' , 
    zero = True , 
    auto_ylims = False , 
    bartlett_confint =True , 
    vlines_kwargs = 없음 , 
    ** kwargs )&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x : 시계열데이터&lt;/li&gt;
&lt;li&gt;ax : &lt;span style=&quot;color: #000000;&quot;&gt;주어진 경우 이 서브플롯은 새 그림을 만드는 대신 플롯하는 데 사용됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;lags : 가로 축에 사용되는 int 또는 지연 값의 배열입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;lags가 int일 때 np.arange(lags)를 사용합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;제공하지 않으면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;lags=np.arange(len(corr))&lt;/span&gt;사용됩니다.&lt;/li&gt;
&lt;li&gt;alpha : 숫자가 주어지면 주어진 수준에 대한 신뢰 구간이 반환됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;예를 들어 alpha=0.5인 경우 Bartlett 공식에 따라 표준 편차가 계산되는 95% 신뢰 구간이 반환됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;None이면 신뢰 구간이 표시되지 않습니다.&lt;/li&gt;
&lt;li&gt;use_vlines : True이면 수직선과 마커가 그려집니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;False이면 마커만 그려집니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본 마커는 'o'입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;marker&lt;/span&gt;kwarg&lt;span&gt;&amp;nbsp;&lt;/span&gt;로 재정의할 수 있습니다 .&lt;/li&gt;
&lt;li&gt;adjusted : &lt;span style=&quot;color: #000000;&quot;&gt;True이면 자기공분산의 분모는 nk이고, 그렇지 않으면 n입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;fft : &lt;span style=&quot;color: #000000;&quot;&gt;True이면 FFT를 통해 ACF를 계산합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;missing : &lt;span style=&quot;color: #000000;&quot;&gt;NaN을 처리하는 방법을 지정하는 ['none', 'raise', 'conservative', 'drop'] 문자열입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;title : 플롯에 배치할 제목입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본값은 '&lt;span style=&quot;color: #000000;&quot;&gt;Autocorrelation&lt;/span&gt;'입니다.&lt;/li&gt;
&lt;li&gt;zero : 0 지연 자기상관을 포함할지 여부를 나타내는 플래그입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본값은 True입니다.&lt;/li&gt;
&lt;li&gt;auto_ylims : &lt;span style=&quot;color: #000000;&quot;&gt;True인 경우 y축 제한을 ACF 값으로 자동 조정합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;bartlett_confint : ACF 값에 대한 신뢰 구간은 일반적으로 r_k 주변의 2 표준 오류에 배치됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;표준 오차에 사용되는 공식은 상황에 따라 다릅니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;ARIMA 루틴의 일부로 잔차의 무작위성을 테스트하기 위해 자기상관이 사용되는 경우 잔차가 백색 잡음이라고 가정하여 표준 오차가 결정됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;지연에 대한 대략적인 공식은 각 r_k = 1/sqrt(N)의 표준 오차입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;1/sqrt(N) 결과에 대한 자세한 내용은 [1]의 섹션 9.4를 참조하세요.&lt;span&gt;&amp;nbsp;&lt;/span&gt;더 기본적인 논의는 [2]의 섹션 5.3.2를 참조하십시오.&lt;span&gt;&amp;nbsp;&lt;/span&gt;원시 데이터의 ACF의 경우, 올바른 모델이 MA(k-1)인 것처럼 시차 k에서의 표준 오차가 발견됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;이것은 특정 시차를 지나는 모든 자기상관이 한계 내에 있는 경우 모델이 마지막 유의한 자기상관에 의해 정의된 MA가 될 수 있다는 가능한 해석을 허용합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;이 경우,&lt;span&gt;&amp;nbsp;&lt;/span&gt;데이터에 대해 이동 평균 모델을 가정하고 Bartlett 공식을 사용하여 신뢰 구간에 대한 표준 오차를 생성해야 합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;vlines_kwargs : &lt;span style=&quot;color: #000000;&quot;&gt;vlines에 전달되는 키워드 인수의 선택적 사전입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;** kwargs : &lt;span&gt;plot&lt;/span&gt;Matplotlib 및&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;axhline&lt;/span&gt;함수&lt;span&gt;&amp;nbsp;&lt;/span&gt;에 직접 전달되는 선택적 키워드 인수입니다&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 첫번째 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;원본데이터&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1658324043826&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plot_acf(data)&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;386&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8TgVe/btrHM7Elcwk/UlJZ1cSnFXrx1oCNu9Dki0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8TgVe/btrHM7Elcwk/UlJZ1cSnFXrx1oCNu9Dki0/img.png&quot; data-alt=&quot;원본 데이터의 자기상관함수 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8TgVe/btrHM7Elcwk/UlJZ1cSnFXrx1oCNu9Dki0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8TgVe%2FbtrHM7Elcwk%2FUlJZ1cSnFXrx1oCNu9Dki0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;386&quot; height=&quot;264&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;원본 데이터의 자기상관함수 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정상성 데이터가 아닐경우 위와 같은 느리게 감소한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;차분한 데이터&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1658323875906&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plot_acf(data.diff(periods=1).iloc[1:])&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-filename=&quot;acf.png&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HGLOe/btrHPJV0J0L/vmXMVkwq7trDeZKXMYhkTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HGLOe/btrHPJV0J0L/vmXMVkwq7trDeZKXMYhkTk/img.png&quot; data-alt=&quot;차분한 데이터의&amp;amp;amp;nbsp;자기상관함수 시각화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HGLOe/btrHPJV0J0L/vmXMVkwq7trDeZKXMYhkTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHGLOe%2FbtrHPJV0J0L%2FvmXMVkwq7trDeZKXMYhkTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;373&quot; height=&quot;262&quot; data-filename=&quot;acf.png&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;차분한 데이터의&amp;amp;nbsp;자기상관함수 시각화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정상성 데이터의 경우 빠르게 0에 수렴한다.&lt;/li&gt;
&lt;li&gt;첫번째 막대는 자기자신의 상관관계 이므로 항상 1이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시계열 데이터의 특성을 파악하기 위해 자기상관함수(ACF)&lt;b&gt;를 이용해 시각화할수 있다.&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>빅데이터 분석/Python</category>
      <category>ACF</category>
      <category>Autocorrelation</category>
      <category>python</category>
      <category>시계열</category>
      <category>자기상관함수</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/4</guid>
      <comments>https://everose.tistory.com/entry/%EC%8B%9C%EA%B3%84%EC%97%B4%EB%B6%84%EC%84%9D-%EC%9E%90%EA%B8%B0-%EC%83%81%EA%B4%80-%ED%95%A8%EC%88%98ACF#entry4comment</comments>
      <pubDate>Wed, 20 Jul 2022 22:42:57 +0900</pubDate>
    </item>
    <item>
      <title>[ADF test] 정상성 테스트</title>
      <link>https://everose.tistory.com/entry/ADF-test-%EC%A0%95%EC%83%81%EC%84%B1-%ED%85%8C%EC%8A%A4%ED%8A%B8</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;statsmodels.tsa.stattools의 adfuller를 이용해서 데이터의 정상성을 가지는지 파악할수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658322851301&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;statsmodels.tsa.stattools.adfuller(
    x, 
    maxlag=None, 
    regression='c', 
    autolag='AIC', 
    store=False, 
    regresults=False)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x : 데이터&lt;/li&gt;
&lt;li&gt;maxlag : 테스트에 포함된 최대 지연, 기본값 12*(nobs/100)^{1/4}는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;None&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;regression : &lt;span style=&quot;color: #000000;&quot;&gt;회귀에 포함할 상수 및 추세 순서입니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;c&quot;: 상수만(기본값).&lt;/li&gt;
&lt;li&gt;&quot;ct&quot;: 상수 및 추세.&lt;/li&gt;
&lt;li&gt;&quot;ctt&quot;: 일정하고 선형 및 이차 추세입니다.&lt;/li&gt;
&lt;li&gt;&quot;n&quot;: 상수 없음, 추세 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;autolag : &lt;span style=&quot;color: #000000;&quot;&gt;0, 1, &amp;hellip;, maxlag 값 중 lag 길이를 자동으로 결정할 때 사용하는 방법.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;AIC&quot;(기본값) 또는 &quot;BIC&quot;인 경우 해당 정보 기준을 최소화하기 위해 지연 수가 선택됩니다.&lt;/li&gt;
&lt;li&gt;maxlag의 &quot;t-stat&quot; 기반 선택.&lt;span&gt;&amp;nbsp;&lt;/span&gt;최대 시차로 시작하여 5% 크기 검정을 사용하여 마지막 시차 길이에 대한 t-통계량이 유의할 때까지 시차를 삭제합니다.&lt;/li&gt;
&lt;li&gt;None이면 포함된 지연 수가 maxlag로 설정됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;store : True이면 adf 통계에 추가로 결과 인스턴스가 반환됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본값은 False입니다.&lt;/li&gt;
&lt;li&gt;regresults : True이면 전체 회귀 결과가 반환됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;기본값은 False입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1658323074628&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#ADF-test(Original-time-series)
res = sm.tsa.adfuller(data,regression='ct')
print('p-value:{}'.format(res[1]))
#p-value:0.22741996706165474

#ADF-test(differenced-time-series)
res = sm.tsa.adfuller(data.diff().dropna(),regression='c')
print('p-value:{}'.format(res[1]))
#p-value:0.004603382380895592&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;원본데이터의 p-value가 0.22 &amp;gt; 0.05보다 크므로 정상성을 가지지 않는다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;정상성을 가지게 하기 위해 차분하여 ADF test진행 p-value가 0.004 &amp;gt; 0.05 보다 작으므로 정상성을 가지게 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;차분을 두어 데이터의 정상성을 가지게 해야한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>빅데이터 분석/Python</category>
      <category>ADF test</category>
      <category>ADF-test</category>
      <category>adfuller</category>
      <category>python</category>
      <category>정상성</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/3</guid>
      <comments>https://everose.tistory.com/entry/ADF-test-%EC%A0%95%EC%83%81%EC%84%B1-%ED%85%8C%EC%8A%A4%ED%8A%B8#entry3comment</comments>
      <pubDate>Wed, 20 Jul 2022 22:20:27 +0900</pubDate>
    </item>
    <item>
      <title>[seasonal_decompose] 시계열 데이터 분해</title>
      <link>https://everose.tistory.com/entry/seasonaldecompose-%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%ED%95%B4</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;statsmodels.tsa.seasonal의 seasonal_decompose를 이용해서 추세, 계절성, 잔차를 파악할수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658321670620&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;statsmodels.tsa.seasonal. season_decompose (
    x , 
    model = 'additive' , 
    filt = None , 
    period = None , 
    two_sided = True , 
    extrapolate_trend = 0 )&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x : 시계열 데이터&lt;/li&gt;
&lt;li&gt;model : &lt;span style=&quot;color: #000000;&quot;&gt;additive, &lt;span style=&quot;color: #000000;&quot;&gt;multiplicative 두가지 계절성분 유형&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;filt : &lt;span style=&quot;color: #000000;&quot;&gt;계절 성분을 필터링하기 위한 필터 계수&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;period : 기간. 시계열 데이터가 pandas&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;객체가 아니거나 x의 인덱스에 빈도가 없는 경우 사용&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;two_sided : &lt;span style=&quot;color: #000000;&quot;&gt;필터링에 사용되는 이동 평균 방법으로 True(기본값)이면 필터를 사용하여 중심 이동 평균이 계산됩니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;False인 경우 필터 계수는 과거 값에만 적용&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;extrapolate_trend : 0으로 설정하면 컨볼루션으로 인한 추세는 이 많은(+1) 가장 가까운 점을 고려하여 양쪽 끝에서 외삽된 선형 최소 제곱입니다(또는 two_sided가 False인 경우 단일 것).&lt;span&gt;&amp;nbsp;&lt;/span&gt;'freq'로 설정하면&lt;span&gt;&amp;nbsp;&lt;/span&gt;freq&lt;span&gt;&amp;nbsp;&lt;/span&gt;가장 가까운 점을 사용합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;이 매개변수를 설정하면 경향 또는 잔류 성분에 NaN 값이 없습니다.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 본문 첫번째 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;pre id=&quot;code_1658322089750&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.rc(&quot;font&quot;, family=&quot;Malgun Gothic&quot;)
mpl.rc('axes', unicode_minus=False)
res = sm.tsa.seasonal_decompose(data,freq=12)
fig = res.plot()
fig.set_figheight(8)
fig.set_figwidth(15)
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;decompose.png&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDaZra/btrHPKUUEUw/q2akOeXCtSS9wz8xRlISLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDaZra/btrHPKUUEUw/q2akOeXCtSS9wz8xRlISLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDaZra/btrHPKUUEUw/q2akOeXCtSS9wz8xRlISLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDaZra%2FbtrHPKUUEUw%2Fq2akOeXCtSS9wz8xRlISLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;976&quot; height=&quot;516&quot; data-filename=&quot;decompose.png&quot; data-origin-width=&quot;976&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;트렌드(Trend) : 연도별 크기의 윈도우를 움직여가며, 관측치들의 평균을 측정&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;계절성(Seasonal) : 각 월별로 데이터를 모아 평균을 측정. 각 주기의 계절성은 트렌드에 대한 상대적인 증가 혹은 감소를 나타내므로 합이 0이 되도록 조정된다.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;잔차(residual) : 원 데이터에서 앞서 도출한 트렌드와 계절성의 값을 제거한 나머지 값이다.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2000년부터 지속적으로 상승하는 추세가 있으며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계절성이 강하게 있고, 겨울에 비해 봄과 가을 수출액이 높고 여름에 다소 떨어짐&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근으로 올 수록 residual이 커지는 경향을 보인다. 즉, 수출액 절대적인 크기가 커짐에 따라 수치적으로 변동성도 커졌다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시계열 데이터 분석하고, 어떤 분석 모델을 사용해야하는지 statsmodels의 seasonal_decompose를 이용하여 유추할수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>빅데이터 분석/Python</category>
      <category>python</category>
      <category>residual</category>
      <category>seasonal</category>
      <category>seasonal_decompose</category>
      <category>statsmodels</category>
      <category>Trend</category>
      <category>데이터분석</category>
      <category>머신러닝</category>
      <category>시계열</category>
      <category>시계열 데이터분석</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/2</guid>
      <comments>https://everose.tistory.com/entry/seasonaldecompose-%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%ED%95%B4#entry2comment</comments>
      <pubDate>Wed, 20 Jul 2022 22:07:00 +0900</pubDate>
    </item>
    <item>
      <title>[chunksize]대용량 데이터 읽어오기</title>
      <link>https://everose.tistory.com/entry/chunksize%EB%8C%80%EC%9A%A9%EB%9F%89-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%BD%EC%96%B4%EC%98%A4%EA%B8%B0</link>
      <description>&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 상단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python에서 pandas의 read_csv로 대용량 데이터를 읽어 왔을때, 고사양의 컴퓨터가 필요로 하거나 colab같은경우 연결이 끊어지기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이럴경우 chunksize를 이용해서 일부분씩 데이터를 읽어올수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1658314211219&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd
train_data_file = '/train_data.csv'

train_data = pd.DataFrame()

chunksize = 10 ** 3

for cnt, chunk in enumerate(pd.read_csv(train_data_file, chunksize=chunksize)):
  train_data = pd.concat([train_data,chunk])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chunksize = 10 ** 3 은 1000을 표현하며,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;python 내장함수인 enumerate를 함수를 이용하여, pandas의 read_csv함수에 chunksize라는 옵션을 주어 해당 건수만큼 데이터를 조회한 하여, pandas의 concat 함수로 1000건씩 합쳐주면, 대용량 데이터를 처리하는데 보다 효과적이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;enumerate함수 는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4107937844956880&quot;&gt;&lt;/script&gt;
&lt;!-- colin 하단 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;</description>
      <category>빅데이터 분석/Python</category>
      <category>chunksize</category>
      <category>pandas</category>
      <category>python</category>
      <category>대용량</category>
      <author>Colin Kim</author>
      <guid isPermaLink="true">https://everose.tistory.com/1</guid>
      <comments>https://everose.tistory.com/entry/chunksize%EB%8C%80%EC%9A%A9%EB%9F%89-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%BD%EC%96%B4%EC%98%A4%EA%B8%B0#entry1comment</comments>
      <pubDate>Wed, 20 Jul 2022 20:07:26 +0900</pubDate>
    </item>
  </channel>
</rss>