<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1577319031687264598</id><updated>2026-07-21T18:23:30.336+09:00</updated><category term="wpf"/><category term="c#"/><category term="android"/><category term="WEB"/><category term=".net"/><category term="Prototype"/><category term="RichTextBox"/><category term="ext"/><category term="기타"/><category term="안드로이드"/><category term="binding"/><category term="mvvm"/><category term="IME"/><category term="activity"/><category term="csharp"/><category term="example"/><category term="extjs"/><category term="invoke"/><category term="parallel"/><category term="토마스"/><category term="프로토타입"/><category term="11번가"/><category term="AvalonEdit"/><category term="Avalondock"/><category term="Button"/><category term="Column"/><category term="Container"/><category term="Layout"/><category term="Prism"/><category term="count"/><category term="heterogeneous"/><category term="iBatis"/><category term="intent"/><category term="ndk"/><category term="object"/><category term="pointer"/><category term="user defined"/><category term="viewmodel"/><category term="Ajax"/><category term="Backlight"/><category term="C# log4net"/><category term="CAL"/><category term="CSS3"/><category term="Custom"/><category term="Date"/><category term="Document"/><category term="INotifyPropertyChanged"/><category term="IoC"/><category term="LCD"/><category term="LINQ"/><category term="Laptop"/><category term="Odin"/><category term="Procedure"/><category term="ReferencedAssembley"/><category term="TC"/><category term="TextPointer"/><category term="Unity"/><category term="YF"/><category term="access"/><category term="adapter"/><category term="adb"/><category term="all"/><category term="any"/><category term="application"/><category term="array of pointer"/><category term="avd"/><category term="background"/><category term="big"/><category term="binary"/><category term="blogger"/><category term="canvas"/><category term="caret"/><category term="class"/><category term="code-behind"/><category term="combo"/><category term="combobox"/><category term="compare"/><category term="component"/><category term="concurrency"/><category term="contains"/><category term="cross"/><category term="cursor"/><category term="datacontext"/><category term="datatemplate"/><category term="debug"/><category term="design pattern"/><category term="dictionary"/><category term="digital audio"/><category term="dispatcher"/><category term="diy"/><category term="double"/><category term="download"/><category term="drag event"/><category term="dragdrop"/><category term="drawline on exist iamge"/><category term="drop event"/><category term="eclipse"/><category term="element array"/><category term="emulator"/><category term="endian"/><category term="event"/><category term="exception"/><category term="filesystem"/><category term="find text"/><category term="flip2"/><category term="float"/><category term="flowdocument"/><category term="foreground"/><category term="format"/><category term="function"/><category term="gdi"/><category term="getlinenumber"/><category term="gingerbread"/><category term="global workgroup size"/><category term="grid"/><category term="group"/><category term="hacking"/><category term="hightlight"/><category term="hightlighter"/><category term="hightlighting"/><category term="hybrid"/><category term="iBaits"/><category term="informix"/><category term="int"/><category term="itemcontainerstyle"/><category term="itemspaneltemplate"/><category term="java"/><category term="jbl"/><category term="jni"/><category term="koup"/><category term="lifecycle"/><category term="line"/><category term="linecount"/><category term="linenumber"/><category term="list"/><category term="listview"/><category term="little"/><category term="local workgorup size"/><category term="loop"/><category term="moveToNext"/><category term="mysql"/><category term="number"/><category term="observable"/><category term="opencl"/><category term="pack"/><category term="paragraph"/><category term="param"/><category term="parameter"/><category term="password"/><category term="performance"/><category term="plenty object"/><category term="position"/><category term="reboot"/><category term="regular expression"/><category term="repaire"/><category term="replace"/><category term="resource"/><category term="ribboncontorl"/><category term="root"/><category term="routedevent"/><category term="row"/><category term="select"/><category term="selectBox"/><category term="selector"/><category term="serialize"/><category term="sha1"/><category term="simple"/><category term="sonata"/><category term="spinner"/><category term="state"/><category term="string"/><category term="struct"/><category term="stylesheet"/><category term="syntax"/><category term="table"/><category term="template"/><category term="thread"/><category term="ui"/><category term="uniformgrid"/><category term="unsafe"/><category term="update"/><category term="uri"/><category term="user class"/><category term="wave"/><category term="waveformat"/><category term="wavehdr"/><category term="xaml"/><category term="xml"/><category term="객체 생성"/><category term="고전암호"/><category term="공장초기화"/><category term="공초"/><category term="교체"/><category term="구조체"/><category term="국민은행"/><category term="날짜"/><category term="다운로드모드"/><category term="드래그앤드랍"/><category term="디버깅"/><category term="디지털"/><category term="라이프사이클"/><category term="리스트박스"/><category term="방법"/><category term="백라이트"/><category term="부동산"/><category term="비용추정"/><category term="상용로그"/><category term="상태"/><category term="생성"/><category term="성남"/><category term="성능"/><category term="소나타"/><category term="소리"/><category term="스레드"/><category term="신고"/><category term="쏘나타"/><category term="쓰레드"/><category term="아탑터"/><category term="악성코드"/><category term="액티비티"/><category term="에러"/><category term="에뮬레이터"/><category term="연비"/><category term="예제"/><category term="오딘"/><category term="오류"/><category term="완광"/><category term="완벽한 공부법"/><category term="자연로그"/><category term="정규식"/><category term="주소"/><category term="진저브래드"/><category term="참조"/><category term="치환"/><category term="커서"/><category term="콤보박스"/><category term="태터툴즈"/><category term="텍스트큐브"/><category term="투자"/><category term="특수기호"/><category term="특수문자"/><category term="포르테쿱"/><category term="포인터"/><category term="포쿱"/><category term="표현"/><category term="피싱"/><category term="하이브리드"/><category term="학습효과"/><category term="현대차"/><title type='text'>인생은 열정</title><subtitle type='html'>개인정리용</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>93</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-2159064109947475991</id><published>2019-10-04T14:23:00.003+09:00</published><updated>2019-10-04T14:23:44.002+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ext"/><title type='text'>ext 파일시스템 관련 . 참고용.</title><content type='html'>&lt;div style=&quot;border: 1px solid #3bafda; padding-bottom: 15px; width: 460px;&quot;&gt;
&lt;div style=&quot;overflow: hidden; padding: 0;&quot;&gt;
&lt;div style=&quot;float: left; margin-top: 19px;&quot;&gt;
&lt;img src=&quot;https://national.uci.or.kr:80/share/uci_share_req.do?shareno=214165&quot; height=&quot;101&quot; width=&quot;134&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;float: left; width: 312px;&quot;&gt;
&lt;div style=&quot;margin-right: 3px; margin-top: 3px; overflow: hidden;&quot;&gt;
&lt;a href=&quot;http://national.uci.or.kr/share/uci_share_reproc.do?shareno=214165&quot; style=&quot;color: white; cursor: pointer; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;퍼가기&quot;&gt;&lt;span style=&quot;color: #3bafda; float: right; font-family: &amp;quot;arial&amp;quot;; font-size: 9px; font-weight: bold;&quot;&gt;공유하기&lt;/span&gt;&lt;img src=&quot;https://national.uci.or.kr:80/resources/img/share/gongu_icon_long.png&quot; style=&quot;float: right;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #3bafda; border-radius: 5px; margin-top: 3px; width: 312px;&quot;&gt;
&lt;ul style=&quot;list-style-type: none; margin: 0; padding: 0;&quot;&gt;
&lt;li style=&quot;color: white; cursor: default; font-family: &amp;quot;arial&amp;quot;; font-size: 16px; font-weight: bold; height: 36px; line-height: 36px; list-style-type: none; margin: 0; padding: 0; text-indent: 26px;&quot; title=&quot;&quot;&gt;&lt;span style=&quot;font-size: 15px; height: 34px; line-height: 34px; margin-right: 7px;&quot;&gt;·&lt;/span&gt;&lt;a href=&quot;http://uci.or.kr/G901:A-0005769026&quot; style=&quot;color: white; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;안드로이드 시스템에서 은닉 데이터 탐지에 관한...&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: white; cursor: default; font-family: &amp;quot;arial&amp;quot;; font-size: 11px; font-weight: bold; height: 30px; line-height: 30px; list-style-type: none; margin: 0; padding: 0; text-indent: 26px;&quot; title=&quot;G901:A-0005769026&quot;&gt;&lt;span style=&quot;font-size: 15px; height: 30px; line-height: 30px; margin-right: 7px;&quot;&gt;·&lt;/span&gt;G901:A-0005769026&lt;/li&gt;
&lt;li style=&quot;color: white; cursor: default; font-family: &amp;quot;arial&amp;quot;; font-size: 11px; font-weight: bold; height: 30px; line-height: 30px; list-style-type: none; margin: 0; padding: 0; text-indent: 26px;&quot; title=&quot;&quot;&gt;&lt;span style=&quot;font-size: 15px; height: 30px; line-height: 30px; margin-right: 7px;&quot;&gt;·&lt;/span&gt;[출판사]아주대학교 정보통신대학원...&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/2159064109947475991/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/10/ext.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/2159064109947475991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/2159064109947475991'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/10/ext.html' title='ext 파일시스템 관련 . 참고용.'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-6235993801589816279</id><published>2019-07-17T10:21:00.001+09:00</published><updated>2019-07-17T10:21:19.069+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="password"/><category scheme="http://www.blogger.com/atom/ns#" term="sha1"/><title type='text'>MySQL 의 Password 함수의 알고리즘</title><content type='html'>MySQL에서 사용되는 password 함수는&lt;br /&gt;
입력되는 문자열을 Hashing 하여 돌려준다.&lt;br /&gt;
&lt;br /&gt;
MySQL 4.x 버전 이전까지는 아마 MD5 알고리즘을 사용하였는데&lt;br /&gt;
4.x 이후에는 PASSWORD함수의 알고리즘이 SHA1으로 바뀌고&lt;br /&gt;
이전 호환성을 위해 이전 함수는 OLD_PASSWORD()라는 이름으로 제공한다.&lt;br /&gt;
(위 버전은 정확하지 않음)&lt;br /&gt;
&lt;br /&gt;
알고리즘은 sha1을 두번 사용한다고 한다.&lt;br /&gt;
&lt;br /&gt;
그런데, MySQL 에서 password()를 이용해서 생성해보면&lt;br /&gt;
(&lt;a href=&quot;https://www.browserling.com/tools/mysql-password&quot;&gt;https://www.browserling.com/tools/mysql-password&lt;/a&gt;&amp;nbsp;에서 password를 생성가능)&lt;br /&gt;
&lt;br /&gt;
sha1(sha1(&#39;문자열&#39;)) 한 결과와 다르게 나온다.&lt;br /&gt;
&lt;br /&gt;
찾아보니 이유는 sha1의 입력도 문자열, 출력도 문자열 인데 password함수는 sha1의 출력을 바이너리 그대로 sha1의 입력으로 넣는다. 아래 C코드를 보면&lt;br /&gt;
&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style=&quot;background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #557799;&quot;&gt;#incldue&amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #557799;&quot;&gt;#include&amp;lt;openssl/sha.h&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;unsigned&lt;/span&gt; &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;char&lt;/span&gt; u8;
&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: #0066bb; font-weight: bold;&quot;&gt;main&lt;/span&gt;(&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; argc, &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;char&lt;/span&gt; &lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;argv[]){
    u8 ibuf[&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;] &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;abc&quot;&lt;/span&gt;;
    u8 obuf[&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;] &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; {&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;,};

    SHA1(ibuf, strlen(ibuf), obuf);
    SHA1(obuf, &lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;, outbuf);
    &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; i&lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;;i&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;;i&lt;span style=&quot;color: #333333;&quot;&gt;++&lt;/span&gt;) printf(&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;%02x&quot;&lt;/span&gt;, outbuf[i]);
    printf(&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0; color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;;
}
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
이렇게 하면 MySQL의 password 함수와 동일한 결과를 얻을 수 있다.&lt;br /&gt;
&lt;br /&gt;
MySQL에서는 sha1(unhex(sha1(&#39;abc&#39;))) 해주면 동일한 결과를 얻을 수 있다.&lt;br /&gt;
&lt;br /&gt;
PHP에서는 sha1(sha1(&#39;abc&#39;,true)) 하면 같은 해시값을 얻을 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
참고로 sha1(sha1(&#39;abc&#39;)) 의 C 코드는
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style=&quot;background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;&quot;&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #557799;&quot;&gt;#incldue&amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #557799;&quot;&gt;#include&amp;lt;openssl/sha.h&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;unsigned&lt;/span&gt; &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;char&lt;/span&gt; u8;
&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: #0066bb; font-weight: bold;&quot;&gt;main&lt;/span&gt;(&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; argc, &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;char&lt;/span&gt; &lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;argv[]){
    u8 ibuf[&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;] &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;abc&quot;&lt;/span&gt;;
    u8 sbuf[&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;40&lt;/span&gt;] &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; {&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;,};
    u8 obuf[&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;] &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; {&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;,};

    SHA1(ibuf, strlen(ibuf), obuf);
    &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; i&lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;;i&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;;i&lt;span style=&quot;color: #333333;&quot;&gt;++&lt;/span&gt;)
        sprintf(sbuf&lt;span style=&quot;color: #333333;&quot;&gt;+&lt;/span&gt;(i&lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;2&lt;/span&gt;),&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;%02x&quot;&lt;/span&gt;, obuf[i]);

    SHA1(sbuf, strlen(sbuf), obuf);
    &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;int&lt;/span&gt; i&lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;;i&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;20&lt;/span&gt;;i&lt;span style=&quot;color: #333333;&quot;&gt;++&lt;/span&gt;) printf(&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;%02x&quot;&lt;/span&gt;, outbuf[i]);
    printf(&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0; color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000dd; font-weight: bold;&quot;&gt;0&lt;/span&gt;;
}
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/6235993801589816279/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/07/mysql-password.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6235993801589816279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6235993801589816279'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/07/mysql-password.html' title='MySQL 의 Password 함수의 알고리즘'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-6291764170233927929</id><published>2019-04-29T15:50:00.001+09:00</published><updated>2019-04-29T15:50:20.132+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="완광"/><category scheme="http://www.blogger.com/atom/ns#" term="완벽한 공부법"/><title type='text'>책: 완벽한 공부법</title><content type='html'>&lt;h2&gt;
완벽한 공부법(완공) - 읽는중&lt;/h2&gt;
&lt;div&gt;
생각나는 부분만 적음.(작성중)&lt;br /&gt;
1. 성장형 사고방식: 공부가 재능이 아니라 할 수록 잘 할 수 있다는 생각. 실패하거나 잘 못하더라도 연습하면 잘하게 된다는 생각을 당연히 하는것. &quot;역시난 안되&quot;, &quot;공부 잘 하는 애들은 타고 난거야&quot; 라는 생각을 안하는것.&lt;br /&gt;
2. 잘한것에 대한 초점을 맞추자.&lt;br /&gt;
3. 믿음&lt;br /&gt;
&lt;br /&gt;
Think about thinking.&lt;br /&gt;
메타인지&lt;br /&gt;
해마&lt;br /&gt;
작업기억(=단기기억)&lt;br /&gt;
- 4가지 작업대: 음운회로(phonological loop), 시공간메모장(visual-spatial sketchpad), 일화완충기(episodic buffer), 중앙집행기(central executive)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/6291764170233927929/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/04/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6291764170233927929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6291764170233927929'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/04/blog-post.html' title='책: 완벽한 공부법'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-5629388726820140498</id><published>2019-04-26T13:03:00.000+09:00</published><updated>2019-04-29T15:45:13.057+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="부동산"/><category scheme="http://www.blogger.com/atom/ns#" term="투자"/><title type='text'>용적률, 건페율 과 도로</title><content type='html'>용적률은 어떤 땅에 건물을 지을때&lt;br /&gt;
&lt;br /&gt;
바닥면적의 합과 땅의 비율이다.&lt;br /&gt;
&lt;br /&gt;
바닥면적이란 건물의 각층의 면적이고, 하늘에서 정확하게 수직으로 내려다 보았을때 면적을 말한다.&lt;br /&gt;
&lt;br /&gt;
예를 들어&lt;br /&gt;
&lt;br /&gt;
100평 크기의 땅에 50평에만 건물을 2층을 지으면 바닥면적의 합은 50x2 이므로 100이다.&lt;br /&gt;
&lt;br /&gt;
이때 용적률은 100%가 된다.&lt;br /&gt;
&lt;br /&gt;
건폐율은 100평땅에 50평만 건물이 세워져 있으므로 50%가 된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
여기까진 쉽게 알 수 있는 사실이고...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
용적률을 정하는 큰 기준은 용도지역구분이다.&lt;br /&gt;
(아래 자료는 작성중임)&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;용도지역(&lt;/b&gt;국토의 계획 및 이용에 관한 볍률 시행령)&lt;/h3&gt;
주거지역&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th colspan=&quot;2&quot;&gt;구분&lt;/th&gt;&lt;th&gt;건폐율&lt;/th&gt;&lt;th&gt;용적률&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td rowspan=&quot;2&quot;&gt;전용주거지역&lt;br /&gt;
(양호한 주거환경을 보호하기위해)&lt;/td&gt;&lt;td&gt;1종(단독주택)&lt;/td&gt;&lt;td&gt;50% 이하&lt;/td&gt;&lt;td&gt;50~100%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2종(공동주택)&lt;/td&gt;&lt;td&gt;50%이하&lt;/td&gt;&lt;td&gt;100~150%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td rowspan=&quot;3&quot;&gt;일반주거지역&lt;br /&gt;
(편리한 주거환경을 조성하기 위해)&lt;/td&gt;&lt;td&gt;1종(저층주택)&lt;/td&gt;&lt;td&gt;60% 이하&lt;/td&gt;&lt;td&gt;100~200%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2종(중층주택)&lt;/td&gt;&lt;td&gt;60%이하&lt;/td&gt;&lt;td&gt;150~250%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3종(중고층주택)&lt;/td&gt;&lt;td&gt;50%이하&lt;/td&gt;&lt;td&gt;200~300%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;준주거지역&lt;br /&gt;
(주거기능을 위주+일부 상업기능 및 업무기능)&lt;/td&gt;&lt;td&gt;70%이하&lt;/td&gt;&lt;td&gt;200~500%&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
상업지역&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot;&gt;&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;구분&lt;/th&gt;&lt;th&gt;건폐율&lt;/th&gt;&lt;th&gt;용적률&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;중심상업지역&lt;br /&gt;
(도심,부도심의 상업/업무 기능 확충)&lt;/td&gt;&lt;td&gt;90% 이하&lt;/td&gt;&lt;td&gt;400%~1500%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;일반상업지역(일반적인 상업/업무기능담당)&lt;/td&gt;&lt;td&gt;80% 이하&lt;/td&gt;&lt;td&gt;300%~1300%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;근린상업지역(근린지역에서 일용품/서비스 공급)&lt;/td&gt;&lt;td&gt;70%이하&lt;/td&gt;&lt;td&gt;200%~900%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;유통상업지역(도시내-지역간 유통기능 증진)&lt;/td&gt;&lt;td&gt;80%이하&lt;/td&gt;&lt;td&gt;200%~1100%&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
공업지역&lt;br /&gt;
&amp;nbsp; - 전용공업지역(주로 중화학공업, 공해성 고업 등을 수용하기 위해) 70% 150~300%&lt;br /&gt;
&amp;nbsp; - 일반공업지역 : 호나경을 저해하지 아니하는 공업의 배치 70% 200~350%&lt;br /&gt;
&amp;nbsp; - 준공업지역 : 경공업 그 밖의 공업, 주거+상업+업무기능 보완 70% 200~400%&lt;br /&gt;
&lt;br /&gt;
녹지지역&lt;br /&gt;
&amp;nbsp; - 보전녹지지역 : 도시의 자연환경/경관/사림 및 녹지공간 보전 20% 50~80&lt;br /&gt;
&amp;nbsp; - 생산녹지지역 : 주로 농업적 생산을 위하여&amp;nbsp; 20% 50~100&lt;br /&gt;
&amp;nbsp; - 자연녹지지역 : 도시의 녹지공간확보(불가피한 경우 제한적 개발 20% 50~100&lt;br /&gt;
&lt;br /&gt;
보전관리지역 20% 50~80%&lt;br /&gt;
생산관리지역 20% 50~80%&lt;br /&gt;
계획관리지역 40% 50~100%&lt;br /&gt;
농림지역 20% 50~80%&lt;br /&gt;
자연환경보전지역 20% 50~80%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
용도지구&lt;/h3&gt;
경관지구&lt;br /&gt;
방재지구&lt;br /&gt;
보호지구&lt;br /&gt;
취락지구&lt;br /&gt;
개발진흥지구&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
도로(도로법)&lt;/h3&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/5629388726820140498/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/04/blog-post_26.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5629388726820140498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5629388726820140498'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/04/blog-post_26.html' title='용적률, 건페율 과 도로'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-8279757250561320960</id><published>2019-04-23T14:19:00.000+09:00</published><updated>2019-04-23T14:23:37.314+09:00</updated><title type='text'>Python map() , zip()</title><content type='html'>&lt;h2&gt;
Python 의 map() 과 zip()&lt;/h2&gt;
- map( ) :&amp;nbsp;&lt;a href=&quot;https://docs.python.org/ko/3.7/library/functions.html#map&quot;&gt;https://docs.python.org/ko/3.7/library/functions.html#map&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;dt id=&quot;map&quot; style=&quot;font-family: &amp;quot;Lucida Grande&amp;quot;, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;code class=&quot;descname&quot; style=&quot;background-color: transparent; border-radius: 3px; font-family: monospace, sans-serif; font-size: 19.2px; font-weight: bold; padding: 0px 1px;&quot;&gt;map&lt;/code&gt;&lt;span class=&quot;sig-paren&quot; style=&quot;font-size: larger;&quot;&gt;(&lt;/span&gt;&lt;em&gt;function&lt;/em&gt;,&amp;nbsp;&lt;em&gt;iterable&lt;/em&gt;,&amp;nbsp;&lt;em&gt;...&lt;/em&gt;&lt;span class=&quot;sig-paren&quot; style=&quot;font-size: larger;&quot;&gt;)&lt;/span&gt;&lt;a class=&quot;headerlink&quot; href=&quot;https://docs.python.org/ko/3.7/library/functions.html#map&quot; style=&quot;color: #6363bb; font-size: 0.8em; padding: 0px 4px; text-decoration-line: none; visibility: hidden;&quot; title=&quot;정의 주소&quot;&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Lucida Grande&amp;quot;, Arial, sans-serif; font-size: 16px; line-height: 20.8px; margin-bottom: 10px; margin-left: 30px; margin-top: 3px; text-align: justify;&quot;&gt;&lt;div style=&quot;line-height: 22.4px;&quot;&gt;
&lt;em&gt;iterable&lt;/em&gt;&amp;nbsp;의 모든 항목에&amp;nbsp;&lt;em&gt;function&lt;/em&gt;&amp;nbsp;을 적용한 후 그 결과를 돌려주는 이터레이터를 돌려줍니다. 추가&amp;nbsp;&lt;em&gt;iterable&lt;/em&gt;&amp;nbsp;인자가 전달되면,&amp;nbsp;&lt;em&gt;function&lt;/em&gt;&amp;nbsp;은 그 수 만큼의 인자를 받아들여야 하고 모든 이터러블에서 병렬로 제공되는 항목들에 적용됩니다. 다중 이터러블의 경우, 이터레이터는 가장 짧은 이터러블이 모두 소모되면 멈춥니다. 함수 입력이 이미 인자 튜플로 배치된 경우에는,&amp;nbsp;&lt;a class=&quot;reference internal&quot; href=&quot;https://docs.python.org/ko/3.7/library/itertools.html#itertools.starmap&quot; style=&quot;color: #6363bb; text-decoration-line: none;&quot; title=&quot;itertools.starmap&quot;&gt;&lt;code class=&quot;xref py py-func docutils literal notranslate&quot; style=&quot;background-color: transparent; border-radius: 3px; font-family: monospace, sans-serif; font-size: 15.44px; padding: 0px 1px;&quot;&gt;&lt;span class=&quot;pre&quot; style=&quot;hyphens: none;&quot;&gt;itertools.starmap()&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;&amp;nbsp;를 보세요.&lt;/div&gt;
&lt;/dd&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- zip() :&amp;nbsp;&lt;a href=&quot;https://docs.python.org/ko/3.7/library/functions.html#zip&quot;&gt;https://docs.python.org/ko/3.7/library/functions.html#zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;dt id=&quot;zip&quot; style=&quot;font-family: &amp;quot;Lucida Grande&amp;quot;, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;code class=&quot;descname&quot; style=&quot;background-color: transparent; border-radius: 3px; font-family: monospace, sans-serif; font-size: 19.2px; font-weight: bold; padding: 0px 1px;&quot;&gt;zip&lt;/code&gt;&lt;span class=&quot;sig-paren&quot; style=&quot;font-size: larger;&quot;&gt;(&lt;/span&gt;&lt;em&gt;*iterables&lt;/em&gt;&lt;span class=&quot;sig-paren&quot; style=&quot;font-size: larger;&quot;&gt;)&lt;/span&gt;&lt;a class=&quot;headerlink&quot; href=&quot;https://docs.python.org/ko/3.7/library/functions.html#zip&quot; style=&quot;color: #6363bb; font-size: 0.8em; padding: 0px 4px; text-decoration-line: none; visibility: hidden;&quot; title=&quot;정의 주소&quot;&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dd style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Lucida Grande&amp;quot;, Arial, sans-serif; font-size: 16px; line-height: 20.8px; margin-bottom: 10px; margin-left: 30px; margin-top: 3px; text-align: justify;&quot;&gt;&lt;div style=&quot;line-height: 22.4px;&quot;&gt;
각 iterables 의 요소들을 모으는 이터레이터를 만듭니다.&lt;/div&gt;
&lt;div style=&quot;line-height: 22.4px;&quot;&gt;
튜플의 이터레이터를 돌려주는데,&amp;nbsp;&lt;em&gt;i&lt;/em&gt;&amp;nbsp;번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의&amp;nbsp;&lt;em&gt;i&lt;/em&gt;&amp;nbsp;번째 요소를 포함합니다. 이터레이터는 가장 짧은 입력 이터러블이 모두 소모되면 멈춥니다. 하나의 이터러블 인자를 사용하면, 1-튜플의 이터레이터를 돌려줍니다. 인자가 없으면, 빈 이터레이터를 돌려줍니다.&lt;/div&gt;
&lt;div style=&quot;line-height: 22.4px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/dd&gt;

map(str , [1,2,3]) 의 결과는&lt;br /&gt;
&lt;div&gt;
[&#39;1&#39;,&#39;2&#39;,&#39;3&#39;]&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1,2,3 이라는 숫자가 각각 str함수를 거쳐서 문자열 1,2,3 으로 바뀐다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
만약 x2 라는 함수를 아래와 같이 정의하면&lt;/div&gt;
&lt;div&gt;
def x2(x):&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; return x*2&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
map(x2, [1,2,3]) 의 결과는&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
[2,4,6]&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
map의 인자가 iterable 하기만 하면 됨.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
zip은 [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;] 와 [1,2,3] 이라는 2개의 list가 있으면 각 인덱스 끼리 합쳐준다.&lt;/div&gt;
&lt;div&gt;
zip([&#39;a&#39;,&#39;b&#39;,&#39;c&#39;], [1,2,3]) 의 결과는&lt;/div&gt;
&lt;div&gt;
[(&#39;a&#39;,1),(&#39;b&#39;,2),(&#39;c&#39;,3)] 이다. (하지만, 3.5 버전에서 해보니 zip 오브젝트로만 나온다. 좀 더 확인 필요함)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
dict(zip([&#39;a&#39;,&#39;b&#39;,&#39;c&#39;], [1,2,3])) 의 결과는&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&#39;a&#39;:1 , &#39;b&#39;:2, &#39;c&#39;:3 이다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
map object, zip object 로 나오는 것들은 iterator를 반환하니 내용을 확인할려면 for문을 써서 확인해보면 가능.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/8279757250561320960/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/04/python-map-zip.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/8279757250561320960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/8279757250561320960'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2019/04/python-map-zip.html' title='Python map() , zip()'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-1128769980295883004</id><published>2017-04-07T23:51:00.001+09:00</published><updated>2017-04-07T23:51:38.290+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="토마스"/><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyqTD0I0KJeVEkNmPTcL_J7E9LsuIcCcoFATYYITrF-srhpcNu5OCAGMk8nDvhO7Sn7jqSAoHR9RUQccaU36EB6u6sNX0h1W1Y2B8-5G7ZWgEzm_bmRqs8eMYE_SvCyC6eGqvmm7FpNGU/s1600/20170317_221451.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyqTD0I0KJeVEkNmPTcL_J7E9LsuIcCcoFATYYITrF-srhpcNu5OCAGMk8nDvhO7Sn7jqSAoHR9RUQccaU36EB6u6sNX0h1W1Y2B8-5G7ZWgEzm_bmRqs8eMYE_SvCyC6eGqvmm7FpNGU/s640/20170317_221451.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/1128769980295883004/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/04/blog-post_7.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/1128769980295883004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/1128769980295883004'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/04/blog-post_7.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyqTD0I0KJeVEkNmPTcL_J7E9LsuIcCcoFATYYITrF-srhpcNu5OCAGMk8nDvhO7Sn7jqSAoHR9RUQccaU36EB6u6sNX0h1W1Y2B8-5G7ZWgEzm_bmRqs8eMYE_SvCyC6eGqvmm7FpNGU/s72-c/20170317_221451.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-4029268169020945045</id><published>2017-04-06T22:08:00.001+09:00</published><updated>2017-04-06T22:08:26.540+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="토마스"/><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUC-DT4oS0LTD9BnhXZP8C7jVaTMv_u-yK3lJzbmIw2IPaHJxYyyROk-sy1uwVE5UL_3JfL2VDFhi9OIqWuvTUcReIz5l1M2x__wl4hTQVt9FXh6vsGKIovexRvgFKkOilT7WXjbs-vQ/s1600/20170406_220015.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUC-DT4oS0LTD9BnhXZP8C7jVaTMv_u-yK3lJzbmIw2IPaHJxYyyROk-sy1uwVE5UL_3JfL2VDFhi9OIqWuvTUcReIz5l1M2x__wl4hTQVt9FXh6vsGKIovexRvgFKkOilT7WXjbs-vQ/s640/20170406_220015.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/4029268169020945045/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/04/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/4029268169020945045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/4029268169020945045'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/04/blog-post.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUC-DT4oS0LTD9BnhXZP8C7jVaTMv_u-yK3lJzbmIw2IPaHJxYyyROk-sy1uwVE5UL_3JfL2VDFhi9OIqWuvTUcReIz5l1M2x__wl4hTQVt9FXh6vsGKIovexRvgFKkOilT7WXjbs-vQ/s72-c/20170406_220015.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-451414862171233067</id><published>2017-02-10T22:44:00.003+09:00</published><updated>2017-02-10T22:44:45.695+09:00</updated><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMUuzy49c9iDsxsTjI-lL4sZ-NnGYZ-h2C4KF3ehMBG4OpNEvfD-2mQOXzTEo_5DhKL5Z_mwpeFx8E2MhWUoao8uKxUX5XKCq3ReUDeXOk1ahlUy7nziEnayIjtXUsgkj0xiWrP6xX1o/s1600/20170203_212956.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMUuzy49c9iDsxsTjI-lL4sZ-NnGYZ-h2C4KF3ehMBG4OpNEvfD-2mQOXzTEo_5DhKL5Z_mwpeFx8E2MhWUoao8uKxUX5XKCq3ReUDeXOk1ahlUy7nziEnayIjtXUsgkj0xiWrP6xX1o/s640/20170203_212956.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/451414862171233067/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_76.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/451414862171233067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/451414862171233067'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_76.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMUuzy49c9iDsxsTjI-lL4sZ-NnGYZ-h2C4KF3ehMBG4OpNEvfD-2mQOXzTEo_5DhKL5Z_mwpeFx8E2MhWUoao8uKxUX5XKCq3ReUDeXOk1ahlUy7nziEnayIjtXUsgkj0xiWrP6xX1o/s72-c/20170203_212956.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-7381015419925657663</id><published>2017-02-10T22:44:00.001+09:00</published><updated>2017-02-10T22:44:19.238+09:00</updated><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGDRczWjKvwLOEfrAS5AcxFF_an_yDwsbcMux3kpLGVzLdmtNuWOre6ZZX3JUfqZerGlIVzhLnTJVRet3NnqxEKdjUgXsU09EfD9M8_owKji6VRXMkQAE30pPj4vowUxPrh-xqQK4N8E/s1600/20170106_212909.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGDRczWjKvwLOEfrAS5AcxFF_an_yDwsbcMux3kpLGVzLdmtNuWOre6ZZX3JUfqZerGlIVzhLnTJVRet3NnqxEKdjUgXsU09EfD9M8_owKji6VRXMkQAE30pPj4vowUxPrh-xqQK4N8E/s640/20170106_212909.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/7381015419925657663/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_46.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/7381015419925657663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/7381015419925657663'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_46.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGDRczWjKvwLOEfrAS5AcxFF_an_yDwsbcMux3kpLGVzLdmtNuWOre6ZZX3JUfqZerGlIVzhLnTJVRet3NnqxEKdjUgXsU09EfD9M8_owKji6VRXMkQAE30pPj4vowUxPrh-xqQK4N8E/s72-c/20170106_212909.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-6407619164470284007</id><published>2017-02-10T22:43:00.001+09:00</published><updated>2017-02-10T22:43:35.865+09:00</updated><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0jL_2wi6lnpHjLKdRWv-YwAg4Se1a5a0zZgQBbj_NMpiFvmtC0pGZBaXd22u2-ZCjk8iugEREIGNHJBLlylYrlqwyorBO-Qa2yqwOohc6s8s3Im3Hlmf3KfKJp3TK97OKSrZlNiswy58/s1600/20170103_141653.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0jL_2wi6lnpHjLKdRWv-YwAg4Se1a5a0zZgQBbj_NMpiFvmtC0pGZBaXd22u2-ZCjk8iugEREIGNHJBLlylYrlqwyorBO-Qa2yqwOohc6s8s3Im3Hlmf3KfKJp3TK97OKSrZlNiswy58/s640/20170103_141653.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/6407619164470284007/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_99.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6407619164470284007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6407619164470284007'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_99.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0jL_2wi6lnpHjLKdRWv-YwAg4Se1a5a0zZgQBbj_NMpiFvmtC0pGZBaXd22u2-ZCjk8iugEREIGNHJBLlylYrlqwyorBO-Qa2yqwOohc6s8s3Im3Hlmf3KfKJp3TK97OKSrZlNiswy58/s72-c/20170103_141653.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-3846688531970267873</id><published>2017-02-10T21:22:00.003+09:00</published><updated>2017-02-10T21:22:21.345+09:00</updated><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYxCT1NqMC4luIeohaI8qPPPTAJdH_szP8w8If-moLSczJkNmk50DtCQQ9wjnoqlcuFWqtFaaRS9ZXyNygyH_2zBjq00mr8s4gby_lbSzR4X3LgSnM-0xvBDL2EQgWEzJVtNWzF8lg17w/s1600/20161203_144331.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYxCT1NqMC4luIeohaI8qPPPTAJdH_szP8w8If-moLSczJkNmk50DtCQQ9wjnoqlcuFWqtFaaRS9ZXyNygyH_2zBjq00mr8s4gby_lbSzR4X3LgSnM-0xvBDL2EQgWEzJVtNWzF8lg17w/s640/20161203_144331.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/3846688531970267873/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_1.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/3846688531970267873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/3846688531970267873'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_1.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYxCT1NqMC4luIeohaI8qPPPTAJdH_szP8w8If-moLSczJkNmk50DtCQQ9wjnoqlcuFWqtFaaRS9ZXyNygyH_2zBjq00mr8s4gby_lbSzR4X3LgSnM-0xvBDL2EQgWEzJVtNWzF8lg17w/s72-c/20161203_144331.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-8351348506322924950</id><published>2017-02-10T21:22:00.001+09:00</published><updated>2017-02-10T21:22:07.296+09:00</updated><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMirkGKebHbChyphenhypheny0iEVQvNSznITgAO3DI9OIP_wUezoW9kI_JMlfb7kQ7s9jcQas0q-rb4nHhtg51-KVPHRGPhJ0ishNyBcyS9cdZWBIVBBStEygSrNyExStceBgVz9PEU-VIwU9HbJCU/s1600/20161201_211521.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMirkGKebHbChyphenhypheny0iEVQvNSznITgAO3DI9OIP_wUezoW9kI_JMlfb7kQ7s9jcQas0q-rb4nHhtg51-KVPHRGPhJ0ishNyBcyS9cdZWBIVBBStEygSrNyExStceBgVz9PEU-VIwU9HbJCU/s640/20161201_211521.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/8351348506322924950/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_84.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/8351348506322924950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/8351348506322924950'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_84.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMirkGKebHbChyphenhypheny0iEVQvNSznITgAO3DI9OIP_wUezoW9kI_JMlfb7kQ7s9jcQas0q-rb4nHhtg51-KVPHRGPhJ0ishNyBcyS9cdZWBIVBBStEygSrNyExStceBgVz9PEU-VIwU9HbJCU/s72-c/20161201_211521.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-4662013055133117237</id><published>2017-02-10T21:21:00.003+09:00</published><updated>2017-02-10T21:21:43.647+09:00</updated><title type='text'>토마스 기찻길</title><content type='html'>&lt;p dir=&quot;ltr&quot;&gt;&amp;#54616;&amp;#47732; &amp;#54624;&amp;#49688;&amp;#47197; &amp;#51060;&amp;#48736;&amp;#44032; &amp;#45908; &amp;#51132;&amp;#51080;&amp;#45716;&lt;u&gt;&amp;#46319;&lt;/u&gt;&lt;/p&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOnNK_KMrJMAyKBKRT2F9ncj82C79lF6_j6gsS054PwutQaLHAjJXJvOuxwkYfo2pjkt4hD5AEZWTnXvTB2gDMRbEmjm1PiX53t6ejisLbrL3xoS6V9cJVmQParbhbYQHopk0RE8ChJC0/s1600/20161128_214214.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOnNK_KMrJMAyKBKRT2F9ncj82C79lF6_j6gsS054PwutQaLHAjJXJvOuxwkYfo2pjkt4hD5AEZWTnXvTB2gDMRbEmjm1PiX53t6ejisLbrL3xoS6V9cJVmQParbhbYQHopk0RE8ChJC0/s640/20161128_214214.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/4662013055133117237/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_10.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/4662013055133117237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/4662013055133117237'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post_10.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOnNK_KMrJMAyKBKRT2F9ncj82C79lF6_j6gsS054PwutQaLHAjJXJvOuxwkYfo2pjkt4hD5AEZWTnXvTB2gDMRbEmjm1PiX53t6ejisLbrL3xoS6V9cJVmQParbhbYQHopk0RE8ChJC0/s72-c/20161128_214214.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-5494337942744263054</id><published>2017-02-10T21:21:00.001+09:00</published><updated>2017-02-10T21:21:14.895+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="토마스"/><title type='text'>토마스 기찻길</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yo9b0aWb0aSw8xGslbZxNODFi8HCyoKJiAcq0iGAUtMgR8UR9nivxwIAWK8VFHcRBS9kuQvR-2k_1U-zZCl86ldsALsnPWVxoL9vbpwpWOW1ZwbC0jRLIuzNJ_AGlpov9gQ8-PnsskM/s1600/20161123_210852.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yo9b0aWb0aSw8xGslbZxNODFi8HCyoKJiAcq0iGAUtMgR8UR9nivxwIAWK8VFHcRBS9kuQvR-2k_1U-zZCl86ldsALsnPWVxoL9vbpwpWOW1ZwbC0jRLIuzNJ_AGlpov9gQ8-PnsskM/s640/20161123_210852.jpg&quot;&gt; &lt;/a&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/5494337942744263054/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5494337942744263054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5494337942744263054'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2017/02/blog-post.html' title='토마스 기찻길'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yo9b0aWb0aSw8xGslbZxNODFi8HCyoKJiAcq0iGAUtMgR8UR9nivxwIAWK8VFHcRBS9kuQvR-2k_1U-zZCl86ldsALsnPWVxoL9vbpwpWOW1ZwbC0jRLIuzNJ_AGlpov9gQ8-PnsskM/s72-c/20161123_210852.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-6871790535612357354</id><published>2015-10-26T10:12:00.000+09:00</published><updated>2016-03-06T18:24:05.069+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="flip2"/><category scheme="http://www.blogger.com/atom/ns#" term="jbl"/><title type='text'>JBL Flip2 Charging issue. replace micro usb(b)</title><content type='html'>JBL Flp2 이쁘게 생기고, 음질도 좋다.&lt;br&gt;
&lt;br&gt;
문제는 국내 정식수입업체도 AS가 되지 않는다.(AS를 보내면 교환이 원칙이라며 10만원에 가까운 돈을 요구한다.)&lt;br&gt;
&lt;br&gt;
&amp;nbsp;
&lt;b&gt;문제&lt;/b&gt;
Flip2의 충전단자가 접촉불량인듯 충전이 되질 않는다.&lt;br&gt;
&lt;br&gt;
구글링 해보면 충전단자를 케이브롤 뽑아낸 자료가 있었다.(&lt;a href=&quot;https://www.youtube.com/watch?v=-VNsuGodUkk&quot;&gt;https://www.youtube.com/watch?v=-VNsuGodUkk&lt;/a&gt; )&amp;nbsp;
&lt;br&gt;
개인적으로 이런건 별로 좋아하지 않아서 분해하였다.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;

&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYs733sgANhneyveKXGD4OYvX8-Hs-_ggCVi6GesRoO4koyh6NOccpylZ9woCiwg6TNgrs-o-Hz0pjp9a7FIt8wOr17e1-Juvc7Cn-v_roqENUA6BIUe2621qElZlTF__6Z-NZB1y9CFE/s1600/20150929_190705.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYs733sgANhneyveKXGD4OYvX8-Hs-_ggCVi6GesRoO4koyh6NOccpylZ9woCiwg6TNgrs-o-Hz0pjp9a7FIt8wOr17e1-Juvc7Cn-v_roqENUA6BIUe2621qElZlTF__6Z-NZB1y9CFE/s400/20150929_190705.jpg&quot; width=&quot;225&quot;&gt;&lt;/a&gt;

&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic_8KBTHKHWyKJNgg801Dz_2b9VPwlRKvdkaGSg8vNpUtGQ736ruaKlB9qn51gRywDbtJbazwdOqJaC8lZ7WTDF2WX3odQZW50ah40CYHwmlBO1Odah-GmttF5hlr-Ah1P-mBEeGTAkf4/s1600/20151001_225302.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic_8KBTHKHWyKJNgg801Dz_2b9VPwlRKvdkaGSg8vNpUtGQ736ruaKlB9qn51gRywDbtJbazwdOqJaC8lZ7WTDF2WX3odQZW50ah40CYHwmlBO1Odah-GmttF5hlr-Ah1P-mBEeGTAkf4/s400/20151001_225302.jpg&quot; width=&quot;225&quot;&gt;&lt;/a&gt;
&lt;br&gt;
허... 충전 단자가 실리콘으로 떡칠이 되어있다.&lt;br&gt;
자세히보면 충전단자도 피스로 고정이 되어있기 때문에 저렇게 떡칠할 필요가 없을것 같은데, JBL측에서도 문제가 있다는걸 알고 있었던것 같다.&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5LL4B5hsECH3V8xs6PKW7BTQHK30wHn4ZQ7wxeZigCiMfQVMJNKIYS6qFTGIbV9Fkwqf-y0LowHmZAkvOqhZlO2KjqyZM53-EZotQtyLWCnLKDzO9oUUUIenKcpPX3dFEKXjnFGC5i2Y/s1600/20151001_225310.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5LL4B5hsECH3V8xs6PKW7BTQHK30wHn4ZQ7wxeZigCiMfQVMJNKIYS6qFTGIbV9Fkwqf-y0LowHmZAkvOqhZlO2KjqyZM53-EZotQtyLWCnLKDzO9oUUUIenKcpPX3dFEKXjnFGC5i2Y/s400/20151001_225310.jpg&quot; width=&quot;225&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA5WT9cvZpj5J2nGnfzxZJoBhyphenhyphen2acm-joLv3mStL0rWL-JJ3cfRxfI0EuvNZzWhf2D7ZWCSHz-Ye6XtqAt64fOxd6ra4W-fSxy4Ed2sjSqLQsC6QPInwFLiOyf5rd7K9CFmXTnWAZccyI/s1600/20151002_184915.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA5WT9cvZpj5J2nGnfzxZJoBhyphenhyphen2acm-joLv3mStL0rWL-JJ3cfRxfI0EuvNZzWhf2D7ZWCSHz-Ye6XtqAt64fOxd6ra4W-fSxy4Ed2sjSqLQsC6QPInwFLiOyf5rd7K9CFmXTnWAZccyI/s400/20151002_184915.jpg&quot; width=&quot;400&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
칼로 조심해서 실리콘을 잘라내고 usb 단자를 분리 하였다.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXIpmOYWOFEBQFX8rW7eblieqgKuoBnywkxj4loyuwSAkpE9TVKJG7cmD3TajGifWLAvf2O-Og1DmtaP2h3KYRNpbv1cVszVmWDYLBz2sRKH_HWvZ7I-OndyQk0P7OusXwF-i3XtV25gw/s1600/20151018_075426.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXIpmOYWOFEBQFX8rW7eblieqgKuoBnywkxj4loyuwSAkpE9TVKJG7cmD3TajGifWLAvf2O-Og1DmtaP2h3KYRNpbv1cVszVmWDYLBz2sRKH_HWvZ7I-OndyQk0P7OusXwF-i3XtV25gw/s640/20151018_075426.jpg&quot; width=&quot;360&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
자세히 보면 usb 커넥터가 기판에서 떨어져 있다. 부품이 불량 같다. 저런부품은 엘레파츠에서 비슷한 것들이 많아서 구매하였다.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinQIu3YZSvB4Mo22tnOEgzLeNvz5Ohh7qFgULkO_cSIqAcUP5LUBTJ3aqb8kUJojCqSeFGRrAX5Qx1xzuEEKgMOTTx8GGARhUe4DLO44EJG378bD6HSNU4k9HfXKUxRakL6P1wn19VB3Q/s1600/20151005_215407.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinQIu3YZSvB4Mo22tnOEgzLeNvz5Ohh7qFgULkO_cSIqAcUP5LUBTJ3aqb8kUJojCqSeFGRrAX5Qx1xzuEEKgMOTTx8GGARhUe4DLO44EJG378bD6HSNU4k9HfXKUxRakL6P1wn19VB3Q/s640/20151005_215407.jpg&quot; width=&quot;360&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
아래쪽에 micro usb 커넥터 이다. 혹시 몰라 케이블에서 커넥터를 빼서 쓸까해서 같이 구매하였다.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHkODWraDqxWNDqU1FUbglJlcNeEIyV63333Re3GVr6p0wdVGJAPhsD9IdB_C7iBJYajUsECMg2RI8ePQZEugWdoUONGsJ_Q5KeeN5e7T8ME7-RPWYpG6aqXO1W7QSnxamDS9b8M6OY-8/s1600/20151018_075440.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHkODWraDqxWNDqU1FUbglJlcNeEIyV63333Re3GVr6p0wdVGJAPhsD9IdB_C7iBJYajUsECMg2RI8ePQZEugWdoUONGsJ_Q5KeeN5e7T8ME7-RPWYpG6aqXO1W7QSnxamDS9b8M6OY-8/s640/20151018_075440.jpg&quot; width=&quot;360&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
원래 파워케이블을 잘라서 납땜해주고 연결하였다. 잘 동작한다.&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4TlD9AW-SjbQHmb2sB4AgXBfEf4KX83uTojdQvqeqp50aC2i3gQG5ONMKpjJ250yI0LmMEClIVj3BviyHn2Ig8ejys4P_XNov4MMQLJryCQWQ2j_L0Amg3LO2kXiSPudnfzoglzLa01Y/s1600/20151018_114037.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4TlD9AW-SjbQHmb2sB4AgXBfEf4KX83uTojdQvqeqp50aC2i3gQG5ONMKpjJ250yI0LmMEClIVj3BviyHn2Ig8ejys4P_XNov4MMQLJryCQWQ2j_L0Amg3LO2kXiSPudnfzoglzLa01Y/s640/20151018_114037.jpg&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;/div&gt;
사진은 없지만, 새로산 micro usb 커넉터의 보드가 조금 더 커서 플라스틱 케이스를 잘라내었다. 제일 힘들 부분이었다. 딱 맞추어 잘라내는데 2시간 정도 걸린것 같다.&lt;br&gt;
정확히 맞추어 준 후 실리콘으로 떡칠 해주었다. 잘 굳었는지 확인하고 다시 조립.&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvoWi0oX7ccz65zNaB_aDZvGj3yXi4UzxwrEJoDRdAy3JhoyIL3l9QBAMlWhJt6DFT1jIMMjvscWLnw8R3RakXmaLxAb_Kw_jIxDn09LaNWRC2uki7auZyRliDN3cUXTi6Syz0oLPd-lM/s1600/20151018_121735.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvoWi0oX7ccz65zNaB_aDZvGj3yXi4UzxwrEJoDRdAy3JhoyIL3l9QBAMlWhJt6DFT1jIMMjvscWLnw8R3RakXmaLxAb_Kw_jIxDn09LaNWRC2uki7auZyRliDN3cUXTi6Syz0oLPd-lM/s320/20151018_121735.jpg&quot; width=&quot;180&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
다 조립후 잘 되는지 한번더 확인.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
부품 구매에 1만원도 쓰지 않았다. 뿌듯함. ㅋㅋ&lt;/div&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/6871790535612357354/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/10/jbl-flip2-charging-issue-replace-micro.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6871790535612357354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6871790535612357354'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/10/jbl-flip2-charging-issue-replace-micro.html' title='JBL Flip2 Charging issue. replace micro usb(b)'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYs733sgANhneyveKXGD4OYvX8-Hs-_ggCVi6GesRoO4koyh6NOccpylZ9woCiwg6TNgrs-o-Hz0pjp9a7FIt8wOr17e1-Juvc7Cn-v_roqENUA6BIUe2621qElZlTF__6Z-NZB1y9CFE/s72-c/20150929_190705.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-1756224824681273119</id><published>2015-08-06T14:28:00.000+09:00</published><updated>2015-08-06T14:36:50.684+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="all"/><category scheme="http://www.blogger.com/atom/ns#" term="any"/><category scheme="http://www.blogger.com/atom/ns#" term="compare"/><title type='text'>OpenCL Vector type 간 비교 </title><content type='html'>OpenCL에는 벡터 형 자료가 있다.&lt;br /&gt;
&lt;br /&gt;
아래 표는&amp;nbsp;&lt;a href=&quot;https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/&quot;&gt;https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/&lt;/a&gt; 에서 긁어왔다.&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; style=&quot;background-color: white; border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; color: black; font-family: verdana, sans-serif;  font-stretch: normal; margin-top: 10px; &quot;&gt;&lt;thead&gt;
&lt;tr&gt;&lt;th align=&quot;left&quot; style=&quot;border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal;&quot;&gt;Type in OpenCL&lt;br /&gt;
Language&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal;&quot;&gt;Description&lt;/th&gt;&lt;th 0=&quot;&quot; 1px=&quot;&quot; align=&quot;left&quot; border-color:=&quot;&quot; border-width:=&quot;&quot; font-stretch:=&quot;&quot; normal=&quot;&quot; rgb=&quot;&quot;&gt;API type for&lt;br /&gt;
application&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;char&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;8-bit signed two&#39;s complement&lt;br /&gt;
integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_char&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;uchar&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;8-bit unsigned integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_uchar&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;short&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;16-bit signed two&#39;s complement&lt;br /&gt;
&amp;nbsp;integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_short&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;ushort&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;16-bit unsigned integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_ushort&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;int&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;32-bit signed two&#39;s&lt;br /&gt;
complement integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_int&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;uint&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;32-bit unsigned integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_uint&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;long&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;64-bit signed two&#39;s&lt;br /&gt;
complement &amp;nbsp;integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_long&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;ulong&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;64-bit unsigned integer values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_ulong&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;float&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;32-bit floating-point values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_float&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;double&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;A vector of&amp;nbsp;&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&amp;nbsp;64-bit floating-point values.&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;border-collapse: collapse; border-color: rgb(0, 0, 0); border-width: 1px; font-stretch: normal; padding: 5px; vertical-align: text-top;&quot;&gt;&lt;span class=&quot;type&quot; style=&quot;font-stretch: normal !important;&quot;&gt;cl_double&lt;em class=&quot;replaceable&quot;&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
정말 편한게 벡터간에 연산이 가능하고 &amp;nbsp;실제로 HW에서 벡터연산을 지원하는 경우가 많으므로 벡터연산을 하면 성능이 향상된다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
벡터간 비교또한 가능한데&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
uchar4 word1 = (uchar4)(&#39;t&#39;,&#39;e&#39;,&#39;s&#39;,&#39;t&#39;);&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
uchar4 word2 = (uchar4)(&#39;t&#39;,&#39;e&#39;,&#39;s&#39;,&#39;t&#39;);&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
word1 == word2 의 결과값은 (0xff,0xff,0xff,0xff) 가된다. (거짓의 경우는 0x00 값이 셋팅된다)&lt;/div&gt;
&lt;div&gt;
하지만 벡터타입은 if문 안에서 어떤 원소를 비교해야할지 모르기때문에 오류가 난다.&lt;/div&gt;
&lt;div&gt;
즉&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
if(word1 == word2 ) 는 불가능 하다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
이때 모든원소가 참인지 거짓인지 확인하는 빌트인 함수가 있다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;refsynopsisdiv&quot;&gt;
&lt;div class=&quot;funcsynopsis&quot; style=&quot;background-color: #e6e6e6; font-family: verdana, sans-serif; font-size: 16px; font-stretch: normal; padding-bottom: 10px; padding-top: 10px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;font-size: 16px; font-stretch: normal;&quot; summary=&quot;Function synopsis&quot; xmlns=&quot;&quot;&gt;&lt;tbody&gt;
&lt;tr valign=&quot;bottom&quot;&gt;&lt;td style=&quot;border: 0px solid rgb(0, 0, 0); font-stretch: normal; padding: 1px;&quot;&gt;&lt;code class=&quot;funcdef&quot; style=&quot;font-family: verdana, sans-serif !important; font-stretch: normal !important;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;a class=&quot;link&quot; href=&quot;https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/scalarDataTypes.html&quot; style=&quot;color: blue; text-decoration: none;&quot; target=&quot;pagedisplay&quot;&gt;int&lt;/a&gt;&amp;nbsp;&lt;strong class=&quot;fsfunc&quot;&gt;any&amp;nbsp;&lt;/strong&gt;(&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border: 0px solid rgb(0, 0, 0); font-stretch: normal; padding: 1px;&quot;&gt;igentype&amp;nbsp;&lt;var class=&quot;pdparam&quot; style=&quot;font-stretch: normal;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;x&lt;/var&gt;&lt;code&gt;)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;funcsynopsis&quot; style=&quot;background-color: #e6e6e6; font-family: verdana, sans-serif; font-size: 16px; font-stretch: normal; padding-bottom: 10px; padding-top: 10px;&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;font-size: 16px; font-stretch: normal;&quot; summary=&quot;Function synopsis&quot; xmlns=&quot;&quot;&gt;&lt;tbody&gt;
&lt;tr valign=&quot;bottom&quot;&gt;&lt;td style=&quot;border: 0px solid rgb(0, 0, 0); font-stretch: normal; padding: 1px;&quot;&gt;&lt;code class=&quot;funcdef&quot; style=&quot;font-family: verdana, sans-serif !important; font-stretch: normal !important;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;a class=&quot;link&quot; href=&quot;https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/scalarDataTypes.html&quot; style=&quot;color: blue; text-decoration: none;&quot; target=&quot;pagedisplay&quot;&gt;int&lt;/a&gt;&amp;nbsp;&lt;strong class=&quot;fsfunc&quot;&gt;all&amp;nbsp;&lt;/strong&gt;(&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border: 0px solid rgb(0, 0, 0); font-stretch: normal; padding: 1px;&quot;&gt;igentype&amp;nbsp;&lt;var class=&quot;pdparam&quot; style=&quot;font-stretch: normal;&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;x&lt;/var&gt;&lt;code&gt;)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;refsect1&quot; style=&quot;font-family: verdana, sans-serif;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;description&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2 style=&quot;font-size: 19px; font-stretch: normal; margin-bottom: 3px; margin-top: 28px; padding-bottom: 0px; padding-top: 0px;&quot;&gt;
Description&lt;/h2&gt;
&lt;div style=&quot;font-size: 16px; font-stretch: normal; margin-bottom: 8px; margin-top: 8px; padding-bottom: 0px; padding-top: 0px;&quot;&gt;
&lt;code class=&quot;function&quot; style=&quot;font-family: verdana, sans-serif !important; font-stretch: normal !important; font-weight: bold !important;&quot;&gt;any&lt;/code&gt;&amp;nbsp;returns 1 if the most significant bit in any component of&amp;nbsp;&lt;em class=&quot;parameter&quot;&gt;&lt;code&gt;x&lt;/code&gt;&lt;/em&gt;&amp;nbsp;is set; otherwise returns 0.&lt;/div&gt;
&lt;div style=&quot;font-size: 16px; font-stretch: normal; margin-bottom: 8px; margin-top: 8px; padding-bottom: 0px; padding-top: 0px;&quot;&gt;
&lt;code class=&quot;function&quot; style=&quot;font-family: verdana, sans-serif !important; font-stretch: normal !important; font-weight: bold !important;&quot;&gt;all&lt;/code&gt;&amp;nbsp;returns 1 if the most significant bit in all components of&amp;nbsp;&lt;em class=&quot;parameter&quot;&gt;&lt;code&gt;x&lt;/code&gt;&lt;/em&gt;&amp;nbsp;is set; otherwise returns 0.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
all을 사용하면 모두 참이면 참, any는 하나라도 참이면 참이나온다.(정확하게는 msb만 확인한)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
if( all( word1 == word2 ) ) &amp;nbsp;을 사용하면 해결할수 있다.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/1756224824681273119/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/08/opencl-vector-type.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/1756224824681273119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/1756224824681273119'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/08/opencl-vector-type.html' title='OpenCL Vector type 간 비교 '/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-2937760667721029009</id><published>2015-07-27T16:27:00.005+09:00</published><updated>2015-07-27T16:27:51.289+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="global workgroup size"/><category scheme="http://www.blogger.com/atom/ns#" term="local workgorup size"/><title type='text'>OpenCL 워크 그룹 사이즈 결정(How to determine work group size on OpenCL)</title><content type='html'>&lt;div&gt;
OpenCL을 사용하여 워크그룹 사이즈(CUDA에서는 Dimension, block, thread)를 결정해야 할때 Global workgorup size 는 해결하고자 하는 총 문제수를 커버 해야한다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
즉, 1024 x 1024 행렬이 있다면 커맨드큐에 NDRagneKernel을 할때 global workgroup size는 1024 x 1024 = 1048576 이 된다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Local workgorup size를 NULL 로 입력해주면 OpenCL이 알아서 실행하여 준다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
하지만 성능향상을 위해서는 local workgorup size를 수동으로 넣어주어야 할때가 있다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
연산장치(GPU 또는 기타장치)의 프로필을 보면 Max work group size 정보를 알 수 있다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
예를 들어 Max work group size 가 256 이었다면 local work group size는 모든 Dimenstion을 곱했을때 256 보다 같거나 작아야 한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
저 256이라는 숫자는 보통 FrontWave(CUDA에서는 WARP) 에 의해서 결정되는데 Hardware 적으로 context switching 할 수 있는 총 그룹수와 PE(&lt;span style=&quot;background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;processing element&lt;/span&gt;) 수에 의해 결정된다. PE가 64개 이고 FraoneWawe가 4이면 256이기 때문에 local workgorup 에서 처리할수 있는 work item 갯수는 256개가 된다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
총연산 유닛(compute unit)이 32개 라면 64(PE)*32(CU) =&amp;nbsp;2048 개가 동시에 처리되고 2048*4 =&amp;nbsp;8192 개 의 work-item이 스위칭되면서 실행된다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
이때 work-item들이 메모리에 동시에 접근할때 대역폭 정보 등까지 고려되어야 성능 향상에 대한 이해와 최적화를 할 수 있다.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/2937760667721029009/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/opencl-how-to-determine-work-group-size.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/2937760667721029009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/2937760667721029009'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/opencl-how-to-determine-work-group-size.html' title='OpenCL 워크 그룹 사이즈 결정(How to determine work group size on OpenCL)'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-8206408728176625617</id><published>2015-07-15T09:39:00.001+09:00</published><updated>2015-07-15T09:55:43.279+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="concurrency"/><category scheme="http://www.blogger.com/atom/ns#" term="parallel"/><title type='text'>Data dependence</title><content type='html'>&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Data dependence&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Flow Dependence(True dependence)&lt;/li&gt;
&lt;li&gt;Anti Dependence&lt;/li&gt;
&lt;li&gt;Output Dependence&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Flow Dependence(True dependence)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;어떤코드 S1이 메모리 영역에 쓰고난 다음 어떤코드S2가 해당 위치를 읽음&lt;/li&gt;
&lt;li&gt;S1과 S2는 동시에 실행하거나 순서를 바꿀수 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Anti Dependence&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;어떤코드 S1이 메모리 영역에서 읽고 , 그다음 어떤코드 S2가 해당 영역에 씀&lt;/li&gt;
&lt;li&gt;S1과 S2는 동시에 실행하거나 순서를 바꿀수 없으나 S2코드를 수정하여 dependence를 제거할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Output Dependence&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;어떤코드 S1이 메모리 영역에 쓰고, 그다음 어떤코드 S2가 해당 영역을 읽음&lt;/li&gt;
&lt;li&gt;Anti Dependence와 마찬가지로 순서를 바꿀수 없으나 코드 수정으로 dependence 제거 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;루프 캐리드 디펜던스(Loop-carried dependence)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;루프 안에서 이전 이터레이션과 다음 이터레이션에 dependence가 존재&lt;/li&gt;
&lt;li&gt;이터레이션들을 각각 동시에 실행 불가능&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;루프 인디펜던트 디펜던스(Loop-independent depecdence)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;루프 안에 있으나 루프와 무관하게 루프안 코드들이 depecdence가 존재(Flow, anti, output 이 loop안에 있으면 loop-independent depecdence라고 하는것 같음)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/8206408728176625617/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/data-dependence.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/8206408728176625617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/8206408728176625617'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/data-dependence.html' title='Data dependence'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-5820254207047819256</id><published>2015-07-13T16:59:00.002+09:00</published><updated>2015-07-15T10:22:33.964+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="array of pointer"/><title type='text'>C pointer #2 ( 2 Dimension, 3 Demension pointer )</title><content type='html'>&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;int *i;&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;
int형 자료를 가르키는 포인터 i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;double (*a)[SIZE];&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;
double이 SIZE개 있는 배열을 가르키는 포인터 a&lt;br /&gt;
a++ 를 실행하면 a의 주소크기가 SIZE*8만큼 증가한다.

&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;li&gt;a = (double (*)[SIZE])malloc(sizeof(double) * SIZE * SIZE);&lt;/li&gt;
&lt;/div&gt;
&lt;/ol&gt;
cast는 위와 같이 한다.&lt;br /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;그럼 3차원은?&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;double (*a)[SIZE][SIZE] = (double (*)[SIZE][SIZE]) malloc(sizeof(double) * SIZE * SIZE );&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/5820254207047819256/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/c-pointer-2-2-dimension-pointer.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5820254207047819256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5820254207047819256'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/c-pointer-2-2-dimension-pointer.html' title='C pointer #2 ( 2 Dimension, 3 Demension pointer )'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-9000779491923824914</id><published>2015-07-09T11:34:00.001+09:00</published><updated>2015-07-09T11:54:28.217+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pointer"/><title type='text'>C pointer</title><content type='html'>int *(*func)(int *(*)(int *, char *), int **(*)(int **, char) );&lt;br /&gt;
&lt;br /&gt;
int 포인터를 반환하는 func라는 함수 포인터 선언&lt;br /&gt;
이 함수의 인자 형식은 2개의 함수 포인터를 받음&lt;br /&gt;
첫번째 함수포인터는 int포인터를 return하고 인자로 int 포인터와 char 포인터를 받음&lt;br /&gt;
두번째 함수포인터는 int 2중포인터를 반환하고 인자로 이중 int포인터와 char 를 받음&lt;br /&gt;
&lt;br /&gt;
질문은 댓글로 ㅎㅎ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/9000779491923824914/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/c-pointer.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/9000779491923824914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/9000779491923824914'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/07/c-pointer.html' title='C pointer'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-5724676834938589904</id><published>2015-06-29T16:49:00.004+09:00</published><updated>2015-07-09T09:23:20.266+09:00</updated><title type='text'>64bit buffer overflow example</title><content type='html'>env: kili 64bit vmware&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int foo(char * arg0){&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char tmp[10];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; strcpy(tmp, arg0);&lt;br /&gt;
printf(&quot;My stack looks like:\n%p\n%p\n%p\n%p\n%p\n%p\n\n&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;tmp add 0x%08x \n&quot;,tmp);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0;&lt;br /&gt;
}&lt;br /&gt;
int bar(void){&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;bar \n&quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]){&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;foo add : 0x%08x \n&quot;, foo);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&quot;bar add : 0x%08x \n&quot;, bar);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foo(argv[1]);&lt;br /&gt;
}&lt;br /&gt;
=======================================&lt;br /&gt;
a.out $(python -c &#39;print &quot;A&quot;*18+&quot;B&quot;*6+&quot;\x40\x05\xa5&quot;[::-1]&#39;)</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/5724676834938589904/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/06/64bit-buffer-overflow-example.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5724676834938589904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/5724676834938589904'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/06/64bit-buffer-overflow-example.html' title='64bit buffer overflow example'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-2805170645554851208</id><published>2015-03-11T22:20:00.002+09:00</published><updated>2015-03-11T22:21:15.402+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="heterogeneous"/><category scheme="http://www.blogger.com/atom/ns#" term="opencl"/><category scheme="http://www.blogger.com/atom/ns#" term="parallel"/><title type='text'>Frist OpenCL example on Windows</title><content type='html'>이제 OpenCL 예제 프로그램을 작성하여 보자.&lt;br /&gt;
&lt;br /&gt;
작성하기전 알아야 될 개념은 OpenCL은 가용한 자원들의 집합이 추상화된 &lt;b&gt;&lt;i&gt;platform&lt;/i&gt;&lt;/b&gt;과 platform안에 연산유닛이 추상화된 &lt;b&gt;&lt;i&gt;device&lt;/i&gt;&lt;/b&gt;라는 개념이 있다.&lt;br /&gt;
&lt;br /&gt;
가용한 platform은 OpenCL에서 사용할수 있도록 알맞은 드라이버가 설치되어 있어야한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;NVidia 그래픽 카드의 경우 CUDA를 설치하면 드라이버가 설치된다.&lt;/li&gt;
&lt;li&gt;Intel CPU의 경우는 intel opencl 로 구글링하면 &quot;&lt;b&gt;Intel Developer zone&lt;/b&gt;&quot; 이 리스팅되는데 이곳(&lt;a href=&quot;https://software.intel.com/en-us/articles/opencl-drivers&quot;&gt;https://software.intel.com/en-us/articles/opencl-drivers&lt;/a&gt;)에서 본인에게 알맞은 드라이버를 다운로드 하면 CPU자원을 이용할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
실제 C로 작성되는 프로그램은&lt;b&gt; host&lt;/b&gt; 라고 부르며, 병렬로 처리되는 함수를 &lt;b&gt;kernel&lt;/b&gt;이라고 한다. kernel은 C언어에 OpenCL의 예약어를 이용하여 작성할 수 있다.&lt;br /&gt;
&lt;br /&gt;
성격 급하니 이론보다 코딩부터 해보자.&lt;br /&gt;
&lt;br /&gt;
먼저 내가 사용할 수 있는 연산자원이 얼마나 있는지 확인하여 보자.&lt;br /&gt;
(예제 프로그램은 구글링한 결과를 참고하여 작성하였다. - 출처불명)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;host 프로그램 예제(getinfo.c)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

#include &amp;lt;CL/cl.h&amp;gt;


int main()

{

 unsigned int i, j;   

        //플랫폼을 가져오기 위한 배열(실제로는 포인터사용후 메모리 할당 해야함)
 cl_platform_id platforms[32]; 
     
        // 플랫폼의 갯수를 저장하기위한 변수
 cl_uint num_platforms;  

        // 벤더이름. 1024바이트를 넘지 않았으면 한다. 
 char vendor[1024];    

        //디바이스를 가져오기 위한 배열(실제로는 포인터사용후 메모리 할당 해야함)
 cl_device_id devices[32];

        // 디바이스 갯수를 저장하기 위한 변수
 cl_uint num_devices;

        // 디바이스이름. 1024바이트를 넘지 않았으면 한다. 
 char deviceName[1024];

 cl_uint numberOfCores; 
 cl_long amountOfMemory; 
 cl_uint clockFreq; 
 cl_ulong maxAlocatableMem; 
 cl_ulong localMem;  
 cl_bool available;  
 

 clGetPlatformIDs (32, platforms, &amp;amp;num_platforms);
        printf(&quot;\nNumber of platforms:\t%u\n\n&quot;, num_platforms);

 
 //플랫폼 수만큼 루프

 for(i = 0; i &amp;lt; num_platforms; i++)

 {

  printf(&quot;Platform:\t\t%u\n\n&quot;, i);

  clGetPlatformInfo (platforms[i], CL_PLATFORM_VENDOR, sizeof(vendor), vendor, NULL);

  printf(&quot;\tPlatform Vendor:\t%s\n&quot;, vendor);

  

  clGetDeviceIDs (platforms[i], CL_DEVICE_TYPE_ALL, sizeof(devices), devices, &amp;amp;num_devices);

  printf(&quot;\tNumber of devices:\t%u\n\n&quot;, num_devices);

  // 디바이스 루프
  for(j = 0; j &amp;lt; num_devices; j++)

  {
   // 디바이스 정보

   clGetDeviceInfo(devices[j], CL_DEVICE_NAME, sizeof(deviceName), deviceName, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_VENDOR, sizeof(vendor), vendor, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_MAX_COMPUTE_UNITS, sizeof(numberOfCores), &amp;amp;numberOfCores, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(amountOfMemory), &amp;amp;amountOfMemory, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_MAX_CLOCK_FREQUENCY, sizeof(clockFreq), &amp;amp;clockFreq, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_MAX_MEM_ALLOC_SIZE, sizeof(maxAlocatableMem), &amp;amp;maxAlocatableMem, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_LOCAL_MEM_SIZE, sizeof(localMem), &amp;amp;localMem, NULL);
   clGetDeviceInfo(devices[j], CL_DEVICE_AVAILABLE, sizeof(available), &amp;amp;available, NULL);

   printf(&quot;\tDevice: %u\n&quot;, j);

   printf(&quot;\t\tName:\t\t\t\t%s\n&quot;, deviceName);

   printf(&quot;\t\tVendor:\t\t\t\t%s\n&quot;, vendor);

   printf(&quot;\t\tAvailable:\t\t\t%s\n&quot;, available ? &quot;Yes&quot; : &quot;No&quot;);

   printf(&quot;\t\tCompute Units:\t\t\t%u\n&quot;, numberOfCores);

   printf(&quot;\t\tClock Frequency:\t\t%u mHz\n&quot;, clockFreq);

   printf(&quot;\t\tGlobal Memory:\t\t\t%0.00f mb\n&quot;, (double)amountOfMemory/1048576);

   printf(&quot;\t\tMax Allocateable Memory:\t%0.00f mb\n&quot;, (double)maxAlocatableMem/1048576);

   printf(&quot;\t\tLocal Memory:\t\t\t%u kb\n\n&quot;, (unsigned int)localMem);

  }

 }

 return 0;

}
&lt;/pre&gt;
&lt;br /&gt;
컴파일 후 실행하여 보자. &lt;br /&gt;
혹시 초보분들을 위해.. 쉽게 설명하자면 opencl 라이브러리와 헤더위치를 지정해주어야 하는데&lt;br /&gt;
LD_LIBRARY_PATH, LIBRARY_PATH를 CUDA path 아래 로 지정해 주면 된다. &lt;br /&gt;
잘 모르겠다면 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5 아래에서 그냥 복사해오면된다.&lt;br /&gt;
지금 목적은 platform과 device정보 출력이니 컴파일시 필요한 라이브러리 패스 와 make 등은 구글링해보자&lt;br /&gt;
&lt;pre&gt;gcc getinfo.c -o getinfo -lOpenCL
&lt;/pre&gt;
&lt;pre&gt;$ getinfo

Number of platforms:    2

Platform:               0

        Platform Vendor:        NVIDIA Corporation
        Number of devices:      1

        Device: 0
                Name:                           GeForce 8400 GS
                Vendor:                         NVIDIA Corporation
                Available:                      Yes
                Compute Units:                  2
                Clock Frequency:                918 mHz
                Global Memory:                  256 mb
                Max Allocateable Memory:        128 mb
                Local Memory:                   16383 kb

Platform:               1

        Platform Vendor:        Intel(R) Corporation
        Number of devices:      1

        Device: 0
                Name:                           Intel(R) Core(TM)2 CPU 6400  @ 2.13GHz
                Vendor:                         Intel(R) Corporation
                Available:                      Yes
                Compute Units:                  2
                Clock Frequency:                2130 mHz
                Global Memory:                  2048 mb
                Max Allocateable Memory:        512 mb
                Local Memory:                   32768 kb


dh@dhpc ~/src
$
&lt;/pre&gt;
&lt;br /&gt;
GeForcec 8400 GS 가 detect 되었고, 연산 유닛이 2개이다.&lt;br /&gt;
마찬가지로 Intel Core 2 CPU가 detect 되었고 연산 유닛이 2개이다.&lt;br /&gt;
&lt;br /&gt;
오래된 내 컴퓨터도 이종 병렬 프로그래밍이 가능한걸 알수 있다.</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/2805170645554851208/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/03/frist-opencl-example-on-windows.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/2805170645554851208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/2805170645554851208'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/03/frist-opencl-example-on-windows.html' title='Frist OpenCL example on Windows'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-1576147704315296442</id><published>2015-03-09T22:57:00.004+09:00</published><updated>2015-03-09T22:57:49.865+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="heterogeneous"/><category scheme="http://www.blogger.com/atom/ns#" term="parallel"/><title type='text'>Starting OpenCL with MinGW on Windows</title><content type='html'>이종병렬 프로그래밍에 사용되는 OpenCL&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
윈도우OS에서 컴파일/실행하기 위해서는&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
1. NVidia 홈페이지의 CUDA 존에서 툴킷을 다운로드 한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Windows 8 64비트 용 파일이름은 cuda_6.5.14_windows_notebook_64 이다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
설치는 간단하다. 다음다음 하면 설치된다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. 컴파일 하기 위한 환경을 구성해야한다. 윈도우의 경우 VisualStudio Express, MinGW, cygwin 을 이용할 수 있다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
여기서는 MinGW를 설치하였다.(MinGW와 cygwin 의 차이점은 linux환경을 완벽하게 호환되게하는지 안하는지이다.)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;MinGW를 검색해서 MinGW installer 설치후 msys, 컴파일러 등 선택하여 설치한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
설치는 가급적 c: 드라이브 아래 MinGW 폴더로 하길 권장한다. program files 같은곳은 빈칸 때문에 사용할때 불편을 겪을수 있다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
설치가 끝나면 MinGW아래 msys 아래 버전폴더가 있다. 그 속에 보면 msys 배치파일이 있는데 실행하기전 MinGW의 위치를 마운트해주어야 한다. etc 아래 fstab 파일(없으면 생성한다)안에 아래와 같이 적어준다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
C:\MinGW &amp;nbsp; /mingw&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
배치파일을 실행하여 컴파일러가 동작하는 확인한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
3. 이제 OpenCL 예제 프로그램을 작성하여 실행해보자&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/1576147704315296442/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/03/starting-opencl-with-mingw-on-windows.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/1576147704315296442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/1576147704315296442'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2015/03/starting-opencl-with-mingw-on-windows.html' title='Starting OpenCL with MinGW on Windows'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-6329416639380142431</id><published>2013-09-07T09:47:00.000+09:00</published><updated>2013-09-23T23:44:05.499+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="악성코드"/><title type='text'>오늘 아침 배달된 악성코드</title><content type='html'>제목: &quot;오늘 아침 서울역에서 포착된 안타까운 사진이랍니다.&quot;&lt;br /&gt;
배포주소: 60.156.117.115/xz/c.apk&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/-42U1rNe56Vo/Uip0y7D5YUI/AAAAAAAABEk/9td0oqhBtHQ/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;http://3.bp.blogspot.com/-42U1rNe56Vo/Uip0y7D5YUI/AAAAAAAABEk/9td0oqhBtHQ/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-5d3OlUm_2KY/Uip0y2zWNPI/AAAAAAAABEo/TnF9UkSXB4w/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;242&quot; src=&quot;http://2.bp.blogspot.com/-5d3OlUm_2KY/Uip0y2zWNPI/AAAAAAAABEo/TnF9UkSXB4w/s320/2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
악성코드는 xz/c.apk를 입력해주면 획득할수 있다.&lt;br /&gt;
&lt;br /&gt;
디컴파일해서 메니페스트만 봐도&lt;br /&gt;
&lt;br /&gt;
최근 유행하는 코드처럼 sms 를 탈취하기 위해 리시버를 등록합니다.&lt;br /&gt;
&lt;b&gt;그리고, 국민은행, 농협, 우리은행 등으로 위장한 앱을 다운로드 받습니다.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;저장된 전화번호 목록으로 위 메시지를 전송합니다.&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-Tx74H3vXnCM/Uip3W4VUn8I/AAAAAAAABE4/bGKnbTHU3Is/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;207&quot; src=&quot;http://2.bp.blogspot.com/-Tx74H3vXnCM/Uip3W4VUn8I/AAAAAAAABE4/bGKnbTHU3Is/s320/3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/-N_8eaB2SQ9k/Uip3W6R_knI/AAAAAAAABE8/CRRFZiDyui0/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;207&quot; src=&quot;http://3.bp.blogspot.com/-N_8eaB2SQ9k/Uip3W6R_knI/AAAAAAAABE8/CRRFZiDyui0/s320/4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/6329416639380142431/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2013/09/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6329416639380142431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/6329416639380142431'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2013/09/blog-post.html' title='오늘 아침 배달된 악성코드'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-42U1rNe56Vo/Uip0y7D5YUI/AAAAAAAABEk/9td0oqhBtHQ/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1577319031687264598.post-579763581023951985</id><published>2013-06-06T21:15:00.002+09:00</published><updated>2013-06-06T21:25:17.378+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="11번가"/><title type='text'>11번가 고객센터 모바일 상담</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-XFZXw7-bdTI/UbB9TEO21YI/AAAAAAAABCI/VVp2-Cm6O18/s1600/11st_co_kr_20130606_211256.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;468&quot; src=&quot;http://2.bp.blogspot.com/-XFZXw7-bdTI/UbB9TEO21YI/AAAAAAAABCI/VVp2-Cm6O18/s640/11st_co_kr_20130606_211256.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
잘 읽어보면 &quot;판매자와 통화 다 끝나고 교환하기로..&quot; 라고 써있다.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
질문의 요점이 파악이 안될만큼 어렵게 글을 썻나??&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
&quot;더욱 더 노력하는 11번가가 되겠습니다.&quot;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #8a837e; font-family: 돋움; font-size: 12px; line-height: 18px; padding: 0px; text-align: justify;&quot;&gt;
정말 어이없는 답변에 실소만 나온다.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://alwaysnewbie-textcube.blogspot.com/feeds/579763581023951985/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2013/06/11_6.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/579763581023951985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1577319031687264598/posts/default/579763581023951985'/><link rel='alternate' type='text/html' href='http://alwaysnewbie-textcube.blogspot.com/2013/06/11_6.html' title='11번가 고객센터 모바일 상담'/><author><name>주해아빠</name><uri>http://www.blogger.com/profile/02691029832307585486</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-XFZXw7-bdTI/UbB9TEO21YI/AAAAAAAABCI/VVp2-Cm6O18/s72-c/11st_co_kr_20130606_211256.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>