<?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; Internet</title>
	<atom:link href="http://blog.sukmoonlee.com/wordpress/archives/category/internet/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>whois protocol</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/296</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/296#comments</comments>
		<pubDate>Wed, 19 Sep 2012 10:23:00 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[iana]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=296</guid>
		<description><![CDATA[DNS 관련일을 하게 되면 자연적으로 도메인과 많은 관련성이 있습니다. 특히 도메인을 이해하기 위해서는 Registry-Registrar 개념과 DNS 위임구조를 알아야 합니다. 도메인의 위임정보를 알기 위해서 WHOIS라는 서비스를 제공하고 있습니다. 아주 오래된 프로토콜로 TCP 43번 포트로 제공하고 있는 프로토콜입니다. (DNS가 53번이므로 외우기도 쉽습니다.) 해당 프로토콜에 대해서는 영문위키를 보면 금방 이해를 할수 있으며, 간단히 telnet 으로도 확인이 가능합니다. Socket에서 <a href='http://blog.sukmoonlee.com/wordpress/archives/296' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>DNS 관련일을 하게 되면 자연적으로 도메인과 많은 관련성이 있습니다.</p>
<p>특히 도메인을 이해하기 위해서는 Registry-Registrar 개념과 DNS 위임구조를 알아야 합니다.<br />
도메인의 위임정보를 알기 위해서 WHOIS라는 서비스를 제공하고 있습니다.</p>
<p>아주 오래된 프로토콜로 TCP 43번 포트로 제공하고 있는 프로토콜입니다.<br />
(DNS가 53번이므로 외우기도 쉽습니다.)</p>
<p>해당 프로토콜에 대해서는 영문위키를 보면 금방 이해를 할수 있으며, 간단히 telnet 으로도 확인이 가능합니다.<br />
Socket에서 TCP Client 정도만 제작가능하시면 바로 제작이 가능합니다.</p>
<blockquote><p><a href="http://en.wikipedia.org/wiki/Whois" title="http://en.wikipedia.org/wiki/Whois">http://en.wikipedia.org/wiki/Whois</a></p></blockquote>
<p>이러한 WHOIS 정보는 TLD별로 제공이 되고 있으며, 아래와 같은 규칙을 가지고 있습니다.</p>
<blockquote><p>whois-servers.net provides DNS alias records (CNAME) for TLD WHOIS servers of the form <tld>.whois-servers.net.</p>
<pre>
[stone@localhost ~]$ <strong><em>telnet com.whois-servers.net 43</em></strong>
Trying 199.7.49.74...
Connected to com.whois-servers.net (199.7.49.74).
Escape character is '^]'.
<strong><em>netpia.com</em></strong>

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

   Domain Name: NETPIA.COM
   Registrar: NETPIA.COM, INC.
   Whois Server: whois.ibi.net
   Referral URL: http://www.ibi.net
   Name Server: NS.NETPIA.COM
   Name Server: NS2.NETPIA.COM
   Status: clientDeleteProhibited
   Status: clientTransferProhibited
   Updated Date: 10-mar-2012
   Creation Date: 01-apr-1998
   Expiration Date: 31-mar-2013

>>> Last update of whois database: Mon, 17 Sep 2012 15:01:00 UTC <<<

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar.  Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability.  VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.Connection closed by foreign host.
[stone@localhost ~]$
</pre>
</blockquote>
<p>보다 확실한 방법은 IP와 주소 정보를 관할하는 IANA의 WHOIS 서버를 통해서 확인을 하면 보다 확실합니다.</p>
<blockquote><p>
The IANA whois server at whois.iana.org provides information on each TLD including the whois server.</p>
<pre>
[stone@localhost~]$ <strong><em>telnet whois.iana.org 43</em></strong>
Trying 192.0.47.59...
Connected to whois.iana.org (192.0.47.59).
Escape character is '^]'.
<strong><em>kr</em></strong>
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

domain:       KR

organisation: Korea Internet &#038; Security Agency (KISA)
address:      12F, Daedong Bldg, 109 Jungdae-ro, Songpa-gu
address:      Seoul  138-950
address:      Korea, Republic Of

contact:      administrative
name:         Kilnam Chon
organisation: Korea Network Information Center (KRNIC)
address:      12F, Daedong Bldg, 109 Jungdae-ro, Songpa-gu
address:      Seoul  138-950
address:      Korea, Republic Of
phone:        +82 10 8581 3514
fax-no:       +82 2 405 5419
e-mail:       chonkn@gmail.com

contact:      technical
name:         Director of Internet Technology Team
organisation: Korea Internet &#038; Security Agency (KISA)
address:      12F, Daedong Bldg
address:      109 Jungdae-ro, Songpa-gu
address:      Seoul 138-950
address:      Korea, Republic Of
phone:        +82 2 405 6470
fax-no:       +82 2 405 5119
e-mail:       techc@kisa.or.kr

nserver:      B.DNS.KR 61.74.75.1
nserver:      C.DNS.KR 203.248.246.220
nserver:      D.DNS.KR 203.83.159.1
nserver:      E.DNS.KR 2001:dcc:5:0:0:0:0:100 202.30.124.100
nserver:      F.DNS.KR 218.38.181.90
nserver:      G.DNS.KR 2001:dc5:a:0:0:0:0:1 202.31.190.1
ds-rdata:     17625 7 2 FB939059F4B67BBA1E8AC37E35811E506488B2D8CFF807AF873B2116B5676B5C

whois:        whois.kr

status:       ACTIVE
remarks:      Registration information: http://www.nic.or.kr/

created:      1986-09-29
changed:      2011-11-23
source:       IANA

Connection closed by foreign host.
[stone@localhost ~]$
</pre>
</blockquote>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/296?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/296/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS &#8211; Message compression</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/281</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/281#comments</comments>
		<pubDate>Mon, 17 Sep 2012 12:51:35 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[message compression]]></category>
		<category><![CDATA[protocol]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=281</guid>
		<description><![CDATA[DNS는 HTML과 달리 정해진 형식으로 구성된 프로토콜입니다. 워낙 작은 데이타로 값을 요청하고, 응답해야 하기 때문에 나름대로의 규칙이 있습니다. 특히 응답값을 패킷 캡쳐를 해서 보면 재미있는 현상이 있습니다. 실제 결과를 nslookup이나 dig를 통해서 결과를 보면 데이타의 양이 많습니다. 하지만 많은 양에 비해서 패킷의 수치는 그리 많지 않습니다. 이를 처리하는 부분이 도메인 데이타에 대해서 압축(?)을 하는 방법을 <a href='http://blog.sukmoonlee.com/wordpress/archives/281' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>DNS는 HTML과 달리 정해진 형식으로 구성된 프로토콜입니다.</p>
<p>워낙 작은 데이타로 값을 요청하고, 응답해야 하기 때문에 나름대로의 규칙이 있습니다.</p>
<p>특히 응답값을 패킷 캡쳐를 해서 보면 재미있는 현상이 있습니다.<br />
실제 결과를 nslookup이나 dig를 통해서 결과를 보면 데이타의 양이 많습니다. 하지만 많은 양에 비해서 패킷의 수치는 그리 많지 않습니다.</p>
<p>이를 처리하는 부분이 도메인 데이타에 대해서 압축(?)을 하는 방법을 사용합니다. 우리가 일반적으로 알고 있는 압축이 아니고, 이미 사용했던 패킷의 데이타를 재사용함으로써 데이타 압축을 한 효과를 내고 있습니다.</p>
<p>RFC에서 DNS 프로토콜에서 데이타 압축 기법에 대한 설명 자료</p>
<p>    <a href="http://tools.ietf.org/html/rfc1035#section-4.1.4">http://tools.ietf.org/html/rfc1035#section-4.1.4</a></p>
<p>이러한 기법에 대해서 설명한 자료를 찾지 못해서 RFC와 패킷 캡쳐한 결과로만 알고 있다가 예전에 인터넷으로 검색해서 찾은 자료입니다. 예전같으면 원서라도 구입해서 보겠지만, 요새는 인터넷에서 원서를 공개하고 있어서 원하는 부분만 쉽게 볼수 있어서 좋은것 같습니다.</p>
<p>    <a href="http://www.tcpipguide.com/free/t_DNSNameNotationandMessageCompressionTechnique.htm">http://www.tcpipguide.com/free/t_DNSNameNotationandMessageCompressionTechnique.htm</a></p>
<p>위의 TCP/IP Guide 책을 보면 RFC보다 쉽게 이해가 가능합니다.</p>
<p>하지만 이러한 사실을 눈으로는 쉽게 이해가 되지만, 이를 구현을 하다 보면 여러가지 문제점이 있다는 것을 알수 있습니다.<br />
구현에 대해서는 다음에 다시 한번 정리를 해보도록 하겠습니다.</p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/281?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/281/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OL vs UL tag</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/230</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/230#comments</comments>
		<pubDate>Wed, 29 Aug 2012 12:49:05 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[ol]]></category>
		<category><![CDATA[ul]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=230</guid>
		<description><![CDATA[예전에는 HTML을 작성할때 TABLE을 많이 사용했지만, CSS를 많이 사용하는 표준코딩에서는 DIV와 함께 UL, OL 을 많이 사용하게 된다. 해당 태그에 대한 풀네임이 궁금해서 찾아봤더니 다음과 같다. Unordered lists (UL) ordered lists (OL) list items (LI) 이름에서와 같이 리스트를 나열하며, 아래와 같이 확인이 가능하다. ul 테스트 1 ul 테스트 2 ol 테스트 1 ol 테스트 2 <a href='http://blog.sukmoonlee.com/wordpress/archives/230' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>예전에는 HTML을 작성할때 TABLE을 많이 사용했지만, CSS를 많이 사용하는 표준코딩에서는 DIV와 함께 UL, OL 을 많이 사용하게 된다.</p>
<p>해당 태그에 대한 풀네임이 궁금해서 찾아봤더니 다음과 같다.</p>
<p>Unordered lists (UL)<br />
ordered lists (OL)<br />
list items (LI)</p>
<p>이름에서와 같이 리스트를 나열하며, 아래와 같이 확인이 가능하다.</p>
<ul>
<li> ul 테스트 1</li>
<li> ul 테스트 2</li>
</ul>
<ol>
<li> ol 테스트 1</li>
<li> ol 테스트 2</li>
</ol>
<p>참고 URL :<br />
 <a href="http://www.w3.org/TR/WCAG20-TECHS/H48">http://www.w3.org/TR/WCAG20-TECHS/H48</a><br />
 <a href="http://www.w3.org/TR/html4/struct/lists.html#h-10.2">http://www.w3.org/TR/html4/struct/lists.html#h-10.2</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/230?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/230/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS에서 Margin과 Padding, Border 이해하기</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/203</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/203#comments</comments>
		<pubDate>Tue, 28 Aug 2012 12:26:13 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[border]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[margin]]></category>
		<category><![CDATA[padding]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=203</guid>
		<description><![CDATA[전문적인 디자인은 아니지만, CSS를 이용해서 HTML을 코딩하면 항상 접하게 되는 항목이 margin, padding, border 이다. 특히 정확한 픽셀을 계산하기 위해서는 실제 width에 maring과 padding, border값이 어떻게 적용되는지를 파악해야만 한다. 일단 W3C를 참고해보면 CSS는 아래와 같은 구조를 가지고 있다. 이를 기반으로 width와 height를 계산하는 방식은 다음과 같다. Total element width = width + left padding + <a href='http://blog.sukmoonlee.com/wordpress/archives/203' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>전문적인 디자인은 아니지만, CSS를 이용해서 HTML을 코딩하면 항상 접하게 되는 항목이 margin, padding, border 이다.</p>
<p>특히 정확한 픽셀을 계산하기 위해서는 실제 width에 maring과 padding, border값이 어떻게 적용되는지를 파악해야만 한다.</p>
<p>일단 W3C를 참고해보면 CSS는 아래와 같은 구조를 가지고 있다.</p>
<p><img src="http://www.w3schools.com/css/box-model.gif" alt="css box model" class="aligncenter" /></p>
<p>이를 기반으로 width와 height를 계산하는 방식은 다음과 같다.</p>
<p><strong>Total element width = width + left padding + right padding + left border + right border + left margin + right margin</strong></p>
<p>자세한 설명은 아래을 참고하면 된다. 홈주소창을 만들때 아래이 방법이 많은 도움을 되었다.</p>
<p><a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/w3schools_com_20120828_211956.jpg"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/08/w3schools_com_20120828_211956.jpg" alt="" title="w3schools_com_20120828_211956" width="646" height="639" class="aligncenter size-full wp-image-204" /></a></p>
<p>그리고 HTML 표준모드가 아닌 호환모드가 있다. 즉 HTML 헤더에 DOCTYPE이 제대로 정의되지 않는 형태로 이런 경우에는 위의 공식이 적용되지 않는다. 그래서 호환모드에서는 계산 방법을 달리해야 한다. 홈주소창에서는 2가지 모드에 대해서 별도의 계산식을 사용해서 처리를 함으로써 크로스 브라우저 및 HTML 모드를 지원했다.</p>
<p>참고 URL : <a href="http://www.w3schools.com/css/css_boxmodel.asp">http://www.w3schools.com/css/css_boxmodel.asp</a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/203?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/203/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User-Agent</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/164</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/164#comments</comments>
		<pubDate>Tue, 24 Apr 2012 01:13:15 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[user-agent]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=164</guid>
		<description><![CDATA[HTTP 헤더를 분석하다 보면 브라우저 정보 혹은 사용자 정보를 쉽게 확인하는 방법중에 하나로 User-Agent 헤더를 분석하는 경우가 많다. 생각보다 많은 정보를 가지고 있습니다. 참고할만한 사이트가 있어서 공유합니다. http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx 다른 브라우저도 비슷한 구조를 가지고 있으면, MS의 Internet Explorer 운영 환경을 파악하는데 도움이 된다. 특히 아래와 같이 OS정보는 바로 응용이 가능합니다. 그리고 추가적으로 User-Agent 정보만 모아둔 사이트도 <a href='http://blog.sukmoonlee.com/wordpress/archives/164' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>HTTP 헤더를 분석하다 보면 브라우저 정보 혹은 사용자 정보를 쉽게 확인하는 방법중에 하나로 User-Agent 헤더를 분석하는 경우가 많다.</p>
<p>생각보다 많은 정보를 가지고 있습니다. 참고할만한 사이트가 있어서 공유합니다.</p>
<blockquote><p><a href="http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx</a></p></blockquote>
<p>다른 브라우저도 비슷한 구조를 가지고 있으면, MS의 Internet Explorer 운영 환경을 파악하는데 도움이 된다. 특히 아래와 같이 OS정보는 바로 응용이 가능합니다.</p>
<p><a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/microsoft_com_20120423_215255.jpg"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/microsoft_com_20120423_215255.jpg" alt="" title="microsoft_com_20120423_215255" width="715" height="445" class="aligncenter size-full wp-image-174" /></a></p>
<p>그리고 추가적으로 User-Agent 정보만 모아둔 사이트도 있다.<br />
사이트에 보면 Chrome(http://www.useragentstring.com/pages/Chrome/) 혹은 Safari(http://www.useragentstring.com/pages/Safari/)에 대한 정보도 얻을수 있다.</p>
<blockquote><p><a href="http://www.useragentstring.com/pages/useragentstring.php">http://www.useragentstring.com/pages/useragentstring.php</a></p></blockquote>
<p>프로그램으로 웹클라이언트를 구현할때에도 해당 값들을 이용해서 신규로 생성하거나, 흉내를 낼수 있다.</p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/164?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/164/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache ETag</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/136</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/136#comments</comments>
		<pubDate>Tue, 17 Apr 2012 12:40:35 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[etag]]></category>
		<category><![CDATA[http/1.1]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=136</guid>
		<description><![CDATA[HTTP/1.1 에서 Cache와 관련된 헤더중에 If-Modified-Since와 ETag를 사용하는 방법이 있습니다. ETag에 대한 설명은 아래에서 확인이 가능합니다. http://en.wikipedia.org/wiki/HTTP_ETag 여기서 궁금한 것은 국내에서 많이 사용하고 있는 Apache 웹서버에서는 ETag 값을 어떻게 생성하는지가 궁금해서 소스를 다운받아서 확인을 해봤다. 아래 주석에서와 같이 inode-size-mtime 으로 구성이 하되, hex 값으로 변환을 해서 사용하도록 되어 있습니다. 물론 filetype이 0인 경우에는 mtime값만을 사용하는 <a href='http://blog.sukmoonlee.com/wordpress/archives/136' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>HTTP/1.1 에서 Cache와 관련된 헤더중에 If-Modified-Since와 ETag를 사용하는 방법이 있습니다.</p>
<p>ETag에 대한 설명은 아래에서 확인이 가능합니다.</p>
<blockquote><p><a href="http://en.wikipedia.org/wiki/HTTP_ETag">http://en.wikipedia.org/wiki/HTTP_ETag</a></p></blockquote>
<p>여기서 궁금한 것은 국내에서 많이 사용하고 있는 Apache 웹서버에서는 ETag 값을 어떻게 생성하는지가 궁금해서 소스를 다운받아서 확인을 해봤다.</p>
<p>아래 주석에서와 같이 <strong>inode-size-mtime</strong> 으로 구성이 하되, hex 값으로 변환을 해서 사용하도록 되어 있습니다. 물론 filetype이 0인 경우에는 mtime값만을 사용하는 것을 149라인에서 확인을 할수 있다.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="c" style="font-family:monospace;">    <span style="color: #0000dd;">113</span>     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>finfo.<span style="color: #202020;">filetype</span> <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">114</span>         <span style="color: #808080; font-style: italic;">/*
    115          * ETag gets set to [W/]&quot;inode-size-mtime&quot;, modulo any
    116          * FileETag keywords.
    117          */</span>
    <span style="color: #0000dd;">118</span>         etag <span style="color: #339933;">=</span> apr_palloc<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>pool<span style="color: #339933;">,</span> weak_len <span style="color: #339933;">+</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>--<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span>
    <span style="color: #0000dd;">119</span>                           <span style="color: #0000dd;">3</span> <span style="color: #339933;">*</span> CHARS_PER_UINT64 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">120</span>         next <span style="color: #339933;">=</span> etag<span style="color: #339933;">;</span>
    <span style="color: #0000dd;">121</span>         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>weak<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">122</span>             <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>weak<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">123</span>                 <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #339933;">*</span>weak<span style="color: #339933;">++;</span>
    <span style="color: #0000dd;">124</span>             <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">125</span>         <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">126</span>         <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'&quot;'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">127</span>         bits_added <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">128</span>         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>etag_bits <span style="color: #339933;">&amp;</span> ETAG_INODE<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">129</span>             next <span style="color: #339933;">=</span> etag_uint64_to_hex<span style="color: #009900;">&#40;</span>next<span style="color: #339933;">,</span> r<span style="color: #339933;">-&gt;</span>finfo.<span style="color: #202020;">inode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">130</span>             bits_added <span style="color: #339933;">|=</span> ETAG_INODE<span style="color: #339933;">;</span>
    <span style="color: #0000dd;">131</span>         <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">132</span>         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>etag_bits <span style="color: #339933;">&amp;</span> ETAG_SIZE<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">133</span>             <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>bits_added <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">134</span>                 <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'-'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">135</span>             <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">136</span>             next <span style="color: #339933;">=</span> etag_uint64_to_hex<span style="color: #009900;">&#40;</span>next<span style="color: #339933;">,</span> r<span style="color: #339933;">-&gt;</span>finfo.<span style="color: #202020;">size</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">137</span>             bits_added <span style="color: #339933;">|=</span> ETAG_SIZE<span style="color: #339933;">;</span>
    <span style="color: #0000dd;">138</span>         <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">139</span>         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>etag_bits <span style="color: #339933;">&amp;</span> ETAG_MTIME<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">140</span>             <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>bits_added <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">141</span>                 <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'-'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">142</span>             <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">143</span>             next <span style="color: #339933;">=</span> etag_uint64_to_hex<span style="color: #009900;">&#40;</span>next<span style="color: #339933;">,</span> r<span style="color: #339933;">-&gt;</span>mtime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">144</span>         <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">145</span>         <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'&quot;'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">146</span>         <span style="color: #339933;">*</span>next <span style="color: #339933;">=</span> <span style="color: #ff0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">147</span>     <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">148</span>     <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">149</span>         <span style="color: #808080; font-style: italic;">/*
    150          * Not a file document, so just use the mtime: [W/]&quot;mtime&quot;
    151          */</span>
    <span style="color: #0000dd;">152</span>         etag <span style="color: #339933;">=</span> apr_palloc<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">-&gt;</span>pool<span style="color: #339933;">,</span> weak_len <span style="color: #339933;">+</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span>
    <span style="color: #0000dd;">153</span>                           CHARS_PER_UINT64 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">154</span>         next <span style="color: #339933;">=</span> etag<span style="color: #339933;">;</span>
    <span style="color: #0000dd;">155</span>         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>weak<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">156</span>             <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>weak<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000dd;">157</span>                 <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #339933;">*</span>weak<span style="color: #339933;">++;</span>
    <span style="color: #0000dd;">158</span>             <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">159</span>         <span style="color: #009900;">&#125;</span>
    <span style="color: #0000dd;">160</span>         <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'&quot;'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">161</span>         next <span style="color: #339933;">=</span> etag_uint64_to_hex<span style="color: #009900;">&#40;</span>next<span style="color: #339933;">,</span> r<span style="color: #339933;">-&gt;</span>mtime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">162</span>         <span style="color: #339933;">*</span>next<span style="color: #339933;">++</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'&quot;'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">163</span>         <span style="color: #339933;">*</span>next <span style="color: #339933;">=</span> <span style="color: #ff0000;">'<span style="color: #006699; font-weight: bold;">\0</span>'</span><span style="color: #339933;">;</span>
    <span style="color: #0000dd;">164</span>     <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>아래는 실제 Apache 서버에서 받은 HTTP 헤더에 들어 있는 ETag 값입니다.<br />
<a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/hfhfgffi.png"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/hfhfgffi.png" alt="" title="hfhfgffi" width="901" height="214" class="aligncenter size-full wp-image-139" /></a></p>
<p>위의 ETag 값을 검증해보기 위해서 마지막에 있는 0467ddaad 값을 10진수로 변환을 하고, 해당 값을 Unix Timestamp로 변환을 해보면 다음과 같이 확인이 가능합니다.<br />
<a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/gdbfidhe.png"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/gdbfidhe.png" alt="" title="gdbfidhe" width="397" height="110" class="aligncenter size-full wp-image-140" /></a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/136?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/136/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>인터넷 접속 환경과 브라우저 정보 확인</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/69</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/69#comments</comments>
		<pubDate>Fri, 06 Apr 2012 13:13:41 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[asn]]></category>
		<category><![CDATA[remote_addr]]></category>
		<category><![CDATA[user-agent]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=69</guid>
		<description><![CDATA[인터넷을 이용할 때 현재 접속 정보를 확인해야 할 경우가 많습니다. 특히 외부에서 무선으로 연결해서 특정 AP를 이용할 경우에는 자기 정보 확인을 하면 여러가지 도움을 받을 수 있습니다. (서버 및 방화벽 연결시 활용, 접속 ISP 정보등등..) 그리고 스마트폰 및 각종 인터넷에 연결이 되는 장비를 사용하는 얼리어텁터라면 알고 싶어 하는 것이 해당 인터넷에 접속하는 브라우저의 정보입니다. 이런 <a href='http://blog.sukmoonlee.com/wordpress/archives/69' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>인터넷을 이용할 때 현재 접속 정보를 확인해야 할 경우가 많습니다.<br />
특히 외부에서 무선으로 연결해서 특정 AP를 이용할 경우에는 자기 정보 확인을 하면 여러가지 도움을 받을 수 있습니다.<br />
(서버 및 방화벽 연결시 활용, 접속 ISP 정보등등..)</p>
<p>그리고 스마트폰 및 각종 인터넷에 연결이 되는 장비를 사용하는 얼리어텁터라면 알고 싶어 하는 것이 해당 인터넷에 접속하는 브라우저의 정보입니다.</p>
<p>이런 정보를 예전부터 저혼자 사용하고 있던 부분을 공개합니다.<br />
아래의 접속 경로를 통해서 접속하시면 볼수 있습니다.</p>
<p><a href="http://blog.sukmoonlee.com/env.php">http://blog.sukmoonlee.com/env.php</a></p>
<p>아래는 현재 결과 샘플입니다.</p>
<p><a href="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/sukmoonlee_com_20120404_220908.jpg"><img src="http://blog.sukmoonlee.com/wordpress/wp-content/uploads/2012/04/sukmoonlee_com_20120404_220908.jpg" alt="" title="sukmoonlee_com_20120404_220908" width="1259" height="743" class="aligncenter size-full wp-image-72" /></a></p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/69?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/69/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>새올 행정시스템 연동 방법</title>
		<link>http://blog.sukmoonlee.com/wordpress/archives/75</link>
		<comments>http://blog.sukmoonlee.com/wordpress/archives/75#comments</comments>
		<pubDate>Thu, 05 Apr 2012 10:40:04 +0000</pubDate>
		<dc:creator>Sukmoon Lee</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[GPKI]]></category>
		<category><![CDATA[wsdl]]></category>
		<category><![CDATA[새올행정]]></category>

		<guid isPermaLink="false">http://blog.sukmoonlee.com/wordpress/?p=75</guid>
		<description><![CDATA[공공 개발을 하다 보면 행정 시스템과 연동해서 개발해야 하는 경우가 발생합니다. 기본적으로 행정 시스템에 직접 접속할수 없기 때문에 SOAP 기반의 웹서비스(WSDL)을 기반으로 데이타를 요청하고, 수신해야 합니다. 이를 위해서는 담당 공무원이 새올행정 통합지원센터를 통해서 연계아이디를 발급받고, 코드를 발급받아야 합니다. 그리고 연동 담당자와 각 서비스별로 담당자와 연계 쿼리를 발급받고, 해당 정보를 담아서 서비스로 받아야 합니다. (여기서부터 자연스럽게 <a href='http://blog.sukmoonlee.com/wordpress/archives/75' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>공공 개발을 하다 보면 행정 시스템과 연동해서 개발해야 하는 경우가 발생합니다.</p>
<p>기본적으로 행정 시스템에 직접 접속할수 없기 때문에 SOAP 기반의 웹서비스(WSDL)을 기반으로 데이타를 요청하고, 수신해야 합니다.</p>
<p>이를 위해서는 담당 공무원이 새올행정 통합지원센터를 통해서 연계아이디를 발급받고, 코드를 발급받아야 합니다.<br />
그리고 연동 담당자와 각 서비스별로 담당자와 연계 쿼리를 발급받고, 해당 정보를 담아서 서비스로 받아야 합니다.<br />
(여기서부터 자연스럽게 연계담당자와 통화를 좀 많이 하셔야 합니다. -_-)</p>
<p>나머지는 메뉴얼을 보고 연계를 하면 되지만, 처음 개념을 알지 못하면 정말 힘든 작업입니다.<br />
그리고 중요한 것은 웹서비스(WSDL)로 통신을 하기 때문에 요청할떄 MIME 유형과 encoding 형태를 잘 맞춰야 합니다.</p>
<p>많이 사용하는 AXIS등을 사용하기 위해서는 웹서버의 환경과 연계서버의 환경을 잘 고려해야 합니다.<br />
(초기에 연계서버를 개발할때 개발용 PC환경, 개발서비스 시스템과 실서비스가 환경이 모두 달라서 여러 경험을 했었습니다. 만약 해당 사항이 맞지 않으면 HTTP 500 Response가 나오기 때문에 무엇 때문에 오류인지도 모르고 고생하는 경우가 발생됩니다.)</p>
<p>무식한 저는 이런 고생을 많이 했고, 짧은 기간에 프로젝트를 완료해야 했기 때문에 서버의 상태를 검증하기 보다는 프로젝트 완료를 빨리 진행하기 위해서 웹클라이언트를 만들어서 처리를 빨리 했습니다. -_-</p>
<p>아래와 같이 Connection을 만들고, 직접 XML을 생성해서 보내는 방식이죠. </p>
<blockquote><p>URL url = new URL(&#8220;http://&#8221;);<br />
			URLConnection con = url.openConnection();<br />
			con.addRequestProperty(&#8220;SOAPAction&#8221;,&#8221;");<br />
			con.setRequestProperty(&#8220;Content-Type&#8221;,&#8221;text/xml; charset=euc-kr&#8221;);<br />
			con.setDoOutput(true);</p></blockquote>
<p>다시 받은 데이타도 XML을 파싱루틴도 만들어서 처리를 하면 됩니다.</p>
<p>하지만 또 하나의 난관은 개인정보가 될만한 사항이 있는 것은 GPKI 통신을 해야 합니다.<br />
이를 위해서는 추가적으로 GPKI 서버용 인증 코드를 발급받아서 새올연동 서버에 등록을 해야 합니다.<br />
그리고는 LDAP을 통해서 연계할 서버의 공개키블 받아서 저장해두고, 해당 키들로 초기화를 해야 합니다. 그런 다음 만든 XML의 일부분을 GPKI encode를 해서 전달하고, 받은 데이타의 일부분을 decode 해서 확인을 해야 합니다.<br />
(샘플 프로그램에도 있지만, 암호화되 데이타는 base64로 encode를 해야 하며, 복호화할때에도 base64로 decode를 먼저 한 다음에 해야 합니다.)</p>
<p>주의할 점은 Java용 GPKI 모듈은 JNI 를 사용하기 때문에 OS에 맞는 버전으로 설치를 해야 하며, 서버에 미리 설치해서 검증을 할 수 있습니다.<br />
또 새올행정 서버의 공개키를 받을때는 샘플 프로그램을 이용하는 방법도 있지만, LDAP 클라이언트를 하나 구해서 저장하는 방식이 더 편리합니다.<br />
(저는 잘 몰라서 2가지 방법 모두 했습니다. -_-)</p>
<p>실제로 개발보다는 연동을 하기 위해서 연계팀과 진행해야 할 부분이 많으며, 경험이 있다면 쉽지만, 그렇지 않으면 처음에는 조금 고생을 하셔야 합니다. </p>
<div class="printfriendly pf-alignleft"><a href="http://blog.sukmoonlee.com/wordpress/archives/75?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/75/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
