<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SukmoonLee Blog &#187; Program</title>
	<atom:link href="http://blog.sukmoonlee.com/wordpress/archives/category/program/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.sukmoonlee.com/wordpress</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Thu, 20 Sep 2012 00:01:14 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>jWhois</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/305</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/305#comments</comments>
		<pubDate>Wed, 19 Sep 2012 23:58:48 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[jwhois]]></category>
		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=305</guid>
		<description><![CDATA[java로 whois 클라이언트를 하나 만들었습니다. 기존의 UNIX 환경에서 사용하던 whois와 유사한 기능으로 구현을 했습니다. http://blog.sukmoonlee.com/jWhois/jWhois.jar 자바의 문자열이 유니코드로 처리되는 특징을 이용해서, 로컬문자로 제공되는 WHOIS 서비스를 자바의 유니코드로 변환해서 읽은 다음에 사용자의 환경에 따라서 결과를 출력하도록 되어 있습니다. 그래서 UTF-8 환경에서 다양한 WHOIS 서버의 문자를 처리해서 결과를 아래와 같이 얻을수 있습니다. (일단 현재 버전에서는 kr과 jp만 <a href='http://blog.sukmoonlee.com/wordpress/archives/305' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>java로 whois 클라이언트를 하나 만들었습니다.<br />
기존의 UNIX 환경에서 사용하던 whois와 유사한 기능으로 구현을 했습니다.</p>
<blockquote><p>
<a href="http://blog.sukmoonlee.com/jWhois/jWhois.jar">http://blog.sukmoonlee.com/jWhois/jWhois.jar</a>
</p></blockquote>
<p>자바의 문자열이 유니코드로 처리되는 특징을 이용해서, 로컬문자로 제공되는 WHOIS 서비스를 자바의 유니코드로 변환해서 읽은 다음에 사용자의 환경에 따라서 결과를 출력하도록 되어 있습니다.<br />
그래서 UTF-8 환경에서 다양한 WHOIS 서버의 문자를 처리해서 결과를 아래와 같이 얻을수 있습니다.<br />
(일단 현재 버전에서는 kr과 jp만 지원합니다. 나머지 서버들은 대부분 영문으로 제공을 하더군요.)</p>
<pre>
[smlee@localhost jWhois]$ java -jar jWhois.jar --help
jWhois version 0.9.1-20120918, Copyright (C) 2012 SukmoonLee.

Usage: java -jar jWhois.jar  [OPTIONS] [QUERY]
          --version                  display version number and patch level
          --help                     display this help
          -h HOST, --host=HOST       explicitly query HOST
          -n, --no-redirect          disable content redirection
          -i, --display-redirections display all redirects instead of hiding them
          -p PORT                    use port number PORT (in conjunction with HOST)


        Report bugs to smlee@sukmoonlee.com


[smlee@localhost jWhois]$ java -jar jWhois.jar netpia.com
[Querying netpia.com]
[Redirected to whois.verisign-grs.com] - 330 msec
[Querying netpia.com]
[Redirected to whois.ibi.net] - 621 msec
[Querying netpia.com]
[whois.ibi.net] - 2177 msec
Welcome to NETPIA.COM's WHOIS Server


# ENGLISH

Registrant:
    Netpia
    Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul

    Domain Name: netpia.com
    Registrar: NETPIA.COM, INC.(http://www.ibi.net)

    Administrative Contact:
        Netpia     webmaster@ibi.net
        Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul,  KR
        +82.0236651233

    Technical Contact:
        Netpia     webmaster@ibi.net
        Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul,  KR
        +82.0236651233

     Billing Contact:
        Netpia     webmaster@ibi.net
        Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul,  KR
        +82.0236651233

     Record created on........: 31-Mar-1998 EDT.
     Record expires on........: 31-Mar-2013 EDT.
     Record last updated on...: 10-Mar-2012 EDT.

     Domain Name Servers in listed order:
     NS.NETPIA.COM      61.82.71.230
     NS2.NETPIA.COM

# KOREAN(UTF-8)

등록인:
    Netpia
    Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul

    도메인이름: netpia.com
    등록대행자: NETPIA.COM, INC.(http://www.ibi.net)

    관리담당자:
        Netpia     webmaster@ibi.net
        Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul,  KR
        +82.0236651233

    기술담당자:
        Netpia     webmaster@ibi.net
        Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul,  KR
        +82.0236651233

    과금담당자:
        Netpia     webmaster@ibi.net
        Gangseo-gu 16F, WoolimBlue9 Bldg. A, 240-21, Yeomchang-dong, Seoul,  KR
        +82.0236651233

     등록일........: 31-Mar-1998 EDT.
     사용 종료일...: 31-Mar-2013 EDT.
     최근 변경일...: 10-Mar-2012 EDT.

     네임서버 정보:
     NS.NETPIA.COM      61.82.71.230
     NS2.NETPIA.COM


<a href='http://www.ibi.net/' target='_blank'><img src='http://www.ibi.net/images/r_domain_01.gif'></a><br />
 Please register domain name at www.ibi.net


[smlee@localhost jWhois]$ java -jar jWhois.jar netpia.kr
[Querying netpia.kr]
[Redirected to whois.kr] - 364 msec
[Querying netpia.kr]
[whois.kr] - 126 msec
query: netpia.kr

# KOREAN


도메인이름                  : netpia.kr
등록인                      : 김태영
책임자                      : 김태영
책임자 전자우편             : tim@solf.co.kr
등록일                      : 2007. 02. 28.
최근 정보 변경일            : 2008. 04. 12.
사용 종료일                 : 2013. 02. 28.
정보공개여부                : N
등록대행자                  : (주)아이네임즈(http://www.inames.co.kr)

1차 네임서버 정보
   호스트이름               : ns1.uhost.co.kr
   IP 주소                  : 202.31.186.220

2차 네임서버 정보
   호스트이름               : ns2.uhost.co.kr
   IP 주소                  : 118.129.168.68

네임서버 이름이 .kr이 아닌 경우는 IP주소가 보이지 않습니다.

# ENGLISH


Domain Name                 : netpia.kr
Registrant                  : TAE YEONG KIM
Administrative Contact(AC)  : TAE YEONG KIM
AC E-Mail                   : tim@solf.co.kr
Registered Date             : 2007. 02. 28.
Last updated Date           : 2008. 04. 12.
Expiration Date             : 2013. 02. 28.
Publishes                   : N
Authorized Agency           : Inames Co., Ltd.(http://www.inames.co.kr)

Primary Name Server
   Host Name                : ns1.uhost.co.kr
   IP Address               : 202.31.186.220

Secondary Name Server
   Host Name                : ns2.uhost.co.kr
   IP Address               : 118.129.168.68


- KISA/KRNIC Whois Service -



[smlee@localhost jWhois]$ java -jar jWhois.jar netpia.jp
[Querying netpia.jp]
[Redirected to whois.jprs.jp] - 365 msec
[Querying netpia.jp]
[whois.jprs.jp] - 178 msec
[ JPRS database provides information on network administration. Its use is    ]
[ restricted to network administration purposes. For further information,     ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]

Domain Information: [ドメイン情報]
[Domain Name]                   NETPIA.JP

[登録者名]                      （有）ハンドインハンド
[Registrant]                    Hand in Hand Inc.

[Name Server]                   m1.stage21.net
[Name Server]                   y2.netpia.ne.jp
[Signing Key]

[登録年月日]                    2001/03/26
[有効期限]                      2013/03/31
[状態]                          Active
[最終更新]                      2012/04/01 01:05:00 (JST)

Contact Information: [公開連絡窓口]
[名前]                          （有）ハンドインハンド
[Name]                          Hand in Hand Inc.
[Email]                         kanri-domain@netpia.jp
[Web Page]
[郵便番号]                      242-0018
[住所]                          神奈川県大和市深見西2-1-1
[Postal Address]                2-1-1, Fukami-Nishi,
                                Yamato-City, Kanagawa
[電話番号]                      046-265-1700
[FAX番号]                       020-4622-6502

</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/305?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/305/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>html parser</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/288</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/288#comments</comments>
		<pubDate>Mon, 17 Sep 2012 12:38:34 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[simple html dom]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=288</guid>
		<description><![CDATA[대부분 개발자들은 개발을 하면서 HTML 파서를 각자 만들어서 사용을 하고 있습니다. 특히 검색 로봇을 만들어서 사용할 경우에는 HTML을 읽어서 파서를 만들어서 사용하는 경우가 많습니다. 그래서 저는 HTML 문법을 기반으로 하는 라인단위로 분리를 해서 사용하는 방법을 많이 사용했습니다. (대부분 로봇을 Perl을 사용해서 만들었기 때문에 10라인 정도 되는 함수로 만들어서 잘 사용했으며, 대규모 분석시 적은 메모리로 빠른 <a href='http://blog.sukmoonlee.com/wordpress/archives/288' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>대부분 개발자들은 개발을 하면서 HTML 파서를 각자 만들어서 사용을 하고 있습니다.<br />
특히 검색 로봇을 만들어서 사용할 경우에는 HTML을 읽어서 파서를 만들어서 사용하는 경우가 많습니다.<br />
그래서 저는 HTML 문법을 기반으로 하는 라인단위로 분리를 해서 사용하는 방법을 많이 사용했습니다.<br />
(대부분 로봇을 Perl을 사용해서 만들었기 때문에 10라인 정도 되는 함수로 만들어서 잘 사용했으며, 대규모 분석시 적은 메모리로 빠른 처리가 가능합니다.)</p>
<p>하지만 최근 HTML 구조가 CSS 기반으로 이루어지다 보니 좀 더 복잡하게 구성되는 경우가 많습니다.<br />
대신 HTML5의 경우에는 문서가 구조적으로 되어 있기 때문에 라인단위로 분석보다는 html을 parser해서 DOM과 같은 객체에 넣어 두고 분석을 하면 훨씬 편리하다.</p>
<p>물론 라인단위로 처리하거나, SAX로 처리하는 것보다 메모리나, 속도 측면에서는 문제가 많겠지만, 변경된 HTML구조에 빠르게 대응을 하고, 간단하게 개발할때에는 효과적인것 같아서 HTML parser 프로그램을 하나 소개합니다.</p>
<p>PHP로 되어 있으며, 간단히 라이브러리 파일만 include를 하고, 아래와 같이 사용하면 된다.<br />
(PHP 기본 함수가 아니므로 아래 참고 URL에 있는 소스를 다운받아서 PHP 프로그램을 사용할때 추가해야 합니다.)</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'simple_html_dom.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> file_get_html<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://blog.sukmoonlee.com&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ul'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$element</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">href</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>        
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">&#91;</span>smlee<span style="color: #339933;">@</span>localhost ~<span style="color: #009900;">&#93;</span>$ php test<span style="color: #339933;">.</span>php
<span style="color: #339933;">/</span>wordpress<span style="color: #339933;">/</span>
<span style="color: #339933;">/</span>env<span style="color: #339933;">.</span>php
<span style="color: #339933;">/</span>geshi<span style="color: #339933;">/</span>contrib<span style="color: #339933;">/</span>example<span style="color: #339933;">.</span>php</pre></td></tr></table></div>

<p>참고URL: <a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/288?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/288/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Java Data Types</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/276</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/276#comments</comments>
		<pubDate>Thu, 13 Sep 2012 12:23:03 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[char]]></category>
		<category><![CDATA[data type]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[short]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=276</guid>
		<description><![CDATA[자바를 이용해서 네트워크 프로그램을 작성하면서 자바의 데이타 형태 때문에 고생을 했다. 그래서 한번 확인을 하고 정리를 해봤습니다. 네트워크에서 받은 데이타들을 대부분 byte[]로 처리를 하고 있는데, 이를 숫자로 변환하기 위해서는 byte 2개 혹은 4개를 조합해서 사용하면 된다. 여기서 문제가 발생이 되는데, java의 대부분의 data type은 signed type으로 되어 있다. (제가 사용하는 네트워크 데이타는 비트 단위로 연산을 <a href='http://blog.sukmoonlee.com/wordpress/archives/276' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>자바를 이용해서 네트워크 프로그램을 작성하면서 자바의 데이타 형태 때문에 고생을 했다.<br />
그래서 한번 확인을 하고 정리를 해봤습니다.</p>
<p>네트워크에서 받은 데이타들을 대부분 byte[]로 처리를 하고 있는데, 이를 숫자로 변환하기 위해서는 byte 2개 혹은 4개를 조합해서 사용하면 된다. </p>
<p>여기서 문제가 발생이 되는데, java의 대부분의 data type은 signed type으로 되어 있다.<br />
(제가 사용하는 네트워크 데이타는 비트 단위로 연산을 하기 때문에 binary type으로 데이타를 조작을 해야 하는 경우가 대부분입니다.)</p>
<p> byte는 signed type으로 되어 있으며, 이를 short로 casting을 하고, << 8과 같이 연산을 하더라도 음수가 발생이 될수 있다. 이런 경우에는 (short)(byte[] &#038; 0xFF) 형태로 먼저 &#038; 연산을 처리후에 casting을 해서 연산을 처리하면 해결이 가능하다.<br />
하지만 2 byte 데이타를 숫자로 변환을 하면, short type에 담을수가 없다. short type도 signed data 이기 때문에 char type 혹은 int type에 데이타를 저장해야 한다.</p>
<p>그래서 여러번의 테스트를 해보면서 data type을 이해를 하면서 만든 코드가 아래 1줄이다. -_-</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="java" style="font-family:monospace;">&nbsp;
<span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span> 0xFF<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">short</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span> 0xFF<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>* byte (1 byte, -128~127)<br />
* char (2 byte, 0~65535)<br />
* short (2 byte, -32768~32767)<br />
* int (4 byte, -2147483648~2147483647)<br />
* long (8 byte, -9223372036854775808 ~ 9223372036854775807)</p>
<p>* float (4 byte)<br />
* double (8 byte)</p>
<p>참고URL : http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html</p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/276?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/276/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE에서 Console.log 출력하기</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/220</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/220#comments</comments>
		<pubDate>Mon, 10 Sep 2012 05:34:07 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[console.log]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=220</guid>
		<description><![CDATA[예전에는 HTML 작업이 단순했지만, jQuery, Ajax등을 사용하면서 복잡한 Javascript을 많이 사용하게 되었습니다. 개발을 하게 되면 무엇보다 개발환경을 잘 파악해서 활용하는 것이 중요합니다. 대부분 작업을 Chrome에서 작업을 하면서 debug를 하지만, 브라우저 호환성을 위해서 IE에서 확인을 해야 합니다. 하지만 IE에서 debug 를 사용하게 되면 자주 응답없음 이라는 문구를 만나면서 debug를 하기 힘든 상황이 많이 발생합니다. 이런 경우에는 <a href='http://blog.sukmoonlee.com/wordpress/archives/220' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>예전에는 HTML 작업이 단순했지만, jQuery, Ajax등을 사용하면서 복잡한 Javascript을 많이 사용하게 되었습니다. 개발을 하게 되면 무엇보다 개발환경을 잘 파악해서 활용하는 것이 중요합니다.</p>
<p>대부분 작업을 Chrome에서 작업을 하면서 debug를 하지만, 브라우저 호환성을 위해서 IE에서 확인을 해야 합니다. 하지만 IE에서 debug 를 사용하게 되면 자주 응답없음 이라는 문구를 만나면서 debug를 하기 힘든 상황이 많이 발생합니다.<br />
이런 경우에는 어쩔수 없이 원시적으로 alert() 혹은 log를 출력해서 확인을 해야 합니다.</p>
<p>하지만 IE에서 console.log를 사용하게 되면 오류가 발생하기 때문에 아래와 같은 방법을 사용하면 됩니다.</p>
<p>확인을 하고자 하는 페이지에서 F12을 눌러서 개발자 도구를 실행합니다. 그리고 스크립트 탭을 선택을 한 다음에 페이지를 재로딩을 하게 되면 console.log 를 사용할수 있으며, 해당 로그가 콘솔에 출력되는 것을 확인할 수 있습니다.</p>
<p>그리고 오류를 방지하기 위해서 아래와 같은 코드로 출력을 하게 되면 개발자도구가 비활성화 되었을때에도 오류를 발생시키지 않게 된다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> console <span style="color: #339933;">!=</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;debug message&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>참고 URL : <a href="http://stackoverflow.com/questions/690251/what-happened-to-console-log-in-ie8">http://stackoverflow.com/questions/690251/what-happened-to-console-log-in-ie8</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/220?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/220/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jsonp 를 활용한 반복 호출에 대한 빠른 처리 방안</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/225</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/225#comments</comments>
		<pubDate>Thu, 06 Sep 2012 11:53:41 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[jsonp]]></category>
		<category><![CDATA[sencha]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=225</guid>
		<description><![CDATA[웹 페이지에서 서버로 부터 빠른 데이타를 수신하기 위해서 AJAX(Asynchronous JavaScript and XML)가 아닌 JSON(JavaScript Object Notation)을 많이 사용하게 된다. 보안에 문제가 발생할수도 있지만, 동일 도메인이 아닌 다른 서버로 부터 JSON 데이타를 빠르게 수신해서 처리하는 경우에 JSONP(JSON with padding)를 사용하면, 1개의 데이타를 다양한 웹서비스에서 활용이 가능하다. 원리는 아래와 같이 HTML에서 head에 JavaScript를 append 해서 해당 배열을 <a href='http://blog.sukmoonlee.com/wordpress/archives/225' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>웹 페이지에서 서버로 부터 빠른 데이타를 수신하기 위해서 AJAX(Asynchronous JavaScript and XML)가 아닌 JSON(JavaScript Object Notation)을 많이 사용하게 된다.<br />
보안에 문제가 발생할수도 있지만, 동일 도메인이 아닌 다른 서버로 부터 JSON 데이타를 빠르게 수신해서 처리하는 경우에 JSONP(JSON with padding)를 사용하면, 1개의 데이타를 다양한 웹서비스에서 활용이 가능하다.</p>
<p>원리는 아래와 같이 HTML에서 head에 JavaScript를 append 해서 해당 배열을 가져와서 처리하는 방식으로 처리를 한다.</p>
<p>이렇게 하면 문제는 동기화 방식으로 동작을 하기 때문에 순차적으로 데이타를 전달받게 되므로, 아래의 소스와 같이 재요청시 기존에 동작중인 쿼리를 모두 취소를 해버리면 비동기 방식의 데이타 수신이 가능하다.</p>
<p>데이타는 queue를 만들어서 데이타를 순차적으로 처리를 하면 하지만, 간혹 queue에 빠졌지만, callback이 여러번 발생될 경우도 있다. 이런 경우만 callback 함수에서 추가 처리만 해주면 다양한 브라우저에서 사용이 가능한 JSONP 라이브러리가 완성이 된다.</p>
<p>Sencha 로 프로젝트를 진행하다가 처음에 그냥 웹에 있는 소스를 참고해서 사용하다가 원하는 대로 동작을 하지 않아서 소스를 파악하고, 처리 방식을 나름대로 제정리를 해봤습니다.</p>
<p>참조URL: <a href="http://www.tomdupont.net/2010/12/extuxjsonp-v20.html">http://www.tomdupont.net/2010/12/extuxjsonp-v20.html</a></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
Ext.<span style="color: #660066;">ns</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ext.ux'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Ext.<span style="color: #660066;">ux</span>.<span style="color: #660066;">JSONP</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">var</span> _queue <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">var</span> _clearQueue <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>_queue.<span style="color: #660066;">length</span><span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
                while<span style="color: #009900;">&#40;</span>_queue.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000066; font-weight: bold;">var</span> _current <span style="color: #339933;">=</span> _queue.<span style="color: #660066;">shift</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                        <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
                                document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">removeChild</span><span style="color: #009900;">&#40;</span>_current.<span style="color: #660066;">script</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">var</span> _lastCallback<span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#123;</span>
                request<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> o<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>url<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
                        o.<span style="color: #660066;">params</span> <span style="color: #339933;">=</span> o.<span style="color: #660066;">params</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
                        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">callbackKey</span><span style="color: #009900;">&#41;</span>
                                o.<span style="color: #660066;">params</span><span style="color: #009900;">&#91;</span>o.<span style="color: #660066;">callbackKey</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'Ext.ux.JSONP.callback'</span><span style="color: #339933;">;</span>
&nbsp;
                        <span style="color: #000066; font-weight: bold;">var</span> params <span style="color: #339933;">=</span> Ext.<span style="color: #660066;">urlEncode</span><span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #000066; font-weight: bold;">var</span> script <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        script.<span style="color: #660066;">type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'text/javascript'</span><span style="color: #339933;">;</span>
                        script.<span style="color: #660066;">charset</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'utf-8'</span><span style="color: #339933;">;</span>
                        script.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> url <span style="color: #339933;">+</span> <span style="color: #3366CC;">'?'</span> <span style="color: #339933;">+</span> params<span style="color: #339933;">;</span>
&nbsp;
                        _lastCallback <span style="color: #339933;">=</span> o.<span style="color: #660066;">callback</span><span style="color: #339933;">;</span>
&nbsp;
                        _clearQueue<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        _queue.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                                url<span style="color: #339933;">:</span> url<span style="color: #339933;">,</span>
                                script<span style="color: #339933;">:</span> script<span style="color: #339933;">,</span>
                                callback<span style="color: #339933;">:</span> o.<span style="color: #660066;">callback</span> <span style="color: #339933;">||</span> <span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
                                scope<span style="color: #339933;">:</span> o.<span style="color: #660066;">scope</span> <span style="color: #339933;">||</span> window<span style="color: #339933;">,</span>
                                params<span style="color: #339933;">:</span> params <span style="color: #339933;">||</span> <span style="color: #003366; font-weight: bold;">null</span>
                        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                        document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
                callback<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000066; font-weight: bold;">var</span> _current <span style="color: #339933;">=</span> _queue.<span style="color: #660066;">shift</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>_current <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                                _lastCallback.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span>window<span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span>json<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
                        <span style="color: #009900;">&#125;</span>
&nbsp;
                        <span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
                                document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">removeChild</span><span style="color: #009900;">&#40;</span>_current.<span style="color: #660066;">script</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
                        _current.<span style="color: #660066;">callback</span>.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span>_current.<span style="color: #660066;">scope</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span>json<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>팁으로 한글 Internet Explorer 9 에서 가끔 JavaScript를 로딩할때 배열에 있는 한글이 깨지는 경우가 발생한다.<br />
이러한 문제를 해결하기 위해서 charset 을 꼭 선언하여 사용하는 것이 효과적이다.</p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/225?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/225/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php에서 time 처리</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/250</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/250#comments</comments>
		<pubDate>Tue, 04 Sep 2012 11:55:35 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[strtotime]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=250</guid>
		<description><![CDATA[php에서 time() 을 호출하게 되면 unix timestamp를 반환하게 된다. 해당 값은 단위가 초이기 때문에 간단한 수칙연산으로 날짜를 변경이 가능하다. 하지만, 현재 시간에서 1달을 더하거나 할때에는 생각할 부분이 많다. 30 혹은 31일인 경우까지 고려를 해야 하며, 1년을 더 할 경우에는 윤년 계산까지 해야 한다. 이럴때 아래의 strtotime() 를 사용하면 보다 간편하게 계산이 가능하다. &#160; &#60;?php echo <a href='http://blog.sukmoonlee.com/wordpress/archives/250' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>php에서 time() 을 호출하게 되면 unix timestamp를 반환하게 된다. 해당 값은 단위가 초이기 때문에 간단한 수칙연산으로 날짜를 변경이 가능하다.</p>
<p>하지만, 현재 시간에서 1달을 더하거나 할때에는 생각할 부분이 많다. 30 혹은 31일인 경우까지 고려를 해야 하며, 1년을 더 할 경우에는 윤년 계산까지 해야 한다.</p>
<p>이럴때 아래의 strtotime() 를 사용하면 보다 간편하게 계산이 가능하다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;now&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;10 September 2000&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;+1 day&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;+1 week&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;+1 week 2 days 4 hours 2 seconds&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;next Thursday&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;last Monday&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>참고 URL: <a href="http://www.php.net/manual/en/function.strtotime.php">http://www.php.net/manual/en/function.strtotime.php</a><br />
참고 URL: <a href="http://www.php.net/manual/en/function.time.php">http://www.php.net/manual/en/function.time.php</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/250?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/250/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CKEditor</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/197</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/197#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:41:08 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[web editor]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=197</guid>
		<description><![CDATA[웹페이지를 개발할때 간단한 글쓰기에서 HTML이 지원되는 에디터를 사용하기 위해서 찾은 오픈소스입니다. http://ckeditor.com/ 사용법도 아주 간단하며, PHP 모듈도 지원이 되어, 설치 후에 아래와 같이 PHP 코드를 추가해주면 됩니다. content라는 textarea name으로 된 부분을 HTML 에디터로 변경해줍니다. &#60;?php include $_SERVER&#91;&#34;DOCUMENT_ROOT&#34;&#93;.&#34;/ckeditor/ckeditor_php5.php&#34;; &#160; $CKEditor = new CKEditor&#40;&#41;; $CKEditor-&#62;basePath = '/ckeditor/'; $CKEditor-&#62;replace&#40;&#34;content&#34;&#41;; ?&#62;]]></description>
				<content:encoded><![CDATA[<p>웹페이지를 개발할때 간단한 글쓰기에서 HTML이 지원되는 에디터를 사용하기 위해서 찾은 오픈소스입니다.</p>
<p><a href="http://ckeditor.com/">http://ckeditor.com/</a></p>
<p>사용법도 아주 간단하며, PHP 모듈도 지원이 되어, 설치 후에 아래와 같이 PHP 코드를 추가해주면 됩니다.</p>
<p>content라는 textarea name으로 된 부분을 HTML 에디터로 변경해줍니다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">&lt;?php</span>
    <span style="color: #b1b100;">include</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;DOCUMENT_ROOT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/ckeditor/ckeditor_php5.php&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$CKEditor</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> CKEditor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$CKEditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">basePath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/ckeditor/'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$CKEditor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;content&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/197?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/197/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP extract() 함수</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/180</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/180#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:27:55 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[extract]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=180</guid>
		<description><![CDATA[최근에 워드프레스에 관심이 있어서 소스를 보고 있습니다. 그리고 공개되어 있는 플러그인을 다운받아서 보고 있습니다. PHP 소스를 보다 재미있는 함수를 하나 발견했습니다. php를 사용하다 보면 열거형 배열을 사용하는 경우가 많습니다. 이런 경우 해당 열거형 배열의 이름이 긴 경우에는 간단한 변수명을 적는 것만으로도 소스의 양이 길어지게 됩니다. 하지만 php에서는 function 안에서 local 변수가 외부에 영향을 미치지 않으므로 <a href='http://blog.sukmoonlee.com/wordpress/archives/180' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>최근에 워드프레스에 관심이 있어서 소스를 보고 있습니다.<br />
그리고 공개되어 있는 플러그인을 다운받아서 보고 있습니다.</p>
<p>PHP 소스를 보다 재미있는 함수를 하나 발견했습니다.<br />
php를 사용하다 보면 열거형 배열을 사용하는 경우가 많습니다. 이런 경우 해당 열거형 배열의 이름이 긴 경우에는 간단한 변수명을 적는 것만으로도 소스의 양이 길어지게 됩니다.</p>
<p>하지만 php에서는 function 안에서 local 변수가 외부에 영향을 미치지 않으므로 function 안에서 열거형 배열을 extract 함수를 사용하여 변수명을 간결하게 사용하면 프로그램 가독성도 높이고, 간편하게 코딩이 가능해집니다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* Suppose that $var_array is an array returned from
   wddx_deserialize */</span>
&nbsp;
<span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;large&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$var_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;color&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;blue&quot;</span><span style="color: #339933;">,</span>
                   <span style="color: #0000ff;">&quot;size&quot;</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;medium&quot;</span><span style="color: #339933;">,</span>
                   <span style="color: #0000ff;">&quot;shape&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;sphere&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">extract</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var_array</span><span style="color: #339933;">,</span> EXTR_PREFIX_SAME<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wddx&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$color</span>, <span style="color: #006699; font-weight: bold;">$size</span>, <span style="color: #006699; font-weight: bold;">$shape</span>, <span style="color: #006699; font-weight: bold;">$wddx_size</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/180?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/180/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>모바일전자정부 앱만들기</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/77</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/77#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:23:06 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[모바일GPKI]]></category>
		<category><![CDATA[모바일전자정부]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=77</guid>
		<description><![CDATA[모바일전자정부는 최근에 진행했던 프로젝트로 마무리가 되지 않던 부분을 미리 적용하면서 여러가지 경험을 했던 부분입니다. 국가에서 행정망 서비스를 모바일로 하기 위해서는 모바일전자정부 프레임워크를 사용해서 접근을 하도록 하고 있습니다. 그래서 행망과 연계해서 서비스를 할 목적으로 개발할 앱들은 꼭 처리를 해야 합니다. 초기 개발에서는 앱을 우선 만들고 이후에 모바일전자정부 프레임워크를 적용하면 됩니다. 관련해서 개발을 하면서 필요한 몇가지 부분을 <a href='http://blog.sukmoonlee.com/wordpress/archives/77' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>모바일전자정부는 최근에 진행했던 프로젝트로 마무리가 되지 않던 부분을 미리 적용하면서 여러가지 경험을 했던 부분입니다.</p>
<p>국가에서 행정망 서비스를 모바일로 하기 위해서는 모바일전자정부 프레임워크를 사용해서 접근을 하도록 하고 있습니다.</p>
<p>그래서 행망과 연계해서 서비스를 할 목적으로 개발할 앱들은 꼭 처리를 해야 합니다.<br />
초기 개발에서는 앱을 우선 만들고 이후에 모바일전자정부 프레임워크를 적용하면 됩니다. </p>
<p>관련해서 개발을 하면서 필요한 몇가지 부분을 메모하고자 합니다.</p>
<p>1. 모바일전자정부 런처 설치 및 모바일 GPKI 인증서 설치<br />
  ==> 지금은 어떨지 모르겠지만, 설치하기가 쉽지 않습니다. -_-</p>
<p>2. 모바일앱 등록<br />
  ==> 개발을 하기 위해서는 Hello World 와 같은 초기앱을 하나 올려둬야 합니다.<br />
      이를 위해서는 모바일전자정부 런처가 사용하는 동일한 인증서를 받아야 합니다. 그래서 Hello World 앱을 해당 인증서로 서명해서 올려서 앱을 등록해야만 합니다.</p>
<p>3. 앱다운로드 및 설치<br />
  ==>  Hello World 앱을 스마트폰에 넣은 다음, 개발할 소프트웨어를 같은 인증서로 패키지를 한 다음에 스마트폰에 넣어서 설치를 하면 기존 프로그램을 덮어쓰게 됩니다. 그러면 재등록을 하지 않고도 런쳐를 통해서 프로그램을 구동할 수 있습니다.</p>
<p>이런 형식으로 개발을 하게 되며, 이렇게 진행이 되다 보니 통합 디버거툴을 사용하기 힘듭니다. Eclipse 기반에서 Android 앱을 개발을 하면서 DDMS의 LogCat을 정말 많이 활용하게 되며, DDMS의 파일 업로드 기능을 정말 잘 활용하게 됩니다. ^^</p>
<p>프로그램에서 주의할 점은 아래와 같습니다.</p>
<p>1. 프로그램 유형<br />
  일반적으로 아이콘으로 실행하는 방식이 아니고 다른 프로그램에 의해서 실행이 되는 경우이기 때문에 Manifest 파일이 약간 특이합니다. 자세한 부분은 메뉴얼에 있으며, 안드로이드의 경우에는 특정 퍼미션을 추가해주셔야 합니다. (이 부분이 메뉴얼에 없어서 상당히 고생을 했습니다. -_-)</p>
<p>2. 상당히 많은 메뉴얼이 제공되지만, 실제로 사용하는 것읗 몇개 프로그램만 사용하면 됩니다.<br />
  간단하게 1개의 jar 파일을 추가하고, 호출하면 별로 할일이 없습니다. </p>
<p>3. 데이타 연동 부분<br />
  중계서버를 통해서 연계를 해야 하며, 런처에 있는 VPN을 통해서 연결이 해야 합니다.<br />
  중계서버 연동 방법과 사용법은 메뉴얼이 잘되어 있지만, VPN 사용법이 나와있지 않아서 고생을 했던 부분입니다. </p>
<p>이상입니다. </p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/77?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/77/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn del 명령어</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/178</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/178#comments</comments>
		<pubDate>Tue, 28 Aug 2012 11:22:39 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[del]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=178</guid>
		<description><![CDATA[svn을 사용하면서 파일을 삭제할때 유용한 옵션 2가지를 소개합니다. 1. svn del &#8211;keep-local svn 레파지토리에서만 파일을 제거하고, 해당 파일을 로컬에 남겨두는 기능입니다. 2. svn del &#8211;force rm 명령어를 통해서 파일을 삭제한 경우에 svn 레파지토리에는 삭제가 안되어 있는 경우 위의 명령어를 통해서 로컬 레파지토리에 삭제를 할수 있습니다. 최종 반영은 commit 할때 반영이 됩니다. [smlee@localhost ~]$ svn help <a href='http://blog.sukmoonlee.com/wordpress/archives/178' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>svn을 사용하면서 파일을 삭제할때 유용한 옵션 2가지를 소개합니다.</p>
<p>1. svn del &#8211;keep-local<br />
 svn 레파지토리에서만 파일을 제거하고, 해당 파일을 로컬에 남겨두는 기능입니다.</p>
<p>2. svn del &#8211;force<br />
 rm 명령어를 통해서 파일을 삭제한 경우에 svn 레파지토리에는 삭제가 안되어 있는 경우 위의 명령어를 통해서 로컬 레파지토리에 삭제를 할수 있습니다. 최종 반영은 commit 할때 반영이 됩니다.</p>
<pre>
[smlee@localhost ~]$ svn help del
delete (del, remove, rm): 파일과 디렉토리를 버전 관리 대상에서 제거합니다.
사용법: 1. delete PATH...
        2. delete URL...

  1. PATH에 있는 모든 파일, 디렉토리들을 다음 커밋에서 제거하도록
     스케쥴합니다. 커밋되지 않은 파일과 디렉토리는 --keep-local 옵션을
     사용하지 않는한 즉시 작업사본에서 제거됩니다.
     PATH가 버전 관리 대상이 아니거나 그러한 파일을 포함하는 디렉토리라면
     --force 옵션을 주어야만 삭제됩니다.

  2. URL로 지정된 아이템들은 저장소에서 즉시 삭제됩니다.


옵션:
  --force                  : 강제로 실행합니다
  -q [--quiet]             : 아무것도 출력하지 않거나, 요약 정보만 출력합니다
  --targets ARG            : ARG로 주어진 파일 내용을 옵션으로 추가합니다
  -m [--message] ARG       : 커밋 로그 메시지를 지정합니다
  -F [--file] ARG          : arg에서 로그 메시지를 읽습니다
  --force-log              : 로그 메시지의 유효성을 확인하지 않습니다
  --editor-cmd ARG         : arg를 외부 편집기로 사용합니다
  --encoding ARG           : 값을 arg에 해당하는 문자코드로 취급합니다
  --with-revprop ARG       : set revision property ARG in new revision
                             using the name[=value] format
  --keep-local             : 작업사본의 경로를 유지합니다

글로벌 옵션:
  --username ARG           : arg를 접속에 필요한 사용자 ID로 사용합니다
  --password ARG           : arg를 접속에 필요한 패스워드로 사용합니다
  --no-auth-cache          : 인증 정보를 캐시에 저장하지 않습니다
  --non-interactive        : 대화식 사용자 입력을 기다리지 않습니다
  --trust-server-cert      : accept unknown SSL server certificates without
                             prompting (but only with '--non-interactive')
  --config-dir ARG         : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다
  --config-option ARG      : set user configuration option in the format:
                                 FILE:SECTION:OPTION=[VALUE]
                             For example:
                                 servers:global:http-library=serf
</pre>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/178?pfstyle=wp" rel="nofollow" ><img src="http://cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.sukmoonlee.com/wordpress/archives/178/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
