This feed does not validate.
<managingEditor>deepblue.kblee</managingEditor>
^
line 43, column 28: (10 occurrences) [help]
<author>deepblue.kblee</author>
^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
<link>http://deepblue28.tistory.com</link>
^
line 25, column 0: (2 occurrences) [help]
<style type="text/css">
line 178, column 0: (92 occurrences) [help]
<description><div><span style="color: rgb(0, 0, 0); font ...
new SynchronousQueue<Runnable>(),
line 304, column 0: (2 occurrences) [help]
<description><p><br /></p><p style="text-ali ...
line 304, column 0: (2 occurrences) [help]
<description><p><br /></p><p style="text-ali ...
</channel>
^
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>딥블루</title>
<link>http://deepblue28.tistory.com/</link>
<description>www.deepblue.pe.kr</description>
<language>ko</language>
<pubDate>Tue, 21 Jan 2025 02:49:06 +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>http://deepblue28.tistory.com</link>
</image>
<item>
<title>축적의 시간II - 이정동 교수</title>
<link>http://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><p class="p1"><span style="font-family: &quot;Helvetica Neue&quot;;">KBS 스페셜 -&nbsp;</span>축적의<span class="s1"> </span>시간<span class="s1">II - 이정동 교수</span></p><p class="p2"><br /></p><p class="p1">아이디어는<span class="s1">&nbsp;발에 차일 정도로&nbsp;</span>널렸다</p><p class="p1">스케일업이<span class="s1"> </span>필요하다</p><p class="p1">끈기있게<span class="s1"> </span>하나씩<span class="s1"> </span>실험하고<span class="s1"> </span>연습하고<span class="s1"> </span>반복해서<span class="s1"> </span>노하우를<span class="s1"> </span>쌓아야<span class="s1"> </span>한다. 이것이 '스케일업' 이다.</p><p class="p1">오랜시간이<span class="s1"> </span>필요.</p><p class="p1">구글과 애플이 내놓는 혁신은 오랜시간 스케일업의 결과이다. 절대 반짝이는 아이디어 때문이 아니다.</p><p class="p2"><br /></p><p>
<style type="text/css">
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'}
</style>
</p><p class="p1">지금 어려우니 조금 더 좋아지면 스케일업 하자<span class="s1">. 이것은 틀렸다.&nbsp;</span>살기<span class="s1"> </span>위해서<span class="s1"> </span>지금<span class="s1"> </span>해야<span class="s1"> </span>한다!</p><p class="p1">구글 애플도 여유 없기는 매한가지다.</p><p class="p1"><br /></p><p class="p1">역량이 뛰어난 한국의 10년 경력 엔지니어는 100년동안 스케일업 해온 회사의 같은 경력을 가진&nbsp;엔지니어를 '절대' 이길 수 없다. 이 엔지니어는 110년 경력의 엔지니어이기 때문이다.</p><p class="p1"><br /></p><p class="p1">소비자는<span class="s1">&nbsp;</span>정체성이<span class="s1">&nbsp;</span>있는<span class="s1">&nbsp;</span>제품을<span class="s1">&nbsp;</span>원한다. 자기만의 색깔이 있어야!</p><p class="p1"><br /></p><p class="p1">항상 새로운 아이디어를 요구하거나 선택과 집중을 이야기하는 리더는 '옛날' 리더이다.</p><p class="p1"><br /></p></description>
<category>좋은글</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/111</guid>
<comments>http://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>http://deepblue28.tistory.com/entry/%EC%96%B4%EC%A9%8C%EB%8B%A4-%EC%96%B4%EB%A5%B8</link>
<description><p class="p1">어쩌다어른<span class="s1"> - </span>허태균<span class="s1"><span class="Apple-converted-space">&nbsp;</span></span></p><p class="p1">한국사람의<span class="s1"> </span>심리를<span class="s1"> </span>파헤치다<span class="s1"><span class="Apple-converted-space">&nbsp;</span></span></p><p class="p2"><br /></p><p class="p1">아이패드<span class="s1">-</span>신문을듣다<span class="s1"> </span>전화를보다<span class="s1"> </span>별을만지다<span class="s1"><span class="Apple-converted-space">&nbsp;</span></span></p><p class="p1">한국<span class="s1">-</span>더크게<span class="s1"> </span>더<span class="s1"> </span>빠르게<span class="s1"> </span>더세게<span class="s1">-</span>패스트팔로어<span class="s1">-</span>왜<span class="s1"> </span>만드는지<span class="s1"> </span>모르는것이다<span class="s1"><span class="Apple-converted-space">&nbsp;</span></span></p><p class="p2"><br /></p><p class="p1">실용성을<span class="s1"> </span>이기는<span class="s1"> </span>상징성<span class="s1">-</span>웨딩드레스</p><p class="p2"><br /></p><p class="p1">가상현실<span class="s1"> - </span>아빠가<span class="s1"> </span>태워주는<span class="s1"> </span>자전거<span class="s1"><span class="Apple-converted-space">&nbsp;</span></span></p><p class="p2"><br /></p><p class="p1">나만의<span class="s1"> </span>이유<span class="s1">, </span>나만의<span class="s1"> </span>가치를<span class="s1"> </span>찾아라<span class="s1">, </span>찾아줘라<span class="s1"><span class="Apple-converted-space">&nbsp;</span></span></p><p class="p2"><br /></p><p class="p3">———————————————</p><p class="p2"><br /></p><p class="p1">감각을<span class="s1"> </span>파헤치다<span class="s1"> - </span>김경일</p><p class="p2"><br /></p><p class="p1">다양한<span class="s1"> </span>경험을<span class="s1"> </span>해야<span class="s1"> </span>오래<span class="s1"> </span>산다</p><p class="p2"><br /></p><p class="p1">개발자들은<span class="s1"> </span>뭐든<span class="s1"> </span>만들수<span class="s1"> </span>있다고<span class="s1"> </span>말한다<span class="s1">. </span>하지만<span class="s1"> </span>뭘<span class="s1"> </span>만들지를<span class="s1"> </span>모른다<span class="s1">.</span></p><p class="p1">이건<span class="s1"> </span>경험이<span class="s1"> </span>부족해서이다<span class="s1"> - </span>스티브잡스</p><p class="p1">비슷한<span class="s1"> </span>경험을<span class="s1"> </span>계속하면<span class="s1"> </span>시간이<span class="s1"> </span>빨리<span class="s1"> </span>간다<span class="s1">.</span></p><p class="p1">다양한<span class="s1"> </span>경험을<span class="s1"> </span>해야<span class="s1"> </span>오래<span class="s1"> </span>산것<span class="s1"> </span>같은<span class="s1"> </span>느낌이<span class="s1"> </span>든다<span class="s1">.</span></p><p class="p1"><span class="s1">—&gt; </span>귀차니즘을<span class="s1"> </span>타파해야<span class="s1"> </span>한다<span class="s1">.</span></p><p class="p2"><br /></p><p class="p1">큰<span class="s1"> </span>성공<span class="s1"> </span>거둔<span class="s1"> </span>사람은<span class="s1"> </span>미래가<span class="s1"> </span>절대<span class="s1"> </span>안변한다고<span class="s1"> </span>생각한다<span class="s1">.</span></p><p>
<style type="text/css">
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'}
</style>
</p><p class="p1">미래를<span class="s1"> </span>작게<span class="s1"> </span>예측하더라<span class="s1">. —&gt; </span>빌게이츠<span class="s1"> 640kb</span></p></description>
<category>좋은글</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/110</guid>
<comments>http://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>http://deepblue28.tistory.com/entry/How-to-install-subversion-16x-on-Mac</link>
<description><p>check subversion versions (on OS X 10.9.3)</p>
<pre class="brush:shell; gutter:false">$ 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
</pre>
<p><br /></p>
<p>get 1.6.16 version formula</p>
<pre class="brush:shell; gutter:false">$ git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
</pre>
<p><br /></p>
<p>install subversion</p>
<pre class="brush:shell; gutter:false">$ brew install subversion
</pre>
<p><br /></p>
<p>If an error occurs like this... 만약 빌드 도중 이런 에러를 만나면..</p>
<pre class="brush:shell; gutter:false">checking whether Apache version is compatible with APR version... no
configure: error: Apache version incompatible with APR version
</pre>
<p>add --without-apx&nbsp;configure argument. configure 옵션에&nbsp;--without-apxs 를 추가해준다.</p>
<pre class="brush:shell; gutter:false">/usr/local/Library/Formula/subversion.rb 파일을 열어 configure args에 --without-apxs 옵션을 추가.
</pre>
<p>https://github.com/Homebrew/homebrew-versions/issues/373<br />https://github.com/Homebrew/homebrew-versions/commit/1d203e29e6219967164337a00672fc071e355cec 참조</p>
<p><br /></p>
<p>check subversion version</p>
<pre class="brush:shell; gutter:false">$ svn --version
</pre>
<p><br /></p>
<p>If version is different, switch version</p>
<pre class="brush:shell; gutter:false">$ brew switch subversion 1.6.16
</pre>
<p><br /></p>
<p>and re-check svn version on new terminal</p>
<pre class="brush:shell; gutter:false">$ 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/).
</pre>
<p><br /></p>
<p>Completed.</p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p></p>
<p></p></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">http://deepblue28.tistory.com/109</guid>
<comments>http://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>http://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><div><span style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;"><b>HTable</b></span><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 인스턴스는 한번만 생성하고,&nbsp;</span><span style="font-size: 10pt; text-align: -webkit-auto; background-color: transparent;">프로그램이 끝날때까지 재사용하라.</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- Thread 별로 만들어라.(HTablePool 사용 하라.)</span></div><div style="orphans: 2; text-align: -webkit-auto; widows: 2;"><span style="color: rgb(0, 0, 0); font-family: 나눔고딕; font-size: 10pt; line-height: normal;">- HTablePool 사용 예(</span><span style="background-color: transparent; line-height: normal;"><font color="#000000" face="나눔고딕" size="2">HTableInterfaceFactory 인터페이스로 한번 감싸서 사용하면 편하다)</font></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;">
<span style="font-size: 10pt;">
<pre class="brush:java">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();
}
}
</pre></span>
</div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 내부적으로 병렬처리 thread를 가진다.&nbsp;</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><pre class="brush:java">
public HTable(Configuration conf, final byte [] tableName)
throws IOException {
...
int maxThreads = conf.getInt("hbase.htable.threads.max", Integer.MAX_VALUE);
if (maxThreads == 0) {
maxThreads = 1; // is there a better default?
}
long keepAliveTime = conf.getLong("hbase.htable.threads.keepalivetime", 60);
// Using the "direct handoff" 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<Runnable>(),
Threads.newDaemonThreadFactory("hbase-table"));
((ThreadPoolExecutor)this.pool).allowCoreThreadTimeOut(true);
/* 설명:
기본 생성자의 설정이다.
coreThread=1, maxThreads=Integer.MAX_VALUE 이고, SynchronousQueue를 사용한다.
따라서 region 서버 수만큼 Thread를 생성하고 keepAliveTime 동안 유지했다가 Thread를 죽인다.
뜨문 뜨문 호출되는 경우 Thread가 만들어졌다 없어졌다를 반복할 것이므로, 환경에 맞게 조정해서 사용하라.
*/
...
}
</pre></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- HTable은 HConnection을 사용해서 원격서버와 통신하고, HConnectionManager가 이 커넥션을 관리한다.</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- HBase 내부에서는 연결들이 맵 안에 저장되는데 현재 사용중인 Configuration 인스턴스가 키가된다. 동일한 Configuration을 참조하는 HTable 인스턴스를 여러개 만들었다면, 이들 모두는 HConnection 객체를 공유한다.</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>Put</b></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 쓰기 버퍼 크기를 늘리면, 클라이언트 뿐 아니라, 서버에서도 많은 메모리를 소비한다. 서버에서도 전송받은 데이터를 인스턴스화 하기 때문이다.(P.148)</span></div><span style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- 크기가 큰 셀만을 저장한다면 로컬 버퍼는 덜 유용하다. 실제 데이터 전송 시간이 대부분일 것이고, 이럴 경우는 버퍼 크기를 늘리지 않는 쪽이 권장된다. (p.148)</span><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>batch()</b></span><br /><span style="font-size: 10pt;">
- 일괄처리 연산은 Put처럼 쓰기버퍼를 사용하지 않는다. 동기적이며 바로 바로 처리한다.</span><br /><span style="font-size: 10pt;">
- 각 작업에 대한 결과를 따로 보고 받을 수 있다. (Object results[])</span><br /><span style="font-size: 10pt;">
- 일괄처리 명령은 NotServingRegionException(리전 이동을 알리는 예외)와 같은 일시적인 에러에는 여러 번 시도해본다. hbase.client.retries.number 속성이며 기본값은 10이다.</span><br /><br /><span style="font-size: 10pt;"><b>
RowLock/Scanner</b></span><br /><span style="font-size: 10pt;">
- hbase.regionserver.lease.period = 60000 (1분) 락 만료 시간 또는 스캐너 임대 만료 시간에 모두 사용됨.</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">&nbsp; - 이 설정은 클라이언트측 Configure에 해봤자 무용지물이다. 리전서버 hbase-site.xml에 설정되어야 한다. (p200)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>Scan</b></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- Scan.next() 호출 시 RPC가 일어난다.</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- setCaching() / hbase.client.scanner.caching (default=1) 를 조정하여 한번의 RPC에서 여러개의 row를 가져오도록 할 수 있다.</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">&nbsp; - 데이터 큰 경우 클라이언트에 전송되는 데이터량이 많아져 수행시간이 길어지고, 메모리 문제로 이어질 수 있다. (p.200)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- setBatch()를 조절하여 한번에 읽어올 컬럼개수를 정할 수 있다. setBatch(5)일 때 컬럼이 17개면 Result인스턴스를 총 4번 받게되고, 세번은 5개, 한번은 2개를 반환할 것이다.(p201) --&gt; RPC 횟수를 조절할 수 있다(p.202)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>Filter</b></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 필터는 클라이언트측에서 생성된 후 RPC를 통해 서버로 전송돼 실행된다. (p.210)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 사용자 정의 Filter는 jar로 묶어 리전서버 classpath에 넣어줘야 한다(hbase-env.sh). 재시작 필요 (p.244)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 필터 요약(p.246)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>보조처리기(Coprocessor)</b></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- preCreateTable(), postCreateTable(), preGet(), postGet() ... 등</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 정적, 동적 로드 가능하나 0.92 버전 현재 동적 로드 API는 아직 없음. (p.262)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>HTablePool</b></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- maxSize는 HTableInterface 인스턴스 개수의 상한선의 의미하지 않는다. 5로 지정하고 getTable()을 10번 실행하면 HTable이 10개 생성된다. 이들을 반환하면 5개까지만 남고 나머지는 버려진다. 즉, Pool에 남겨둘 인스턴스의 상한선이다. (p.289)</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br /></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;"><b>HConnectionManager (p.292)</b></span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">- 동일한 설정의 HTable은 모두 같은 HConnection객체를 공유한다.&nbsp;</span></div><div style="color: rgb(0, 0, 0); font-family: 나눔고딕; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">&nbsp; - 이 공유는 같은 Configure객체를 사용할 때 적용된다. (p.293)</span><br /><span style="font-size: 10pt;">
- hbase.client.pause = 1000</span><br /><span style="font-size: 10pt;">
- hbase.client.retries.number = 10</span><br /><span style="font-size: 10pt;">
- hbase.client.rpc.maxattempts = 1</span><br /><span style="font-size: 10pt;">
- hbase.rpc.timeout = 60000</span><br /><span style="font-size: 10pt;">
- hbase.client.prefetch.limit = 10</span></div></div><p><br /></p>
<p>참고: 소스분석 &amp;&nbsp;O'Reilly - HBase 완벽 가이드</p></description>
<category>Server</category>
<category>client</category>
<category>Hbase</category>
<category>개발</category>
<category>참고</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/108</guid>
<comments>http://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>http://deepblue28.tistory.com/entry/MySQL-%EB%A9%80%ED%8B%B0-%EC%BB%AC%EB%9F%BC-select</link>
<description><p><br /></p><div class="txc-textbox" style="border: 1px dashed rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding: 10px;"><span style="font-family: 'Courier New';">CREATE&nbsp;TABLE&nbsp;`mytable`&nbsp;(</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`userid`&nbsp;bigint(20)&nbsp;NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`groupid`&nbsp;bigint(20)&nbsp;NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`state`&nbsp;tinyint(1)&nbsp;NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`col1`&nbsp;bigint(20)&nbsp;DEFAULT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`cal2`&nbsp;varchar(200) NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`cal3`&nbsp;varchar(100)&nbsp;NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`create_time`&nbsp;datetime&nbsp;NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;`update_time`&nbsp;datetime&nbsp;NOT&nbsp;NULL,</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;PRIMARY&nbsp;KEY&nbsp;(`userid`,`groupid`),</span><br /><span style="font-family: 'Courier New';">&nbsp;&nbsp;KEY&nbsp;`idx_userid_createtime`&nbsp;(`userid`,`create_time`)</span><br /><span style="font-family: 'Courier New';">)&nbsp;ENGINE=InnoDB&nbsp;DEFAULT&nbsp;CHARSET=utf8</span></div><p><br /></p><p>(1) 컬럼 조합 IN 쿼리</p><div class="txc-textbox" style="border: 1px dashed rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding: 10px;"><p><span style="font-family: 'Courier New';">EXPLAIN</span><br /><span style="font-size: 9pt; line-height: 1.5;"><span style="font-family: 'Courier New';">SELECT *</span><br /></span><span style="font-size: 9pt; line-height: 1.5;"><span style="font-family: 'Courier New';">FROM mytable</span><br /></span><span style="font-size: 9pt; line-height: 1.5; font-family: 'Courier New';">WHERE (userId, groupid) IN ((1526291770280964803,2679212559264916326),(1526292017760867305, 2679249801360511502),(1526421185616035771,2679342905646882845));</span></p></div><p><span style="font-family: 'Courier New';">id|select_type|table &nbsp;|type|possible_keys|key |key_len|ref |rows|Extra</span><br /><span style="background-color: transparent; font-size: 9pt; line-height: 1.5; font-family: 'Courier New';">1 |SIMPLE &nbsp; &nbsp; |mytable|ALL |NULL &nbsp; &nbsp; &nbsp; &nbsp; |NULL|NULL &nbsp; |NULL|172 |Using where</span></p><p>index를 타지 않는다.</p><p><br /></p><p>(2) FROM절 subquery</p><div class="txc-textbox" style="border: 1px dashed rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding: 10px;"><p><span style="font-family: 'Courier New';">EXPLAIN</span><br /><span style="font-size: 9pt; line-height: 1.5;"><span style="font-family: 'Courier New';">SELECT a.* FROM (SELECT * FROM mytable WHERE userid IN (1526291770280964803,1526292017760867305,1526421185616035771)) a</span><br /></span><span style="font-size: 9pt; line-height: 1.5; font-family: 'Courier New';">WHERE a.groupid IN (2679212559264916326, 2679249801360511502, 2679342905646882845);</span></p></div><p><span style="font-family: 'Courier New';">id|select_type|table &nbsp; &nbsp; |type |possible_keys|key|key_len|ref|rows|Extra</span><br /><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;"><span style="font-family: 'Courier New';">1 |PRIMARY &nbsp; &nbsp;|&lt;derived2&gt;|ALL &nbsp;|NULL|NULL|NULL|NULL|15|Using where</span><br /></span><span style="background-color: transparent; font-size: 9pt; line-height: 1.5; font-family: 'Courier New';">2 |DERIVED &nbsp; &nbsp;|mytable &nbsp; |range|PRIMARY,idx_userid_createtime|PRIMARY|8|NULL|15|Using where</span></p><p>userid가 index를 탄다. groupid도 인덱스를 걸어줘야 할 듯.</p><p><br /></p><p>(3) 각 컬럼에 대해서 IN query</p><div class="txc-textbox" style="border: 1px dashed rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding: 10px;"><p><span style="font-size: 9pt; line-height: 1.5;"><span style="font-family: 'Courier New';">EXPLAIN</span><br /></span><span style="font-size: 9pt; line-height: 1.5;"><span style="font-family: 'Courier New';">SELECT *</span><br /></span><span style="font-size: 9pt; line-height: 1.5; font-family: 'Courier New';">FROM mytable WHERE userid IN (1526291770280964803,1526292017760867305,1526421185616035771) AND groupid IN (2679212559264916326, 2679249801360511502, 2679342905646882845);</span></p></div><p><span style="font-family: 'Courier New';">id|select_type|table &nbsp;|type |possible_keys|key|key_len|ref|rows|Extra</span><br /><span style="background-color: transparent; font-size: 9pt; line-height: 1.5; font-family: 'Courier New';">1 |SIMPLE &nbsp; &nbsp; |mytable|range|PRIMARY,idx_userid_createtime|PRIMARY|16|NULL|9|Using where</span></p><p><br /></p><p><b>결론)</b> 3번이 가장 나아보임.</p><p><br /></p></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">http://deepblue28.tistory.com/107</guid>
<comments>http://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>http://deepblue28.tistory.com/entry/MySQL-%EC%8B%A4%ED%96%89%EA%B3%84%ED%9A%8DEXPLAIN</link>
<description><p><br /></p><div><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">type (나쁜것부터&nbsp;</span></b><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">좋은것 순</span><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">)</span></b><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>ALL</b>: full scan (extra에 "Using ditict"/"not exists" 가 있거나 LIMIT있는 쿼리는 예외)</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>index</b>: full scan but index order. 장점:정렬할 필요 없다. 단점: 전체 테이블을 인덱스 순서로 읽어야해서 random access가 일어남(비용 큼). (extra에 "Using index"가 나오면 커버링 인덱스를 사용하는 것임.(인덱스의 데이터만을 스캔한다는 것임))</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>range</b>: 제한된 형태의 index 스캔. index보다는 나은 성능을 보인다. 범위에 따라 성능차가 있다.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>ref</b>: 어떤 조건 하나에 매치되는 행들을 반환해주는 인덱스 접근 방식. 여러개의 행을 찾게 될 수도 있으므로 탐색과 스캔이 함계 사용된다. unique하지 않은 인덱스 검색이 걸릴때 사용된다.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>eq_ref</b>: MySQL이 기껏해야 값 하나만을 반환한다는 것을 알때 사용됨. 기본 키 혹은 unique 인덱스에 걸릴때 사용.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>const</b>, system: 쿼리의 일부를 상수로 대체해서 최적화 할 수 있는 경우.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>NULL</b>: 인덱스나 테이블에 접근조차 하지 않는 경우.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">key</span></b><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">: MySQL이 최적화를 위해 어떤 키를 사용하기로 했는지를 나타냄.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">key_len</span></b><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">: MySQL이 인덱스에 얼마나 많은 바이트를 사용하는지를 보여줌.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">ref</span></b><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">: key 에 나와 있는 인덱스에서 값을 찾기 위해 선행 테이블의 어떤 컬럼(또는 상수(const))이 사용되었는지를 나타냄.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">rows</span></b><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">: 원하는 행을 찾기위해 얼마나 많은 행을 읽어야 할지에 대한 예측값. 예측값은 인덱스의 선택도와 테이블 통계 정보에 의존적이므로 정확도가 상당히 떨어질 수도 있다.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MySQL이 조사해야 할 것이라고 생각하는 행 수를 의미할 뿐 결과에 있는 행 수를 의미하지 않는다. 여기서 보여지는 행 수가 그리 중요하지 않을 수도 있다. 예측한 모든 행을 읽지는 않을 것이며, 대체로도 그렇다.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><b style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="font-size: 10pt;">extra</span></b><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">: 앞 선 컬럼에 적합하지 않은 나머지 정보를 표시. (중요하고 빈번한 몇가지만 나열)</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>Using index</b>: 커버링 인덱스를 사용한다는 것을 알려줌.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>Using where</b>: MySQL서버가 스토리지 엔진에서 값을 가져온 뒤 행을 필터링한다는 것을 의미.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>Using temporary</b>: MySQL이 쿼리 결과를 정렬하기 위해 임시 테이블을 사용한다는 것을 의미.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>Using filesort</b>: 이는 MySQL이 결과의 순서를 맞추기 위해 인덱스 순서로 테이블을 읽는 것이 아니라 외부 정렬을 사용해야 한다는 것을 의미. 메모리나 디스크에서 수행될 수 있으며, EXPLAIN으로는 어떤 방식을 사용하지는, 디스크에서 하는지 메모리에서 하는지 등은 알 수 없다.</span><br style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size:12pt;"><span style="color: rgb(0, 0, 0); font-family: Tahoma; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2; font-size: 10pt;">- <b>Range checked for each record(index map:N)</b>: 적합한 인덱스가 없으므로 각 레코드의 조인에서 각 인덱스들을 재평가한다는 것을 의미한다. N은 possible_keys에 나타나 있는 인덱스들의 비트맵 값이다.</span></div><p><br /></p></description>
<category>Server</category>
<category>DESC</category>
<category>explain</category>
<category>MYSQL</category>
<category>실행계획</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/106</guid>
<comments>http://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>http://deepblue28.tistory.com/entry/status-vs-state</link>
<description><p><br /></p><p>status == how are you? [good/bad]</p><p>state == what are you doing? [resting/working]</p></description>
<category>Etc</category>
<category>State</category>
<category>status</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/105</guid>
<comments>http://deepblue28.tistory.com/entry/status-vs-state#entry105comment</comments>
<pubDate>Fri, 3 Jan 2014 16:30:58 +0900</pubDate>
</item>
<item>
<title>추억의 수학함수들</title>
<link>http://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><p><br /></p><p><b><span style="font-size: 11pt;"><u>로그함수(log func)</u></span></b></p><p>log2 8 = 3 (8이 되는 2의 지수를 구하는 함수. 항상 (1,0)을 지난다.)</p><p>곱하기 및 나누기의 계산을 간편하게 해내기 위해 존 네이피어가 발명한 것으로 알려져 있다.(위키피디아)</p><p>매우 큰 수를 다루기 위한 방법을 모색하던 중에 나온 함수. 곱셈을 덧셈으로 변환시킴으로써 천문학적 수를 계산하는 부담을 엄청나게 줄여 주었다.</p><p>은행에 예금한 돈이 언제 두 배가 되느냐 하는 문제를 풀어 본 기억이 있을 것이다.<br /><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">꽤 복잡한 수식 이었다고 생각이 된다. 그러나 그 답은 아주 쉽게 얻을 수 있다.&nbsp;<br /></span><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">즉 0.7이란 수를 이율로 나눠 주기만 하면 된다.&nbsp;<br /></span><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">만일 연 이율이 14%라면 5년(0.7/0.14=5)이 걸리고 요즈음처럼 이자율이 내려가서 7%인 경우는 10년이 걸리는 셈이다.&nbsp;</span></p><p><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">그러면 0.7이란 수는 과연 무엇일까.&nbsp;<br /></span><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">이는 2의 자연 로그인 것이다. 어떤 수의 자연로그는 그 수와 같아지는 e의 지수를 나타내므로, 2의 자연로그는 e0.7 =2에서 0.7이 된다.</span></p><p>상용로그의 밑은 10이다: 보통 밑(base)을 생략하고 log x 로 사용한다.</p><p><br /></p><p><b><span style="font-size: 11pt;"><u>지수함수(exponential&nbsp;func)</u></span></b></p><p>y = a^x (a의 지수값을 구하는 함수. 항상 (0,1) (1,a)를 지나는 성질이 있고, x값은 0에 수렴한다. 0이 되지는 않는다. a&gt;1 이어야 한다.)</p><p><br /></p><p><b><u><span style="font-size: 11pt;">미분(differential)</span></u></b></p><p>미세하게 쪼갠다는 의미이다. 곡선에서 가장 가까운 직선인 접선을 구하는 것이 미분이다. <br />이 접선의 기울기가 미분계수이며&nbsp;곡선의 순간 변화율을 의미한다. '접선의 기울기의 함수'라고 보면 된다.&nbsp;</p><p>기울기를 구해야 하므로, 두 접의 델타(차이)값으로 구한다.&nbsp;</p><p>물리에선 시간에 대해서 "위치미분=속력", "속력미분=가속도"가 된다. 광학에서 곡선이나 곡면으로 빛을 쏘았을 때 반사되어 나가는 빛의 방향을 찾을 때 접선의 기울기를 구하면, '빛의 입사각과 반사각이 같다'는 단순한 원리로 알아낼 수 있다.(네이버캐스트 미분의 응용)</p><p>미분은 쪼개기, 적분은 합치기.</p><p><br /></p><p><u><b><span style="font-size: 11pt;">도함수(derivative)</span></b></u></p><p>함수 y=f(x)를 미분하여 얻은 f'(x)를 말하며, f(x)의 미분계수라고도 한다. 미분계수는 접선의 기울기이며 평균변화율의 극한값이다.</p><p><br /></p><p><u><b><span style="font-size: 11pt;">미분방정식</span></b></u></p><p>미분하여 f'(x)가 되는 x의 원래 함수 f(x)를 구하는 것을 미분방정식을 푼다라고 한다.</p><p><br /></p><p><b><u><span style="font-size: 11pt;">적분(integral)</span></u></b></p><p>'적'은 누적의 뜻. 적분은 미분의 역함수.&nbsp;</p><p>일반함수를 적분하면 면적함수가 되고, 면적함수를 미분하면 일반함수가 된다.&nbsp;</p><p>sum의 s를 길게 늘어뜨린게 적분기호&nbsp;<span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">∫&nbsp;</span><span style="background-color: transparent; font-size: 9pt; line-height: 1.5;">인테그랄(integral)이다.&nbsp;</span></p><p>"x를 a부터 b까지 변환시키면서 f(x)에 dx를 곱한 것을 전부 합쳐라"라는 의미. f(x)는 y값이고, dx는 x축의 임의의 델타값인데, 높이(y=f(x))와 밑변(dx)의 곱은 넓이(면적)이 나오게된다. 이 때 가로(밑변)길이를 1/2하여 무한히 반복하여 나누면(극한으로 보내면) 0은 아니지만 0에 가까운 값이 되는데 이것이 dx이며, 높이(y=f(x)) 곱하기 밑변(dx)을 하면 하나의 기다란 선처럼 될 것이다. 이 선들을 모두 sum하는 것이 적분이다. 즉 넓이(면적)을 구할 수 있게 된다.&nbsp;</p><p>이것을 응용하여 이 함수 그래프를 x축을 중심으로 회전시키면 입체도형의 부피를 구할 수 있다. &nbsp;높이(y=(fx)) 곱하기 밑변(dx)가 가느다란 선이므로, 이 선을 회전시킨다고 하면 이 선의 길이(=높이)는 반지름이 되게 된다. 이 반지름의 원 면적을 구해 sum하면 부피가 나오게 된다.</p><p><br /></p><p><b><u><span style="font-size: 11pt;">초월수</span></u></b></p><p>대수적 수(유리수를 계수로 가지는 다항방정식의 해가 될 수 있는 수)의 반대 개념.</p><p>계수가 유리수인 어떤 다항식의 해도 될 수 없는 수.</p><p><br /></p><p><b><u><span style="font-size: 11pt;">초월수 파이(π)</span></u></b></p><p>3.141592...</p><p><br /></p><p><b><u><span style="font-size: 11pt;">초월수 자연로그의 밑 e</span></u></b></p><p>자연로그는 상용로그과 구분하기 위해 ln x로 사용한다.&nbsp;</p><p>e=1+1/1!+1/2!+1/3!+…=lim(1+1/x)^x = 2.71828…&nbsp;</p><p>e는 자연로그의 값이 1이 되는 수이다??</p><p><br /></p></description>
<category>Etc</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/104</guid>
<comments>http://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>http://deepblue28.tistory.com/entry/NoSQL-CAP-%EC%9D%B4%EB%A1%A0</link>
<description><p><br /></p><p style="text-align: center; clear: none; float: none;"><span class="imageblock" style="display: inline-block; width: 650px; height: auto; max-width: 100%;"><img src="https://t1.daumcdn.net/cfile/tistory/27722A3B528434E908" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27722A3B528434E908" width="650" height="488" filename="nosql_cap.png" filemime="image/jpeg" style=""/></span></p><p><br /></p><p style="text-align: center; clear: none; float: none;"><span class="imageblock" style="display: inline-block; width: 650px; height: auto; max-width: 100%;"><img src="https://t1.daumcdn.net/cfile/tistory/2126193B528434EA40" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2126193B528434EA40" width="650" height="459" filename="CAP.gif" filemime="image/gif" style=""/></span></p><p><br /></p></description>
<category>Server</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/103</guid>
<comments>http://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>http://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><p>이번 스킨은 깔끔하니 맘에 드는데,</p><p>티스토리 스팸댓글 때문에 지저분해진다..</p><p>로그인 사용자에게만 댓글 허용하면 괜찮을라나?</p><p><br /></p><p>아래 큼지막한 광고도 작을걸로 줄이고, 공사가 한번은 필요한 듯.</p><p>근데 너무 귀찮다..ㅎ</p><p><br /></p></description>
<category>Etc</category>
<author>deepblue.kblee</author>
<guid isPermaLink="true">http://deepblue28.tistory.com/102</guid>
<comments>http://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>