<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Data Scientist</title>
    <description>Data Scientist가 되고 싶은 성장하는 데린이
</description>
    <link>http://bominkm.github.io/</link>
    <atom:link href="http://bominkm.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Wed, 12 Jan 2022 00:39:39 +0000</pubDate>
    <lastBuildDate>Wed, 12 Jan 2022 00:39:39 +0000</lastBuildDate>
    <generator>Jekyll v3.9.0</generator>
    
      <item>
        <title>[Programmers] JOIN</title>
        <description>&lt;h4 id=&quot;1-없어진-기록-찾기&quot;&gt;1. 없어진 기록 찾기&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;SELECT&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NAME&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;FROM&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ANIMAL_OUTS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;OUTER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;JOIN&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ANIMAL_INS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;WHERE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;IS&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;NULL&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;OUTER JOIN : 기준이 되는 데이터 파악하여 LEFT/RIGHT 명시&lt;/li&gt;
  &lt;li&gt;WHERE : 문제 조건 파악&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;2-있었는데요-없었습니다&quot;&gt;2. 있었는데요 없었습니다&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;SELECT&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NAME&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;FROM&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ANIMAL_INS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;OUTER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;JOIN&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ANIMAL_OUTS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;WHERE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;DATETIME&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;DATETIME&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;DATETIME&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;3-오랜-기간-보호한-동물1&quot;&gt;3. 오랜 기간 보호한 동물(1)&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;SELECT&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;DATETIME&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;FROM&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ANIMAL_INS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;LEFT&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;OUTER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;JOIN&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ANIMAL_OUTS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;WHERE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ANIMAL_ID&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;IS&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;NULL&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;DATETIME&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;LIMIT&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Tue, 04 Jan 2022 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/programmers/2022/01/04/join.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/programmers/2022/01/04/join.html</guid>
        
        <category>programmers</category>
        
        
        <category>programmers</category>
        
      </item>
    
      <item>
        <title>[About Me] Review</title>
        <description>&lt;p&gt;기억이 더 흐려지기 전에 &lt;strong&gt;데이터 사이언티스트 취뽀 후기&lt;/strong&gt;를 남기려 합니다.&lt;/p&gt;

&lt;p&gt;결론부터 말하자면 정말 운이 좋게도 원하던 분야의 원하던 직무였던 &lt;strong&gt;은행&lt;/strong&gt;의 &lt;strong&gt;데이터 사이언티스트&lt;/strong&gt;로 취뽀하게 되었습니다. 정말 원하던 곳이었는지는 곧 신입사원의 후기로 돌아오도록 하겠습니다…To be continued…&lt;/p&gt;

&lt;p&gt;저는 &lt;strong&gt;2021년 하반기&lt;/strong&gt;부터 취업준비를 시작했습니다. 정확하게는 여름방학 시즌부터 &lt;a href=&quot;https://jasoseol.com/&quot;&gt;자소설닷컴&lt;/a&gt;을 통해 채용공고를 살펴보았습니다. 첫 취준이었기 때문에 아무것도 모른채 일단 해보자! 라는 마인드로 &lt;strong&gt;서류&lt;/strong&gt;를 쓰기 시작했습니다. 다행히 많은 대외활동 경험에서 자기소개서를 써봤기 때문에 글을 쓰는 것 자체에 대한 거부감은 없었습니다. 하지만 경험 정리가 부족했고 초반에는 질보단 양이라는 생각으로 가능한 공고는 다 지원했기 때문에 떨어지는 회사도 많았습니다. 그래서 경험을 정리하고 무작정 제가 어필하고 싶은 경험보다는 회사나 직무에 핏한 경험을 쓰려고 노력했습니다.&lt;/p&gt;

&lt;p&gt;여름방학 시즌에 지원했던 은행과 카드사의 서류 및 코딩테스트에 합격하면서 9월에 서류 시즌과 면접을 동시에 병행해야 했습니다. 서류와 면접은 준비하는 과정이 굉장히 다르기 때문에 병행하는 데 어려움이 있었습니다. 면접을 준비하느라 서류를 제출하지 못한 공고에 대한 아쉬움과 후회가 남기도 했습니다. 하지만 면접이 더 큰 기회라고 생각하여 선택과 집중을 하였습니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;면접 준비&lt;/strong&gt;는 직접 말하면서 하는 것이 중요하다고 생각했습니다. 저는 굉장히 계획적이지 않은 사람(MBTI 완벽한 P..)이고 의지가 약한 사람이기 때문에 면접 스터디를 참여했습니다. 스터디원분들에게 받는 피드백 보다는 스스로를 속박하기 위한 목적이었습니다. 스터디는 같은 기업의 다른 직무분들을 모아 예상 질문을 토대로 모의면접을 진행하였습니다. 평소에는 생각만 했던 말들을 직접 내뱉으면서 연습할 수 있었고 타인에게는 어떻게 들리는지도 알 수 있어 좋았습니다. 저는 스터디에서 말이 너무 장황하다는 피드백을 받았고 덕분에 의식적으로 문장을 끊어가며 명료하게 말하는 연습을 할 수 있었습니다. 그리고 스스로 말을 잘한다고 생각한 적이 없었는데 의외로 다들 답변을 잘한다는 피드백을 주셔서 알 수 없는 자신감을 충전하기도 했습니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;실제 면접&lt;/strong&gt;은 운이 정말 중요하다고 생각했습니다. 면접 시간이나 면접관에 따라 결과가 바뀔 수 있다는 것을 느꼈습니다. 실제로 2개의 최종면접을 보았는데 한 회사는 첫 시간, 다른 회사는 마지막 시간에 참석하였습니다. 저는 첫 시간이 면접관분들도 면접의 문을 여는 첫 대상이기 때문에 유연하고, 마지막 시간은 면접관분들이 지쳐서 저에 대한 관심이 적거나 이미 티오가 다 차있지 않을까 생각했습니다. 하지만 오히려 첫 시간에는 면접관분의 열정이 가득하여 어려운 질문을 받았고, 마지막 시간에는 화기애애한 분위기 속에서 진행하였습니다. (물론 표본이 너무 적다고 생각합니다만) 면접 시간도 이렇게 운으로 작용한다고 생각했습니다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;프로젝트 경험 (목적, 역할, 결과, 회사에 대한 적용방안)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;면접 질문&lt;/strong&gt;은 대부분 프로젝트 경험에 대한 내용이었습니다. 프로젝트에 대한 간단한 설명과 목적을 이해하기 위한 질문이 선행되었고, 해당 프로젝트는 몇 명이서 얼만큼의 기간동안 진행되었는지 파악하였습니다. 팀프로젝트인 경우 본인의 역할이 중요했습니다. 대부분의 직무가 팀단위로 이루어지기 때문에 그 사이에서 어떤 역할을 할 수 있는지, 데이터 분석의 경우 EDA, 전처리, 모델링, 기획 등 여러 단계가 있는데 그 중에서 본인이 주로 담당하는 업무는 무엇인지 나타낼 수 있는 중요한 질문이었습니다. 프로젝트의 결과와 이를 입사하여 어느 부분에 어떻게 적용할 수 있을 것인지도 중요한 포인트였습니다. 본인이 직접 기여할 수 있는 부분을 어필하는 것이기도 하고, 회사나 직무에 대한 고민을 나타낼 수 있기 때문입니다.&lt;/p&gt;

&lt;p&gt;이렇게 최종 면접을 마치고 일주일동안 불안에 떨며 시간을 보낸 결과, 운좋게 최종 합격하였습니다. 정말 불안이 휘몰아친 취준 기간이었지만 함께 하는 사람이 있어 무사히 버텨낼 수 있었고 포기하지 않고 하나씩 해낸 결과 운좋게 성취할 수 있었습니다. 앞으로도 취준의 마음가짐을 떠올리며 모든 일에 간절히 살아보려 합니다.&lt;/p&gt;
</description>
        <pubDate>Wed, 29 Dec 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/about/2021/12/29/review.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/about/2021/12/29/review.html</guid>
        
        <category>about</category>
        
        
        <category>about</category>
        
      </item>
    
      <item>
        <title>[Study] SQL</title>
        <description>&lt;h4 id=&quot;1-update&quot;&gt;1. UPDATE&lt;/h4&gt;
&lt;p&gt;조건을 만족하는 행의 값 변경&lt;/p&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;UPDATE&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;테이블&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;SET&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'변경할값'&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;WHERE&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;조건&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;2-alter&quot;&gt;2. ALTER&lt;/h4&gt;
&lt;p&gt;테이블 속성 수정&lt;/p&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;ALTER&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;테이블&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;ADD&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;MODIFY&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;DROP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;조건&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;ADD / MODIFY / DROP : 열 추가 / 수정 / 삭제&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;3-cast&quot;&gt;3. CAST&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;CAST&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;AS&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DATA_TYPE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;CAST : 열 데이터 타입 변환&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;4-add_months&quot;&gt;4. ADD_MONTHS&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;ADD_MONTHS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;날짜&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;숫자&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;ADD_MONTHS : 날짜에 숫자만큼을 더하거나 뺀 값 반환&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;5-substr&quot;&gt;5. SUBSTR&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;SUBSTR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;시작위치&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;길이&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;SUBSTR : 열의 시작위치부터 길이만큼의 문자 반환&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;6-coalesce&quot;&gt;6. COALESCE&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;COALESCE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;COALESCE : 처음으로 NULL값이 아닌 열 반환&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;7-trim&quot;&gt;7. TRIM&lt;/h4&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;TRIM&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;TRIM : 문자열에서 공백 제거&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;8-teradata-volatile-table&quot;&gt;8. [Teradata] VOLATILE TABLE&lt;/h4&gt;
&lt;p&gt;DB에 저장되지 않는 임시 테이블 생성&lt;/p&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;CREATE&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;SET&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MULTISET&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;VOLATILE&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;TABLE&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;테이블&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;PRIMARY&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;INDEX&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;PRIMARY&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;INDEX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;COMMIT&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;DELETE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;PRESERVE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;ROWS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;CREATE : 생성&lt;/li&gt;
  &lt;li&gt;SET / MULTISET : 중복데이터 불가능 / 중복데이터 가능&lt;/li&gt;
  &lt;li&gt;VOLATILE TABLE : DB에 저장되지 않는 임시 테이블&lt;/li&gt;
  &lt;li&gt;PRIMARY INDEX : PI 설정&lt;/li&gt;
  &lt;li&gt;ON COMMIT DELETE / PRESERVE ROWS : 트랜잭션 단위로 commit 할 때 모든 행을 삭제 / 세션이 끝나면 rows를 삭제&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;9-teradata-row_number&quot;&gt;9. [Teradata] ROW_NUMBER()&lt;/h4&gt;
&lt;p&gt;열 1을 기준으로 구분하여 열 2 순서대로 정렬하여 데이터 반환&lt;/p&gt;

&lt;div class=&quot;language-sql highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;ROW_NUMBER&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OVER&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PARTITION&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;열&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;ASC&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;DESC&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;ROW_NUMBER : 결과 행에 순서대로 번호를 부여하여 반환&lt;/li&gt;
  &lt;li&gt;PARTITION BY [열1] : 열 1을 기준으로 데이터 구분&lt;/li&gt;
  &lt;li&gt;ORDER BY [열2] ASC / DESC : 열 2로 오름차순 / 내림차순 정렬&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 28 Dec 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/study/2021/12/28/query.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/study/2021/12/28/query.html</guid>
        
        <category>study</category>
        
        
        <category>study</category>
        
      </item>
    
      <item>
        <title>[About Me] To be a Data Scientist</title>
        <description>&lt;p&gt;제가 데이터 사이언티스트를 꿈꾸게 된 배경과 준비과정에 대한 기록을 남기려 합니다.&lt;/p&gt;

&lt;p&gt;우선 먼저 저의 배경을 간단히 설명드리겠습니다. 저는 학부시절 보건학과 통계학을 공부했고, 대외활동을 통해 데이터 분석에 흥미를 느껴 통계학 석사과정을 밟게 되었습니다. (이렇게 설명하다보니 자소서를 다시 쓰는 것 같아 눈물이 앞을 가리네요..) 석사과정 동안 빅데이터 동아리 활동도 하고, 여러 공모전에 나가 수상도 했습니다. 그런 경험을 쌓으면서 제가 데이터를 통해서 인사이트를 발굴하고, 예측 모델링을 비지니스에 적용하는 과정을 업으로 삼고 싶다고 생각하게 되었습니다. 그렇게 데이터 사이언티스트를 꿈꾸게 되었습니다.&lt;/p&gt;

&lt;p&gt;취업을 준비하면서 어느 분야에서 일하고 싶은지에 대한 고민도 하게 되었습니다. 어느 산업에도 갈 수 있는 것이 통계학의 장점이자 단점이기 때문에 분야에 대한 고민을 하게 되었습니다. 어느 산업에 대해서도 전문지식이 없는 상황이었기 때문에 더 어려웠지만, 아래와 같은 기준을 갖게 되었습니다.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;호기심&lt;br /&gt;
 저는 제가 실제로 궁금하지 않고 누가 단순히 시켜서 하는 일이라면 쉽게 몰입하지 못하는 성격입니다. 그래서 제가 정말 진심을 다해 호기심을 갖고 탐구하면서 공부할 수 있는 분야인지가 중요했습니다. 금융권은 일뿐만 아니라 저의 미래를 위해 계속 공부해야 하는 분야기 때문에 제가 계속 공부할 수 있겠다고 생각했습니다.&lt;/li&gt;
  &lt;li&gt;역할&lt;br /&gt;
 나의 직무가 어딘가에 도움이 될 것이라고 생각했을 때, 그 대상이 사람이었으면 좋겠다고 생각했습니다. 물론 어느 산업이든 궁극적으로는 사람에게 도움이 되는 일이겠지만, 보다 직접적으로 영향을 미칠 수 있는 일이길 바랐습니다. 사람은 어딜가나 소비를 하고, 누구나 금융거래를 합니다. 이런 데이터를 활용하여 고객에게 편리한 서비스나 필요한 서비스를 제공할 수 있을거라 꿈꾸게 되었습니다.&lt;/li&gt;
  &lt;li&gt;안정성&lt;br /&gt;
 산업이 어떠한 변수에 의해 존폐의 위기를 맞는 곳은 아니었으면 했습니다. 변화 자체를 두려워하지는 않기 때문에 변화가 빠른 것은 상관 없었지만, 존폐의 위협을 받는 산업이라면 일에 몰입하기 어려울 것 같다고 생각했습니다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;그렇게 금융권 분야의 데이터 사이언티스트를 꿈꾸게 되었습니다. (물론 취업 준비 당시에는 산업에 크게 구애받지 않고 지원했습니다 •⌄•)&lt;/p&gt;

&lt;p&gt;저는 석사 마지막 학기에 논문과 취업준비를 병행하였습니다. 그렇기 때문에 더욱 준비도 부족했고 아쉬움이 많이 남았습니다. 제가 만약 같은 시기로 돌아갈 수 있다면 미리 준비하고 싶은 것들을 정리해보았습니다.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;자신에 대한 이해&lt;br /&gt;
 취업을 준비하면서 여기까지 써야할까? 어느 분야로 지원해야하지? 하는 고민도 많이 하였습니다. 실제 공고를 보고 난 후에 이런 고민을 하게 된다면 공고에 지원하는 시간이 현저히 줄어들게 됩니다. 본인이 어느 산업에 가고 싶은지, 어느 직무에서 일하고 싶은지를 미리 확고하게 정해놓는다면 도움이 될 것 같습니다.&lt;br /&gt;
 실제로 통계학은 금융권, IT기업, 제조업 등 다양한 분야에 갈 수 있기 때문에 이에 대한 고민이 필요했습니다. 초반에는 취업을 목표로 하였기 때문에 가능한 공고는 모두 지원하였으나, 이는 체력적으로도 힘들고 장기적으로 봤을 때도 결국 원하는 곳이 아니라면 이직하게 되어 좋은 방법은 아니라고 느꼈습니다. 때문에 자신에 대한 고민을 충분히 하여 취준 시기에는 전형에 대한 준비에만 몰두하는 것이 좋을 것 같습니다.&lt;/li&gt;
  &lt;li&gt;코딩테스트 혹은 인적성 검사&lt;br /&gt;
 최근 코딩테스트 혹은 인적성 검사는 필수로 거쳐야 하는 전형입니다. 특히 데이터 분야를 희망한다면 코딩테스트를 거의 필수적으로 진행하게 됩니다. 코딩테스트는 기본적인 모델링과는 달리 알고리즘 문제가 대부분이고 단기간에 성취하기 어려운 분야라고 생각합니다. 인적성 검사는 사바사라고 단기간에 하시는 분들도 많지만, 인적성 문제 유형 정도는 미리 파악하고 있으면 향후에 시간이 없을 때 단기간에 점수를 올리는데 도움이 될 것 같습니다.&lt;/li&gt;
  &lt;li&gt;자격증 및 성적&lt;br /&gt;
 저는 영어 성적도 취업 준비하면서 임박하게 준비했고, 자격증도 기본적인 자격증뿐이었습니다. 물론 자격증과 성적은 합불합에 크게 영향을 미치지 않지만, 취준생 입장에서는 하나라도 더 준비되어 있다면 그게 자신감이 되는 것 같습니다. 그리고 특정 기업이나 특정 분야에서는 우대되는 자격증이나 가산점이 있는 경우도 있기 때문에 미리 공고를 참고하여 준비하면 도움이 될 것 같습니다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;이상 특별할 것 없는 보통의 데이터 사이언티스트를 향한 과정이었습니다 :)&lt;/p&gt;
</description>
        <pubDate>Tue, 21 Dec 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/about/2021/12/21/tobe.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/about/2021/12/21/tobe.html</guid>
        
        <category>about</category>
        
        
        <category>about</category>
        
      </item>
    
      <item>
        <title>[Github Blog] Colab Pro</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://colab.research.google.com/signup&quot;&gt;해당 사이트&lt;/a&gt;를 이용하면 결제 후 Colab Pro를 사용할 수 있습니다. Colab Pro는 월 $9.99를 결제하면 더 빠른 GPU, 더 긴 런타임, 추가 메모리의 혜택을 누릴 수 있습니다.&lt;/p&gt;
</description>
        <pubDate>Mon, 19 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/gitblog/2021/07/19/colab-pro.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/gitblog/2021/07/19/colab-pro.html</guid>
        
        <category>blog</category>
        
        
        <category>Gitblog</category>
        
      </item>
    
      <item>
        <title>[Algorithm] RNN</title>
        <description>&lt;ul&gt;
  &lt;li&gt;본 게시글을 Recurrent Neural Network Regularization 논문을 읽고 작성되었습니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;rnn&quot;&gt;RNN&lt;/h3&gt;
&lt;p&gt;인공 신경망을 성공적으로 적용하기 위해서는 정규화가 요구됩니다. 본 논문에서는 Dropout을 LSTM에 적용하여 과적합을 감소시키는 방법을 보여줍니다. 이는 language modeling, speech recognition, image caption generation, machine translation에 사용됩니다.&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://github.com/bominkm/bominkm.github.io/blob/master/_posts/images/RNN.png?raw=true&quot; /&gt;&lt;/center&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;본 논문의 주요 내용은 &lt;strong&gt;과적합&lt;/strong&gt;을 성공적으로 줄일 수 있는 &lt;strong&gt;LSTM에 드롭아웃을 적용&lt;/strong&gt;하는 방법입니다. 주요 아이디어는 드롭아웃 연산자를 &lt;strong&gt;비순환 연결&lt;/strong&gt;에만 적용하는 것입니다. 드롭아웃 연산자는 유닛이 운반하는 정보를 변형시키며, 중간 연산을 더 강력하게 수행하도록 합니다. 드롭아웃은 벡터 h 중 랜덤하게 고른 h를 0으로 만들어 드롭아웃을 수행합니다. 동시에, 유닛들의 모든 정보가 지워지는 것을 원하지 않습니다. 유닛들은 과거의 많은 타임 스텝에서 발생된 이벤트를 기억하는 것이 특히 중요합니다. 그림에서는 어떻게 정보가 타임스텝 t-2에서 발생한 사건에서 우리의 드롭아웃 구현 내에 있는 시간 스탭 t+2의 예측으로 흐를 수 있는지를 보여줍니다. 정보가 드롭아웃 연산에 의해 정확하게 L+1 시간에 변형된다는 것을 볼 수 있고, 이 횟수는 정보로 이동한 횟수와는 무관합니다. 일반적인 드롭아웃은 순환 연결에 혼란을 주는데 이것이 LSTM이 장기간 저장된 정보를 학습하는데 어렵게 만듭니다. 순환 연결에 드롭아웃을 사용하지 않음으로써 LSTM은 가치있는 기억 능력을 희생하지 않고 드롭아웃 정규화의 이익을 얻을 수 있습니다.&lt;/p&gt;
</description>
        <pubDate>Sun, 18 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/algorithm/2021/07/18/RNN.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/algorithm/2021/07/18/RNN.html</guid>
        
        <category>algorithm</category>
        
        
        <category>algorithm</category>
        
      </item>
    
      <item>
        <title>[Algorithm] Word Embedding</title>
        <description>&lt;ul&gt;
  &lt;li&gt;본 게시글을 Efficient Estimation of Word Representations in Vector Space 논문을 읽고 작성되었습니다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;자연어처리(NLP, Natural Language Processing)는 일상생활에서 사용하는 언어인 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 과정입니다. 그 중에서도 컴퓨터가 자연어를 이해할 수 있도록 단어를 변환하는 과정을 &lt;strong&gt;Embedding&lt;/strong&gt;이라고 합니다.&lt;/p&gt;

&lt;h3 id=&quot;1-model-architectures&quot;&gt;1. Model Architectures&lt;/h3&gt;
&lt;p&gt;초기 NLP는 단어를 하나의 작은 단위로 취급하여 one-hot-encoding 방식을 사용했습니다. 이러한 방식은 컴퓨터가 각 단어의 유사도를 판별할 수 없고 데이터의 크기에 따라 성능이 크게 좌우된다는 단점이 있습니다. 이를 보완하기 위해 &lt;strong&gt;distributed representation&lt;/strong&gt; 방식이 사용됩니다. 이는 비슷한 분포를 가진 단어들은 비슷한 의미를 가진다는 의미로 같은 문맥에서 등장하는 단어는 비슷한 의미를 가질 것이라는 뜻입니다. 이 방식은 단어 사이의 선형 규제를 보존하여 LSA보다 성능이 좋고 LDA보다 계산량이 적습니다.&lt;/p&gt;

&lt;h4 id=&quot;1-nnlm&quot;&gt;1. NNLM&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Neural Network를 이용하여 단어를 벡터화하는 초기 모델&lt;/li&gt;
  &lt;li&gt;Input layer, Projection layer, Hidden layer, Output layer로 구성&lt;/li&gt;
  &lt;li&gt;단어의 수를 선택하는 파라미터 지정해주어야 함&lt;/li&gt;
  &lt;li&gt;중심 단어 이전의 단어만 고려하고 그 이후의 단어는 고려하지 못함&lt;/li&gt;
  &lt;li&gt;계산 복잡도가 매우 높고 느림&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;2-rnnlm&quot;&gt;2. RNNLM&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;NNLM의 한계를 극복하기 위한 모델&lt;/li&gt;
  &lt;li&gt;Projection layer 없이 Hidden layer에 recurrent한 연결함&lt;/li&gt;
  &lt;li&gt;과거 정보가 Hidden layer에 표현되는 RNN 모델로 단기 기억 형성&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-new-log-linear-models&quot;&gt;2. New Log-linear Models&lt;/h3&gt;
&lt;center&gt;&lt;img src=&quot;https://github.com/bominkm/bominkm.github.io/blob/master/_posts/images/New%20Log-linear%20Models.png?raw=true&quot; /&gt;&lt;/center&gt;
&lt;p&gt;&lt;br /&gt;
앞서 설명한 모델의 계산 복잡도는 대부분 모델의 non-linear hidden layer에서 비롯되었습니다. 이는 neural network의 장점이지만, 데이터를 효율적으로 학습할 수 있는 방법이 필요합니다. 새로운 architecture는 앞선 모델을 이용하여 두 가지 단계를 거쳐 학습합니다. 먼저 연속 단어 벡터는 간단한 모델을 사용하여 학습한 다음 N-gram NNLM을 이러한 distributed representation 에서 학습합니다.&lt;/p&gt;

&lt;h4 id=&quot;1-cbow&quot;&gt;1. CBOW&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;빈칸 앞 뒤의 단어를 고려하여 빈칸에 들어갈 단어를 예측하는 모델&lt;/li&gt;
  &lt;li&gt;non-linear hidden layer 없이 projection layer가 모든 단어를 공유함&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;2-skip-gram&quot;&gt;2. Skip-gram&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;주어진 단어로 주위에 등장하는 단어의 등장 여부를 예측하는 모델&lt;/li&gt;
  &lt;li&gt;문맥으로 현재의 단어를 예측하는 대신, 같은 문장 내 다른 단어에 근거하여 단어의 분류 극대화&lt;/li&gt;
  &lt;li&gt;가까이 위치한 단어일수록 현재 단어와 더 관련 있는 단어로 생각&lt;/li&gt;
  &lt;li&gt;멀리 떨어진 단어일수록 낮은 확률로 샘플링&lt;/li&gt;
  &lt;li&gt;주변 단어의 범위를 늘릴수록 단어 벡터의 성능이 높아짐&lt;/li&gt;
  &lt;li&gt;계산량이 많아 학습이 느림&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 17 Jul 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/algorithm/2021/07/17/embedding.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/algorithm/2021/07/17/embedding.html</guid>
        
        <category>algorithm</category>
        
        
        <category>algorithm</category>
        
      </item>
    
      <item>
        <title>[Algorithm] SQL</title>
        <description>&lt;h3 id=&quot;1-sql-종류&quot;&gt;1. SQL 종류&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;종류&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;예시&lt;/th&gt;
      &lt;th&gt;설명&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;데이터 조작어(DML)&lt;/strong&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;SELECT, INSERT, UPDATE, SELECT&lt;/td&gt;
      &lt;td&gt;데이터 베이스에 들어있는 데이터를 조회하거나 명령하고, 테이블에 들어 있는 데이터에 변형을 가하는 명령어&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;데이터 정의어(DDL)&lt;/strong&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;CREATE, ALTER, DROP, RENAME&lt;/td&gt;
      &lt;td&gt;데이터 구조를 정의하는데 사용되며, 구조를 생성하거나 변경하거나 삭제하는 명령어&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;데이터 제어어(DCL)&lt;/strong&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;GRANT, REVOKE&lt;/td&gt;
      &lt;td&gt;데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;트랜잭션 제어어(TCL)&lt;/strong&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;COMMIT, ROLLBACK&lt;/td&gt;
      &lt;td&gt;DML에 의해 조작된 결과를 트랜잭션 별로 제어하는 명령어&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;ul&gt;
  &lt;li&gt;참고: SELECT &amp;gt; FROM &amp;gt; WHERE &amp;gt; GROUP BY &amp;gt; HAVING &amp;gt; ORDER BY&lt;/li&gt;
  &lt;li&gt;참괴: GROUP BY ROLLUP (position, subject)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-트랜잭션의-특성&quot;&gt;2. 트랜잭션의 특성&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;특성&lt;/th&gt;
      &lt;th&gt;설명&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;원자성&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;트랜잭션에 포함된 명령들은 모두 수행되거나, 모두 수행되지 않아야함&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;일관성&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;트랜잭션이 실행되기 전의 데이터베이스의 내용이 잘못되어 있지 않다면 이후에도 않아야함&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;고립성&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;트랜잭션은 다르 트랜잭션과 독립적으로 실행되어야함&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;&lt;strong&gt;지속성&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;트랜잭션의 결과는 반드시 데이터베이스에 영구적으로 저장되어야함&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;3-제약조건&quot;&gt;3. 제약조건&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;데이터의 품질의 높이기 위하여 사용&lt;/li&gt;
  &lt;li&gt;테이블 생성시 무결성 제약조건을 정의하여 프로그래밍 과정을 줄여줌&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;일시적으로 활성화 또는 비활성화 가능&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;종류
    &lt;ol&gt;
      &lt;li&gt;Primary key: 중복된 데이터와 Null값을 입력하지 못함&lt;/li&gt;
      &lt;li&gt;Unique: 중복된 데이터를 입력하지 못함&lt;/li&gt;
      &lt;li&gt;Not null: Null값을 입력하지 못함&lt;/li&gt;
      &lt;li&gt;Check: 특정 column에만 설정하는 제약&lt;/li&gt;
      &lt;li&gt;Foreign key: 참조하는 column에 거는 제약&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;SQL문
    &lt;ol&gt;
      &lt;li&gt;제약 추가: ALTER TABLE 테이블명 &lt;strong&gt;ADD CONSTRAINT&lt;/strong&gt; 제약이름&lt;/li&gt;
      &lt;li&gt;제약 수정: ALTER TABLE 테이블명 &lt;strong&gt;MODIFY&lt;/strong&gt; 컬럼명 컬럼조건&lt;/li&gt;
      &lt;li&gt;제약 삭제: ALTER TABLE 테이블명 &lt;strong&gt;DROP CONSTRAINT&lt;/strong&gt; 제약이름&lt;/li&gt;
      &lt;li&gt;제약 활성: ALTER TABLE 테이블명 &lt;strong&gt;DISABLE CONSTRAINT&lt;/strong&gt; 제약조건&lt;/li&gt;
      &lt;li&gt;제약 비활성: ALTER TABLE 테이블명 &lt;strong&gt;ENABLE CONSTRAINT&lt;/strong&gt; 제약조건&lt;/li&gt;
      &lt;li&gt;참조 비활성: ALTER TABLE 테이블명 &lt;strong&gt;DROP&lt;/strong&gt; 제약조건 &lt;strong&gt;CASCADE&lt;/strong&gt;;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;4-null&quot;&gt;4. NULL&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;공백 ≠ NULL&lt;/li&gt;
  &lt;li&gt;SUM(): NULL 무시하고 연산&lt;/li&gt;
  &lt;li&gt;NVL(“값”,”지정값”): 값이 NULL인 경우 지정값 출력&lt;/li&gt;
  &lt;li&gt;NVL2(“값”,”지정값”,”지정값2”): 값이 NULL아 아닌 경우 지정값1, NULL인 경우 지정값2 출력&lt;/li&gt;
  &lt;li&gt;NULLIF(“EXP1”,”EXP2”): EXP1 = EXP2 이면 NULL, 다르면 EXP1&lt;/li&gt;
  &lt;li&gt;DECODE(“EXP1”,”EXP2”,”EXP3”): EXP1 = EXP2이면 EXP3, 아니면 NULL&lt;/li&gt;
  &lt;li&gt;CASE: IF-THEN-ELSE 만족하지 않으면 NULL&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;COALESCE: NULL이 아닌 최초의 EXP 출력&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;COUNT
    &lt;ul&gt;
      &lt;li&gt;COUNT(*): 테이블의 모든 ROW의 수&lt;/li&gt;
      &lt;li&gt;COUNT(column): 해당 column의 NOT NULL인 ROW의 수&lt;/li&gt;
      &lt;li&gt;COUNT(DISTINCT column): 해당 column의 중복을 제거하고 NOT NULL인 ROW의 수&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 26 May 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/algorithm/2021/05/26/sqld.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/algorithm/2021/05/26/sqld.html</guid>
        
        <category>algorithm</category>
        
        
        <category>algorithm</category>
        
      </item>
    
      <item>
        <title>[Algorithm] FDA</title>
        <description>&lt;h3 id=&quot;1-introduction&quot;&gt;1. Introduction&lt;/h3&gt;
&lt;p&gt;무한차원의 값을 가지는 데이터를 &lt;strong&gt;함수형 데이터&lt;/strong&gt;라고 합니다. 예를 들어 매분, 매시, 매초 변하는 주식이나 손글씨도 좌표를 가지는 함수형 데이터라고 할 수 있습니다. 함수형 데이터는 다음과 같은 특징을 가집니다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;quantity&lt;/li&gt;
  &lt;li&gt;frequency&lt;/li&gt;
  &lt;li&gt;similarity&lt;/li&gt;
  &lt;li&gt;smoothness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;함수형 데이터는 관측된 데이터에 대한 요약된 정보를 나타내며 함수의 &lt;strong&gt;shape&lt;/strong&gt;에 초점을 맞춥니다. 이 때, smoothing하여 표현하며 관측되지 않은 값이 있더라도 함수형 데이터로 나타낼 수 있습니다.&lt;/p&gt;

&lt;p&gt;함수형 데이터 분석 FDA에서는 raw data를 &lt;strong&gt;functional object&lt;/strong&gt;로 바꿔주어야 합니다. 이 때, &lt;strong&gt;Basis function expansion&lt;/strong&gt;을 사용할 수 있습니다.&lt;/p&gt;

&lt;p&gt;\( X_n(t) = \sum_{m=1}^M c_{nm} B_m(t) \)&lt;/p&gt;

&lt;p&gt;$X_n(t)$은 shape의 linear combination을 표현하기 위해 사용되는 smooth function입니다. $B_m$은 basis function, $c_{nm}$은 expansion coefficient를 의미합니다.&lt;/p&gt;

&lt;p&gt;Basis 종류는 여러 가지가 있으며 그 중 대표적으로 사용되는 basis를 소개해드리려 합니다. &lt;strong&gt;B-spline&lt;/strong&gt;은 FDA에서 가장 많이 사용되며 구역을 나누어 polynomial을 적합시키는 방법입니다. 구역을 나누어 polynomial을 적합하고 join하는 과정에서 smooth하게 join하기 위한 knot가 필요합니다. knot는 polynomial 차원을 연결하는 점이므로 knot = polynomial - 1 입니다. &lt;strong&gt;Fourier basis&lt;/strong&gt;는 데이터가 계절처럼 periodic할 때 사용되며, polynomial인 경우에 사용할 수 있습니다. 단, 시작값과 끝값이 같은 경우에 사용할 수 있다는 점에 유의해야 합니다.&lt;/p&gt;

&lt;p&gt;이렇게 만든 functional data로 &lt;strong&gt;mean&lt;/strong&gt;, &lt;strong&gt;covariance&lt;/strong&gt;, &lt;strong&gt;principal component&lt;/strong&gt;를 구할 수 있습니다. mean과 covariance는 아래 식처럼 간단한 통계적 기법으로 구할 수 있습니다.&lt;/p&gt;

&lt;p&gt;\( \bar{X_N}(t) = \frac{1}{N} \sum_{n=1}^N X_n(t) \)&lt;/p&gt;

&lt;p&gt;\( \hat{c}(t, s) = \frac{1}{N-1} \sum_{n=1}^N (X_n(t) − \bar{X}_N(t))(X_n(s) −X_N(s)) \)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FPCA&lt;/strong&gt;에서 principal component는 covariance function의 eigenfunction을 의미하며, 몇 번째 FPC가 전체 분산의 몇 퍼센트를 설명하는지 알 수 있습니다.&lt;/p&gt;

&lt;h3 id=&quot;2-further-topics&quot;&gt;2. Further Topics&lt;/h3&gt;

&lt;p&gt;함수형 데이터로는 그 외에도 여러 가지 분석을 할 수 있습니다. 함수형 데이터를 미분하면 shape를 파악할 수 있습니다. 미분할 때는 &lt;strong&gt;Matern process&lt;/strong&gt;를 이용할 수 있는데, 이는 covariance function에 대한 Gaussian process입니다.&lt;/p&gt;

&lt;p&gt;함수가 적절히 smooth되어 있지 않으면 FDA 결과는 noise가 많아 잘못된 결과를 낼 수도 있습니다. 이렇듯 데이터가 너무 wiggly한 경우에는 규제를 주어 smooth하는 &lt;strong&gt;Penalized smoothing&lt;/strong&gt;을 할수도 있습니다.&lt;/p&gt;
</description>
        <pubDate>Tue, 25 May 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/algorithm/2021/05/25/FDA.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/algorithm/2021/05/25/FDA.html</guid>
        
        <category>algorithm</category>
        
        
        <category>algorithm</category>
        
      </item>
    
      <item>
        <title>[Algorithm] R Package</title>
        <description>&lt;h3 id=&quot;1-introduction&quot;&gt;1. Introduction&lt;/h3&gt;
&lt;p&gt;R은 패키지가 다양하여 많은 사람들이 이용하고 있습니다. 2019년 6월을 기준으로 14,000여개의 패키지가 CRAN(Comprehensive R Archive Network)에서 사용가능하다고 합니다.&lt;/p&gt;

&lt;p&gt;R을 사용하시는 분들이라면 패키지를 이용하는 방법은 대부분 알고 계실 것입니다.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;install.packages(&quot;x&quot;)&lt;/code&gt; : CRAN으로부터 패키지 설치&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;library(&quot;x&quot;)&lt;/code&gt;: 패키지 이용&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;help(package = &quot;x&quot;)&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;package?x&lt;/code&gt;: 패키지에 대한 help&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;본문에서는 R 패키지를 생성하거나 개발하기 위한 방법을 소개하고자 합니다. 여기에서는 패키지를 &lt;strong&gt;자동화&lt;/strong&gt;하는 것이 가장 중요한 원칙이며 &lt;strong&gt;Rstudio&lt;/strong&gt;와 &lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;devtools&lt;/code&gt;&lt;/strong&gt; 가 개발환경에 있어서 가장 중요합니다.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;R/&lt;/code&gt;: 패키지 코드&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;data/&lt;/code&gt;: 패키지에 내장되어 있는 데이터&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DESCRIPTION&lt;/code&gt;: 패키지에 대한 설명&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;roxygen2&lt;/code&gt;: 패키지의 함수를 이용하는 방법&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;vignettes&lt;/code&gt;: 여러 다른 패키지와 함께 사용하는 방법&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;testthat&lt;/code&gt;: 패키지에 대한 test&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NAMESPACE&lt;/code&gt;: 다른 패키지를 사용하기 위해서 필요한 함수&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;src/&lt;/code&gt;: 컴퓨터 계산 속도 향상을 휘한 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C&lt;/code&gt;와 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C++&lt;/code&gt; 코드&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 09 Apr 2021 00:00:00 +0000</pubDate>
        <link>http://bominkm.github.io/algorithm/2021/04/09/rpackage.html</link>
        <guid isPermaLink="true">http://bominkm.github.io/algorithm/2021/04/09/rpackage.html</guid>
        
        <category>algorithm</category>
        
        
        <category>algorithm</category>
        
      </item>
    
  </channel>
</rss>
