<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>lightman.log</title>
        <link>https://velog.io/</link>
        <description>현직 데이터 분석가 / 데이터 과학의 정도를 따라 🚲 / About DEV DA ML</description>
        <lastBuildDate>Mon, 03 Apr 2023 06:46:19 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>lightman.log</title>
            <url>https://images.velog.io/images/thk-lightman/profile/41ce8328-4ca3-4a8b-9675-da386f21717a/social.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. lightman.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/thk-lightman" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[스프레드시트]]]></title>
            <link>https://velog.io/@thk-lightman/%EB%B9%85%EC%BF%BC%EB%A6%AC</link>
            <guid>https://velog.io/@thk-lightman/%EB%B9%85%EC%BF%BC%EB%A6%AC</guid>
            <pubDate>Mon, 03 Apr 2023 06:46:19 GMT</pubDate>
            <description><![CDATA[<ul>
<li>IN 구문을 위한 COUNTIF</li>
</ul>
<pre><code class="language-python">=if(&#39;1. 로직조정(사업기획팀)&#39;!N8=&quot;운영&quot;, 
filter(&#39;슈퍼딜_today_raw&#39;!A:C
, &#39;슈퍼딜_today_raw&#39;!E:E &lt;&#39;1. 로직조정(사업기획팀)&#39;!$L$8
, &#39;슈퍼딜_today_raw&#39;!F:F&gt;&#39;1. 로직조정(사업기획팀)&#39;!$M$8
, COUNTIF(&#39;3. 수기 입력시트(사업기획팀)&#39;!I5:I, &#39;슈퍼딜_today_raw&#39;!J:J)&gt;0)
, &quot;null&quot;)</code></pre>
<ul>
<li>QUERY &amp; FILTER<pre><code class="language-python">=QUERY(
{ 
&#39;2-1. 존/차량_(1차 배제된 중형이상 + 추가된 중형이상)&#39;!B3:E1000;
&#39;2-1. 존/차량_(1차 배제된 중형이상 + 추가된 중형이상)&#39;!H3:K1000
}
,&quot;SELECT Col1, Col2, Col3, Col4 WHERE Col1 IS NOT NULL &quot;)
={filter(); filter()}</code></pre>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[What is Securities?]]></title>
            <link>https://velog.io/@thk-lightman/What-is-Securities</link>
            <guid>https://velog.io/@thk-lightman/What-is-Securities</guid>
            <pubDate>Thu, 30 Mar 2023 09:47:09 GMT</pubDate>
            <description><![CDATA[<h1 id="securities-and-their-factors">Securities and their Factors</h1>
<p>Securities are financial instruments that can be bought or sold, including stocks and bonds. They are typically traded on organized exchanges or over-the-counter markets, and their value can be affected by a wide range of factors. In this blog post, we will explore the different types of securities and the factors that can influence their value.</p>
<h2 id="stocks">Stocks</h2>
<p>Stocks are ownership shares in a company. When you buy a stock, you become a partial owner of the company, which entitles you to a portion of the company&#39;s earnings, called dividends, and potentially to vote on company decisions. Stocks are also traded on stock exchanges, where their value can rise or fall based on supply and demand.</p>
<h3 id="factors-affecting-stock-prices">Factors Affecting Stock Prices</h3>
<p>The value of a stock can be influenced by various factors, including:</p>
<ul>
<li>Company performance: If a company is performing well, its stock price may rise. Conversely, if a company is struggling, its stock price may fall.</li>
<li>Economic conditions: Economic factors such as interest rates, inflation, and GDP can affect the value of stocks.</li>
<li>Investor sentiment: Public perception of a company or the overall market can also influence stock prices.</li>
</ul>
<h2 id="bonds">Bonds</h2>
<p>Bonds are debt instruments that are issued by companies or governments to borrow money. When you buy a bond, you are essentially lending money to the issuer for a set period of time, and the issuer agrees to pay you back the face value of the bond plus interest. Bonds are typically considered lower-risk investments than stocks, but they also offer lower potential returns.</p>
<h3 id="factors-affecting-bond-prices">Factors Affecting Bond Prices</h3>
<p>The value of a bond can be influenced by various factors, including:</p>
<ul>
<li>Interest rates: Bond prices and interest rates have an inverse relationship. If interest rates rise, bond prices may fall, and vice versa.</li>
<li>Credit rating: The credit rating of the issuer can affect the value of a bond. Bonds issued by companies or governments with a higher credit rating are generally considered safer investments and may have a higher value.</li>
<li>Inflation: Inflation can erode the value of a bond&#39;s fixed payments over time, which can reduce its value.</li>
</ul>
<h2 id="checks-and-drafts">Checks and Drafts</h2>
<p>Checks and drafts are written orders to pay a specific amount of money from one bank account to another. They can be used to pay bills or make purchases and are often used in place of cash. When you write a check or draft, you must have enough money in your account to cover the amount, or the check or draft will bounce and be returned.</p>
<h3 id="factors-affecting-checks-and-drafts">Factors Affecting Checks and Drafts</h3>
<p>The value of a check or draft is dependent on the amount written on it, and whether or not there are sufficient funds in the issuing account to cover that amount. Factors affecting the value of checks and drafts include:</p>
<ul>
<li>Available funds: If there are not enough funds in the issuing account, the check or draft may be returned and become worthless.</li>
<li>Transaction fees: Banks may charge fees for processing checks or drafts, which can reduce their value.</li>
<li>Time delays: Checks and drafts can take time to clear and be processed, which can delay the availability of funds and affect their value.</li>
</ul>
<h2 id="derivatives">Derivatives</h2>
<p>Derivatives are financial instruments that derive their value from an underlying asset, such as stocks, bonds, or commodities. Examples ofderivatives include options and futures contracts. Derivatives can be used to manage risk, speculate on future price movements, or provide leverage.</p>
<h3 id="options">Options</h3>
<p>Options are contracts that give the buyer the right, but not the obligation, to buy or sell an underlying asset at a specific price within a specific time frame. Options are often used as a form of insurance or speculation.</p>
<h4 id="factors-affecting-option-prices">Factors Affecting Option Prices</h4>
<p>The value of an option can be influenced by various factors, including:</p>
<ul>
<li>Underlying asset price: The price of the underlying asset can affect the value of an option. For example, if the price of the underlying asset increases, the value of a call option may also increase.</li>
<li>Time to expiration: Options have a finite lifespan, and their value can decrease as they approach their expiration date.</li>
<li>Volatility: The more volatile the underlying asset, the more valuable an option can become, as it provides the buyer with more potential profit.<h3 id="futures">Futures</h3>
Futures are contracts that require the buyer to purchase an underlying asset at a specific price and time in the future. Futures are often used as a form of hedging or speculation.</li>
</ul>
<h4 id="factors-affecting-future-prices">Factors Affecting Future Prices</h4>
<p>The value of a future can be influenced by various factors, including:</p>
<ul>
<li>Supply and demand: The price of a future can be affected by supply and demand factors, such as changes in production or consumption of the underlying asset.</li>
<li>Interest rates: Changes in interest rates can affect the cost of carrying the underlying asset until the future contract&#39;s expiration date.</li>
<li>Economic conditions: Economic factors such as inflation or geopolitical events can affect the value of futures contracts.</li>
</ul>
<h1 id="conclusion">Conclusion</h1>
<p>In conclusion, securities such as stocks, bonds, options, futures, and derivatives are financial instruments that can be bought or sold. Their value can be influenced by a wide range of factors, including economic conditions, company performance, interest rates, and investor sentiment. Understanding these factors is crucial for investors who want to make informed investment decisions and manage their risk effectively.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Conversation with Chat GPT]]></title>
            <link>https://velog.io/@thk-lightman/Conversation-with-Chat-GPT</link>
            <guid>https://velog.io/@thk-lightman/Conversation-with-Chat-GPT</guid>
            <pubDate>Sun, 19 Feb 2023 14:35:28 GMT</pubDate>
            <description><![CDATA[<p>I want you to teach me Bayesian Statistics from 0 to 100. Just start with 1st lecture of 100lectures. Go on!</p>
<p>Let&#39;s go to the next lecture till we make it to 100th lectures!</p>
<p>Before moving on to the next lesson, explain more about MCMC, including basic formulas, with specific examples. Create a problem for me to solve and show me the answer.</p>
<p>I don&#39;t think I can implement a Markov chain myself with this explanation, please be more specific with formulas and examples so that I can implement and use a Markov chain myself.</p>
<p>Let&#39;s go back to the description of MCMC. What is a Stationary Distribution?</p>
<p>What exactly does it mean for a probability distribution to be stationary in a Markov chain? If I have a set of states and transition matrix with values [[0.9, 0.1], [0.2, 0.8]] , is [0.9, 0.1] the probability distribution?</p>
<p>How can a vector * Matrix product be understood intuitively?</p>
<p>A Jacobian matrix is a local linear transformation matrix, so what does a Hessian matrix mean geometrically or algebraically, and how does it have that meaning?</p>
<p>If the i-row j-column elements of a Jacobian matrix are \frac{\partial x_j}{\partial y_i} where y_i is the ith element of vector y of length n, and x_j is the jth element of vector x of length n. Then what are the elements of column i, row j of the Hessian matrix?</p>
<p>If a function whose output has dimension d(&gt;1) is called a multivariate function, what should we call a function whose input has dimension d(&gt;1)?</p>
<p>What if it&#39;s not a unit vector?</p>
<p>v가 단위벡터면 어떻게 해서 그 값이 rate를 여전히 알려주는거야?</p>
<p>Write HTML to place two image files back-to-back horizontally</p>
<p>Add code to resize each picture while maintaining the original proportions.</p>
<p>Change the size of the two images to be fixed.</p>
<p>When we apply the Hessian matrix to another function, what we are actually doing is transforming the second function in a way that is informed by the behavior of the first function. In other words, the Hessian matrix of the first function provides information about the local curvature of the function, and this information is used to transform the second function in a way that reflects that curvature.</p>
<p>Here is a simple example to illustrate the idea. Let&#39;s say that we have two functions, f(x, y) and g(x, y). We can think of the Hessian matrix of f(x, y) as a linear transformation, H, that operates on g(x, y) to produce a new function h(x, y). The operation can be written as h(x, y) = H(g(x, y)).</p>
<p>In matrix form, we can write the operation as follows:</p>
<p>$\begin{bmatrix} \frac{\partial^2f}{\partial x^2} &amp; \frac{\partial^2f}{\partial x\partial y} \ \frac{\partial^2f}{\partial y\partial x} &amp; \frac{\partial^2f}{\partial y^2} \end{bmatrix} \begin{bmatrix} \frac{\partial g}{\partial x} \ \frac{\partial g}{\partial y} \end{bmatrix} = \begin{bmatrix} \frac{\partial h}{\partial x} \ \frac{\partial h}{\partial y} \end{bmatrix}$</p>
<p>In this example, the Hessian matrix of f(x, y) acts on the gradient of g(x, y) to produce the gradient of the new function h(x, y). The new function h(x, y) will have properties that reflect the curvature of f(x, y), and these properties can be useful in various optimization and machine learning algorithms.</p>
<p>H=[ 
∂x 
2</p>
<p>∂ 
2
 f
​</p>
<p>∂y∂x
∂ 
2
 f
​</p>
<p>​</p>
<p>∂x∂y
∂ 
2
 f
​</p>
<p>∂y 
2</p>
<p>∂ 
2
 f
​</p>
<p>​
 ]</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[10 - 11] Cross Product]]></title>
            <link>https://velog.io/@thk-lightman/10-11-Cross-Product</link>
            <guid>https://velog.io/@thk-lightman/10-11-Cross-Product</guid>
            <pubDate>Wed, 15 Feb 2023 08:40:34 GMT</pubDate>
            <description><![CDATA[<p>Why is this function f in 
&quot;$$f(\begin{bmatrix} x \ y \ z \ \end{bmatrix}) = det\left(\begin{bmatrix} x &amp; v_1 &amp; w_1 \ y &amp; v_2 &amp; w_2 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)$$&quot; is linear based on properties of the determinant?</p>
<p>The function f defined by $$f(\begin{bmatrix} x \ y \ z \ \end{bmatrix}) = det\left(\begin{bmatrix} x &amp; v_1 &amp; w_1 \ y &amp; v_2 &amp; w_2 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)$$ is linear because the determinant satisfies the following properties:</p>
<ol>
<li>Multiplying a row of the matrix by a scalar multiplies the determinant by the same scalar. ( *<em>In Geogrphical view, you just stretch the length of bottom line of parallelogram *</em>)</li>
</ol>
<ul>
<li><p>For example, if we multiply the first row of the matrix by a scalar k, the new matrix is:</p>
<p>$$\begin{bmatrix} kx &amp; kv_1 &amp; kw_1 \ y &amp; v_2 &amp; w_2 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix}$$</p>
<p>and the determinant of the new matrix is k times the determinant of the original matrix:</p>
<p>$$k*det\left(\begin{bmatrix} x &amp; v_1 &amp; w_1 \ y &amp; v_2 &amp; w_2 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)$$</p>
</li>
</ul>
<ol start="2">
<li>Adding a scalar multiple of one row to another row does not change the determinant. ( *<em>In Geogrphical view, you just moving the left top point of parallelogram along the parallel line to bottom line *</em>)
그런데, 이 부분을 유심히 생각해보면 한 벡터에 다른 벡터를 더할 때 그 벡터가 나머지 두 벡터의 선형조합인 벡터라면 paralellopiped의 부피는 변하지 않는다. 만약 선형조합으로 구할 수 없는 벡터라면 paralellopiped의 부피는 x2 y2 z2가 만들어내는 높이만큼 더해진다. 따라서 det가 분리된다는 사실은 시각적으로 명확하다!</li>
</ol>
<ul>
<li><p>For example, if we add k times the first row to the second row, the new matrix is:</p>
<p>$$\begin{bmatrix} x &amp; v_1 &amp; w_1 \ y+kx &amp; v_2+kv_1 &amp; w_2+kw_1 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix}$$</p>
<p>and the determinant of the new matrix is the same as the determinant of the original matrix.</p>
<p>These two properties of the determinant imply that the function f is linear, because:</p>
</li>
</ul>
<p>$$f\left(\begin{bmatrix} x_1 \ y_1 \ z_1 \ \end{bmatrix} + \begin{bmatrix} x_2 \ y_2 \ z_2 \ \end{bmatrix}\right) \= f\left(\begin{bmatrix} x_1 + x_2 \ y_1 + y_2 \ z_1 + z_2 \ \end{bmatrix}\right)</p>
<p>\\= det\left(\begin{bmatrix} x_1 + x_2 &amp; v_1 &amp; w_1 \ y_1 + y_2 &amp; v_2 &amp; w_2 \ z_1 + z_2 &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)</p>
<p>\\= det\left(\begin{bmatrix} x_1 &amp; v_1 &amp; w_1 \ y_1 &amp; v_2 &amp; w_2 \ z_1 &amp; v_3 &amp; w_3 \ \end{bmatrix} \right) + det\left(\begin{bmatrix} x_2 &amp; v_1 &amp; w_1 \ y_2 &amp; v_2 &amp; w_2 \ z_2 &amp; v_3 &amp; w_3 \ \end{bmatrix} \right) \cdots ①</p>
<p>\\= f\left(\begin{bmatrix} x_1 \ y_1 \ z_1 \ \end{bmatrix}\right) + f\left(\begin{bmatrix} x_2 \ y_2 \ z_2 \ \end{bmatrix}\right)$$</p>
<p>And for any scalar k:</p>
<p>$$f(k\begin{bmatrix} x\ y \ z \ \end{bmatrix}) \ = f\left(\begin{bmatrix} kx \ ky \ kz \ \end{bmatrix}\right) 
\= kdet\left(\begin{bmatrix} x &amp; v_1 &amp; w_1 \ y &amp; v_2 &amp; w_2 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)</p>
<p>\= kf\left(\begin{bmatrix} x \ y \ z \ \end{bmatrix}\right)$$</p>
<p>Therefore, f satisfies the linearity property of a linear transformation, and hence is a linear function.</p>
<p>①에 대한 증명</p>
<p>This equation holds because of the distributive property of the determinant. The determinant of a 3x3 matrix can be expanded using the Laplace expansion along the first row as follows:</p>
<p>$$det\left(\begin{bmatrix} a &amp; b &amp; c \ d &amp; e &amp; f \ g &amp; h &amp; i \ \end{bmatrix} \right) \ = a\det\left(\begin{bmatrix} e &amp; f \ h &amp; i \ \end{bmatrix} \right) - b\det\left(\begin{bmatrix} d &amp; f \ g &amp; i \ \end{bmatrix} \right) + c\det\left(\begin{bmatrix} d &amp; e \ g &amp; h \ \end{bmatrix} \right)$$</p>
<p>In the case of the function f defined by</p>
<p>$$f(\begin{bmatrix} x \ y \ z \ \end{bmatrix}) = det\left(\begin{bmatrix} x &amp; v_1 &amp; w_1 \ y &amp; v_2 &amp; w_2 \ z &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)$$</p>
<p>the Laplace expansion along the first row gives:</p>
<p>$$f(\begin{bmatrix} x \ y \ z \ \end{bmatrix}) \= x\det\left(\begin{bmatrix} v_2 &amp; w_2 \ v_3 &amp; w_3 \ \end{bmatrix} \right) - v_1\det\left(\begin{bmatrix} y &amp; w_2 \ z &amp; w_3 \ \end{bmatrix} \right) + w_1\det\left(\begin{bmatrix} y &amp; v_2 \ z &amp; v_3 \ \end{bmatrix} \right)$$</p>
<p>Using this expansion, we can see that the determinant of the matrix</p>
<p>$$\begin{bmatrix} x_1 + x_2 &amp; v_1 &amp; w_1 \ y_1 + y_2 &amp; v_2 &amp; w_2 \ z_1 + z_2 &amp; v_3 &amp; w_3 \ \end{bmatrix}$$</p>
<p>is equal to the sum of the determinants of the matrices</p>
<p>$$\begin{bmatrix} x_1 &amp; v_1 &amp; w_1 \ y_1 &amp; v_2 &amp; w_2 \ z_1 &amp; v_3 &amp; w_3 \ \end{bmatrix}$$</p>
<p>and</p>
<p>$$\begin{bmatrix} x_2 &amp; v_1 &amp; w_1 \ y_2 &amp; v_2 &amp; w_2 \ z_2 &amp; v_3 &amp; w_3 \ \end{bmatrix}$$</p>
<p>where we expand each of these determinants using the Laplace expansion along the first row.</p>
<p>This shows that the equation</p>
<p>$$det\left(\begin{bmatrix} x_1 + x_2 &amp; v_1 &amp; w_1 \ y_1 + y_2 &amp; v_2 &amp; w_2 \ z_1 + z_2 &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)
= det\left(\begin{bmatrix} x_1 &amp; v_1 &amp; w_1 \ y_1 &amp; v_2 &amp; w_2 \ z_1 &amp; v_3 &amp; w_3 \ \end{bmatrix} \right) + det\left(\begin{bmatrix} x_2 &amp; v_1 &amp; w_1 \ y_2 &amp; v_2 &amp; w_2 \ z_2 &amp; v_3 &amp; w_3 \ \end{bmatrix} \right)$$</p>
<p>holds for any values of x1, y1, z1, x2, y2, and z2, as long as the matrices have entries in some field, such as the real numbers or the complex numbers.</p>
<h1 id="conclusion">CONCLUSION</h1>
<ul>
<li>The matrix represents a scale factor that changes with a linear transformation. </li>
</ul>
<p>$det(AB) = det(A)det(B)$</p>
<ul>
<li>The scale change of two linear transformations is equal to the product of the scale changes of each linear transformation.</li>
</ul>
<p>$det\left(\begin{bmatrix} k\vec x &amp; \vec y &amp; \vec z \end{bmatrix} \right) = k*det\left(\begin{bmatrix} \vec x &amp; \vec y &amp; \vec z \end{bmatrix} \right)$ </p>
<ul>
<li>If you multiply the vectors involved in the linear transformation by a factor of k, the linear transformation is also multiplied by a factor of k.</li>
</ul>
<p>$det\left(\begin{bmatrix} \vec x_1+\vec x_2 &amp; \vec y &amp; \vec z \end{bmatrix} \right) = det\left(\begin{bmatrix} \vec x_1 &amp; \vec y &amp; \vec z \end{bmatrix} \right) + det\left(\begin{bmatrix} \vec x_2 &amp; \vec y &amp; \vec z \end{bmatrix} \right)$</p>
<ul>
<li>Moving a vector involved in a linear transformation increases the scale of the linear transformation by the number of vectors moved. If you move it parallel to the floor, it will increase by 0. If you move it non-parallel to the floor, it will have a non-zero value.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chat GPT, Guide Lines.]]></title>
            <link>https://velog.io/@thk-lightman/Chat-GPT-Guide-Lines</link>
            <guid>https://velog.io/@thk-lightman/Chat-GPT-Guide-Lines</guid>
            <pubDate>Thu, 09 Feb 2023 14:40:11 GMT</pubDate>
            <description><![CDATA[<h1 id="guidelines-for-asking-questions-to-chatgpt">Guidelines for Asking Questions to ChatGPT</h1>
<h2 id="table-of-contents">Table of Contents</h2>
<ul>
<li>Introduction</li>
<li>Specificity in Questions</li>
<li>Proper Grammar and Spelling</li>
<li>Providing Context</li>
<li>Respectful Communication</li>
<li>Summary</li>
</ul>
<h2 id="introduction">Introduction</h2>
<p>As a large language model trained by OpenAI, ChatGPT is designed to answer a wide range of questions and provide information on a variety of topics. In order to get the most accurate and helpful answers, it&#39;s important to ask questions in an appropriate way.</p>
<p>In this guide, we&#39;ll provide some tips and guidelines to help you ask questions in a way that will result in the best possible responses from ChatGPT.</p>
<h2 id="specificity-in-questions">Specificity in Questions</h2>
<p>One of the most important factors in getting a helpful answer from ChatGPT is to ask specific questions. Be clear and concise about what information you&#39;re looking for, and try to avoid asking vague or open-ended questions.</p>
<h2 id="proper-grammar-and-spelling">Proper Grammar and Spelling</h2>
<p>In order to understand your questions and provide clear and accurate answers, it&#39;s important to write in complete sentences with proper grammar and spelling. Avoid using shorthand or text-speak, and make sure your questions are easy to understand.</p>
<h2 id="providing-context">Providing Context</h2>
<p>If your question is related to a specific scenario or situation, providing some context can help ChatGPT understand the context of your question and provide a more accurate answer.</p>
<h2 id="respectful-communication">Respectful Communication</h2>
<p>It&#39;s important to treat ChatGPT and others you interact with in a respectful manner, and avoid using language that is offensive or inflammatory. This will help ensure that your questions are answered promptly and accurately, and will contribute to a positive and productive conversation.</p>
<h2 id="summary">Summary</h2>
<p>By following these guidelines for asking questions to ChatGPT, you can increase the chances of getting accurate and helpful answers to your questions. Be specific in your questions, use proper grammar and spelling, provide context when necessary, and communicate in a respectful manner. By doing so, you&#39;ll be able to get the information you need and have productive conversations with ChatGPT. ENJOY IT!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SETTING: Poetry jupyter ]]></title>
            <link>https://velog.io/@thk-lightman/SETTING-Poetry-jupyter</link>
            <guid>https://velog.io/@thk-lightman/SETTING-Poetry-jupyter</guid>
            <pubDate>Thu, 19 Jan 2023 06:03:37 GMT</pubDate>
            <description><![CDATA[<p>vs code의 poetry 가상환경에 대화형 환경인 jupyter notebook을 설정하고 이용해보자</p>
<h1 id="②-jupyter-notebook-kernel-설정">② jupyter notebook kernel 설정</h1>
<ul>
<li>bash<ul>
<li>poetry shell</li>
<li>poetry add jupyter ipykernel</li>
<li>python -m ipykernel install --user --name [가상환경 이름] --display-name &quot;[jupyter에 표시될 kernel의 이름]&quot;<ul>
<li>python에서 ipykernel 모듈을 실행(-m)하여 install 작업을 한다는 의미</li>
</ul>
</li>
<li>jupyter notebook</li>
</ul>
</li>
<li>VScode<ul>
<li><code>Jupyter: Specify jupyter server for connections</code> 선택 &gt; EXISTING선택 &gt; 위 <strong>주소</strong> 입력</li>
<li>재실행 후 command + shift + p를 눌러 python interpreter로 가상환경 python interpreter를 연결</li>
</ul>
</li>
</ul>
<h1 id="끝">끝.</h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐍 SETTING 파이썬 가상환경 POETRY]]></title>
            <link>https://velog.io/@thk-lightman/POETRY-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-POETRY</link>
            <guid>https://velog.io/@thk-lightman/POETRY-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-POETRY</guid>
            <pubDate>Thu, 08 Dec 2022 06:00:15 GMT</pubDate>
            <description><![CDATA[<h1 id="intro">INTRO</h1>
<p>파이썬 버전과 의존성을 관리하기 위한 다양한 툴이 있습니다. 여기서는 편하다고 알려진 POETRY의 설정과 사용에 대하여 간단히 알아봅니다! 자세한 정보는 <a href="https://python-poetry.org/docs/">공식 사이트</a> 및 타 <a href="https://blog.gyus.me/2020/introduce-poetry/">블로그</a>들을 참고하여 봅시다!</p>
<h1 id="poetry-사용법">POETRY 사용법</h1>
<h2 id="설치">설치</h2>
<pre><code class="language-bash">curl -ssl https://install.python-poetry.org/ | python3</code></pre>
<h3 id="세팅">세팅</h3>
<ul>
<li>설치를 완료하고 나면 등장하는 안내 메세지에 따라 PATH에 명령어를 추가합니다.</li>
<li>탭 완성(tab completion) 활성화하기: <code>poetry help completions</code><ul>
<li>Oh-My-Zsh는 다음 명령어 실행 후 ./zshrc의 plugins에 poetry를 추가 합니다.<pre><code class="language-bash"># Zsh (Oh-My-Zsh)
mkdir $ZSH/plugins/poetry
poetry completions zsh &gt; $ZSH/plugins/poetry/_poetry</code></pre>
<pre><code class="language-plain">plugins(
  poetry
  ...
  )</code></pre>
<h2 id="환경-생성하기-with-github">환경 생성하기 with GITHUB</h2>
<h3 id="프로젝트-관리">프로젝트 관리</h3>
</li>
</ul>
</li>
<li>프로젝트 셋업<ul>
<li>기존 폴더가 없는 경우: <code>poetry new &lt;폴더명&gt;</code></li>
<li>기존 폴더가 있는 경우: <code>poetry init</code><ul>
<li>프로세스
  ① GITHUB REPO생성 → <code>clone</code> → <strong>가상환경 생성</strong> → <code>push</code>
② poetry add git+ssh://git@github.com/&lt;아이디&gt;/&lt;폴더명&gt;.git</li>
</ul>
</li>
<li>결과<pre><code class="language-plain">&lt;폴더명&gt;
├── pyproject.toml
└── README.rst</code></pre>
</li>
</ul>
</li>
<li>프로젝트 실행: <code>poetry shell</code></li>
<li>프로젝트 종료: <code>exit</code></li>
<li>프로젝트 설정변경: <code>poetry config --list</code>, <code>poetry config [options] [setting-key] [setting-value]</code><h3 id="패키지-관리">패키지 관리</h3>
</li>
<li>패키지 추가: <code>poetry add &lt;라이브러리 명&gt;</code> → <code>poetry.lock</code> 파일 업데이트 &amp; <code>pyproject.toml</code>에 의존성 추가 &amp; 패키지 설치</li>
<li>패키지 설치<ul>
<li><code>poetry install</code> → <code>poetry.lock</code>이 있다면 해당 파일을 사용하고 없다면 <code>pyproject.toml</code> 읽어서 의존성 패키지 조건 내 최신버전 설치 및 <code>poetry.lock</code>생성</li>
<li><code>poetry update</code> →<code>poetry.lock</code> 삭제 후 <code>poetry install</code></li>
</ul>
</li>
<li>패키지 삭제: <code>poetry remove pandas</code></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[GITHUB 계정 두 개 이상 연동하기
(How to connect more than 2 Github Accounts in a computer)]]></title>
            <link>https://velog.io/@thk-lightman/GITHUB-%EA%B3%84%EC%A0%95-%EB%91%90-%EA%B0%9C-%EC%9D%B4%EC%83%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0How-to-connect-more-than-2-Github-Accounts-in-a-computer</link>
            <guid>https://velog.io/@thk-lightman/GITHUB-%EA%B3%84%EC%A0%95-%EB%91%90-%EA%B0%9C-%EC%9D%B4%EC%83%81-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0How-to-connect-more-than-2-Github-Accounts-in-a-computer</guid>
            <pubDate>Wed, 07 Dec 2022 05:13:50 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/thk-lightman/post/90791bcf-a953-41f2-8caf-d4d5b28ecf5f/image.png" alt="">
Github에 계정을 연결하는 방법에는 HTTPs, SSH Key방법 두 가지가 있습니다. 여기에서는 그 중 SSH Key방법을 이용해 한 컴퓨터에서 두개 이상의 Github계정을 연동하여 사용하는 설정을 알아봅시다.</p>
<h1 id="ssk-key-설정">SSK Key 설정</h1>
<ol>
<li><p>(선택) <code>~/.ssh</code>에 있는 기존 SSH Key를 삭제합니다.</p>
</li>
<li><p>새로운 SSH Key(private &amp; public)를 발급합니다.</p>
<pre><code class="language-bash"> ssh-keygen -t rsa -b 4096 -C &quot;account1@gmail.com&quot;
 ssh-keygen -t rsa -b 4096 -C &quot;account2@gmail.com&quot;</code></pre>
<p>이때, 파일명은 각각 <code>~/.ssh/id_rsa</code>, <code>~/.ssh/id_rsa_acc2</code>으로 저장합니다.</p>
</li>
<li><p>ssh-agent를 시작하고 ssh에 private key들을 추가합니다.</p>
<pre><code class="language-bash"> eval `ssh-agent`
 ssh-add -k ~/.ssh/id_rsa
 ssh-add -k ~/.ssh/id_rsa_acc2    </code></pre>
<p><code>ssh-add -l</code>로 확인할 수 있습니다</p>
</li>
<li><p>github계정에 pulic key들을 추가합니다.</p>
<pre><code class="language-bash"> cat ~/.ssh/id_rsa.pub | pbcopy 
 #Add it on GITHUB&gt;SETTINGS&gt;SSH and GPG keys&gt;New SSH Key
 cat ~/.ssh/id_rsa_acc2.pub | pbcopy
 #Add it on GITHUB&gt;SETTINGS&gt;SSH and GPG keys&gt;New SSH Key</code></pre>
<h1 id="config-설정">config 설정</h1>
</li>
<li><p><code>~/.ssh/config</code> 파일을 아래와 같이 생성합니다.</p>
<pre><code class="language-plain"># account1 github
Host github.com
HostName github.com
User git
AddKeyToAgent yes
IdentityFile ~/.ssh/id_rsa

# account2 github
Host github.com-acc2
HostName github.com
User git
AddKeyToAgent yes
IdentityFile ~/.ssh/id_rsa_acc2</code></pre>
</li>
<li><p>git global config를 아래와 같이 설정합니다.</p>
<pre><code class="language-bash"> # for account1
 git config --global user.name &quot;acc2_username&quot;
 git config --global user.email &quot;account2@gmail.com&quot;
 # for account2: nothing to do</code></pre>
<h1 id="github-repository-연결">Github Repository 연결</h1>
</li>
<li><p>ssh config를 반영하여 ssh주소를 연결합니다.</p>
<ul>
<li><code>github.com-acc2</code>: githubHost, <code>acc2_username</code>: github id<pre><code class="language-bash">#WHEN YOU CLONING YOUR REPO with acc2
git clone git@github.com-acc2:acc2_username/reponame.git
</code></pre>
</li>
</ul>
<p>#WHEN YOU MADE A LOCAL FOLDER AND CONNECT IT TO GITHUB with acc2
git remote set-url origin <a href="mailto:git@github.com-acc2">git@github.com-acc2</a>:acc2_username/reponame.git</p>
<pre><code>(If you want to use multiple names and email addresses for different repositories, you can set up local configurations for each repository using the git config command without the --global flag. These local configurations will take precedence over the global configuration for that specific repository.)</code></pre></li>
<li><p><code>git push origin main</code> 명령어를 이용하여 git에 push를 수행합니다.</p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[⤨ HESSIAN MATRIX의 기하학적 의미]]></title>
            <link>https://velog.io/@thk-lightman/HESSIAN-MATRIX%EC%9D%98-%EA%B8%B0%ED%95%98%ED%95%99%EC%A0%81-%EC%9D%98%EB%AF%B8</link>
            <guid>https://velog.io/@thk-lightman/HESSIAN-MATRIX%EC%9D%98-%EA%B8%B0%ED%95%98%ED%95%99%EC%A0%81-%EC%9D%98%EB%AF%B8</guid>
            <pubDate>Sat, 03 Dec 2022 16:07:48 GMT</pubDate>
            <description><![CDATA[<p><a href="https://angeloyeo.github.io/2020/06/17/Hessian.html">https://angeloyeo.github.io/2020/06/17/Hessian.html</a></p>
<blockquote>
<p>헤시안 매트릭스는 보울을 더욱 볼록하게 만들어주는 선형변환이다.</p>
</blockquote>
<ul>
<li>이 말의 의미를 생각해보자.</li>
<li>(오해) 선형변환이 어떻게 더 함수를 볼록하게 만들 수 있을까? 선형변환은 기껏해야 직교하는 그리드를 마름모 형태로 바꾸는 것일 뿐인데?</li>
<li>(사실) 3차원이 아니라 2차원을 선형변환해서 3차원에 있는 볼록함을 증가시키는 것이다. 예를 들면, $y = f(x_1, x_2)$ 인 함수에서, $x_1, x_2$가 있는 2차원 평면의 특정 방향을 마름모 꼴로 줄이면 $y$값은 더욱 가파르게 증가할 것이다!</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🦾 cs4780]]></title>
            <link>https://velog.io/@thk-lightman/cs4780</link>
            <guid>https://velog.io/@thk-lightman/cs4780</guid>
            <pubDate>Tue, 13 Sep 2022 17:02:38 GMT</pubDate>
            <description><![CDATA[<p><a href="https://polarized-beef-9ba.notion.site/01-Supervised-Learning-3c1ee5f2907e412dbacb3027ce3bf530">01 🦸🏻‍♂️ Supervised Learning</a>
<a href="https://polarized-beef-9ba.notion.site/04-MLE-MAP-e352d012bb8e4f70867032ee2ff2e4f8">04 🎲 MLE &amp; MAP</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SHELL COMMAND] 기본기]]></title>
            <link>https://velog.io/@thk-lightman/SHELL-COMMAND-%EA%B8%B0%EB%B3%B8%EA%B8%B0</link>
            <guid>https://velog.io/@thk-lightman/SHELL-COMMAND-%EA%B8%B0%EB%B3%B8%EA%B8%B0</guid>
            <pubDate>Fri, 19 Aug 2022 16:09:04 GMT</pubDate>
            <description><![CDATA[<ul>
<li><p>파이프라인과 cut을 이용하여 <a href="https://devowen.com/200">배열 자르기</a></p>
</li>
<li><p><a href="https://stackoverflow.com/questions/18210956/unix-pipe-into-ls">ls의 입력을 파이프라인(stdin)으로 변경하여 받기</a></p>
</li>
<li><p><a href="https://stackoverflow.com/questions/18351284/how-to-get-the-count-of-fields-in-a-delimited-string">cut할 경우의 개수를 센 후 for 문 돌리기</a></p>
</li>
<li><p><a href="https://stackoverflow.com/questions/981601/colorized-grep-viewing-the-entire-file-with-highlighted-matches">grep로 x를 하이라이트 하면서 나머지 행도 보여주기</a></p>
<pre><code class="language-bash">echo $PATH | grep -o &quot;:&quot; | wc -l
for i in {1..7}; do echo $PATH | cut -f $i -d : | xargs ls; done
for i in {1..3}; do ; echo $PATH | cut -f $i -d : ; echo $PATH | cut -f $i -d : | xargs ls; done 
for i in {1..3}; do ; echo $PATH | cut -f $i -d : ; echo $PATH | cut -f $i -d : | xargs ls -l | grep --color &#39;x\|$&#39;; done</code></pre>
</li>
<li><p><a href="https://linuxhint.com/bash_command_output_variable/">커맨드라인 계산결과 변수로 사용하기</a></p>
</li>
<li><p><a href="https://toolspond.com/zshrc/">zsh</a></p>
<h1 id="환경변수">환경변수</h1>
</li>
<li><p><a href="https://www.leafcats.com/201">환경변수 설정과 해제</a></p>
</li>
<li><p>export 하면 해당 shell에서 child process 까지 이 변수를 사요ㅕㅇ할 수 있음 .bashrc에 export하는 명령을 입력해두면 켜질때마다 똑같은 행동을 함</p>
<ul>
<li>export만 입력하면 지금 쉘에 설정된 변수들을 모두 볼 수 있으며 (Base)와 (conda venv)의 export값은 약간 다름</li>
<li><a href="https://www.geeksforgeeks.org/environment-variables-in-linux-unix/">what is env var</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/export-command-linux">export command</a></li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐍 AUTO launchd with conda virtual env]]></title>
            <link>https://velog.io/@thk-lightman/%EC%9E%90%EB%8F%99%ED%99%94-launchd-with-conda-virtual-env</link>
            <guid>https://velog.io/@thk-lightman/%EC%9E%90%EB%8F%99%ED%99%94-launchd-with-conda-virtual-env</guid>
            <pubDate>Mon, 15 Aug 2022 15:44:11 GMT</pubDate>
            <description><![CDATA[<h1 id="🚧👷♂️🚧👷♂️🚧👷♂️🚧👷♂️🚧👷♂️🚧👷♂️🚧👷♂️🚧👷♂️🚧">🚧👷‍♂️🚧👷‍♂️🚧👷‍♂️🚧👷‍♂️🚧👷‍♂️🚧👷‍♂️🚧👷‍♂️🚧👷‍♂️🚧</h1>
<h1 id="launchd-tutorial">Launchd Tutorial</h1>
<p><a href="https://www.launchd.info/">공식사이트</a>
<a href="https://medium.com/@chetcorcos/a-simple-launchd-tutorial-9fecfcf2dbb3">A Simple Launchd Tutorial</a></p>
<ul>
<li>js
<a href="https://www.youtube.com/watch?v=oIn75ZbmWrQ">유튜브 설명</a></li>
<li>pipenv</li>
</ul>
<p>launchd</p>
<ul>
<li>error01<ul>
<li>가상환경에서 실행하기</li>
<li><a href="https://unix.stackexchange.com/questions/299192/running-a-python-script-in-conda-virtual-environment-as-service">shell script를 이용한다</a>: 쉘 스크립트를 이용하여 plist를 작성하는 방법</li>
</ul>
</li>
<li>error02<ul>
<li>conda가 작동하지 않는 문제: <a href="https://dongle94.github.io/anaconda/conda-activate-in-sh/">PATH를 수동으로 지정해주어야 함</a></li>
</ul>
</li>
<li>error03<ul>
<li>[문제1] 특정 폴더에서는 괜찮았지만, 클라우드로 공유되고 있는 폴더에서는 작동하지 않고 다음 오류를 뱉음<ul>
<li>shell-init: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted
/bin/bash: ./launchd_test.sh: Operation not permitted</li>
<li><a href="https://www.symscape.com/node/1727#:~:text=To%20avoid%20the%20error%20%22shell,to%20run%20in%20the%20background.">해결</a>: bash에 권한부여(sh, zsh가 필요할수도)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="launchd-실무-사용-사례">LAUNCHD 실무 사용 사례</h1>
<ol>
<li><p>타겟폴더 &gt; py파일 작성</p>
<pre><code class="language-python">title: [REF]bq_upload.py
#! /usr/bin/env python3</code></pre>
</li>
<li><p>타겟폴더 &gt; shell 파일 작성 및 실행(chmod +x) 권한부여</p>
<pre><code class="language-bash">title: [REF]bq_upload.sh
#! /bin/bash
export PATH=/Users/mori/anaconda3/bin:/Users/mori/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

source /Users/mori/anaconda3/etc/profile.d/conda.sh
conda activate socar
python [REF]bq_upload.py &gt;&gt; ./bq_upload.result.log</code></pre>
</li>
<li><p>~/Library/LaunchAgents/plist 파일 작성</p>
<pre><code class="language-xml">title: bq.upload.daemon.plist
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&lt;plist version=&quot;1.0&quot;&gt;
 &lt;dict&gt;

   &lt;key&gt;Label&lt;/key&gt;
   &lt;string&gt;bq.upload.daemon.plist&lt;/string&gt;

   &lt;key&gt;RunAtLoad&lt;/key&gt;
   &lt;true/&gt;

   &lt;key&gt;StartInterval&lt;/key&gt;
   &lt;integer&gt;30&lt;/integer&gt;

   &lt;key&gt;StandardErrorPath&lt;/key&gt;
   &lt;string&gt;타겟폴더/stderr.log&lt;/string&gt;

   &lt;key&gt;StandardOutPath&lt;/key&gt;
   &lt;string&gt;타겟폴더/stdout.log&lt;/string&gt;

   &lt;key&gt;WorkingDirectory&lt;/key&gt;
   &lt;string&gt;타겟폴더&lt;/string&gt;

   &lt;key&gt;ProgramArguments&lt;/key&gt;
   &lt;array&gt;
     &lt;string&gt;./[REF]bq_upload.sh&lt;/string&gt;
   &lt;/array&gt;

 &lt;/dict&gt;
&lt;/plist&gt;</code></pre>
<p>4.launchdctl을 이용하여 launchd를 control</p>
<pre><code class="language-bash"> launchdctl load ~/Library/LaunchAgents/*.plist 
 launchdctl unload ~/Library/LaunchAgents/*.plist </code></pre>
<h1 id="의문사항">의문사항</h1>
</li>
</ol>
<ul>
<li>conda가 참조하는 폴더들은 어디어디인지? 저것들 각각이 다른 의미가 있는지?</li>
</ul>
<h1 id="lesson-learned">LESSON LEARNED</h1>
<ul>
<li>의외로 폴더명의 한글, 띄어쓰기는 영향을 주지 않음<h1 id="기타내용">기타내용</h1>
</li>
<li>conda의 절대위치 찾기: which -p conda
<a href="https://stackoverflow.com/questions/2784183/what-does-cdata-in-xml-mean"> what is &lt;!CDATA&gt;</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐍 SETTING 가상환경과 shebang]]></title>
            <link>https://velog.io/@thk-lightman/Python-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD%EA%B3%BC-shebang</link>
            <guid>https://velog.io/@thk-lightman/Python-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD%EA%B3%BC-shebang</guid>
            <pubDate>Sun, 14 Aug 2022 16:43:52 GMT</pubDate>
            <description><![CDATA[<p>c언어로 프로그램을 작성해보았다면 커맨드 라인으로 프로그램을 실행해본 경험이 있을 것이다. python은 쉬뱅라인이라고 불리는 주석 한 줄을 통해 간단히 인터프리터를 지정해줄 수 있다. 방법은 다음과 같다.</p>
<h1 id="python파일-커맨드-라인에서-실행하기">Python파일 커맨드 라인에서 실행하기</h1>
<ol>
<li>py 파일 첫 라인에 쉬뱅라인 입력 [Sharp(#) + Bang(!)]<pre><code class="language-python"> Window    : #! python3
 OS        : #! /usr/bin/env python3
 Linux    : #! /usr/bin/python3</code></pre>
</li>
<li>execution 권한 부여<pre><code class="language-bash">$chmod +x 파일이름.py</code></pre>
</li>
<li>파일 실행<pre><code class="language-bash">$./파일이름.py</code></pre>
<h2 id="의문사항">의문사항</h2>
</li>
</ol>
<ul>
<li>질문: 가상환경을 사용할 경우는 어떻게 해야 하는가?<ul>
<li>가상환경 실행 후 똑같이 해도 됨 <a href="https://www.reddit.com/r/learnpython/comments/25ach5/question_regarding_virtualenv_and_shebang/">[참고]</a><h1 id="끝">끝.</h1>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐍 SETTING 개발환경 설정③ (vscode: 대화형/로컬 bigquery)]]></title>
            <link>https://velog.io/@thk-lightman/Mac-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-vscode-%EB%A1%9C%EC%BB%AC%EB%8C%80%ED%99%94%ED%98%95-bigquery</link>
            <guid>https://velog.io/@thk-lightman/Mac-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-vscode-%EB%A1%9C%EC%BB%AC%EB%8C%80%ED%99%94%ED%98%95-bigquery</guid>
            <pubDate>Thu, 11 Aug 2022 15:51:55 GMT</pubDate>
            <description><![CDATA[<p>vs code의 conda 가상환경에 대화형 환경인 jupyter notebook을 설정하고 bigquery를 연동하여 이용해보자</p>
<h1 id="③-로컬-vscode와-gcp-연동">③ 로컬 vscode와 GCP 연동</h1>
<h2 id="client-authorization">CLIENT AUTHORIZATION</h2>
<h3 id="case1-대화형-환경jupyter-notebook의-경우로컬과-colab">CASE1: 대화형 환경jupyter notebook의 경우(로컬과 colab)</h3>
<ul>
<li><p>준비물: GCP 프로젝트, 빅쿼리와 연동된 구글 아이디</p>
</li>
<li><p>➼ read_gbq를 이용하기 위해 필요한 모듈<code>pandas-gbq</code>을 설치한다</p>
<pre><code class="language-bash">pip3 install --upgrade --force-reinstall pandas-gbq</code></pre>
</li>
<li><p>➼ python 대화형 환경에서 read_gbq 함수를 실행하고 출력되는 링크에 접속하여 구글 아이디를 인증 및 쿼리를 불러온다</p>
<pre><code class="language-python">import pandas as pd
df = pd.read_gbq( query = query , project_id = &#39;project_id&#39;, dialect = &#39;standard&#39; )</code></pre>
</li>
<li><p>( 아래 방법으로도 가능하다 )</p>
<pre><code class="language-python">from google.cloud import bigquery
#from google.oauth2 import service_account

#GCP 프로젝트 입력
project_id = &#39;PROJECT_ID&#39;

#authorization
client = bigquery.Client(project = project_id)</code></pre>
<h3 id="case2-로컬-python의-경우">CASE2: 로컬 Python의 경우</h3>
</li>
<li><p>준비물</p>
<ul>
<li>해당 GCP 프로젝트의 BigQuery 조회가 가능한 <a href="https://wooiljeong.github.io/python/python-bigquery/">서비스 계정(Service Account)</a>생성 후 KEY를 JSON 파일로 저장</li>
</ul>
</li>
<li><p>➼ <code>google-cloud-bigquery</code>, <code>google-cloud-bigquery-storage</code> package 설치</p>
<pre><code class="language-bash">pip3 install --upgrade --force-reinstall google-cloud-bigquery google-cloud-bigquery-storage
#conda install -c conda-forge google-cloud-bigquery</code></pre>
</li>
<li><p>➼ JSON에 저장된 KEY를 불러와서 client로 연결한다</p>
<pre><code class="language-python">from google.cloud import bigquery
#from google.oauth2 import service_account

#Local에 저장된 SERVICE_ACCOUNT_KEY JSON 파일 경로 입력
credentials = service_account.Credentials.from_service_account_file(r&#39;SERVICE_ACCOUNT_KEY.JSON&#39;)

#GCP 프로젝트 입력
project_id = &#39;PROJECT_ID&#39;

#authorization
client = bigquery.Client(credentials = credentials, project = project_id)</code></pre>
</li>
</ul>
<h2 id="client-연결-후">CLIENT 연결 후</h2>
<h3 id="query">QUERY</h3>
<pre><code class="language-python">#QUERY
query_job = client.query(&quot;&quot;&quot;BGQUERY&quot;&quot;&quot;)
df = query_job.to_dataframe()</code></pre>
<h3 id="load">LOAD</h3>
<pre><code class="language-python">#LOAD
PROJECT_ID = &quot;project_id&quot;
DATASET = &quot;dataset&quot;
TABLE_NAME = &quot;table_name&quot; 
TABLE_ID = f&quot;{PROJECT_ID}.{DATASET}.{TABLE_NAME}&quot;

job_config = bigquery.LoadJobConfig(
    schema=[
        bigquery.SchemaField(&quot;f1&quot;, bigquery.enums.SqlTypeNames.STRING),
        bigquery.SchemaField(&quot;f2&quot;, bigquery.enums.SqlTypeNames.DATE),
        bigquery.SchemaField(&quot;f3&quot;, bigquery.enums.SqlTypeNames.FLOAT)],
    write_disposition=&quot;WRITE_APPEND&quot; | &quot;WRITE_TRUNCATE&quot;
    )
# Make an API request
job = client.load_table_from_dataframe(
    dataframe, table_id, job_config = job_config)
# Activate Job
job.result()</code></pre>
<h2 id="summary-대화형-환경의-경우">SUMMARY: 대화형 환경의 경우</h2>
<pre><code class="language-python">from google.cloud import bigquery
#from google.oauth2 import service_account

#CASE1: 대화형 환경
#GCP 프로젝트 입력
project_id = &#39;PROJECT_ID&#39;
#authorization
client = bigquery.Client(project = project_id)

##CASE2: 로컬 환경
##Local에 저장된 SERVICE_ACCOUNT_KEY JSON 파일 경로 입력
#credentials = service_account.Credentials.from_service_account_file(r&#39;SERVICE_ACCOUNT_KEY.JSON&#39;)
##GCP 프로젝트 입력
#project_id = &#39;PROJECT_ID&#39;
##authorization
#client = bigquery.Client(credentials = credentials, project = project_id)

#QUERY
query_job = client.query(&quot;&quot;&quot;BGQUERY&quot;&quot;&quot;)
df = query_job.to_dataframe()

#LOAD
PROJECT_ID = &quot;project_id&quot;
DATASET = &quot;dataset&quot;
TABLE_NAME = &quot;table_name&quot; 
TABLE_ID = f&quot;{PROJECT_ID}.{DATASET}.{TABLE_NAME}&quot;

job_config = bigquery.LoadJobConfig(
    schema=[
        bigquery.SchemaField(&quot;f1&quot;, bigquery.enums.SqlTypeNames.STRING),
        bigquery.SchemaField(&quot;f2&quot;, bigquery.enums.SqlTypeNames.DATE),
        bigquery.SchemaField(&quot;f3&quot;, bigquery.enums.SqlTypeNames.FLOAT)],
    write_disposition=&quot;WRITE_APPEND&quot; | &quot;WRITE_TRUNCATE&quot;
    )
# Make an API request
job = client.load_table_from_dataframe(
    dataframe, table_id, job_config = job_config)
# Activate Job
job.result()</code></pre>
<h1 id="lesson-learned">LESSON LEARNED</h1>
<ul>
<li>패키지 검색은 pip3와 <a href="https://pypi.org/">pypi</a></li>
<li>패키지 설치가 안되면 파이썬, 아나콘다, 모듈의 <strong>버전</strong>을 살펴보자<pre><code class="language-bash">python --version
conda --version
conda update</code></pre>
</li>
</ul>
<h1 id="끝">끝.</h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐍 SETTING 개발환경 설정② (vscode: jupyter kernel)]]></title>
            <link>https://velog.io/@thk-lightman/Mac-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-vscode-jupyter-kernel</link>
            <guid>https://velog.io/@thk-lightman/Mac-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-vscode-jupyter-kernel</guid>
            <pubDate>Thu, 11 Aug 2022 14:21:43 GMT</pubDate>
            <description><![CDATA[<p>vs code의 conda 가상환경에 대화형 환경인 jupyter notebook을 설정하고 이용해보자</p>
<h1 id="②-jupyter-notebook-kernel-설정">② jupyter notebook kernel 설정</h1>
<ul>
<li>➼ 가상환경을 설치하였다면 해당 가상환경에서 대화형 환경(jupyter notebook)을 구축해준다<ul>
<li><del>패키지 관리 시스템은 <code>conda</code>보다 <code>pip3</code>를 이용할 경우 오류가 적었다</del></li>
<li>conda 메뉴얼에 따르면 <code>conda</code> 명령어를 이용해 설치를 끝낸 후에만 <code>pip3</code>를 사용하여야 한다. 따라서 일단 <code>conda</code>를 사용하자.<ul>
<li><code>pip</code>: 기본 폴더에 package 설치</li>
<li><code>pip3</code>, <code>conda</code>: 가상환경 폴더에 package 설치<pre><code class="language-bash">#pip3 install --upgrade --force-reinstall jupyter ipykernel
conda install --update-deps --force-reinstall jupyter ipykernel</code></pre>
</li>
</ul>
</li>
</ul>
</li>
<li>➼ vscode에서 command + shift + p를 눌러 python interpreter로 가상환경 python을 연결해준다</li>
<li>😎 여기까지 마치고 나면 google bigquery를 사용할 때 대화형 환경인 google colab처럼 간편하게 사용이 가능하다 </li>
</ul>
<h2 id="🥲-jupyter-kernel이-제대로-작동하지-않을-경우">🥲 jupyter kernel이 제대로 작동하지 않을 경우</h2>
<ul>
<li>위와 같은 과정을 거쳐도 대화형 환경이 작동하지 않을 때가 있다<blockquote>
<p>*원인</p>
</blockquote>
<ul>
<li>원인은 가상환경이 제대로 실행되지 않을 수 있다 이전 글에 따라 deactivate, activate를 진행하고 PATH설정을 바꿔주어야 한다. 이후 가상환경의 python으로 셀을 실행하게 되면 ipykernel이 제대로 작동하는 것을 알 수 있다.</li>
<li><del>ipykernel을 설치하기 전에 python interpreter를 연결하면 발생하는 것 같기도 하다 필요한 모듈을 모두 설치하고 interpreter를 연결하자*</del><h3 id="아래의-내용은-모두-가상환경이-제대로-동작하고-있지-않기-때문에-벌어지는-일들임">아래의 내용은 모두 가상환경이 제대로 동작하고 있지 않기 때문에 벌어지는 일들임</h3>
</li>
<li>대표적인 오류가 Failure to start Kernel due to Modules not installed 이다 <a href="https://github.com/microsoft/vscode-jupyter/wiki/Failure-to-start-Kernel-due-to-Modules-not-installed">[참고]</a></li>
<li>대체로 package 간 버전이 맞지 않아 발생하는 일이다</li>
</ul>
</li>
<li>아래와 같이 명시적으로 kernel을 추가하는 작업을 해 주어야 한다<ul>
<li>➯ 위에서 설치한 ipykernel 모듈을 실행시켜 install 작업 수행<pre><code class="language-python">python -m ipykernel install --user --name [가상환경 이름] --display-name &quot;[jupyter에 표시될 kernel의 이름]&quot;
#python에서 ipykernel 모듈을 실행(-m)하여 install 작업을 한다는 의미</code></pre>
</li>
<li>➯ 이후 VSCODE에서<ul>
<li>가상환경 디렉토리로 이동 후 jupyter notebook을 실행하여 <strong>콘솔창의 token을 포함한 주소</strong> 확인 <a href="https://daebaq27.tistory.com/87">[참고]</a><pre><code class="language-bash">  #가상환경 디렉토리 확인 및 이동
  conda env list
  cd [가상환경 디렉토리]
  #jupyter notebook 실행: 콘솔창에 주소가 출력
  jupyter notebook</code></pre>
</li>
<li><code>Jupyter: Specify jupyter server for connections</code> 선택 &gt; EXISTING선택 &gt; 위 <strong>주소</strong> 입력</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="끝">끝.</h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐍 SETTING 개발환경 설정① (vscode: python 가상환경)]]></title>
            <link>https://velog.io/@thk-lightman/Mac-Python-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EB%A1%9C%EC%BB%AC-%EB%B9%85%EC%BF%BC%EB%A6%AC-%EC%97%B0%EB%8F%99</link>
            <guid>https://velog.io/@thk-lightman/Mac-Python-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EB%A1%9C%EC%BB%AC-%EB%B9%85%EC%BF%BC%EB%A6%AC-%EC%97%B0%EB%8F%99</guid>
            <pubDate>Tue, 09 Aug 2022 16:12:39 GMT</pubDate>
            <description><![CDATA[<p>사용환경: MacBookPro / macOS Monterey 12.3.1 / VS code
vs code에 conda 가상환경을 오류없이 설치해보자</p>
<h1 id="①-가상환경-생성">① 가상환경 생성</h1>
<ul>
<li><p>➼ 아래 코드를 통해 간단하게 가상환경을 생성할 수 있다</p>
<ul>
<li>python 3.10에서 python 3.1로 인식되는 버그가 있으므로 3.9를 설치하자<ul>
<li>python=3.1 버그는 <a href="(https://github.com/conda/conda/issues/11065)">링크</a>의 issue에서 확인하였다</li>
<li>PackageNotFoundError: The following packages are not available from current channels: - python=3.1<pre><code class="language-bash">conda create --name [가상환경 이름] python=3.9
conda create --name [가상환경 이름] python=3.10.5 --channel conda-forge
</code></pre>
</li>
</ul>
</li>
</ul>
<p>#참고
##conda 가상환경 이름변경
conda create --name [new 가상환경 이름] --clone [old 가상환경 이름]
conda activate [가상환경 이름]
conda remove --name [삭제할 이름] --all</p>
<p>##conda package 설정 및 초기화
.yml파일 이용(향후 업데이트)</p>
<p>##python package 설정 및 초기화
pip freeze &gt; requirments.txt
pip install -r requirements.txt
pip uninstall -r requirements.txt -y</p>
<h2 id="conda-python-version-변경">conda python version 변경</h2>
<p>conda install python=3.9</p>
<pre><code>## 가상환경 기타 설정
가상환경을 생성하기는 했으나 다음과 같은 리눅스 세팅을 확인할 필요가 있다.</code></pre></li>
</ul>
<ol>
<li><code>python</code> 명령어가 있는 위치<pre><code class="language-bash">#해당 가상환경이 접근하는 명령어들의 위치는 $PATH 환경변수에 있음
$echo $PATH
#PATH중에서 python이 위치한 디렉토리를 알려줌
$which -a python
#만약 conda 하위에 있는 python이 아니라면 deactivate가 필요하다
conda deactivate
conda activate &lt;가상환경 이름&gt;</code></pre>
</li>
<li>package들이 저장되어 있는 위치 <a href="https://jins-sw.tistory.com/17">참고1</a></li>
</ol>
<ul>
<li><p>python -m site</p>
</li>
<li><p>conda 가상환경은 자동으로 User의 global package를 참조한다</p>
<pre><code class="language-bash">#.py위치 폴더, PYTHONPATH등 접근 가능한 순서대로 표현
$python -c &quot;import sys; print(&#39;/n&#39;.join(sys.path))&quot;

#만약 /Users/****/.local/lib/python3.9/site-packages 와 같이 global package를 사용하고 싶지 않다면
$conda deactivate
$export PYTHONNOUSERSITE=1
$conda activate &lt;가상환경 이름&gt;</code></pre>
<h2 id="완료">완료</h2>
</li>
<li><p>➼ 이제 vscode에서 터미널을 열어 가상환경을 실행하자</p>
<h2 id="참고사항">참고사항</h2>
<ul>
<li>conda-forge는 다운로드 채널이다 <a href="https://www.inflearn.com/questions/203077">[참고]</a></li>
</ul>
</li>
</ul>
<h2 id="의문사항">의문사항</h2>
<ul>
<li>참고자료<a href="">1</a>, <a href="">2</a>, <a href="">3</a></li>
<li>현재 버전의 conda 가상환경은 global package에 접근하는가 ?<ul>
<li>PATH에 기록된 것은 명령어인가? 전부 명령어임</li>
<li>package는 어떻게 검색하는가?</li>
</ul>
</li>
<li>conda 가상환경이 접근하는 폴더는 어디인가 ? (폴더명들의 의미는?)<ul>
<li>접근하는 폴더가 바뀌면 shell script를 실행할때 주는 값들도 바뀌어야 하는가?</li>
</ul>
</li>
<li>conda 가상환경을 복제하려면 어떻게 해야하는가 ?</li>
<li>global package를 초기화 하려면 어떻게 해야하는가 ?<h1 id="끝">끝.</h1>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[빅쿼리/Bigquery] 날짜 함수]]></title>
            <link>https://velog.io/@thk-lightman/%EB%B9%85%EC%BF%BC%EB%A6%ACBigquery-%EB%82%A0%EC%A7%9C-%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@thk-lightman/%EB%B9%85%EC%BF%BC%EB%A6%ACBigquery-%EB%82%A0%EC%A7%9C-%ED%95%A8%EC%88%98</guid>
            <pubDate>Thu, 28 Jul 2022 01:31:35 GMT</pubDate>
            <description><![CDATA[<h1 id="date">DATE</h1>
<ul>
<li><p>UTC를 한국표준시(KST = UTC + 9)로 변환 <a href="https://velog.io/@rakkoon23/convert-UTC-to-KST-in-BigQuery">[출처]</a></p>
<pre><code class="language-sql">    DATETIME(datetime_value, &#39;Asia/Seoul&#39;)</code></pre>
<ul>
<li>주의사항: 해당 방식은 datetime_value에 단순히 9시간을 추가함 따라서 datetime_value가 UTC인지 아니면 이미 KST로 변환된 값인지 반드시 확인</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[R 가상환경 설정 with Anaconda]]></title>
            <link>https://velog.io/@thk-lightman/Mac-R-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-with-Anaconda</link>
            <guid>https://velog.io/@thk-lightman/Mac-R-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-with-Anaconda</guid>
            <pubDate>Fri, 08 Apr 2022 08:21:10 GMT</pubDate>
            <description><![CDATA[<p>MAC에 아나콘다 설정 및 가상환경 설정하기</p>
<ul>
<li>(선택) Python3 버전 변경하기</li>
<li>brew</li>
<li>wget 설치<pre><code class="language-shell">brew install wget</code></pre>
</li>
<li>terminal szh</li>
<li><a href="https://lv99.tistory.com/50">Anaconda3 설치( 설치가 안된다면 낮은 버전으로 시도하자 )</a><ul>
<li><a href="https://reop.anaconda.com/archive">https://reop.anaconda.com/archive</a> 에서 원하는 버전을 다운로드<pre><code class="language-shell">wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
bash Anaconda3-2019.07-Linux-x86_64.sh
* bash, zsh, sh 등 사용</code></pre>
</li>
</ul>
</li>
<li>R 가상환경 설정<pre><code>conda create --name SC_AddCar
conda activate SC_AddCar
conda install -c conda-forge r-base=4.1.0 r-essentials
conda install -c r rstudio
conda remove --name SC_AddCar --all</code></pre></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[GITHUB 원격저장소 연결 끊기, 초기화]]></title>
            <link>https://velog.io/@thk-lightman/Github-%EC%9B%90%EA%B2%A9%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%97%B0%EA%B2%B0-%EB%81%8A%EA%B8%B0-%EC%B4%88%EA%B8%B0%ED%99%94</link>
            <guid>https://velog.io/@thk-lightman/Github-%EC%9B%90%EA%B2%A9%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%97%B0%EA%B2%B0-%EB%81%8A%EA%B8%B0-%EC%B4%88%EA%B8%B0%ED%99%94</guid>
            <pubDate>Sun, 05 Dec 2021 07:08:42 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/thk-lightman/post/19027924-044f-4198-aceb-d833f2bc6a2c/image.png" alt="">
<code>로컬저장소A</code>와 <code>원격저장소α</code>가 연결되어 있을 때, <code>A</code>와 <code>α</code>의 연결을 끊고 <code>B</code>와 <code>α</code>를 연결하는 방법을 살펴보자.
<img src="https://images.velog.io/images/thk-lightman/post/275026c0-cc77-421e-886a-c7a1a99f025e/%ED%99%94%EB%A9%B4%20%EC%BA%A1%EC%B2%98%202021-12-05%20160725.png" alt=""></p>
<ol start="0">
<li>잘못 올린 파일만 삭제하고 싶을때는 다음과 같은 방법을 취한다.<pre><code class="language-shell"># 원격저장소 및 로컬저장소의 파일을 삭제합니다.
$ git rm -r [File Name]
</code></pre>
</li>
</ol>
<h1 id="원격저장소에-있는-파일만-삭제합니다로컬저장소의-파일은-삭제되지-않습니다">원격저장소에 있는 파일만 삭제합니다.(로컬저장소의 파일은 삭제되지 않습니다.)</h1>
<p>$ git rm --cached -r [File Name]</p>
<pre><code>
1. 현재 `로컬저장소A`와 `원격저장소α`의 연결을 끊는다.
```shell
git remote remove origin</code></pre><ol start="2">
<li><p><code>로컬저장소A</code>의 .git 디렉토리 삭제</p>
<pre><code class="language-shell">rm -r .git</code></pre>
</li>
<li><p><code>로컬저장소B</code>에서 git init수행 후 <code>원격저장소α</code>연결</p>
<pre><code class="language-shell">git init
git remote add origin https://github.com/계정/리포지토리.git</code></pre>
</li>
<li><p>현재 상태를 <code>원격저장소α</code>에 적용</p>
<pre><code class="language-shell"># origin은 git remote -v로 확인 후 입력
# 이 방법은 master를 origin/master 이전으로 되돌려서 push 오류가 날 때도 유용하다!
git push --force --set-upstream origin master</code></pre>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[시계열] 데이터 분석 준비]]></title>
            <link>https://velog.io/@thk-lightman/%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%A4%80%EB%B9%84</link>
            <guid>https://velog.io/@thk-lightman/%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%A4%80%EB%B9%84</guid>
            <pubDate>Sun, 14 Nov 2021 16:36:06 GMT</pubDate>
            <description><![CDATA[<h1 id="데이터-분석을-준비해보자">데이터 분석을 준비해보자</h1>
<ul>
<li>데이터 분석 준비하기<ul>
<li>분석 싸이클/용어/결과해석</li>
<li>시계열 분석 알고리즘 이해</li>
<li>시계열 데이터 패턴 추출<ul>
<li><code>실전</code> 설명변수X의 현실적 데이터 전처리 방향</li>
<li><code>실전</code> 종속변수Y의 효과적 데이터 전처리 방향</li>
</ul>
</li>
<li>시계열 데이터 분리</li>
<li>레퍼런스 알고리즘 구축</li>
<li>분석성능 확인</li>
<li>분석종료 위한 잔차진단<h1 id="데이터-분석-준비하기">데이터 분석 준비하기</h1>
<h2 id="시계열-데이터-패턴-추출">시계열 데이터 패턴 추출</h2>
<h3 id="실전-설명변수x의-현실적-데이터-전처리-방향">[실전] 설명변수X의 현실적 데이터 전처리 방향</h3>
$X_i$의 경우 조건수가 높은 것은 죄악시 되므로 조건수를 감소시켜야 한다. 크게 ① Scaling ② Multicorrelineatrity제거 ③ Regularization가 있다.<h4 id="①-scaling">① Scaling</h4>
<h4 id="②-multicorrelineatrity제거">② Multicorrelineatrity제거</h4>
VIF를 이용한 방법과 PCA를 이용한 방법이 있다.</li>
</ul>
</li>
<li>VIF</li>
<li>PCA<h4 id="③-regularization">③ Regularization</h4>
<h3 id="실전-종속변수y의-효과적-데이터-전처리-방향">[실전] 종속변수Y의 효과적 데이터 전처리 방향</h3>
종속변수 Y는 <strong>정상화</strong>를 통해 더 나은 예측에 도움을 얻는다. 정상화의 사례는 Random Walk ↔ White Noise, 매출 ↔ 점유율, Price ↔ Return 등 이 있으며, 이를 통해 다음과 같은 이점을 얻는다.<ul>
<li>① 예측력↑</li>
<li>② Parameter의 수↓</li>
<li>③ 알고리즘에러↓<h3 id="시계열-데이터-분리">시계열 데이터 분리</h3>
<h4 id="시간현실의-반영">시간현실의 반영</h4>
일반적으로 시계열 데이터의 분리는 FE 이후에 진행한다. 그러나 시계열 데이터는 test 데이터에 대한 정보가 미지이므로 train 데이터를 기준으로 test데이터를 추론하거나 train데이터의 경향이 test데이터에 반복된다는 전제를 갖고 수행한다. </li>
</ul>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>