<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>딥블루</title>
    <link>https://deepblue28.tistory.com/</link>
    <description>www.deepblue.pe.kr</description>
    <language>ko</language>
    <pubDate>Mon, 6 Jul 2026 10:49:37 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>deepblue.kblee</managingEditor>
    <image>
      <title>딥블루</title>
      <url>https://t1.daumcdn.net/cfile/tistory/174A15344E4785FF2C</url>
      <link>https://deepblue28.tistory.com</link>
    </image>
    <item>
      <title>축적의 시간II - 이정동 교수</title>
      <link>https://deepblue28.tistory.com/entry/%EC%B6%95%EC%A0%81%EC%9D%98-%EC%8B%9C%EA%B0%84II-%EC%9D%B4%EC%A0%95%EB%8F%99-%EA%B5%90%EC%88%98</link>
      <description>&lt;p class=&quot;p1&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;;&quot;&gt;KBS 스페셜 -&amp;nbsp;&lt;/span&gt;축적의&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;시간&lt;span class=&quot;s1&quot;&gt;II - 이정동 교수&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;아이디어는&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;발에 차일 정도로&amp;nbsp;&lt;/span&gt;널렸다&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;스케일업이&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;필요하다&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;끈기있게&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;하나씩&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;실험하고&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;연습하고&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;반복해서&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;노하우를&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;쌓아야&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;한다. 이것이 '스케일업' 이다.&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;오랜시간이&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;필요.&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;구글과 애플이 내놓는 혁신은 오랜시간 스케일업의 결과이다. 절대 반짝이는 아이디어 때문이 아니다.&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;




&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.Apple SD Gothic NeoI'; color: #454545}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px}
span.s1 {font: 12.0px 'Helvetica Neue'}
&lt;/style&gt;











&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;지금 어려우니 조금 더 좋아지면 스케일업 하자&lt;span class=&quot;s1&quot;&gt;. 이것은 틀렸다.&amp;nbsp;&lt;/span&gt;살기&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;위해서&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;지금&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;해야&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;한다!&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;구글 애플도 여유 없기는 매한가지다.&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;역량이 뛰어난 한국의 10년 경력 엔지니어는 100년동안 스케일업 해온 회사의 같은 경력을 가진&amp;nbsp;엔지니어를 '절대' 이길 수 없다. 이 엔지니어는 110년 경력의 엔지니어이기 때문이다.&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;소비자는&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&lt;/span&gt;정체성이&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&lt;/span&gt;있는&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&lt;/span&gt;제품을&lt;span class=&quot;s1&quot;&gt;&amp;nbsp;&lt;/span&gt;원한다. 자기만의 색깔이 있어야!&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;항상 새로운 아이디어를 요구하거나 선택과 집중을 이야기하는 리더는 '옛날' 리더이다.&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>좋은글</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/111</guid>
      <comments>https://deepblue28.tistory.com/entry/%EC%B6%95%EC%A0%81%EC%9D%98-%EC%8B%9C%EA%B0%84II-%EC%9D%B4%EC%A0%95%EB%8F%99-%EA%B5%90%EC%88%98#entry111comment</comments>
      <pubDate>Fri, 21 Jul 2017 00:13:15 +0900</pubDate>
    </item>
    <item>
      <title>어쩌다 어른</title>
      <link>https://deepblue28.tistory.com/entry/%EC%96%B4%EC%A9%8C%EB%8B%A4-%EC%96%B4%EB%A5%B8</link>
      <description>&lt;p class=&quot;p1&quot;&gt;어쩌다어른&lt;span class=&quot;s1&quot;&gt; - &lt;/span&gt;허태균&lt;span class=&quot;s1&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;한국사람의&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;심리를&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;파헤치다&lt;span class=&quot;s1&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;아이패드&lt;span class=&quot;s1&quot;&gt;-&lt;/span&gt;신문을듣다&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;전화를보다&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;별을만지다&lt;span class=&quot;s1&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;한국&lt;span class=&quot;s1&quot;&gt;-&lt;/span&gt;더크게&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;더&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;빠르게&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;더세게&lt;span class=&quot;s1&quot;&gt;-&lt;/span&gt;패스트팔로어&lt;span class=&quot;s1&quot;&gt;-&lt;/span&gt;왜&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;만드는지&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;모르는것이다&lt;span class=&quot;s1&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;실용성을&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;이기는&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;상징성&lt;span class=&quot;s1&quot;&gt;-&lt;/span&gt;웨딩드레스&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;가상현실&lt;span class=&quot;s1&quot;&gt; - &lt;/span&gt;아빠가&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;태워주는&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;자전거&lt;span class=&quot;s1&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;나만의&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;이유&lt;span class=&quot;s1&quot;&gt;, &lt;/span&gt;나만의&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;가치를&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;찾아라&lt;span class=&quot;s1&quot;&gt;, &lt;/span&gt;찾아줘라&lt;span class=&quot;s1&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot;&gt;———————————————&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;감각을&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;파헤치다&lt;span class=&quot;s1&quot;&gt; - &lt;/span&gt;김경일&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;다양한&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;경험을&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;해야&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;오래&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;산다&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;개발자들은&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;뭐든&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;만들수&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;있다고&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;말한다&lt;span class=&quot;s1&quot;&gt;. &lt;/span&gt;하지만&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;뭘&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;만들지를&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;모른다&lt;span class=&quot;s1&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;이건&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;경험이&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;부족해서이다&lt;span class=&quot;s1&quot;&gt; - &lt;/span&gt;스티브잡스&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;비슷한&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;경험을&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;계속하면&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;시간이&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;빨리&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;간다&lt;span class=&quot;s1&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;다양한&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;경험을&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;해야&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;오래&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;산것&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;같은&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;느낌이&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;든다&lt;span class=&quot;s1&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;—&amp;gt; &lt;/span&gt;귀차니즘을&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;타파해야&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;한다&lt;span class=&quot;s1&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;큰&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;성공&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;거둔&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;사람은&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;미래가&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;절대&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;안변한다고&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;생각한다&lt;span class=&quot;s1&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;




&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.Apple SD Gothic NeoI'; color: #454545}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545}
span.s1 {font: 12.0px 'Helvetica Neue'}
&lt;/style&gt;



























&lt;/p&gt;&lt;p class=&quot;p1&quot;&gt;미래를&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;작게&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;예측하더라&lt;span class=&quot;s1&quot;&gt;. —&amp;gt; &lt;/span&gt;빌게이츠&lt;span class=&quot;s1&quot;&gt; 640kb&lt;/span&gt;&lt;/p&gt;</description>
      <category>좋은글</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/110</guid>
      <comments>https://deepblue28.tistory.com/entry/%EC%96%B4%EC%A9%8C%EB%8B%A4-%EC%96%B4%EB%A5%B8#entry110comment</comments>
      <pubDate>Fri, 21 Jul 2017 00:03:55 +0900</pubDate>
    </item>
    <item>
      <title>How to install subversion 1.6.x on Mac</title>
      <link>https://deepblue28.tistory.com/entry/How-to-install-subversion-16x-on-Mac</link>
      <description>&lt;p&gt;check subversion versions (on OS X 10.9.3)&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;$ brew versions subversion

1.8.9    git checkout 9b75c92 /usr/local/Library/Formula/subversion.rb
1.8.8    git checkout c6cf8ac /usr/local/Library/Formula/subversion.rb
1.8.5    git checkout fa4311c /usr/local/Library/Formula/subversion.rb
1.8.4    git checkout ce669eb /usr/local/Library/Formula/subversion.rb
1.8.3    git checkout 9b438ce /usr/local/Library/Formula/subversion.rb
1.8.0    git checkout f56b641 /usr/local/Library/Formula/subversion.rb
1.8.1    git checkout 55577bb /usr/local/Library/Formula/subversion.rb
1.7.10   git checkout 0060dc3 /usr/local/Library/Formula/subversion.rb
1.7.9    git checkout b0e6223 /usr/local/Library/Formula/subversion.rb
1.7.8    git checkout f7a42d2 /usr/local/Library/Formula/subversion.rb
1.7.7    git checkout a6dcc41 /usr/local/Library/Formula/subversion.rb
1.7.6    git checkout 6b8d25f /usr/local/Library/Formula/subversion.rb
1.7.5    git checkout 5d5cd70 /usr/local/Library/Formula/subversion.rb
1.7.4    git checkout dc4245c /usr/local/Library/Formula/subversion.rb
1.7.3    git checkout eb97154 /usr/local/Library/Formula/subversion.rb
1.7.2    git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
1.6.17   git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
1.6.16   git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;get 1.6.16 version formula&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;$ git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;install subversion&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;$ brew install subversion
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;If an error occurs like this... 만약 빌드 도중 이런 에러를 만나면..&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;checking whether Apache version is compatible with APR version... no
configure: error: Apache version incompatible with APR version
&lt;/pre&gt;
&lt;p&gt;add --without-apx&amp;nbsp;configure argument. configure 옵션에&amp;nbsp;--without-apxs 를 추가해준다.&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;/usr/local/Library/Formula/subversion.rb 파일을 열어 configure args에 --without-apxs 옵션을 추가.
&lt;/pre&gt;
&lt;p&gt;https://github.com/Homebrew/homebrew-versions/issues/373&lt;br /&gt;https://github.com/Homebrew/homebrew-versions/commit/1d203e29e6219967164337a00672fc071e355cec 참조&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;check subversion version&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;$ svn --version
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;If version is different, switch version&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;$ brew switch subversion 1.6.16
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;and re-check svn version on new terminal&lt;/p&gt;
&lt;pre class=&quot;brush:shell; gutter:false&quot;&gt;$ svn --version
svn, version 1.6.16 (r1073529)
   compiled Jul 13 2014, 00:18:37

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Completed.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description>
      <category>OS/Mac</category>
      <category>1.6</category>
      <category>Apr</category>
      <category>mac</category>
      <category>Subversion</category>
      <category>svn</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/109</guid>
      <comments>https://deepblue28.tistory.com/entry/How-to-install-subversion-16x-on-Mac#entry109comment</comments>
      <pubDate>Sun, 13 Jul 2014 01:14:18 +0900</pubDate>
    </item>
    <item>
      <title>[HBase] Client 개발 참고 사항</title>
      <link>https://deepblue28.tistory.com/entry/HBase-Client-%EA%B0%9C%EB%B0%9C-%EC%B0%B8%EA%B3%A0-%EC%82%AC%ED%95%AD</link>
      <description>&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;&lt;b&gt;HTable&lt;/b&gt;&lt;/span&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 인스턴스는 한번만 생성하고,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; text-align: -webkit-auto; background-color: transparent;&quot;&gt;프로그램이 끝날때까지 재사용하라.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- Thread 별로 만들어라.(HTablePool 사용 하라.)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;orphans: 2; text-align: -webkit-auto; widows: 2;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; font-size: 10pt; line-height: normal;&quot;&gt;- HTablePool 사용 예(&lt;/span&gt;&lt;span style=&quot;background-color: transparent; line-height: normal;&quot;&gt;&lt;font color=&quot;#000000&quot; face=&quot;나눔고딕&quot; size=&quot;2&quot;&gt;HTableInterfaceFactory 인터페이스로 한번 감싸서 사용하면 편하다)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;
&lt;span style=&quot;font-size: 10pt;&quot;&gt;
&lt;pre class=&quot;brush:java&quot;&gt;public class BaseHTableInterfaceFactory implements HTableInterfaceFactory {
	
	private HTablePool hTablePool;
	
	public BaseHTableInterfaceFactory(Configuration config, int maxSize) {
		hTablePool = new HTablePool(config, maxSize);
	}
	
	@Override
	public HTableInterface createHTableInterface(Configuration config, byte[] tableName) {
		return hTablePool.getTable(tableName);
	}

	@Override
	public void releaseHTableInterface(HTableInterface table) throws IOException {
		table.close();
	}
}
&lt;/pre&gt;&lt;/span&gt;
&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 내부적으로 병렬처리 thread를 가진다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;pre class=&quot;brush:java&quot;&gt;
  public HTable(Configuration conf, final byte [] tableName)
  throws IOException {
    ...
    int maxThreads = conf.getInt(&quot;hbase.htable.threads.max&quot;, Integer.MAX_VALUE);
    if (maxThreads == 0) {
      maxThreads = 1; // is there a better default?
    }
    long keepAliveTime = conf.getLong(&quot;hbase.htable.threads.keepalivetime&quot;, 60);

    // Using the &quot;direct handoff&quot; approach, new threads will only be created
    // if it is necessary and will grow unbounded. This could be bad but in HCM
    // we only create as many Runnables as there are region servers. It means
    // it also scales when new region servers are added.
    this.pool = new ThreadPoolExecutor(1, maxThreads,
        keepAliveTime, TimeUnit.SECONDS,
        new SynchronousQueue&lt;Runnable&gt;(),
        Threads.newDaemonThreadFactory(&quot;hbase-table&quot;));
    ((ThreadPoolExecutor)this.pool).allowCoreThreadTimeOut(true);

    /* 설명:
     기본 생성자의 설정이다.
     coreThread=1, maxThreads=Integer.MAX_VALUE 이고, SynchronousQueue를 사용한다.
     따라서 region 서버 수만큼 Thread를 생성하고 keepAliveTime 동안 유지했다가 Thread를 죽인다.
     뜨문 뜨문 호출되는 경우 Thread가 만들어졌다 없어졌다를 반복할 것이므로, 환경에 맞게 조정해서 사용하라.
    */
  ...
  }
&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- HTable은 HConnection을 사용해서 원격서버와 통신하고, HConnectionManager가 이 커넥션을 관리한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- HBase 내부에서는 연결들이 맵 안에 저장되는데 현재 사용중인 Configuration 인스턴스가 키가된다. 동일한 Configuration을 참조하는 HTable 인스턴스를 여러개 만들었다면, 이들 모두는 HConnection 객체를 공유한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;Put&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 쓰기 버퍼 크기를 늘리면, 클라이언트 뿐 아니라, 서버에서도 많은 메모리를 소비한다. 서버에서도 전송받은 데이터를 인스턴스화 하기 때문이다.(P.148)&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- 크기가 큰 셀만을 저장한다면 로컬 버퍼는 덜 유용하다. 실제 데이터 전송 시간이 대부분일 것이고, 이럴 경우는 버퍼 크기를 늘리지 않는 쪽이 권장된다. (p.148)&lt;/span&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;batch()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- 일괄처리 연산은 Put처럼 쓰기버퍼를 사용하지 않는다. 동기적이며 바로 바로 처리한다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- 각 작업에 대한 결과를 따로 보고 받을 수 있다. (Object results[])&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- 일괄처리 명령은 NotServingRegionException(리전 이동을 알리는 예외)와 같은 일시적인 에러에는 여러 번 시도해본다. hbase.client.retries.number 속성이며 기본값은 10이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;
RowLock/Scanner&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- hbase.regionserver.lease.period = 60000 (1분) 락 만료 시간 또는 스캐너 임대 만료 시간에 모두 사용됨.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; - 이 설정은 클라이언트측 Configure에 해봤자 무용지물이다. 리전서버 hbase-site.xml에 설정되어야 한다. (p200)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;Scan&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- Scan.next() 호출 시 RPC가 일어난다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- setCaching() / hbase.client.scanner.caching (default=1) 를 조정하여 한번의 RPC에서 여러개의 row를 가져오도록 할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; - 데이터 큰 경우 클라이언트에 전송되는 데이터량이 많아져 수행시간이 길어지고, 메모리 문제로 이어질 수 있다. (p.200)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- setBatch()를 조절하여 한번에 읽어올 컬럼개수를 정할 수 있다. setBatch(5)일 때 컬럼이 17개면 Result인스턴스를 총 4번 받게되고, 세번은 5개, 한번은 2개를 반환할 것이다.(p201) --&amp;gt; RPC 횟수를 조절할 수 있다(p.202)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;Filter&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 필터는 클라이언트측에서 생성된 후 RPC를 통해 서버로 전송돼 실행된다. (p.210)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 사용자 정의 Filter는 jar로 묶어 리전서버 classpath에 넣어줘야 한다(hbase-env.sh). 재시작 필요 (p.244)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 필터 요약(p.246)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;보조처리기(Coprocessor)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- preCreateTable(), postCreateTable(), preGet(), postGet() ... 등&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 정적, 동적 로드 가능하나 0.92 버전 현재 동적 로드 API는 아직 없음. (p.262)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;HTablePool&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- maxSize는 HTableInterface 인스턴스 개수의 상한선의 의미하지 않는다. 5로 지정하고 getTable()을 10번 실행하면 HTable이 10개 생성된다. 이들을 반환하면 5개까지만 남고 나머지는 버려진다. 즉, Pool에 남겨둘 인스턴스의 상한선이다. (p.289)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;HConnectionManager (p.292)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 동일한 설정의 HTable은 모두 같은 HConnection객체를 공유한다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; - 이 공유는 같은 Configure객체를 사용할 때 적용된다. (p.293)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- hbase.client.pause = 1000&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- hbase.client.retries.number = 10&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- hbase.client.rpc.maxattempts = 1&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- hbase.rpc.timeout = 60000&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;
- hbase.client.prefetch.limit = 10&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;참고: 소스분석 &amp;amp;&amp;nbsp;O'Reilly - HBase 완벽 가이드&lt;/p&gt;</description>
      <category>Server</category>
      <category>client</category>
      <category>Hbase</category>
      <category>개발</category>
      <category>참고</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/108</guid>
      <comments>https://deepblue28.tistory.com/entry/HBase-Client-%EA%B0%9C%EB%B0%9C-%EC%B0%B8%EA%B3%A0-%EC%82%AC%ED%95%AD#entry108comment</comments>
      <pubDate>Wed, 12 Mar 2014 14:50:04 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] 멀티 컬럼 select</title>
      <link>https://deepblue28.tistory.com/entry/MySQL-%EB%A9%80%ED%8B%B0-%EC%BB%AC%EB%9F%BC-select</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;CREATE&amp;nbsp;TABLE&amp;nbsp;`mytable`&amp;nbsp;(&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`userid`&amp;nbsp;bigint(20)&amp;nbsp;NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`groupid`&amp;nbsp;bigint(20)&amp;nbsp;NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`state`&amp;nbsp;tinyint(1)&amp;nbsp;NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`col1`&amp;nbsp;bigint(20)&amp;nbsp;DEFAULT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`cal2`&amp;nbsp;varchar(200) NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`cal3`&amp;nbsp;varchar(100)&amp;nbsp;NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`create_time`&amp;nbsp;datetime&amp;nbsp;NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;`update_time`&amp;nbsp;datetime&amp;nbsp;NOT&amp;nbsp;NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;PRIMARY&amp;nbsp;KEY&amp;nbsp;(`userid`,`groupid`),&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;&amp;nbsp;&amp;nbsp;KEY&amp;nbsp;`idx_userid_createtime`&amp;nbsp;(`userid`,`create_time`)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;)&amp;nbsp;ENGINE=InnoDB&amp;nbsp;DEFAULT&amp;nbsp;CHARSET=utf8&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(1) 컬럼 조합 IN 쿼리&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;EXPLAIN&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;SELECT *&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;FROM mytable&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; font-family: 'Courier New';&quot;&gt;WHERE (userId, groupid) IN ((1526291770280964803,2679212559264916326),(1526292017760867305, 2679249801360511502),(1526421185616035771,2679342905646882845));&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;id|select_type|table &amp;nbsp;|type|possible_keys|key |key_len|ref |rows|Extra&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5; font-family: 'Courier New';&quot;&gt;1 |SIMPLE &amp;nbsp; &amp;nbsp; |mytable|ALL |NULL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |NULL|NULL &amp;nbsp; |NULL|172 |Using where&lt;/span&gt;&lt;/p&gt;&lt;p&gt;index를 타지 않는다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(2) FROM절 subquery&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;EXPLAIN&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;SELECT a.* FROM (SELECT * FROM mytable WHERE userid IN (1526291770280964803,1526292017760867305,1526421185616035771)) a&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; font-family: 'Courier New';&quot;&gt;WHERE a.groupid IN (2679212559264916326, 2679249801360511502, 2679342905646882845);&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;id|select_type|table &amp;nbsp; &amp;nbsp; |type |possible_keys|key|key_len|ref|rows|Extra&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;1 |PRIMARY &amp;nbsp; &amp;nbsp;|&amp;lt;derived2&amp;gt;|ALL &amp;nbsp;|NULL|NULL|NULL|NULL|15|Using where&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5; font-family: 'Courier New';&quot;&gt;2 |DERIVED &amp;nbsp; &amp;nbsp;|mytable &amp;nbsp; |range|PRIMARY,idx_userid_createtime|PRIMARY|8|NULL|15|Using where&lt;/span&gt;&lt;/p&gt;&lt;p&gt;userid가 index를 탄다. groupid도 인덱스를 걸어줘야 할 듯.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(3) 각 컬럼에 대해서 IN query&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;EXPLAIN&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;SELECT *&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; font-family: 'Courier New';&quot;&gt;FROM mytable WHERE userid IN (1526291770280964803,1526292017760867305,1526421185616035771) AND groupid IN (2679212559264916326, 2679249801360511502, 2679342905646882845);&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-family: 'Courier New';&quot;&gt;id|select_type|table &amp;nbsp;|type |possible_keys|key|key_len|ref|rows|Extra&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5; font-family: 'Courier New';&quot;&gt;1 |SIMPLE &amp;nbsp; &amp;nbsp; |mytable|range|PRIMARY,idx_userid_createtime|PRIMARY|16|NULL|9|Using where&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;결론)&lt;/b&gt; 3번이 가장 나아보임.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Server</category>
      <category>Column</category>
      <category>Multi</category>
      <category>MYSQL</category>
      <category>select</category>
      <category>멀티 컬럼</category>
      <category>여러 컬럼</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/107</guid>
      <comments>https://deepblue28.tistory.com/entry/MySQL-%EB%A9%80%ED%8B%B0-%EC%BB%AC%EB%9F%BC-select#entry107comment</comments>
      <pubDate>Wed, 12 Mar 2014 11:03:54 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] 실행계획(EXPLAIN)</title>
      <link>https://deepblue28.tistory.com/entry/MySQL-%EC%8B%A4%ED%96%89%EA%B3%84%ED%9A%8DEXPLAIN</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;type (나쁜것부터&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;좋은것 순&lt;/span&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;)&lt;/span&gt;&lt;/b&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;ALL&lt;/b&gt;: full scan (extra에 &quot;Using ditict&quot;/&quot;not exists&quot; 가 있거나 LIMIT있는 쿼리는 예외)&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;index&lt;/b&gt;: full scan but index order. 장점:정렬할 필요 없다. 단점: 전체 테이블을 인덱스 순서로 읽어야해서 random access가 일어남(비용 큼). (extra에 &quot;Using index&quot;가 나오면 커버링 인덱스를 사용하는 것임.(인덱스의 데이터만을 스캔한다는 것임))&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;range&lt;/b&gt;: 제한된 형태의 index 스캔. index보다는 나은 성능을 보인다. 범위에 따라 성능차가 있다.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;ref&lt;/b&gt;: 어떤 조건 하나에 매치되는 행들을 반환해주는 인덱스 접근 방식. 여러개의 행을 찾게 될 수도 있으므로 탐색과 스캔이 함계 사용된다. unique하지 않은 인덱스 검색이 걸릴때 사용된다.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;eq_ref&lt;/b&gt;: MySQL이 기껏해야 값 하나만을 반환한다는 것을 알때 사용됨. 기본 키 혹은 unique 인덱스에 걸릴때 사용.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;const&lt;/b&gt;, system: 쿼리의 일부를 상수로 대체해서 최적화 할 수 있는 경우.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;NULL&lt;/b&gt;: 인덱스나 테이블에 접근조차 하지 않는 경우.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;key&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;: MySQL이 최적화를 위해 어떤 키를 사용하기로 했는지를 나타냄.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;key_len&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;: MySQL이 인덱스에 얼마나 많은 바이트를 사용하는지를 보여줌.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ref&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;: key 에 나와 있는 인덱스에서 값을 찾기 위해 선행 테이블의 어떤 컬럼(또는 상수(const))이 사용되었는지를 나타냄.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;rows&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;: 원하는 행을 찾기위해 얼마나 많은 행을 읽어야 할지에 대한 예측값. 예측값은 인덱스의 선택도와 테이블 통계 정보에 의존적이므로 정확도가 상당히 떨어질 수도 있다.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MySQL이 조사해야 할 것이라고 생각하는 행 수를 의미할 뿐 결과에 있는 행 수를 의미하지 않는다. 여기서 보여지는 행 수가 그리 중요하지 않을 수도 있다. 예측한 모든 행을 읽지는 않을 것이며, 대체로도 그렇다.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;b style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;extra&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;: 앞 선 컬럼에 적합하지 않은 나머지 정보를 표시. (중요하고 빈번한 몇가지만 나열)&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;Using index&lt;/b&gt;: 커버링 인덱스를 사용한다는 것을 알려줌.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;Using where&lt;/b&gt;: MySQL서버가 스토리지 엔진에서 값을 가져온 뒤 행을 필터링한다는 것을 의미.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;Using temporary&lt;/b&gt;: MySQL이 쿼리 결과를 정렬하기 위해 임시 테이블을 사용한다는 것을 의미.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;Using filesort&lt;/b&gt;: 이는 MySQL이 결과의 순서를 맞추기 위해 인덱스 순서로 테이블을 읽는 것이 아니라 외부 정렬을 사용해야 한다는 것을 의미. 메모리나 디스크에서 수행될 수 있으며, EXPLAIN으로는 어떤 방식을 사용하지는, 디스크에서 하는지 메모리에서 하는지 등은 알 수 없다.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;&quot;&gt;- &lt;b&gt;Range checked for each record(index map:N)&lt;/b&gt;: 적합한 인덱스가 없으므로 각 레코드의 조인에서 각 인덱스들을 재평가한다는 것을 의미한다. N은 possible_keys에 나타나 있는 인덱스들의 비트맵 값이다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Server</category>
      <category>DESC</category>
      <category>explain</category>
      <category>MYSQL</category>
      <category>실행계획</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/106</guid>
      <comments>https://deepblue28.tistory.com/entry/MySQL-%EC%8B%A4%ED%96%89%EA%B3%84%ED%9A%8DEXPLAIN#entry106comment</comments>
      <pubDate>Wed, 12 Mar 2014 10:39:44 +0900</pubDate>
    </item>
    <item>
      <title>status vs state</title>
      <link>https://deepblue28.tistory.com/entry/status-vs-state</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;status == how are you? [good/bad]&lt;/p&gt;&lt;p&gt;state == what are you doing? [resting/working]&lt;/p&gt;</description>
      <category>Etc</category>
      <category>State</category>
      <category>status</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/105</guid>
      <comments>https://deepblue28.tistory.com/entry/status-vs-state#entry105comment</comments>
      <pubDate>Fri, 3 Jan 2014 16:30:58 +0900</pubDate>
    </item>
    <item>
      <title>추억의 수학함수들</title>
      <link>https://deepblue28.tistory.com/entry/%EC%B6%94%EC%96%B5%EC%9D%98-%EC%88%98%ED%95%99%ED%95%A8%EC%88%98%EB%93%A4</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;u&gt;로그함수(log func)&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;log2 8 = 3 (8이 되는 2의 지수를 구하는 함수. 항상 (1,0)을 지난다.)&lt;/p&gt;&lt;p&gt;곱하기 및 나누기의 계산을 간편하게 해내기 위해 존 네이피어가 발명한 것으로 알려져 있다.(위키피디아)&lt;/p&gt;&lt;p&gt;매우 큰 수를 다루기 위한 방법을 모색하던 중에 나온 함수. 곱셈을 덧셈으로 변환시킴으로써 천문학적 수를 계산하는 부담을 엄청나게 줄여 주었다.&lt;/p&gt;&lt;p&gt;은행에 예금한 돈이 언제 두 배가 되느냐 하는 문제를 풀어 본 기억이 있을 것이다.&lt;br /&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;꽤 복잡한 수식 이었다고 생각이 된다. 그러나 그 답은 아주 쉽게 얻을 수 있다.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;즉 0.7이란 수를 이율로 나눠 주기만 하면 된다.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;만일 연 이율이 14%라면 5년(0.7/0.14=5)이 걸리고 요즈음처럼 이자율이 내려가서 7%인 경우는 10년이 걸리는 셈이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;그러면 0.7이란 수는 과연 무엇일까.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;이는 2의 자연 로그인 것이다. 어떤 수의 자연로그는 그 수와 같아지는 e의 지수를 나타내므로, 2의 자연로그는 e0.7 =2에서 0.7이 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;상용로그의 밑은 10이다: 보통 밑(base)을 생략하고 log x 로 사용한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;u&gt;지수함수(exponential&amp;nbsp;func)&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;y = a^x (a의 지수값을 구하는 함수. 항상 (0,1) (1,a)를 지나는 성질이 있고, x값은 0에 수렴한다. 0이 되지는 않는다. a&amp;gt;1 이어야 한다.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;미분(differential)&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;미세하게 쪼갠다는 의미이다. 곡선에서 가장 가까운 직선인 접선을 구하는 것이 미분이다. &lt;br /&gt;이 접선의 기울기가 미분계수이며&amp;nbsp;곡선의 순간 변화율을 의미한다. '접선의 기울기의 함수'라고 보면 된다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;기울기를 구해야 하므로, 두 접의 델타(차이)값으로 구한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;물리에선 시간에 대해서 &quot;위치미분=속력&quot;, &quot;속력미분=가속도&quot;가 된다. 광학에서 곡선이나 곡면으로 빛을 쏘았을 때 반사되어 나가는 빛의 방향을 찾을 때 접선의 기울기를 구하면, '빛의 입사각과 반사각이 같다'는 단순한 원리로 알아낼 수 있다.(네이버캐스트 미분의 응용)&lt;/p&gt;&lt;p&gt;미분은 쪼개기, 적분은 합치기.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;도함수(derivative)&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;함수 y=f(x)를 미분하여 얻은 f'(x)를 말하며, f(x)의 미분계수라고도 한다. 미분계수는 접선의 기울기이며 평균변화율의 극한값이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;미분방정식&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;미분하여 f'(x)가 되는 x의 원래 함수 f(x)를 구하는 것을 미분방정식을 푼다라고 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;적분(integral)&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;'적'은 누적의 뜻. 적분은 미분의 역함수.&amp;nbsp;&lt;/p&gt;&lt;p&gt;일반함수를 적분하면 면적함수가 되고, 면적함수를 미분하면 일반함수가 된다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;sum의 s를 길게 늘어뜨린게 적분기호&amp;nbsp;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;∫&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; font-size: 9pt; line-height: 1.5;&quot;&gt;인테그랄(integral)이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&quot;x를 a부터 b까지 변환시키면서 f(x)에 dx를 곱한 것을 전부 합쳐라&quot;라는 의미. f(x)는 y값이고, dx는 x축의 임의의 델타값인데, 높이(y=f(x))와 밑변(dx)의 곱은 넓이(면적)이 나오게된다. 이 때 가로(밑변)길이를 1/2하여 무한히 반복하여 나누면(극한으로 보내면) 0은 아니지만 0에 가까운 값이 되는데 이것이 dx이며, 높이(y=f(x)) 곱하기 밑변(dx)을 하면 하나의 기다란 선처럼 될 것이다. 이 선들을 모두 sum하는 것이 적분이다. 즉 넓이(면적)을 구할 수 있게 된다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;이것을 응용하여 이 함수 그래프를 x축을 중심으로 회전시키면 입체도형의 부피를 구할 수 있다. &amp;nbsp;높이(y=(fx)) 곱하기 밑변(dx)가 가느다란 선이므로, 이 선을 회전시킨다고 하면 이 선의 길이(=높이)는 반지름이 되게 된다. 이 반지름의 원 면적을 구해 sum하면 부피가 나오게 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;초월수&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;대수적 수(유리수를 계수로 가지는 다항방정식의 해가 될 수 있는 수)의 반대 개념.&lt;/p&gt;&lt;p&gt;계수가 유리수인 어떤 다항식의 해도 될 수 없는 수.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;초월수 파이(π)&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;3.141592...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;초월수 자연로그의 밑 e&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;자연로그는 상용로그과 구분하기 위해 ln x로 사용한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;e＝1＋1/1！＋1/2！＋1/3！＋…＝lim(1+1/x)^x = 2.71828…&amp;nbsp;&lt;/p&gt;&lt;p&gt;e는 자연로그의 값이 1이 되는 수이다??&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Etc</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/104</guid>
      <comments>https://deepblue28.tistory.com/entry/%EC%B6%94%EC%96%B5%EC%9D%98-%EC%88%98%ED%95%99%ED%95%A8%EC%88%98%EB%93%A4#entry104comment</comments>
      <pubDate>Wed, 20 Nov 2013 00:09:17 +0900</pubDate>
    </item>
    <item>
      <title>[NoSQL] CAP 이론</title>
      <link>https://deepblue28.tistory.com/entry/NoSQL-CAP-%EC%9D%B4%EB%A1%A0</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 650px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27722A3B528434E908&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27722A3B528434E908&quot; width=&quot;650&quot; height=&quot;488&quot; filename=&quot;nosql_cap.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 650px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2126193B528434EA40&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2126193B528434EA40&quot; width=&quot;650&quot; height=&quot;459&quot; filename=&quot;CAP.gif&quot; filemime=&quot;image/gif&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Server</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/103</guid>
      <comments>https://deepblue28.tistory.com/entry/NoSQL-CAP-%EC%9D%B4%EB%A1%A0#entry103comment</comments>
      <pubDate>Thu, 14 Nov 2013 11:27:16 +0900</pubDate>
    </item>
    <item>
      <title>흠.. 스팸댓글 때메 워드프레스로 옮길까 싶네..</title>
      <link>https://deepblue28.tistory.com/entry/%ED%9D%A0-%EC%8A%A4%ED%8C%B8%EB%8C%93%EA%B8%80-%EB%95%8C%EB%A9%94-%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4%EB%A1%9C-%EC%98%AE%EA%B8%B8%EA%B9%8C-%EC%8B%B6%EB%84%A4</link>
      <description>&lt;p&gt;이번 스킨은 깔끔하니 맘에 드는데,&lt;/p&gt;&lt;p&gt;티스토리 스팸댓글 때문에 지저분해진다..&lt;/p&gt;&lt;p&gt;로그인 사용자에게만 댓글 허용하면 괜찮을라나?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래 큼지막한 광고도 작을걸로 줄이고, 공사가 한번은 필요한 듯.&lt;/p&gt;&lt;p&gt;근데 너무 귀찮다..ㅎ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Etc</category>
      <author>deepblue.kblee</author>
      <guid isPermaLink="true">https://deepblue28.tistory.com/102</guid>
      <comments>https://deepblue28.tistory.com/entry/%ED%9D%A0-%EC%8A%A4%ED%8C%B8%EB%8C%93%EA%B8%80-%EB%95%8C%EB%A9%94-%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4%EB%A1%9C-%EC%98%AE%EA%B8%B8%EA%B9%8C-%EC%8B%B6%EB%84%A4#entry102comment</comments>
      <pubDate>Mon, 11 Nov 2013 01:10:24 +0900</pubDate>
    </item>
  </channel>
</rss>