<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Trivial round of daily life in Wonderland</title>
		<link>http://brown.ezphp.net/</link>
		<description>브라운의 일상 생활과 프로그래밍 그리고 기타 잡다한 것들이 있는 곳</description>
		<language>ko</language>
		<pubDate>Tue, 09 Mar 2010 12:34:11 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<item>
			<title>PCM (Phase Change Memory, or PRAM)</title>
			<link>http://brown.ezphp.net/92</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;Reference&lt;/STRONG&gt; : MICRO 2009, Sangyeon Cho, Hyunjin Lee&lt;br /&gt;
Flip-N-Write : A Simple Deterministic Technique to Improve PRAM Write Performance, Energy and Endurance&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
현재 우리가 사용하고 있는 대표적인 메모리는&amp;nbsp;메인 메모리로 사용하는 DRAM(특히 SDRAM)과 캐쉬로 사용하는 SRAM 마지막으로 최근 이동식디스크로 사용하는 Flash이다. DRAM과 SRAM은 휘발성 메모리로 파워가 공급되는 동안에는 값을 유지하지만 파워가 끊기면 기억하고 있던 값은 모두 날라가 버린다. 그래서 이름이 휘발성 메모리(Volatile Memory)이다. DRAM은 매우 간단한 구조로 싼값에 메모리를 집적할 수 있기 때문에 대용량의 메모리를 만드는데 적합하나 값을 유지하기 위해서 주기적으로 갱신(Refresh) 작업을 실행해 주어야 한다. 그 이유는 leakage current로 인해서 시간이 지나면 값을 잃어버리기 때문이다. 반면 SRAM은 갱신작업이 필요없고 매우 빠르나 매우 비싸기 때문에 대용량 메모리로 사용하기 어려워 캐쉬에서만 사용하고 있다. 이 둘과 달리 Flash는 비휘발성 메모리(Non-Volatile Memory)이기 때문에 파워 공급이 없어도 값을 잃어버리지 않으며 DRAM에 비해서 느리기는 하나 집적이 쉬워서 대용량 메모리로 사용되고 있다. 그러면 DRAM 혹은 SRAM과 Flash 메모리의 장점을 섞어 놓은 빠르면서도 집적이 쉽고 leakage current가 흐르지 않아 Refresh를 해줄 필요가 없는 비휘발성&amp;nbsp;메모리는 만들 수 없을까?&lt;br /&gt;
&lt;br /&gt;최근 PCM (Phase Change Memory)이 많이 연구되고 있다. PCM은 앞으로 우리가 사용하는 PC의 메인 메모리를 대체할 수 있는 대표적인 차세대 메모리이다. PCM 메모리는 최근에 주로 연구가 되고 있지만 이미 1960년대에 그 가능성이 제기되었으며 비휘발성 메모리로 집적도 또한 우수하다. 이런 성격때문에 차세대 메모리로 각광받고 있으며 최근 상용화의 막바지 단계에 근접해가고 있다. 그러나 PCM의 고질적인 문제가 있으니 바로 데이터를 쓰는 횟수의 제한이다. 이 물질의 특성으로 발생하는 쓰기 제한은 메모리의 life time에 영향을 미치기 때문에 심각한 문제를 초래할 수 있다. 만약 메모리를 구매했는데 1년밖에 쓰지 못한다면 누가 그 메모리를 사용하려고 하겠는가? 그래서 ISCA나 MICRO와 같은 최고의 학회에서 매년 이와 관련된 PCM&amp;nbsp;논문들이 쏟아지고 있다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/193935234B95B4B80E7A27&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/193935234B95B4B80E7A27&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile10.uf@193935234B95B4B80E7A27.png&quot; height=&quot;259&quot; width=&quot;700&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;Pictures from Hegedüs and Elliott, Nature Materials, March 2008&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
PCM을 구성하는 한 Cell은 위와 같이 두가지 상태를 가지게 된다. 왼쪽 그림 상태인 Amorphous 상태와 오른쪽 상태인 Crystalline 상태이다. Amorphous 상태는 저항이 크기 때문에 Logical 0(zero)를 의미하고 Crystalline 상태는 저항이 매우 낮기 때문에 Logical 1을 의미한다. 0을 1로 바꾸는 것을 SET operation이라 하고 1을 0으로 바꾸는 것을 RESET operation이라고 한다. SET이나 RESET이나 모두 메모리에 데이터를 쓰기 위한 동작으로 GST(Cell의 구성물질)의 상태를 변화시키기 때문에 다음과 같이 많은 전류가 필요하며 Latency 또한 길어진다. 반면에 READ operation의 경우 GST의 현재 상태만을 Sensing 하기 때문에 적은 전류와 적은 Latency로 값을 읽어오는 것이 가능하다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/136F80224B95B69B164FBC&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/136F80224B95B69B164FBC&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;characteristic.png&quot; height=&quot;243&quot; width=&quot;356&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
그런데 쓰기 동작으로 인해서 쓰기 횟수의 제한이 발생하는데 대체적으로 최대 10만번까지 쓰기가 가능하다. 즉, 한 Cell에 10만번 데이터를 쓰면 더 이상 그 Cell을 사용할 수 없게 된다는 의미이다. 문제는 이 하나의 Cell이 사용할 수 없는 상태가 되면 메모리 전체를 사용할 수 없게 되기 때문에 이를 해결하는 방법이 필요하게 된다. 그래서 최근 연구는 메모리의 수명을 늘리기 위해서 대체적으로 두가지 접근법을 사용하고 있다.&lt;br /&gt;
&lt;br /&gt;1. Write 횟수를 줄이는 방법&lt;br /&gt;
2. 특정 Cell 혹은 Word line이 집중적으로 Write 되는 것을 방지하는 방법&lt;br /&gt;
&lt;br /&gt;첫 번째 방법 : Write 횟수를 줄이는 방법&lt;br /&gt;
A. Partial Writes (ISCA 2009)&lt;br /&gt;
캐쉬에서 메인 메모리로 Write Back을 할 때, Dirty bit이 1인 경우 해당 캐쉬 라인 전체를 메모리에 업데이트하게 된다. 이렇게 되면 실제 캐쉬 라인의 극히 일부분이 변경되었다 하더라도 전체의 값이 업데이트 되기 때문에 불필요한 Write가 발생하게 된다. 즉, Partial Writes 기법은 캐쉬 라인 전체를 업데이트 하지 말고 최대한 수정된 부분만 업데이트 하자는&amp;nbsp;생각이다. (물론 이 부분은 뒤에 나오는 다른 방법도 같은 발상에서 출발한다.&amp;nbsp;) 그래서 Dirty bit의 수를 늘려서 캐쉬라인을 잘게 쪼개어 수정된 부분만 업데이트를 하자는 것이 이 방법이다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/1627A71D4B95BA9337D4AB&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/1627A71D4B95BA9337D4AB&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;partialwrites.png&quot; height=&quot;172&quot; width=&quot;590&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
이 그림에서 보이듯이 위의 경우가 기존의 방식이며 아래 부분이 여러개의 Dirty bit을 사용하는 방법이다. 아래에는 현재 두개의 dirty bit이 존재하고 짙은 파란색이 수정된 부분이다. 그래서 기존에는 절반 이상이 수정되지 않았음에도 불구하고 전체의 캐쉬라인을 업데이트 하게 되지만 아래의 경우에는 두 부분으로 쪼개지고 윈쪽 부분은 변경사항이 없으므로 dirty bit은 0으로 업데이트 되지 않고 오른쪽 부분은 dirty bit이 1로 메모리에 업데이트 되게 된다. 하지만 여전히 변경되지 않은 부분이 쓰여지고 있기 때문에 이를 위해서 더 잘게 쪼개는 것을 생각할 수 있다. 그러나 잘게 쪼갤때마다 dirty bit이 계속해서 추가되고 있으므로 너무 잘게 쪼개는 경우 overhead가 너무 커질 수 있다. 따라서 이 둘의 Trade Off를 잘 고려하는 것이 이 논문의 성능을 최대화 할 수 있는 방법이다.&lt;br /&gt;
&lt;br /&gt;B. Differential Write ( Data Comparison Write)&lt;br /&gt;
이 논문은 bit 단위로 변경이 발생한 부분만 Write 하도록 하자는 것이 핵심 아이디어이다. 기존의 메모리 값을 읽어와서 쓰고자 하는 새로운 값과 비교하여 변경된 bit만 업데이트 하도록 하는 것이다. 그래서 기존의 방식에 비해서 메모리로 부터 읽어오는 overhead가 발생하게 된다. 하지만 이로 인해서 많은 Write 횟수를 줄일 수 있기 때문에 메모리의 수명은 크게 늘어나게 된다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/2028741D4B95BCA7204580&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/2028741D4B95BCA7204580&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;dw.png&quot; height=&quot;209&quot; width=&quot;494&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
이 경우를 잘&amp;nbsp;살펴보면&amp;nbsp;윗 부분이 새로운 데이터이며 아래 부분이 기존의 메모리 값이다. 기존 방식으로는 총 16개의&amp;nbsp;bit을 메모리에 Write 해줘야 하지만 이 방법을 사용하면 5개의 bit 만을 수정하면 되기 때문에 총 11번의 Write가 줄어들었다. 단, 이 방법은 모든 bit이 다를 경우 전체가&amp;nbsp;Write되어 이득을 전혀 볼 수 없다는 단점이 존재한다. 이 문제를 해결하기 위해서 다음과 같은 새로운 논문이 제안되었으며 Reference 논문이 바로 그것이다.&lt;br /&gt;
&lt;br /&gt;C. Flip-N-Write (Micro 2009)&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/1827771A4B95BD9708AC93&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/1827771A4B95BD9708AC93&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;flip.png&quot; height=&quot;294&quot; width=&quot;598&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;Flip-N-Write 기법은 Differential Write의 단점을 보완한 방법으로 마찬가지로 기존의 메모리 값과 새로 쓰려는 데이터 값을 비교한 후 수정된 부분만을 업데이트 하는 방법이다. 그런데 여기서는 만약 절반 이상의 bit이 서로 다르다면 Flip을 하여 저장을 하자는 것이 핵심 아이디어이다. 그림에서 제일 위의 값이 새로 쓰려는 데이터이고 가장 아래의 값이 기존 메모리 값을 의미한다. 이 두 값을 비교한 결과 총 16개의 bit 중에서 11개의 bit이 차이가 나게 되고 절반 이상이 다르기 때문에 1-&amp;gt;0, 0-&amp;gt;1로 반전 시킨다. Flip한 결과가 바로 위에서 두 번째 값이며 이 Flip 값과 기존 메모리 값을 비교해보면 5개의 bit 만이 차이가 남을 알 수 있다. 즉, 반 이상 다르면 뒤집어쓰겠다는 매우 간단한 아이디어이다. 그대신 Flip이 되었다는 것을 표시하기 위해서 마지막에 추가로 Flip bit을 추가해주는 overhead가 발생한다. 따라서 이 경우 기존의 Differential Write 방법으로는 11개의 bit을 Write 해야 하지만 Flip-N-Write 기법을 통해서 5개의 bit을 수정하고 Flip bit 1개를 수정하여 총 6개의 bit을 업데이트하게 된다. 그래서 이 방법으로는 최대 N/2 개의 bit만 수정하면 되므로 매우 간단한 아이디어지만 매우 우수한 성능을 나타낸다.&lt;br /&gt;
&lt;br /&gt;이렇게 Write의 횟수를 줄이게 되면 Latency가 긴 Write 동작을 줄이므로 전체적인 메모리 성능이 증가하게 되고 또한 파워가 줄어들게 되고 당연히 Lifetime도 증가하게 된다.&lt;br /&gt;
&lt;br /&gt;두&amp;nbsp;번째 방법 : 특정 Cell 혹은 Word line이 집중적으로 Write 되는 것을 방지하는 방법&lt;br /&gt;
이 부분과 관련된 논문은 직접 읽은 것이 아니라 구체적 논문을 언급하기는 힘들고 학회(ISCA)와 논문 세미나를 통해서 들은 바로는 대체적으로 특정 Cell 혹은 Word가 집중적으로 쓰여져서 전체 메모리를 사용할 수 없게 되는 것을 방지하기 위해 Word Line을 Shift하고 Shift한 수를 Counting 하여 저장하는 방법과 Start-Gap(Micro 2009)이라는 논문에서는 추가로 Redundant한 Word Line을 이용하여 매 100번의 Write 동작마다 Circular Buffer와 마찬가지 방법으로 한 칸씩 이동하면서 특정 Cell이 집중적으로 쓰여지는 것을 막는 방법 등이 있다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-92-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-92-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-92-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>컴퓨터 이야기</category>
			<category>pcm</category>
			<category>pram</category>
			<category>메모리</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/92</guid>
			<comments>http://brown.ezphp.net/92#entry92comment</comments>
			<pubDate>Tue, 09 Mar 2010 12:34:11 +0900</pubDate>
		</item>
		<item>
			<title>FG기차 트레이너 아류작 - AutoFGTrain v3 Beta 2</title>
			<link>http://brown.ezphp.net/90</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: rgb(159,211,49) 1px dashed; BORDER-LEFT: rgb(159,211,49) 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(231,253,181); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: rgb(159,211,49) 1px dashed; BORDER-RIGHT: rgb(159,211,49) 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;STRONG&gt;이 버전은 안정성을 보강하기 위한 테스트 버전입니다. &lt;br /&gt;
사용해보시고 문제 발생시 증상을 말씀해주시기 바랍니다.&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile7.uf@121569244B8F0FA5463F1F.zip&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; AutoFGTrain.v3b2.zip&lt;/a&gt;&lt;/div&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;FONT color=#e31600&gt;무한 검색중이라 생각하는 파일은 신고를 해주시기&amp;nbsp;바랍니다.&lt;br /&gt;
&lt;U&gt;현재까지 신고된 대부분의 파일은 무작위로 확인해 본 결과무한 검색중이 아닙니다.&lt;/U&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;FONT color=#174600&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: rgb(254,137,67) 1px dashed; BORDER-LEFT: rgb(254,137,67) 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(254,222,199); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: rgb(254,137,67) 1px dashed; BORDER-RIGHT: rgb(254,137,67) 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;STRONG&gt;Windows7에서는 AutoFGTrain과 FG기차 프로그램 모두&amp;nbsp;&lt;br /&gt;
관리자 권한 실행 또는 호환성 해결을 통해 XP 모드로 실행해야 합니다.&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;br /&gt;
&lt;/DIV&gt;이 버전은 기존에&amp;nbsp;액티브X를 사용하여 파일을 추가하는 번거로움을 없애고 티켓을 자동으로 충전하는 기능이 추가된 버전이다. 사실 티켓 자동 충전 부분에 대해서는 고민이 많았는데.. 많은 사람들이 이용시 티켓 충전 방식이 변경되어 정작 나까지 사용하지 못하게 될까 우려하였으나 바뀌는건 그때 생각하기로 하고 공개하기로 한다. 사실 여러 사람이 이미 이 방법을 써서 티켓 충전을 하고 있었을 것이라 생각되어 그 분들께 조금 미안한 마음이 든다.&lt;br /&gt;
&lt;br /&gt;&lt;STRONG&gt;기능 :&lt;br /&gt;
&lt;/STRONG&gt;
&lt;OL style=&quot;LIST-STYLE-TYPE: decimal&quot;&gt;
&lt;LI&gt;파일구리 검색 정보 수집&lt;/LI&gt;
&lt;LI&gt;파일구리 채널 정보 수집&lt;/LI&gt;
&lt;LI&gt;파일구리에서 저작권 문제로 다운이 불가능한 파일도 다운로드 가능&lt;/LI&gt;
&lt;LI&gt;다중 파일자동 기차 연결 (ActiveX 사용하지 않음)&lt;/LI&gt;
&lt;LI&gt;티켓 자동 충전 (AutoFGTrain 실행시 100개로 충전)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;br /&gt;
다운받은 후 &lt;FONT color=#3058d2&gt;아무데나 압축을 풀면 &lt;/FONT&gt;&lt;FONT color=#3058d2&gt;AutoFGTrain.exe와 AutoFGTrain.dll &lt;/FONT&gt;이 두개의 파일이 나온다. 당연히 둘다 꼭 필요한 파일이다. 실행은 너무나 잘 알듯이 &lt;FONT color=#3058d2&gt;exe 파일을 실행&lt;/FONT&gt;하면 된다. 그럼 다음과 같은 프로그램이 뜬다. 짜잔~.&amp;nbsp;&lt;br /&gt;
&lt;STRONG&gt;&lt;br /&gt;
스크린샷&lt;br /&gt;
&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/197795124B7D0D701F462E&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/197795124B7D0D701F462E&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;search.jpg&quot; height=&quot;269&quot; width=&quot;677&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;사용법&lt;/SPAN&gt;&lt;br /&gt;
&lt;br /&gt;1. AutoFGTrain을 실행한다. &lt;br /&gt;
2. FG기차가 설치되어 있지 않다면 설치하라는 메세지가 나오니 설치한다.&lt;br /&gt;
3. 파일구리 실행 버튼을 클릭한다. (파일구리가 설치안되어 있다면 설치할 것)&lt;br /&gt;
4. 파일구리에서 원하는 파일을 검색을 통하여 찾는다.&lt;br /&gt;
5. AutoFGTrain에서 검색 정보 얻기 혹은 채널 정보 얻기 버튼을 클릭한다. (파일구리 검색중에&amp;nbsp;버튼을 누르면 검색된 부분까지만 업데이트 된다.)&lt;br /&gt;
6. 원하는 파일을 선택하고 기차 연결 버튼을 클릭한다. (혹은 마우스 오른쪽 버튼으로)&lt;br /&gt;
&lt;br /&gt;단, &lt;FONT color=#3058d2&gt;FG기차가 떠있지 않은 경우&lt;/FONT&gt;에 여러개의 파일을&amp;nbsp;다운받으려 한다면 &lt;FONT color=#3058d2&gt;하나만 등록&lt;/FONT&gt;된다는 것에 유의할것.&lt;br /&gt;
반대로 &lt;FONT color=#3058d2&gt;FG기차가 떠있는 상태&lt;/FONT&gt;에서는 다중선택후 기차연결을 하면 &lt;FONT color=#3058d2&gt;모두 등록&lt;/FONT&gt;된다. (안되면 말고. ㅋㅋ)&lt;br /&gt;
&lt;br /&gt;FG기차 트레이너를 사용한 경험이 없는 사람들을 위해서 간략하게 부가 설명을 덧붙인다.&lt;br /&gt;
&lt;br /&gt;기차 연결을 누르면 해당 파일은 FG 기차 프로그램을 통해서 다운로드가 가능하게끔 자동으로 실행해준다.&lt;br /&gt;
파일 다운로드 대기 순서나 속도 등에 따라서 검색중에서 파일요청으로 상태가 변하게 되며 이후 다운로드가 된다.&lt;br /&gt;
P2P의 특성상&amp;nbsp;어떤 파일은 대기 순서 문제나 혹은 파일을 가진 사람들이 프로그램을 종료하여&amp;nbsp;받을 수 없는 경우도 발생한다.&lt;br /&gt;
따라서 진득하니 기다리다가 오랜 시간동안에도 검색중이라고 뜬다면 다른 파일을 다시 기차 연결을 통해 시도하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;&lt;STRONG&gt;티켓 충전 방법&lt;/STRONG&gt;&lt;br /&gt;
&lt;br /&gt;1. FG 기차가 실행 중이라면 반드시 종료한다.&lt;br /&gt;
2. AutoFGTrain을 실행시킨다.&lt;br /&gt;
3. FG 기차 연결 혹은 FG 기차를 실행한다.&lt;br /&gt;
4. 100개의 티켓이 발급되었는지 확인한다.&lt;br /&gt;
&lt;br /&gt;다음은 성형 전과 후 -_-;;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/162CD7194B7E458066C43A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/162CD7194B7E458066C43A&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;before.jpg&quot; height=&quot;276&quot; width=&quot;676&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile27.uf.tistory.com/original/115B90194B7E457F1EB525&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile27.uf.tistory.com/image/115B90194B7E457F1EB525&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;after.jpg&quot; height=&quot;278&quot; width=&quot;675&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
무한 검색중이라고 판단되는 파일은 다음과 같은 방법으로 신고가 가능하다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/164F98254B8E4C89511ED1&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/164F98254B8E4C89511ED1&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;error.jpg&quot; height=&quot;302&quot; width=&quot;667&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
신고된 파일은 통계용으로 사용되며 단순히 파일 이름과 파일 ID만 저장되므로 사용자의 어떠한 정보(예를들어 IP, 호스트명 등)도 유출하지 않음을 미리 알린다.&amp;nbsp;신고된 파일 정보는 통계를&amp;nbsp;내서 실제로 무한 검색중인지를 판단하기 위한 자료로 사용된다.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#3058d2&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #79a5e4 1px dashed; BORDER-LEFT: #79a5e4 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #79a5e4 1px dashed; BORDER-RIGHT: #79a5e4 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;FONT color=#000000&gt;티켓 충전은 &lt;SPAN style=&quot;COLOR: rgb(48,88,210); FONT-WEIGHT: bold&quot;&gt;AutoFGTrain&lt;/SPAN&gt;을 실행하면 자동으로 &lt;SPAN style=&quot;COLOR: rgb(48,88,210); FONT-WEIGHT: bold&quot;&gt;100개의 티켓이 발급&lt;/SPAN&gt;되는데 FG 기차가 실행중이면 발급되지 않는다.&lt;/FONT&gt;&lt;FONT size=+0&gt;&amp;nbsp;&lt;FONT class=Apple-style-span color=#000000&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;만약 충전이 잘 안된다면 FG 기차를 uninstall 하고 AutoFGTrain을 통해서 새로 설치해보기 바란다.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/FONT&gt;&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;참고.&lt;br /&gt;
[2009-12-02] Windows7에서 Invalid Imagelist 오류 수정&lt;br /&gt;
[2009-12-03] 무한 검색중 버그 수정 ( + -&amp;gt; %2B ) 및 기타 몇가지 버그 수정&lt;br /&gt;
[2009-12-09] 채널 기능 추가&lt;br /&gt;
[2010-01-19] 무한 검색중 버그 수정 (- -&amp;gt; %2B ) 및 기타 알려진 버그 수정, 검색어 금지 파일 0Byte 처리&lt;br /&gt;
[2010-02-18] 무한 검색중 버그 수정, 티켓 100장 발급, ActiveX 사용하지 않음, 기타 몇가지 버그 수정&lt;br /&gt;
[2010-02-19] 티켓 충전으로 인한 FG 기차 프로그램 종료 버그 수정, 채널 목록 버그 수정, 기타 몇가지 버그 수정&lt;br /&gt;
[2010-03-03] 검색 결과 빠르게 업데이트 및 Double Bufferring을 이용한 스크롤 잔상 현상 제거, 무한 검색중 신고 추가&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: rgb(254,137,67) 1px dashed; BORDER-LEFT: rgb(254,137,67) 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(254,222,199); PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: rgb(254,137,67) 1px dashed; BORDER-RIGHT: rgb(254,137,67) 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;알림. &lt;br /&gt;
1. Windows7에서는 exe 파일을 호환성 문제 해결을 선택하여 XP로 설정하면 제대로 동작한다.&lt;br /&gt;
2. 간혹 바이러스에서 트로이목마로 검색되는 것은 무시하시면 됩니다. 저는 여러분의 개인정보가 궁금하지 않습니다. ^^a&lt;/DIV&gt;&lt;br /&gt;
&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-90-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-90-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-90-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>AutoFGTrain</category>
			<category>AutoFGTrain</category>
			<category>FG기차</category>
			<category>FG기차 트레이너</category>
			<category>Fileguri</category>
			<category>기차 티켓 무한</category>
			<category>기차 티켓 충전</category>
			<category>저작권 패치</category>
			<category>파일구리</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/90</guid>
			<comments>http://brown.ezphp.net/90#entry90comment</comments>
			<pubDate>Thu, 04 Mar 2010 10:41:22 +0900</pubDate>
		</item>
		<item>
			<title>카드씀씀이 - 옴니아용 카드 관리 프로그램</title>
			<link>http://brown.ezphp.net/91</link>
			<description>&lt;P&gt;&lt;br /&gt;
&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #79a5e4 1px dashed; BORDER-LEFT: #79a5e4 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #79a5e4 1px dashed; BORDER-RIGHT: #79a5e4 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;카드 씀씀이 개발 사이트 : &lt;A href=&quot;http://dforge.devpia.com/projects/smartexpense/&quot;&gt;http://dforge.devpia.com/projects/smartexpense/&lt;/A&gt;&lt;br /&gt;
&lt;/DIV&gt;
&lt;P&gt;나는 신용카드를 주로 두개 사용하는데 다소 귀차니즘의 영향으로 매달 하나의 카드만 쓰는 식이다. 그래서 정작 특정 카드의 할인 혜택을 받으려고 하면 사용금액 미달로 혜택을 받지 못하는 경우가 많다. 이럴때 유용하게 쓸 수 있는 프로그램이 바로 카드 씀씀이이다. &lt;br /&gt;
&lt;br /&gt;카드씀씀이는 신용카드 결재시에 수신되는 문자메시지를 분석하여 얼마나 카드를 사용하고 있는지를 알려주는 프로그램이다.&lt;br /&gt;
애초에 필요에 의해서 내가 프로그램을 만드는 도중&amp;nbsp;혹시나 해서 검색해봤더니 이런 훌륭한 프로그램이 이미 공개되어 있었다. 근데 내가 원하는 기능이 없어서 코드를 살짝 고쳐서 내 용도에 맞게 변화시켰다.&lt;br /&gt;
&lt;br /&gt;우선 카드씀씀이 현재 버전은 &quot;승인 취소&quot;에 대해서는 처리하지 않고 있어서 승인 취소 부분을 추가하였고&lt;br /&gt;
지난 3개월간의 카드 실적을 살펴보기 위해서 카드 사용월을 기준으로 요약 조회를 할 수 있도록 변경하였다.&lt;br /&gt;
나머지는 자잘한거.&lt;br /&gt;
&lt;br /&gt;아 중요한건 내가 하나카드와 KB카드 밖에 사용하지 않아서 목록에서 나머지는 지워버렸으나&lt;br /&gt;
실제 카드 씀씀이 프로그램은 여러가지 카드를 지원하고 있다.&lt;br /&gt;
&lt;br /&gt;아무튼 대략적인 스크린샷은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/195AB51A4B8D150F2AEB60&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/195AB51A4B8D150F2AEB60&quot; alt=&quot;&quot; height=&quot;559&quot; width=&quot;345&quot;/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;http://cfile24.uf.tistory.com/original/155AC81A4B8D15130C6321&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/155AC81A4B8D15130C6321&quot; alt=&quot;&quot; height=&quot;564&quot; width=&quot;345&quot;/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;혹시나 해서 실행파일도 첨부해둔다.&lt;br /&gt;
&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile23.uf@11587F1A4B8D151D140F2F.cab&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; 카드씀씀이.cab&lt;/a&gt;&lt;/div&gt;&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-91-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-91-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-91-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>프로그래밍</category>
			<category>SmartExpense</category>
			<category>스마트폰</category>
			<category>신용카드</category>
			<category>옴니아</category>
			<category>옴니아2</category>
			<category>카드씀씀이</category>
			<category>카드할인</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/91</guid>
			<comments>http://brown.ezphp.net/91#entry91comment</comments>
			<pubDate>Tue, 02 Mar 2010 22:43:08 +0900</pubDate>
		</item>
		<item>
			<title>FG기차 트레이너 아류작 - AutoFGTrain v2.3</title>
			<link>http://brown.ezphp.net/88</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile23.uf@147B4C274B548981297615.zip&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; AutoFGTrain.v2.3.zip&lt;/a&gt;&lt;/div&gt; 
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;기능이 추가된 v3 beta가 나왔습니다. 테스트 부탁드립니다. &lt;A href=&quot;http://brown.ezphp.net/90&quot;&gt;http://brown.ezphp.net/90&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;STRONG&gt;Windows7에서는 AutoFGTrain과 FG기차 프로그램 모두&amp;nbsp;&lt;br /&gt;
관리자 권한 실행 또는 호환성 해결을 통해 XP 모드로 실행해야 합니다.&amp;nbsp;&lt;br /&gt;
Windows7에서는&amp;nbsp;FG기차의 추천기능은 불가능합니다.&lt;br /&gt;
&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;FG 기차가 무반응일 경우 : &lt;A href=&quot;http://cafe.naver.com/dotore100.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=3430&quot;&gt;http://cafe.naver.com/dotore100.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=3430&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;
&lt;br /&gt;기존에 만든&amp;nbsp;AutoFGTrain이 그래도 사용하기 번거로운것 같아서 새롭게 만든 프로그램이다. 다운받은 후 &lt;FONT color=#3058d2&gt;아무데나 압축을 풀면 &lt;/FONT&gt;&lt;FONT color=#3058d2&gt;AutoFGTrain.exe와 AutoFGTrain.dll &lt;/FONT&gt;이 두개의 파일이 나온다. 당연히 둘다 꼭 필요한 파일이다. 실행은 너무나 잘 알듯이 &lt;FONT color=#3058d2&gt;exe 파일을 실행&lt;/FONT&gt;하면 된다. 그럼 다음과 같은 프로그램이 뜬다. 짜잔~. 요청에 의해 채널&amp;nbsp;기능이 추가되었다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; 검색 정보 :&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/original/120552254B5489B5A65DFD&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile9.uf.tistory.com/image/120552254B5489B5A65DFD&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;autofgtrain.PNG&quot; height=&quot;305&quot; width=&quot;669&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&amp;nbsp; 채널 정보 :&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile1.uf.tistory.com/original/144C1D254B5489B620F782&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile1.uf.tistory.com/image/144C1D254B5489B620F782&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;autofgtrain2.PNG&quot; height=&quot;300&quot; width=&quot;673&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
우선 사용법은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;1. AutoFGTrain을 실행한다. &lt;br /&gt;
2. 파일구리 실행 버튼을 클릭한다. (파일구리가 설치안되어 있다면 설치할 것)&lt;br /&gt;
3. 파일구리에서 원하는 파일을 검색을 통하여 찾는다.&lt;br /&gt;
4. AutoFGTrain에서 검색 정보 얻기 혹은 채널 정보 얻기 버튼을 클릭한다. (파일구리 검색중에&amp;nbsp;버튼을 누르면 검색된 부분까지만 업데이트 된다.)&lt;br /&gt;
5. 원하는 파일을 선택하고 기차 연결 버튼을 클릭한다. (혹은 마우스 오른쪽 버튼으로)&lt;br /&gt;
&lt;br /&gt;단, &lt;FONT color=#3058d2&gt;FG기차가 떠있지 않은 경우&lt;/FONT&gt;에 여러개의 파일을&amp;nbsp;다운받으려 한다면 &lt;FONT color=#3058d2&gt;하나만 등록&lt;/FONT&gt;된다는 것에 유의할것.&lt;br /&gt;
반대로 &lt;FONT color=#3058d2&gt;FG기차가 떠있는 상태&lt;/FONT&gt;에서는 다중선택후 기차연결을 하면 &lt;FONT color=#3058d2&gt;모두 등록&lt;/FONT&gt;된다. (안되면 말고. ㅋㅋ)&lt;br /&gt;
&lt;br /&gt;FG기차 트레이너를 사용한 경험이 없는 사람들을 위해서 간략하게 부가 설명을 덧붙인다.&lt;br /&gt;
&lt;br /&gt;기차 연결을 누르면 해당 파일은 FG 기차 프로그램을 통해서 다운로드가 가능하게끔 자동으로 실행해준다.&lt;br /&gt;
파일 다운로드 대기 순서나 속도 등에 따라서 검색중에서 파일요청으로 상태가 변하게 되며 이후 다운로드가 된다.&lt;br /&gt;
P2P의 특성상&amp;nbsp;어떤 파일은 대기 순서 문제나 혹은 파일을 가진 사람들이 프로그램을 종료하여&amp;nbsp;받을 수 없는 경우도 발생한다.&lt;br /&gt;
따라서 진득하니 기다리다가 오랜 시간동안에도 검색중이라고 뜬다면 다른 파일을 다시 기차 연결을 통해 시도하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;티켓 충전&lt;/STRONG&gt;&lt;/FONT&gt;은 기본적으로 &lt;FONT color=#3058d2&gt;&lt;STRONG&gt;FG 기차의 기능중 하나인 &quot;추천&quot; 기능을 사용&lt;/STRONG&gt;&lt;/FONT&gt;하는 것으로 추천 버튼을 클릭하고 &lt;FONT color=#3058d2&gt;&lt;STRONG&gt;네이트온&lt;/STRONG&gt;&lt;/FONT&gt;이나 &lt;FONT color=#3058d2&gt;&lt;STRONG&gt;MSN&lt;/STRONG&gt;&lt;/FONT&gt; 중에서 자신이 현재 사용중인 메신저를 골라(이때 반드시 &lt;FONT color=#3058d2&gt;로그인&lt;/FONT&gt;이 되어 있어야 한다.) &lt;FONT color=#3058d2&gt;다른 친구들에게 해당 파일을 추천&lt;/FONT&gt;하면 &lt;FONT color=#3058d2&gt;&lt;STRONG&gt;티켓이 하나 충전&lt;/STRONG&gt;&lt;/FONT&gt;된다. &lt;FONT color=#3058d2&gt;같은 파일은 세번까지 추천이 가능하다&lt;/FONT&gt;. 이 프로그램의 티켓 충전 기능은 시간정보를 이용하여 매번 다른 파일을 요청하도록 되어 있어서 티켓이 모자르면 충전 버튼을 몇번 눌러서 친구들에게 추천하면 티켓이 충전된다. 즉, 별 쓰잘데기 없는 기능이지만 때로는 매우 유용하게 쓸 수 있는 기능이다. (예를들어 내가 무슨 파일을 받고 있는지 친구들에게 알려주기 껄끄러운 경우 추천하기 힘든데 이놈은 그럴 걱정이 없는것이다.)&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;티켓 충전의 팁&lt;/STRONG&gt;&lt;/FONT&gt;은 &lt;FONT color=#3058d2&gt;&lt;STRONG&gt;네이트온에 부계정&lt;/STRONG&gt;&lt;/FONT&gt;을 만들어서 &lt;FONT color=#3058d2&gt;&lt;STRONG&gt;주계정에서 부계정으로 추천&lt;/STRONG&gt;&lt;/FONT&gt;하는 것이다. 이렇게 몇번 해주면 티켓 걱정은 별로 하지 않아도 된다.&lt;br /&gt;
&lt;br /&gt;참고.&lt;br /&gt;
[2009-12-02] Windows7에서 Invalid Imagelist 오류 수정&lt;br /&gt;
[2009-12-03] 무한 검색중 버그 수정 ( + -&amp;gt; %2B ) 및 기타 몇가지 버그 수정&lt;br /&gt;
[2009-12-09] 채널 기능 추가&lt;br /&gt;
[2010-01-19] 무한 검색중 버그 수정 (- -&amp;gt; %2B ) 및 기타 알려진 버그 수정, 검색어 금지 파일 0Byte 처리&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;알림. &lt;br /&gt;
1. Windows7에서는 exe 파일을 호환성 문제 해결을 선택하여 XP로 설정하면 제대로 동작한다.&lt;br /&gt;
2. 간혹 바이러스에서 트로이목마로 검색되는 것은 무시하시면 됩니다. 저는 여러분의 개인정보가 궁금하지 않습니다. ^^a&lt;/DIV&gt;&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #f3c534 1px dashed; BORDER-LEFT: #f3c534 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; BORDER-RIGHT: #f3c534 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;근데 이름을 잘못지은것 같다. &quot;FG기차 트레이너&quot;는 입에 착 감기는데 AutoFGTrain은 기억하기도 검색하기도 힘들겠다. -_-;&lt;/DIV&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-88-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-88-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-88-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>AutoFGTrain</category>
			<category>AutoFGTrain</category>
			<category>FG기차</category>
			<category>FG기차 트레이너</category>
			<category>Fileguri</category>
			<category>파일구리</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/88</guid>
			<comments>http://brown.ezphp.net/88#entry88comment</comments>
			<pubDate>Tue, 19 Jan 2010 01:22:15 +0900</pubDate>
		</item>
		<item>
			<title>FG기차 트레이너 아류작 - AutoFGTrain</title>
			<link>http://brown.ezphp.net/87</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile26.uf@1604E4194B139F6E3E001C.exe&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/exe.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; AutoFGTrain.exe&lt;/a&gt;&lt;/div&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #79a5e4 1px dashed; BORDER-LEFT: #79a5e4 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #79a5e4 1px dashed; BORDER-RIGHT: #79a5e4 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;A title=&quot;[http://brown.ezphp.net/88]로 이동합니다.&quot; href=&quot;http://brown.ezphp.net/88&quot; target=_self&gt;AutoFGTrain v2 &lt;/A&gt;가 나왔으니 용도에 따라서 사용하시기 바랍니다.&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;
최근 Clubbox의 정책 변화로 인해서 쿠폰 사정이 열악하여 다운로드하기가 매우 어려워진 요즘,&amp;nbsp;FG기차를 이용하는 경우가 많아졌다. 소위 FG기차의 꽃이라고 불리는 FG기차 트레이너라는 프로그램이 있는데 이 프로그램은 매우 훌륭하나 사용이 번거롭다는 단점이 있다. 그 단점이란 매번 파일 이름과 파일 ID를 복사해서 붙여야 한다는 것이다. 매우 간단한 기능인데 굳이 추가하지 않는 이유를 몰라서 짬을 내서 만들어봤다. &lt;FONT size=+0&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #dae8f6&quot;&gt;&lt;FONT color=#587693&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #ffffff&quot; color=#3058d2&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;이 프로그램이 실제로 노리는 것은 FG기차 트레이너에서 이 기능을 추가해줬으면 하는 거다. (다운로드도 로그인 없이 할 수 있었으면&amp;nbsp;하는 바람도 가져본다.)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;br /&gt;
&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/20056B194B139DA451B285&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/20056B194B139DA451B285&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;fg1.jpg&quot; height=&quot;272&quot; width=&quot;608&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
이 프로그램은 위와 같은 모양을 갖고 있다. 매우 급조했기때문에 별다른 기능은 없고 심지어 히스토리를 파일에 저장하지 않기때문에 프로그램을 새로 실행하면 히스토리는 지워지게된다. 뭐 다른 사람들이 추가해 주겠지 ㅋㅋㅋ.&lt;br /&gt;
어쨌든 저놈의 파일명과 파일ID를 가져오는 방법은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/117659194B139DA463F618&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/117659194B139DA463F618&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;fg2.jpg&quot; height=&quot;472&quot; width=&quot;622&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
파일 구리를 실행하여 다운받고자 하는 파일에서 ①&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;컨텐츠 정보를 클릭&lt;/STRONG&gt;&lt;/FONT&gt;하면 위의 조그마한 창이 뜬다. 이때 닫기 버튼을 누르지 말고 ②&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;AutoFGTrain 프로그램을 실행&lt;/STRONG&gt;&lt;/FONT&gt;하여 ③&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;정보 얻기 버튼을 클릭&lt;/STRONG&gt;&lt;/FONT&gt;하면 아래와 같이 자동으로 정보가 채워지게 된다. 다운을 받으려면 ④&lt;FONT color=#3058d2&gt;&lt;STRONG&gt;기차 연결&lt;/STRONG&gt;&lt;/FONT&gt;을 누르면 된다. (사실 정보얻기와 동시에 기차연결로 파일을 다운받게 할 수 있지만 그냥 내비뒀다. 왜일까?)&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile21.uf.tistory.com/original/147AB1194B139DA54E1F6B&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile21.uf.tistory.com/image/147AB1194B139DA54E1F6B&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;fg3.jpg&quot; height=&quot;292&quot; width=&quot;700&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
위에서 보시는 바와같이 제대로 등록되어있음을 알 수 있다. XP와 Windows7에서 테스트해봤는데 제대로 동작한다.&lt;br /&gt;
&lt;br /&gt;참고로 히어로라는 프로그램은 테스트용으로 실행했을뿐 다운받지 않았으며 또한 내가 즐겨보는 드라마도 아니다. ^^a&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-87-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-87-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-87-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>AutoFGTrain</category>
			<category>AutoFGTrain</category>
			<category>FG기차</category>
			<category>FG기차 트레이너</category>
			<category>Fileguri</category>
			<category>파일구리</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/87</guid>
			<comments>http://brown.ezphp.net/87#entry87comment</comments>
			<pubDate>Mon, 30 Nov 2009 19:33:54 +0900</pubDate>
		</item>
		<item>
			<title>ActiveX 컨트롤과 PHP의 연동 방법</title>
			<link>http://brown.ezphp.net/86</link>
			<description>최근 ActiveX 컨트롤은 은행, 공공기관, 게임 사이트 등등 너무나 폭넓게 사용되고 있다. 웹의 제약을 넘어서 많은 일들을 할 수 있기때문에 많은 기관들이 ActiveX를 소위 남용하고 있다. 그래서 일각에서는 인터넷 익스플로어에서만 사용가능한 이 ActiveX를 사용하지않고 웹 표준을 따라서 사이트를 개발해주기 바라는 사람들의 목소리가 커져가고 있다. 하지만 웹 개발자의 입장에서 사실 편리하기도 하고 또한 ActiveX를 다룰줄 모르면 안되기에 PHP와 연동하는 방법을 살짝 알고 넘어가도록 하자.&lt;br /&gt;
&lt;br /&gt;다음의 파일은 아마도(기억이 잘 안난다) 내가&amp;nbsp;예전에 만들어 놓고&amp;nbsp;컴퓨터 귀퉁이 어디엔가 쳐박아둔 ActiveX 컨트롤이 아닌가 싶다.&amp;nbsp;책에 ActiveX 컨트롤 다루는 방법을 추가하려다 분량(편집하기 전에 1000페이지가 넘어버려서-_-)&amp;nbsp;및 시간 문제로&amp;nbsp;부득이하게 빠졌는데 아마 그걸 생각하고 만들어 둔게 아닐까 싶다. 어쨌든 오늘 컴퓨터 여기저기를 뒤지다가 나와서 이 글을 쓰게 되었다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile29.uf@116B9A204B0BB8F30C003F.cab&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; HTTPDownloadProj1.cab&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile24.uf@196DF0204B0BB8F4080B60.html&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/html.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Test_ActiveX.html&lt;/a&gt;&lt;/div&gt;&lt;/DIV&gt;&lt;br /&gt;
이 프로그램은&amp;nbsp;HTTP 프로토콜을 이용하여 여러개의 파일을 원하는 위치로 다운로드하는 ActiveX 컨트롤이다. 내 성격으로 미루어보아 이어받기 등은&amp;nbsp;구현이 안되어 있을것이 분명하다.&amp;nbsp;후훗.&amp;nbsp;델파이로 간단하게 만든 것인데 아마도&amp;nbsp;cab이라는 확장자가 매우 낯설게 느껴지리라 생각한다. cab은 압축(이라기보다는&amp;nbsp;여러파일을 하나로 묶어주는&amp;nbsp;역할) 파일이다. 알집이나 각종 압축 해제 프로그램을 사용하면 그 내용물을 볼 수 있다.&amp;nbsp;&amp;nbsp;요놈의 cab 파일에다 인증서를 입히면 우리가 자주 보는 ActiveX 컨트롤이 되는 것이다. 그런데 인증서를 입히려면 베리사인과 같은 회사에서 인증서를 구매해야하는데 개인이 구매할만한 금액은 아니다. 거기다 테스트용이니 굳이 인증서를 살 필요도 없다. 그래서 일반적으로 테스트인증서를 이용하여 인증을 하게된다. 테스트 인증서는 무료로 제공하는 것으로 임시적으로 사용할 수 있으며 이를 배포할 경우 보안 설정때문에 대부분의 PC에서 설치가 거부된다. 따라서 배포는 안된다는 말씀.&lt;br /&gt;
&lt;br /&gt;길어진 이야기를 줄이고 본격적으로 이 ActiveX 컨트롤을 사용하는 방법을 알아보자.&lt;br /&gt;
&lt;br /&gt;&lt;PRE class=&quot;brush: html;&quot;&gt;&amp;lt;OBJECT id=httpdown   
classid=&quot;clsid:37B11AC0-EFEE-4BDC-93D8-7149C3E71503&quot;
codebase=&quot;HTTPDownloadProj1.cab&quot;   
width=350 height=250 align=center hspace=0 vspace=0&amp;gt;
&amp;lt;/OBJECT&amp;gt;
&lt;/PRE&gt;&lt;br /&gt;
&lt;br /&gt;우선 ActiveX 컨트롤을 웹 페이지에 표시하기 위해서는 위와 같이 &amp;lt;OBJECT&amp;gt; 태그를 사용하여야 한다. id는 이 ActiveX 컨트롤을 구분짓는 ID이고 classid는 ActiveX의 고유ID이다. 고유ID는 중복되지 않도록 생성한 값으로 수많은 ActiveX 사이에서 이들을 구분짓는 기능을 한다. codebase는 cab 파일의 위치를 지정하는 곳이다. 마지막으로 width, height, align 등은 웹 페이지에 표시할 ActiveX의 가로,세로 길이와 정렬 방법 등을 표현한 것이다. 이 &amp;lt;OBJECT&amp;gt; 태그 부분을 html 파일로 저장하고 해당 파일과 동일한 위치에 HTTPDownloadProj1.cab 파일을 두면(물론 다른 위치에 두고 codebase 값을 변경해도 된다.) 해당 파일을 브라우저로 보았을때 다음과 같은 화면을 볼 수 있다. &lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/18664C054B0BC570A123B1&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/18664C054B0BC570A123B1&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;httpdown1.jpg&quot; height=&quot;219&quot; width=&quot;487&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
여기서 차단된 콘텐츠 허용을 클릭하면 ActiveX는 C:\WINDOWS\Downloaded Program Files\ 디렉토리에 설치되며 다음과 같이 웹페이지에 ActiveX 컨트롤이 보이게 된다. &lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;TEXT-INDENT: -0.5em; PADDING-LEFT: 1em&quot; id=syn_row1 class=SYN_TXT&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile4.uf.tistory.com/original/146C34044B0BC41D784B5A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile4.uf.tistory.com/image/146C34044B0BC41D784B5A&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;httpdown.jpg&quot; height=&quot;338&quot; width=&quot;444&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/DIV&gt;&lt;br /&gt;
이제 다운받을 파일들을 ActiveX 컨트롤에서 출력할 수 있도록 해보자. 이 ActiveX 컨트롤은 외부로 AddFile 이라는 함수를 공개하고 있어서 이 함수를 통해서 ActiveX와 대화를 나눌 수 있다. 이는 모든 ActiveX 컨트롤에 해당되는 것이 아니라 딱! 이 ActiveX 컨트롤에만 해당되는 소리다. 대부분의 ActiveX에서는 웹페이지와 정보를 공유하기 위해서 변수나 함수를 외부에서 사용할 수 있도록 공개하고 있다. 따라서 다른 ActiveX를 사용하고자 한다면 어떻게 정보를 교환할 수 있는지를 ActiveX 프로그램 개발자 혹은 설명서에서 알아내야 한다.&lt;br /&gt;
&lt;br /&gt;파일을 등록하기 위해서는 즉, AddFile 함수를 사용하기 위해서는 자바스크립트를 이용하여야 한다.&lt;br /&gt;
&lt;br /&gt;&lt;PRE class=&quot;brush: html;&quot;&gt;&amp;lt;script&amp;gt;
httpdown.AddFile(&quot;URL&quot;, &quot;FILENAME&quot;, &quot;SIZE&quot;);
&amp;lt;/script&amp;gt;
&lt;/PRE&gt;&lt;br /&gt;
&lt;br /&gt;위와 같이 매우 간단한 방법으로 파일을 등록할 수 있다. 반드시 이 부분은 &amp;lt;OBJECT&amp;gt; 태그보다 뒤(아래)에 나와야 한다. 여기서 httpdown은 &amp;lt;OBJECT&amp;gt; 태그에서의 ID 값을 의미하며 파라미터는 순서대로 파일의 위치 URL, 파일의 이름, 파일의 크기 이다. 예를들어서 이 블로그에 올라와있는 책의 소스코드를 등록해보자.&lt;br /&gt;
&lt;br /&gt;파일의 URL : &lt;A href=&quot;http://brown.ezphp.net/attachment/cfile6.uf@192ED60F4B0B603910A3BF.zip&quot;&gt;http://brown.ezphp.net/attachment/cfile6.uf@192ED60F4B0B603910A3BF.zip&lt;/A&gt;&lt;br /&gt;

&lt;DIV&gt;파일의 이름 : 뇌를자극하는PHP프로그래밍.zip&lt;br /&gt;
파일의 크기 : 111433 Bytes&lt;br /&gt;
&lt;br /&gt;이 정보를 가지고 다음과 같이 자바스크립트를 수정하면 ActiveX 컨트롤에 해당 파일이 등록된 것을 확인할 수 있다.&lt;br /&gt;
&lt;br /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;PRE class=&quot;brush: html;&quot;&gt;&amp;lt;OBJECT id=httpdown   
classid=&quot;clsid:37B11AC0-EFEE-4BDC-93D8-7149C3E71503&quot;
codebase=&quot;HTTPDownloadProj1.cab&quot;   
width=350 height=250 align=center hspace=0 vspace=0&amp;gt;
&amp;lt;/OBJECT&amp;gt;

&amp;lt;script&amp;gt;
httpdown.AddFile(&quot;http://brown.ezphp.net/attachment/cfile6.uf@192ED60F4B0B603910A3BF.zip&quot;, &quot;뇌를자극하는PHP프로그래밍.zip&quot;, &quot;111433&quot;);
&amp;lt;/script&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/202E931E4B0BC87B0F6CBA&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/202E931E4B0BC87B0F6CBA&quot; alt=&quot;&quot; height=&quot;268&quot; width=&quot;345&quot;/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/1249281A4B0BC8D988CF4B&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/1249281A4B0BC8D988CF4B&quot; alt=&quot;&quot; height=&quot;268&quot; width=&quot;345&quot;/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;확인 버튼을 누르면 파일의 전송이 시작되고 오른쪽 그림과 같이 프로그레스바가 움직이는 것을 볼 수 있다. 물론 여러개의 파일을 다운받도록 하고 싶다면&amp;nbsp;AddFile 함수를 이용하여 등록하면 된다.&lt;br /&gt;
&lt;br /&gt;이제 PHP를 이용하여 AddFile 함수를 호출하여 파일을 추가해주는 부분을 작성해주면 모두 끝난다.&lt;br /&gt;
&lt;br /&gt;보안적인 이유로 파일을 업로드할때는 위와같이 해시값(192ED60F4B0B603910A3BF)을&amp;nbsp;파일 이름으로 저장하는 것이 좋다. 이렇게 해시값을 파일이름으로 변경하여 업로드하고 다운받을 때에는 원래 파일이름으로 되돌려주는 것이다. 원래 파일이름으로 되돌려주기 위해서 데이터베이스에 이전 이름과 새 이름을 기록하는 방법과 파일이름에 표시하는 방법이 있다.&lt;br /&gt;
&lt;br /&gt;원래이름|해시값&lt;br /&gt;
&lt;br /&gt;과 같은 형식으로 파일을 생성하고 구분자인 | 을 통해서 원래 이름으로 되돌릴 수 있다. 이때 점(.)과 같은 기호는 다른기호로 바꿔주고 다시 되돌려주는 것이 바람직하다.&lt;br /&gt;
&lt;br /&gt;이렇게 파일의 위치를 알게되면 PHP의 filesize 함수를 이용하여 파일의 크기를 알아내고 AddFile 부분을 완성하여 출력해주면 된다. PHP의 코드 부분은 시간이 되는대로 업데이트 하도록 하겠다.&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-86-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-86-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-86-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>응용</category>
			<category>ActiveX 컨트롤</category>
			<category>php</category>
			<category>PHP 강좌</category>
			<category>PHP프로그래밍</category>
			<category>연동</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/86</guid>
			<comments>http://brown.ezphp.net/86#entry86comment</comments>
			<pubDate>Tue, 24 Nov 2009 21:07:45 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 소스코드 (2009년 11월 24일)</title>
			<link>http://brown.ezphp.net/85</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile6.uf@192ED60F4B0B603910A3BF.zip&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; 뇌를자극하는PHP프로그래밍.zip&lt;/a&gt;&lt;/div&gt;&lt;/DIV&gt;&lt;br /&gt;
오류 및 오탈자 부분을 수정한 버전을 올립니다.&lt;br /&gt;
만약 실행시 오류가 발생한다면 바로 알려주시면 최대한 빠른 답변을 드리겠습니다.&lt;br /&gt;
그리고 이 페이지는 항상 최신 버전의 소스코드를 유지할 예정입니다.&lt;br /&gt;
변경사항이 있으면 날짜와 함께 최신의 소스코드를 업로드하겠습니다.&lt;br /&gt;
&lt;br /&gt;참고로 문의하시는 분이 계셔서 말씀드립니다.&lt;br /&gt;
책의 예제 소스코드는 책을 구매하신 분 뿐만이 아니라 &quot;모든&quot; 분들이 &quot;모든&quot; 용도로 사용이 가능합니다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-85-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-85-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-85-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>최종 소스 코드</category>
			<category>PHP프로그래밍</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>소스코드</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/85</guid>
			<comments>http://brown.ezphp.net/85#entry85comment</comments>
			<pubDate>Tue, 24 Nov 2009 13:28:13 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 215페이지</title>
			<link>http://brown.ezphp.net/84</link>
			<description>215페이지의 [예제 4-55]에서 10번줄의 $title 변수는 밑도끝도 없는 변수죠? &lt;br /&gt;
이는 위에서 정의된 $subject 변수를 사용하여야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;mail($to, &lt;FONT color=#e31600&gt;$subject&lt;/FONT&gt;, $message, $header);&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
앞으로는 안놀래야지 ㅎㅎ&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-84-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-84-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-84-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/84</guid>
			<comments>http://brown.ezphp.net/84#entry84comment</comments>
			<pubDate>Fri, 13 Nov 2009 03:49:15 +0900</pubDate>
		</item>
		<item>
			<title>라면 받침대로 쓰기에...</title>
			<link>http://brown.ezphp.net/83</link>
			<description>오늘 느닷없이 메일이 하나왔는데 메일을 열어보니 딱 한 줄만 쓰여있었다.&lt;br /&gt;
&lt;br /&gt;
&lt;BLOCKQUOTE&gt;라면 받침대로 쓰기에...&lt;br /&gt;
&lt;/BLOCKQUOTE&gt;&lt;br /&gt;
그런데 이 메일이 책과 관련된 메일만 오는 것이라 어느 독자분이 보내신것으로 생각했다.&lt;br /&gt;
즉, &quot;책을 사봤더니 쓸모없어서 라면 받침대로 쓰기에 좋더라&quot;는 의미가 아닐까 하고 생각했다.&lt;br /&gt;
소심한 A형인 나로서는 곧바로 우울해졌다. &lt;br /&gt;
&lt;br /&gt;다음은 그 증거 메일 캡쳐 사진이다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/113B52164AFC57AA0CE95B&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/113B52164AFC57AA0CE95B&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;mail.PNG&quot; height=&quot;128&quot; width=&quot;447&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
그런데 오늘 오탈자 찾기를 하던 도중 그 원인을 알아냈다.&lt;br /&gt;
&lt;br /&gt;책의 215페이지 [예제 4-55]를 실행한 결과가 내 메일로 오게끔 되어 있었다. ㅋㅋㅋ&lt;br /&gt;
아 왜 내가쓴걸 기억을 못하지? ㅎㅎ&lt;br /&gt;
&lt;br /&gt;근데... 그럼 딱 한분만 그동안 실행해본건가?&lt;br /&gt;
&lt;br /&gt;추신. 방금 오탈자하나 발견했다. [예제 4-55]를 실행하면 제목이 없는걸로 나온다. 왜냐하면 변수명이 잘못되었기 때문에..&lt;br /&gt;
위의 캡쳐 사진에도 보면 제목이 없는 걸로 나온다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-83-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-83-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-83-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>책 이야기</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>메일</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/83</guid>
			<comments>http://brown.ezphp.net/83#entry83comment</comments>
			<pubDate>Fri, 13 Nov 2009 03:46:31 +0900</pubDate>
		</item>
		<item>
			<title>책 오탈자 찾기 후</title>
			<link>http://brown.ezphp.net/82</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/196ED41D4AFC530E073950&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/196ED41D4AFC530E073950&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;005.jpg&quot; height=&quot;232&quot; width=&quot;314&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
오늘 블로그에&amp;nbsp;독자님께서&amp;nbsp;오탈자를 알려주셔서 다시 한번 책에서 오탈자를 찾아보았다. 그 결과는&amp;nbsp;사진에서 보이듯이 엄청난 포스트잇이 덕지덕지 붙었다. ㅜ_ㅜ. 이렇게나 교정을 못했다는 것인가? 대충 눈으로 소스코드를 검사하는 방식으로 찾은 것만 이정도다. 물론 몇몇은 단순한 오탈자지만 오탈자 찾기를 하면서 책에 많은 것들을 놓쳐버린것 같다라는 생각이 많이 들었다. &lt;br /&gt;
&lt;br /&gt;오탈자가 많아지면 많아질수록 고개를 들 수 없을 정도로 부끄럽고 독자님들을 한분씩 찾아뵙고 수정해주고 싶은 마음이 생길만큼 죄송스럽다. 고민을 많이 해봤는데 결론은 만약 오탈자나 오류가 있다면 빨리 더 많이 찾아서 미리미리 올바르게 수정을 해주자는 것이다. 부끄럽다고 감추기만 한다면 앞으로 더 많이&amp;nbsp;부끄러워질 것이 분명하다. 지금이라도 이 블로그를 통해서 잘못된 부분을 바로잡을 수 있다면 지금까지 아니 앞으로 나의 책을 구매해줄 다른 독자님들에게 조금이나마 도움이 될 것이기 때문에 그 부끄러움을 최소화 하는 현실적인 유일한 방법이 아닐까 한다.&lt;br /&gt;
&lt;br /&gt;혹시 책에서 오류를 발견하신다면 꼭 저에게 알려주시면 감사하겠습니다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-82-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-82-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-82-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>책 이야기</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/82</guid>
			<comments>http://brown.ezphp.net/82#entry82comment</comments>
			<pubDate>Fri, 13 Nov 2009 03:34:41 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 516페이지</title>
			<link>http://brown.ezphp.net/81</link>
			<description>516페이지의 read.php 소스 코드에 외부로부터의 변수 처리 부분이 빠져있습니다. 소스코드가 올바르게 동작하려면 다음 부분을 수정해 주어야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;//조회수 업데이트&lt;/DIV&gt;&lt;br /&gt;
이 부분 위에 다음과 같이 외부로부터의 변수 처리부분을 추가합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$id = $_GET[id];&lt;br /&gt;
$no = $_GET[no];&lt;br /&gt;
//조회수 업데이트&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-81-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-81-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-81-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/81</guid>
			<comments>http://brown.ezphp.net/81#entry81comment</comments>
			<pubDate>Fri, 13 Nov 2009 03:19:28 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 505페이지</title>
			<link>http://brown.ezphp.net/80</link>
			<description>12장 계층형 게시판 만들기에서는 모든 외부로부터의 변수를 각각 $_GET이나 $_POST로 받아서 사용합니다. 그런데 505 페이지에서 제대로 반영이 되지 않은것이 확인되어 다음과 같이 한 문장을 추가해 주어야 올바르게 동작합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;if (!$no || $no &amp;lt; 0 ) $no=0;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
505페이지 list.php 파일의 15번줄 윗 부분에 다음과 같은 코드를 추가합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;FONT color=#e31600&gt;$no = $_GET[no];&lt;/FONT&gt;&lt;br /&gt;
if (!$no || $no &amp;lt; 0 ) $no=0;&lt;br /&gt;
&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-80-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-80-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-80-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/80</guid>
			<comments>http://brown.ezphp.net/80#entry80comment</comments>
			<pubDate>Fri, 13 Nov 2009 03:15:05 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 414페이지</title>
			<link>http://brown.ezphp.net/79</link>
			<description>414페이지에는 &lt;A title=&quot;[http://brown.ezphp.net/73]로 이동합니다.&quot; href=&quot;http://brown.ezphp.net/73&quot; target=_blank&gt;$PHP_SELF 오류&lt;/A&gt;와 더불어 외부로부터의 변수처리에 대한 문제가 있습니다.&lt;br /&gt;
&lt;br /&gt;상단부분과 하단 예제 29번줄&amp;nbsp;소스코드 WHERE id=&#039;$id&#039; 부분에서 $id 변수를 $_GET[id]로 변경하여야 합니다. &lt;br /&gt;
$id는 외부로부터의 변수이므로 $_GET[id]를 사용하여야 합니다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-79-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-79-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-79-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/79</guid>
			<comments>http://brown.ezphp.net/79#entry79comment</comments>
			<pubDate>Fri, 13 Nov 2009 03:09:16 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 216, 217페이지</title>
			<link>http://brown.ezphp.net/78</link>
			<description>216페이지 [예제&amp;nbsp; 4-56] 소스 코드의 4번줄에 세미콜론이 빠져있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;echo abs(-3.3); &lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
위와 같이 수정하는 것이 맞습니다. 이와 같이&amp;nbsp;217페이지 [예제 4-57] 4번줄도 수정해야 합니다.&lt;br /&gt;
&lt;br /&gt;217페이지 [예제 4-58]에는 소스코드에 오류가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;echo floor(3.00); &lt;br /&gt;
echo ceil(3.3); &lt;br /&gt;
echo ceil(-3.3)&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
을 다음과 같이 수정해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;echo floor(3.00); &lt;br /&gt;
echo floor(3.3); &lt;br /&gt;
echo floor(-3.3); //&amp;lt;-- 마지막에 세미콜론도 추가해 주어야 합니다.&lt;/DIV&gt;&lt;br /&gt;
아마 원고를 수정하는 과정에서 문제가 발생한것 같습니다. 교정때 왜 이런 오류를 못찾았는지 이해가 안되네요. ㅜ_ㅜ&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-78-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-78-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-78-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/78</guid>
			<comments>http://brown.ezphp.net/78#entry78comment</comments>
			<pubDate>Fri, 13 Nov 2009 02:52:20 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 98페이지</title>
			<link>http://brown.ezphp.net/77</link>
			<description>98페이지의 하단 부분에서 다음과 같은 소스 코드가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$output = `dir`&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분에서 마지막 부분에 세미콜론이 빠져있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$output = `dir`;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
위와 같이 수정하여야 합니다.&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-77-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-77-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-77-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/77</guid>
			<comments>http://brown.ezphp.net/77#entry77comment</comments>
			<pubDate>Fri, 13 Nov 2009 02:49:39 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 97페이지</title>
			<link>http://brown.ezphp.net/76</link>
			<description>97 페이지에는 편집상 실수가 하나 존재합니다.&lt;br /&gt;
배열 연산자 윗 부분에 보면 다음과 같은 문장이 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$c =&amp;nbsp; 안녕 하세요 반가워요~;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분은 글자배경색과 굵은 글씨로 표현하는 과정에서 큰 따옴표가 실수로 빠진듯합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$c =&lt;FONT color=#e31600&gt;&quot;&lt;/FONT&gt;&amp;nbsp; 안녕 하세요 반가워요~&lt;FONT color=#e31600&gt;&quot;&lt;/FONT&gt;;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
좌우에 따옴표를 추가해주어야 합니다.&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-76-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-76-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-76-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/76</guid>
			<comments>http://brown.ezphp.net/76#entry76comment</comments>
			<pubDate>Fri, 13 Nov 2009 02:47:32 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 74페이지</title>
			<link>http://brown.ezphp.net/75</link>
			<description>74 페이지에는 오자가 하나 있습니다. 밑에서 둘째줄에 보면 &lt;br /&gt;
&lt;br /&gt;③ in &lt;FONT color=#e31600&gt;D\&lt;/FONT&gt;Autoset\public_html\02\endofline3.php on line 3&lt;br /&gt;
&lt;br /&gt;부분에서 : (콜론) 기호가 빠져있습니다. 다음과 같이 수정하는 것이 맞습니다.&lt;br /&gt;
&lt;br /&gt;③ in&lt;FONT color=#e31600&gt; D:\&lt;/FONT&gt;Autoset\public_html\02\endofline3.php on line 3&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-75-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-75-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-75-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/75</guid>
			<comments>http://brown.ezphp.net/75#entry75comment</comments>
			<pubDate>Fri, 13 Nov 2009 02:43:38 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 11장은 register_globals=On 상태로 하셔야 합니다.</title>
			<link>http://brown.ezphp.net/74</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;11장 소스를 테스트할 때에는 php.ini 파일의 register_globals=On으로 설정하여야 합니다.&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;
오늘 책을 살펴보니 11장 게시판 만들기 강좌에서 독자님들이 다소 소스코드 실행에 문제가 생길 소지가 있음을 발견하였습니다. 이 책이 원래 3장에 걸쳐서 게시판이 제 모습을 찾아가는 구성을 갖고 있습니다. 그래서 11장 게시판 만들기의 경우에 php.ini 설정에서 register_globals=On 상태임을 가정하고 작성하였습니다. 그 이유는 많은 프로그래머들이 편의를 위해서 register_globals 옵션을 On으로 설정하고 있기 때문입니다. 그러나 책에도 언급하였듯이 On으로 설정되어 있는 경우 보안적인 문제가 발생하여 Off 설정을 권장하고 있습니다. 그래서 이 책에서는 12장에서 게시판을 계층형으로 수정하면서 이를 Off 설정으로 변경하여도 잘 동작할 수 있도록 변경하는 것을 고려하고 예제 소스를 제작하였습니다.&lt;br /&gt;
&lt;br /&gt;그런데 책에보니 제가 이러한 내용에 대해서 11장의 서두에 언급을 하지 않았다는 것을 이제야 알게 되었습니다. 최근 Off 설정이 기본값이고 대체로 Off 설정을 사용하고 있기 때문에 그냥 이 소스를 사용하게되면 제대로 동작하지 않습니다. 따라서 제대로 소스코드를 실행하기 위해서는 register_globals=On 으로 설정하시거나 소스코드에서 $id, $no 변수를 모두 $_GET[id], $_GET[no] 으로 변경(에디터의 replace 기능을 사용하시면 편리합니다.)하여야 올바르게 동작합니다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-74-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-74-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-74-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>register_globals=On</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>알림</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/74</guid>
			<comments>http://brown.ezphp.net/74#entry74comment</comments>
			<pubDate>Fri, 13 Nov 2009 02:38:53 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] $PHP_SELF -&gt; $_SERVER[PHP_SELF]</title>
			<link>http://brown.ezphp.net/73</link>
			<description>413페이지 윗쪽 소스 코드를 보면 &lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;ACTION=&quot;&amp;lt;?=$PHP_SELF?&amp;gt;?id=&amp;lt;?=$_ GET[id]?&amp;gt;&amp;amp;mode=delete&quot;&amp;gt;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
부분이 있습니다. 이 부분은 다음과 같이 수정되어야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;ACTION=&quot;&amp;lt;?=&lt;FONT color=#e31600&gt;$_SERVER[PHP_SELF]&lt;/FONT&gt;?&amp;gt;?id=&amp;lt;?=&lt;FONT color=#e31600&gt;$_GET[id]&lt;/FONT&gt;?&amp;gt;&amp;amp;mode=delete&quot;&amp;gt;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
register_globals=Off 인 경우에 $PHP_SELF 수퍼변수는 동작하지 않습니다. 따라서 $_SERVER[PHP_SELF]와 같이 바꾸어주셔야 합니다. 그리고 위에 $_ GET[id]와 같이 공백이 존재하는데 이 공백은 오류이니 공백을 없애는 것이 맞습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #f3c534 1px dashed; BORDER-LEFT: #f3c534 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; BORDER-RIGHT: #f3c534 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;$PHP_SELF 오류가 있는 페이지&lt;br /&gt;
&lt;/STRONG&gt;348 페이지 : [예제 8-3] 9번, 30번 줄&lt;br /&gt;
351 페이지 : [예제 8-4] 31번줄&lt;br /&gt;
353 페이지 : [예제 8-5] 9, 19, 33 번줄&lt;br /&gt;
354 페이지 : [예제 8-6] 29번줄&lt;br /&gt;
365 페이지 : [예제 8-13] 32번줄&lt;br /&gt;
409 페이지 : 중간 소스 코드 부분 2군데&lt;br /&gt;
411 페이지 : [예제 10-3] 55, 58 번줄&lt;br /&gt;
413 페이지 : 중간 소스 코드 부분 1군데, 그 아래 ACTION 부분 1군데&lt;br /&gt;
414 페이지 : [예제 10-4] 7번줄&lt;br /&gt;
&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-73-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-73-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-73-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>$PHP_SELF</category>
			<category>$_SERVER[PHP_SELF]</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/73</guid>
			<comments>http://brown.ezphp.net/73#entry73comment</comments>
			<pubDate>Thu, 12 Nov 2009 22:21:57 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 408, 409, 411페이지</title>
			<link>http://brown.ezphp.net/72</link>
			<description>독자님으로부터 오탈자에 대한 보고를 받았습니다. 감사합니다.&lt;br /&gt;
&lt;br /&gt;409페이지 중간 부분과 411페이지 51,52번째 라인을 보면&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$prev = $no - $pagesize;&lt;br /&gt;
$next = $no + $pagesize;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
&lt;br /&gt;부분이 있습니다. 이 부분의 $no 변수는 외부로부터 넘어오는 변수이므로 $_GET[no]과 같이 표현해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #f3c534 1px dashed; BORDER-LEFT: #f3c534 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; BORDER-RIGHT: #f3c534 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$prev = $_GET[no] - $pagesize;&lt;br /&gt;
$next = $_GET[no] + $pagesize;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분 뿐만이아니라 408페이지부터 409페이지에 나오는 모든 $no 변수는 $_GET[no]으로 변경해야 맞는 것입니다.&lt;br /&gt;
&lt;br /&gt;PHP.ini 파일의 설정 중 register_globals 항목이 On으로 되어 있으신 분들은 에러가 나지 않겠지만 Off로 되어있는 분들은 문제가 발생합니다. 제가 On으로 해두고 프로그램을 짜고나서 뒤에 Off로 변경하면서 이러한 문제들이 간혹 발생하였습니다. (일부분만 변경하는 바람에..ㅠㅠ)&lt;br /&gt;
&lt;br /&gt;다시한번 오류를 알려주신 독자님께 감사의 말씀을&amp;nbsp;드립니다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-72-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-72-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-72-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>php</category>
			<category>register_globals=On</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<category>외부로부터의 변수</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/72</guid>
			<comments>http://brown.ezphp.net/72#entry72comment</comments>
			<pubDate>Thu, 12 Nov 2009 22:02:15 +0900</pubDate>
		</item>
		<item>
			<title>DCF를 MP3로 변환할 수 없는 이유</title>
			<link>http://brown.ezphp.net/71</link>
			<description>&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #c1c1c1 1px dashed; BORDER-LEFT: #c1c1c1 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px dashed; BORDER-RIGHT: #c1c1c1 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;DCF 파일을&amp;nbsp;MP3 파일로 변환할 수 있을까?&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;
옴니아가 멜론 폰이어서 멜론으로부터 음원을 다운받는 것은 핸드폰을 사용하는 기간 동안은 무제한 무료이다.&amp;nbsp;최근에 노래를 잘 듣지않던 내가&amp;nbsp;최신 노래들을 어느정도 알게 된 것도 다 이 덕분이다. 그런데 다운받은 파일들이 MP3 포맷이 아니라 모두 DCF 파일이다. &lt;br /&gt;
&lt;br /&gt;DCF는 DRM Contents File 즉,&amp;nbsp;DRM이 걸려있는 컨텐츠 파일이다. 여기서 DRM 기술은 디지털 컨텐츠의 저작권을 보호하기 위해서 일종의 잠금장치를 해둔 것으로 생각할 수 있는데 DRM이 걸려있는 파일은 반드시 이 잠금장치를 해제하여야만 파일을 접근할 수 있다. 몇년전 음원의 불법 유출이 당연시 여겨지던 시절때문에 아무나 그리고 아무데서나 음원을 재생할 수 없도록 하기위해서 만들어진 기술이라 하겠다. &lt;br /&gt;
&lt;br /&gt;근데 DCF 파일은 특정 플레이어에서만 동작을 한다는 문제가 있다. 왜냐하면 DCF Decoder를 공개하지 않기 때문에 오픈소스 개발자 등이 만든&amp;nbsp;멀티미디어 플레이어에서는&amp;nbsp;DCF 파일을 재생할 수가 없다. 현재 옴니아폰에서는 터치플레이어와 윈도우 미디어 플레이어 두 플레이어에서만 재생이 가능하다. 그래서 DCF 파일 포맷을 분석해서 몇가지 헤더를 날려버리면 MP3로 변환할 수 있지 않을까하는 생각을 하게 되었다. 그러나...&lt;br /&gt;
&lt;br /&gt;DCF를 MP3로 변환할 수 없다.&lt;br /&gt;
&lt;br /&gt;DCF의 헤더를 살펴본 결과 AES 방식으로 인코딩이 되어 있기 때문이다. AES는 DES 알고리즘을 보완하기 위한 암호화 알고리즘으로 공모를 통해서 채택한 암호화 방식이다. 뭐 자세한 알고리즘은 넘어가기로 하고 이 AES 암호화를 풀기 위해서는 키를 알아야 하는데 (대칭형 알고리즘이므로 암호화나 복호화시 동일한 키가 필요함) 현재 AES 암호화의 취약점에 대한 연구가 활발하지만 키 없이&amp;nbsp;이를 풀 수 있는 방법은 아직 없다. 따라서 DCF를 단순한 방법으로 복호화 할 수 없다.&lt;br /&gt;
&lt;br /&gt;직접 AES 알고리즘을 복호화 할 수 없기 때문에 생각할 수 있는 다음 방법은 Decoding 함수를 찾아내어 이 함수를 이용하는 방법이다. 멜론 플레이어나 터치 플레이어 등 DCF를 재생할 수 있는 프로그램에서 DLL 등을 뒤져서 Decoding 함수를 찾아낸다면 이를 호출하여 DCF를 디코딩하고 다시 이를 MP3 형식으로 인코딩이 가능하다. 그러나 가볍게 뒤져봤는데 해당 함수를 찾을 수 없었고 지금까지 DCF-&amp;gt;MP3 변환 툴이 나오지 않는 것으로보아 아무도 못찾은것같다. 그래서 잠깐 찾아보고 나도 그만뒀다. Deassembling을 통해서 assembly어 수준에서 해당 부분을 찾는 것도 순조롭지는 않을것 같다. softICE 등을 통해서 해당 루틴을 찾는다고 하더라도 거기서 호출하는 함수들을 모두 찾고 포팅하다보면 일이 매우 많아 질것 같기 때문이다.&lt;br /&gt;
&lt;br /&gt;그래서 결론은 &quot;지금은&quot; DCF를 MP3로 &quot;직접&quot; 변환 할 수 있는 방법은 없다.&lt;br /&gt;
&lt;br /&gt;&quot;지금은&quot;과 &quot;직접&quot;이라는 말을 강조한 이유는 가능성은 희박하지만&amp;nbsp;사전방식이든 blueforce 방식이든 어떠한 방식으로 AES의 키를 찾아내는 경우 해결이 가능하고 또한 누군가 deassembling을 해서 DCF 디코딩 루틴을 복원한다면 또한 가능하다. 그리고 &quot;직접&quot; 변환하지 않고 &quot;간접&quot;적으로 변환하는 방법을 사용하면 DCF를 MP3로 변환할 수 있다. 그 대표적인 예가 멜론에서 플레이를 하고 이 재생음을 다시 녹음하는 방식이다. 최근 곰녹음기와 같은 프로그램을 이용하여 DCF 파일을 MP3로 변환하는 방식이 널리 알려져 있다. 그러나 다들 알다시피 매우 귀찮다. 그래서 자동으로 녹음해주는 프로그램을 어느 개발자가 개발하였으나 멜론측에서 저작권 문제가 있으므로 프로그램의 배포를 중지하라고 요청한 모양이다. 더이상 이 프로그램은 배포되지 않는다.&lt;br /&gt;
&lt;br /&gt;따라서 현재 DCF 파일을 MP3로 변환하는&amp;nbsp;유일한 방법은 녹음기로 녹음하는거다. ^^&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;왜? DCF 파일은&amp;nbsp;다른 핸드폰(또는 MP3 플레이어)에서 재생이 안되는 걸까?&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;
MP3와 같은 음원 파일은 한번 만들어지게 되면 복사를 통해서 어떠한 장비(물론 코덱이 있는 장비)에서도 재생이 가능하다. 그래서 이 파일을 다른 사람과 공유할 수 있고 또한 내가 가진 여러가지 모바일 장치에서 다 같이 사용할 수 있다. 그러나 DCF 파일의 경우 지정된 하나의 장치에서만 재생이 가능하다. 그 이유는 MP3와 같이 다른 사람과 공유하지 못하게 하기 위해서이다. 그러다보니 부득이하게 DCF에 대해서 정당한 권리를 가진 사람도 자신이 소유한 여러 개의 장치에서 함께 사용하지 못하는 상황이 되어버렸다. (또 여기에 일종의 장사속까지 합세하여 모바일 장치마다 팔아먹겠다는 심보가 있을지도 모르겠다.) 그래서 DCF 파일을 다운 받을때 장치를 등록하는 이유가 여기에 있다. &lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-71-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-71-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-71-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>토막 정보</category>
			<category>dcf</category>
			<category>mp3</category>
			<category>변환</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/71</guid>
			<comments>http://brown.ezphp.net/71#entry71comment</comments>
			<pubDate>Thu, 12 Nov 2009 14:43:30 +0900</pubDate>
		</item>
		<item>
			<title>[PHPSchool] 예제 4-18 코드가 동작하지 않습니다.</title>
			<link>http://brown.ezphp.net/70</link>
			<description>PHPSchool을 검색해보았더니 제 책에 대한 질문이 하나 올라와 있더군요.&lt;br /&gt;
&lt;A href=&quot;http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&amp;amp;wr_id=279398&quot;&gt;http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&amp;amp;wr_id=279398&lt;/A&gt;&lt;br /&gt;
&lt;br /&gt;&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$array = file(&#039;&lt;A href=&quot;http://www.yahoo.com/&#039;&quot; target=_blank&gt;http://www.yahoo.com/&#039;&lt;/A&gt;); &lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach($array as $line_num =&amp;gt; $line){ &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo htmlspecialchars($line) . &quot;&amp;lt;br&amp;gt;\n&quot;; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;
&lt;br /&gt;?&amp;gt; &lt;br /&gt;
&lt;br /&gt;이 코드가 동작하지 않는 다는 것이었습니다. 제가 이미 설명을 했다고 생각하고 해당 부분에는 언급을 해두지 않았는데 다시 살펴보니 이에 대한 약간의 언급을 해 두는 것이 좋았을것 같네요. 116쪽 하단과 웹해킹 부분에 이와 관련된 말이 나와있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;include를 통해서 외부 서버의 파일을 가져올 수 있습니다. 예를 들어 include &#039;http://naver.com&#039;; 이라고 한다면 네이버의 메인 화면을 볼 수 있습니다. 간혹 이 방법을 통해 다른 서버의 PHP 문서 코드를 훔칠 수 있지 않을까 생각할 수 있습니다. 그러나 외부의 파일의 경우에는 PHP 문서일지라도 HTML 문서로 인식하여 가져옵니다. 외부 서버 내에 있는 PHP 문서의 소스 코드는 접근할 수 없기 때문에 외부의 PHP 문서를 include 하면 외부 서버의 웹 서버로부터 처리한 결과인 HTML 소스를 돌려받습니다. 그러나 원격 파일을 include 하는 경우 웹 해킹의 가능성이 있기 때문에 보안을 위해서 php.ini 파일의 allow_url_fopen 옵션을 비활성화 시키는 것이 좋습니다.&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분은&amp;nbsp;URL로 파일을 여는 모든 함수에 적용되는 말인데 마치 include에만 적용되는 것처럼 언급을 해둔것이 문제가 아니었나 싶습니다. 위의 문단에서 말하듯이 allow_url_fopen 옵션이 비활성화 되어 있으면 URL을 통해서 파일을 읽어올 수 없습니다. 그래서 위의 코드가 실행되지 않은 것이구요. 위에도 언급했지만 최근 보안의 이유로 URL을 통한 파일 읽기는 비활성화 하는 추세입니다.&lt;br /&gt;
&lt;br /&gt;그리고 해당 글의 답변에 매우 재치있는 덧글이 있어서 소개해 드립니다.&lt;br /&gt;
&lt;br /&gt;&lt;table style=&quot;display: inline; border-collapse: collapse&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/177344124AE6D105679BD9&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/177344124AE6D105679BD9&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;qna.PNG&quot; height=&quot;184&quot; width=&quot;670&quot;/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;저도 입코딩님의 말씀을 보고 정말 &quot;빵&quot;터졌는데 잠시후 남의 일이 아니란 생각이 드니까 &quot;씁쓸하구만~&quot;하더이다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-70-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-70-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-70-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>자주묻는질문</category>
			<category>Q&amp;A</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/70</guid>
			<comments>http://brown.ezphp.net/70#entry70comment</comments>
			<pubDate>Tue, 27 Oct 2009 19:54:46 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 628페이지</title>
			<link>http://brown.ezphp.net/69</link>
			<description>&lt;P&gt;628페이지에는 또 다른 오류가 하나 있습니다.&lt;br /&gt;
중간부분에 있는 쿼리 부분입니다.&lt;br /&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;insert into $board (thread, depth, name, pass, email, title, view, wdate, ip, content, filename) values ($max_thread,0,&#039;$_POST[name]&#039;,&#039;$_POST[pass]&#039;,&#039;$_POST[email]&#039;,&#039;$_POST[title]&#039;,0,UNIX_TIMESTAMP(),&#039;$REMOTE_ADDR&#039;,&#039;$_POST[content]&#039;,&lt;STRONG&gt;&lt;FONT color=#e31600&gt;0,&lt;/FONT&gt;&lt;/STRONG&gt;&#039;$filename&#039;)&lt;br /&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;
이 부분의 마지막 부분에 0이 들어가는 데 이 부분은 제거되어야 합니다.&lt;br /&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;insert into $board (thread, depth, name, pass, email, title, view, wdate, ip, content, filename) values ($max_thread,0,&#039;$_POST[name]&#039;,&#039;$_POST[pass]&#039;,&#039;$_POST[email]&#039;,&#039;$_POST[title]&#039;,0,UNIX_TIMESTAMP(),&#039;$REMOTE_ADDR&#039;,&#039;$_POST[content]&#039;,&#039;$filename&#039;)&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분은 제가 게시판을 만들면서 중간에 테스트로 추가하였던 필드를 지우지 않고 두는 바람에 생긴 오류입니다.&lt;br /&gt;
필드명은 지우고 입력 값은 지우지 않았네요.&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-69-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-69-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-69-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>628페이지</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/69</guid>
			<comments>http://brown.ezphp.net/69#entry69comment</comments>
			<pubDate>Tue, 27 Oct 2009 19:34:47 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 624, 627, 628, 629페이지</title>
			<link>http://brown.ezphp.net/68</link>
			<description>184 페이지의 오류와 동일한 오류가 624와 628 페이지에 존재합니다.&lt;br /&gt;
move_uploaded_file() 함수를 사용하면서 타겟 위치로 복사하는 과정에서 파일 명을 빼먹은 경우입니다.&lt;br /&gt;
&lt;br /&gt;624페이지 예제 13-3의 8번째줄&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;move_uploaded_file($_FILES[&#039;upfile&#039;][&#039;tmp_name&#039;],&#039;./uploads_dir&#039;);&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분을 다음과 같이 수정하여야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;move_uploaded_file($_FILES[&#039;upfile&#039;][&#039;tmp_name&#039;],&#039;./uploads_dir/&#039;&amp;nbsp;.&amp;nbsp;$FILES[&#039;upfile&#039;][&#039;name&#039;]);&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
627, 628페이지 하단 소스&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;if (move_uploaded_file($_FILES[&#039;upfile&#039;][&#039;tmp_name&#039;],&lt;br /&gt;
&#039;./uploads_dir&#039;))&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분은 위와 마찬가지로 다음과 같이 수정해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;if (move_uploaded_file($_FILES[&#039;upfile&#039;][&#039;tmp_name&#039;],&lt;br /&gt;
&#039;./uploads_dir/&#039;&amp;nbsp;.&amp;nbsp;$FILES[&#039;upfile&#039;][&#039;name&#039;]))&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
629페이지 하단 소스&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #fe8943 1px dashed; BORDER-LEFT: #fe8943 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fe8943 1px dashed; BORDER-RIGHT: #fe8943 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;if (move_uploaded_file($_FILES[&#039;upfile&#039;][&#039;tmp_name&#039;], &#039;./uploads_dir&#039;))&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 부분을 다음과 같이 수정합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #9fd331 1px dashed; BORDER-LEFT: #9fd331 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #9fd331 1px dashed; BORDER-RIGHT: #9fd331 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;if (move_uploaded_file($_FILES[&#039;upfile&#039;][&#039;tmp_name&#039;], &#039;./uploads_dir/&#039;&amp;nbsp;.&amp;nbsp;$FILES[&#039;upfile&#039;][&#039;name&#039;]))&lt;br /&gt;
&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-68-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-68-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-68-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>624페이지</category>
			<category>628페이지</category>
			<category>629페이지</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/68</guid>
			<comments>http://brown.ezphp.net/68#entry68comment</comments>
			<pubDate>Tue, 27 Oct 2009 19:24:38 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 364, 366페이지</title>
			<link>http://brown.ezphp.net/67</link>
			<description>364페이지 중간 부분에는 Digest 인증 검증 코드가 있습니다.&lt;br /&gt;
366페이지 소스코드 56,57 라인에도 동일한 코드가 있습니다.&lt;br /&gt;
&lt;br /&gt;그런데 길어지는 코드를 두 줄로 분리하는 과정에서&lt;br /&gt;
함수를 반으로 쪼개어버리는 바람에 에러가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #cbcbcb 1px dashed; BORDER-LEFT: #cbcbcb 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cbcbcb 1px dashed; BORDER-RIGHT: #cbcbcb 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$valid_response&amp;nbsp;=&amp;nbsp;&lt;FONT color=#e31600&gt;md5(&quot;$A1:$data[&#039;nonce&#039;]:$data[&#039;nc&#039;]&quot;;&lt;br /&gt;
&lt;/FONT&gt;$valid_response&amp;nbsp;.=&amp;nbsp;&lt;FONT color=#e31600&gt;&quot;:$data[&#039;cnonce&#039;]:$data[&#039;qop&#039;]:$A2&quot;);&lt;/FONT&gt;&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
그래서 다음과 같이 문자열 부분을 변수에 저장한 후 다시 md5 해쉬 함수를 적용하는 것으로 변경해야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #cbcbcb 1px dashed; BORDER-LEFT: #cbcbcb 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cbcbcb 1px dashed; BORDER-RIGHT: #cbcbcb 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;$valid_response&amp;nbsp;=&amp;nbsp;&quot;{$A1}:{$data[nonce]}:{$data[nc]}&quot;;&lt;br /&gt;
$valid_response&amp;nbsp;.=&amp;nbsp;&quot;:{$data[&#039;cnonce&#039;]}:{$data[&#039;qop&#039;]}:{$A2}&quot;;&lt;br /&gt;
$valid_response&amp;nbsp;=&amp;nbsp;md5($valid_response);&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
이 경우와 같이 소스코드를 두줄로 만드는 과정에서 다소 문제가 발생하는 경우가 있습니다.&lt;br /&gt;
공부하시면서 주의하시기 바랍니다.&lt;br /&gt;
&lt;br /&gt;그리고 366 페이지 소스코드 64번줄에 오탈자가 있습니다. &lt;FONT color=#e31600&gt;$_SEVER&lt;/FONT&gt;[&#039;PHP_SELF&#039;]를 &lt;FONT color=#e31600&gt;$_SERVER&lt;/FONT&gt;[&#039;PHP_SELF&#039;] 로 변경해야 합니다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-67-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-67-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-67-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>364페이지</category>
			<category>366페이지</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/67</guid>
			<comments>http://brown.ezphp.net/67#entry67comment</comments>
			<pubDate>Tue, 27 Oct 2009 19:16:45 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 객체 수정 원고</title>
			<link>http://brown.ezphp.net/66</link>
			<description>&lt;table style=&quot;display: inline; border-collapse: collapse&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://happybrown.tistory.com/attachment/cfile7.uf@1669DC0E4AE6AF2D03EAD7.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; 객체-수정.pdf&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
244페이지부터 시작하는 객체에 대한 수정 보완된 원고입니다.&lt;br /&gt;
제가 이 부분을 약 6년전쯤 작성하고 2년전쯤 교정을 하면서&lt;br /&gt;
PHP 버전에 의한 변화에 대해 혼동을 일으켜 다소 여러부분에서 문제가 발생하였습니다.&lt;br /&gt;
그래서 수정 보완된 원고를 올려드립니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #f3c534 1px dashed; BORDER-LEFT: #f3c534 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; BORDER-RIGHT: #f3c534 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;이 부분은 정말 면목이 없습니다. 저의 꼼꼼하지 못한 성격때문입니다. ㅠ_ㅠ&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-66-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-66-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-66-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>객체</category>
			<category>뇌를 자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/66</guid>
			<comments>http://brown.ezphp.net/66#entry66comment</comments>
			<pubDate>Tue, 27 Oct 2009 17:29:16 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 192페이지</title>
			<link>http://brown.ezphp.net/65</link>
			<description>&lt;P&gt;192 페이지에는 191페이지 하단부터 시작하는 예제 4-35이 있습니다.&lt;br /&gt;
&lt;br /&gt;&amp;lt;?&lt;br /&gt;
&amp;nbsp;$var1 = &quot;조명진&quot;;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;echo &quot;저의 이름은 $var1입니다.&amp;lt;BR&amp;gt;&quot;;&lt;br /&gt;
&amp;nbsp;echo &quot;저의 이름은 $var1 입니다.&amp;lt;BR&amp;gt;&quot;;&lt;br /&gt;
&amp;nbsp;echo &quot;저의 이름은 {$var1}입니다.&amp;lt;BR&amp;gt;&quot;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;echo &#039;저의 이름은 {$var1}입니다.&quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;마지막의 따옴표를 작은 따옴표로 수정하여야 합니다. &lt;/P&gt;&lt;PRE class=brush:php&gt;&lt;?
	$var1 = &quot;조명진&quot;;
	
	echo &quot;저의 이름은 $var1입니다.&lt;br /&gt;&quot;;
	echo &quot;저의 이름은 $var1 입니다.&lt;br /&gt;&quot;;
	echo &quot;저의 이름은 {$var1}입니다.&lt;br /&gt;&quot;;

	echo &#039;저의 이름은 {$var1}입니다.&#039;;
?&gt;&lt;/PRE&gt;
 
&lt;DIV style=&quot;BORDER-BOTTOM: #f3c534 1px dashed; BORDER-LEFT: #f3c534 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; BORDER-RIGHT: #f3c534 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;이 예제는 작은 따옴표의 문자열 처리방법을 보여주기 위한 것인데 큰 따옴표를 마지막에 붙여버렸네요.&lt;br /&gt;
&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-65-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-65-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-65-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>192페이지</category>
			<category>뇌를자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/65</guid>
			<comments>http://brown.ezphp.net/65#entry65comment</comments>
			<pubDate>Tue, 27 Oct 2009 17:06:39 +0900</pubDate>
		</item>
		<item>
			<title>[뇌를자극하는 PHP프로그래밍] 184페이지</title>
			<link>http://brown.ezphp.net/64</link>
			<description>&lt;br /&gt;
184 페이지 중간부분에 예제 4-29가 있습니다.&lt;br /&gt;
&lt;br /&gt;&lt;PRE class=brush:php&gt;&lt;?

	//폼을 통해서 파일이 전달된 경우
	if (is_uploaded_file($_FILES[&#039;userfile&#039;][&#039;tmp_name&#039;], 
	&#039;./uploads_  dir&#039;)) {
		echo &quot;파일이 업로드 되었습니다.&quot;;
	} else {
		echo &quot;임시 저장된 파일을 이동하는데 실패하였습니다.&quot;;
	}
?&gt;
&lt;/PRE&gt;move_uploaded_file() 함수를 이용하여 임시 디렉토리에 저장된 업로드 파일을&lt;br /&gt;
원하는 디렉토리로 옮기는 작업을 확인하는 코드입니다.&lt;br /&gt;
여기서 소스코드의 오류가 있어서 다음과 같이 수정합니다.&lt;br /&gt;
&lt;PRE class=brush:php&gt;&lt;?

	//폼을 통해서 파일이 전달된 경우
	if (move_uploaded_file($_FILES[&#039;userfile&#039;][&#039;tmp_name&#039;], 
	&#039;./uploads_dir&#039; . $_FILES[&#039;upfile&#039;][&#039;name&#039;])) {
		echo &quot;파일이 업로드 되었습니다.&quot;;
	} else {
		echo &quot;임시 저장된 파일을 이동하는데 실패하였습니다.&quot;;
	}
?&gt;
&lt;/PRE&gt;수정된 부분을 보시면 다음과 같습니다.&lt;br /&gt;
&lt;br /&gt;1. 함수의 잘못된 사용 - is_uploaded_file -&amp;gt; move_uploaded_file&lt;br /&gt;
2. 문자열 내 빈공백 - uploads_&amp;nbsp;&amp;nbsp; dir -&amp;gt; uploads_dir&lt;br /&gt;
3. 파일 이름의 부재 - 원하는 위치에 어떤 이름으로 저장될지를 지정해주어야 함, 파일 이름부분 추가&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #f3c534 1px dashed; BORDER-LEFT: #f3c534 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; BORDER-RIGHT: #f3c534 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;이 부분은 틀린 부분이 참 많네요.&amp;nbsp;ㅠ_ㅜ&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-64-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-64-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-64-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>바로잡습니다</category>
			<category>184페이지</category>
			<category>뇌를자극하는 PHP 프로그래밍</category>
			<category>오탈자</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/64</guid>
			<comments>http://brown.ezphp.net/64#entry64comment</comments>
			<pubDate>Tue, 27 Oct 2009 16:51:31 +0900</pubDate>
		</item>
		<item>
			<title>버스 목적지에 도착하면 알려주는 프로그램</title>
			<link>http://brown.ezphp.net/63</link>
			<description>&lt;A href=&quot;http://cfile7.uf.tistory.com/original/1206BD1F4ADE997E7EAF66&quot; rel=lightbox target=_blank&gt;&lt;/A&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfile27.uf.tistory.com/original/206DF1184AE535D9D98E02&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile27.uf.tistory.com/image/206DF1184AE535D9D98E02&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;2.jpg&quot; height=&quot;320&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;요즘 스마트폰을 사용하며서 유용한 프로그램들을 찾아보는 재미에 푹 빠져있는데 오늘 유달리 아이디어가 눈에 띄는 프로그램을 찾았다.&lt;br /&gt;
&lt;br /&gt;&lt;A href=&quot;http://grandmaster.tistory.com/entry/버스-알리미-베타-001&quot;&gt;http://grandmaster.tistory.com/entry/버스-알리미-베타-001&lt;/A&gt;&lt;br /&gt;
&lt;br /&gt;버스 정거장의 위도와 경도를 입력해두면 50M이내에 접근했을때 알려주는 프로그램이다. 나도 버스에서 졸다가 종점까지 한번 가본 경험이 있는데 이럴때 매우 유용하겠다.&lt;br /&gt;
&lt;br /&gt;GPS로 위치정보를 파악하기 때문에 이 서비스를 받기 위해서는 반드시 GPS가 필요하다. 아직 버스정거장의 좌표를 구하기 위해서&amp;nbsp;일일이 구글맵등을 이용해야하는 번거로움이 있지만 만약 버스 정거장의 좌표 정보를 DB화하여 검색할 수 있게 한다면 매우 유용한 프로그램이 될 수 있을 것이다. 모든 버스 정거장의 좌표가 설정된다면 한 정거장 전에서 미리 알려준다던지 남은 정거장이 몇개인지 등 많은 응용이 가능하기때문에 더 잠재성이 크다고 하겠다.&lt;br /&gt;
&lt;br /&gt;그런데 이 프로그램의 성패는 이것에 달려 있으니....&lt;br /&gt;
&quot;버스 속에서 GPS가 잘 잡힐것인가?&quot; 이다. 창가 좌석에 앉아서 핸드폰을 손에 쥐고 있지 않고서는 GPS가 잘 잡힐지 의문이다. GPS 수신이 잘 안되면 이 프로그램을 믿고 있다가 오히려 낭패보는 수가&amp;nbsp;있다.&lt;br /&gt;
&lt;br /&gt;좋은 아이디어를 바탕으로 좋은 프로그램이 완성되길 기대해본다.&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-63-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-63-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-63-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>토막 정보</category>
			<category>GPS</category>
			<category>버스알리미</category>
			<category>스마트폰</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/63</guid>
			<comments>http://brown.ezphp.net/63#entry63comment</comments>
			<pubDate>Mon, 26 Oct 2009 14:41:19 +0900</pubDate>
		</item>
		<item>
			<title>옴니아폰 SCH-M490</title>
			<link>http://brown.ezphp.net/62</link>
			<description>&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfile21.uf.tistory.com/original/1720E11F4AD6BDECBBEBB6&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile21.uf.tistory.com/image/1720E11F4AD6BDECBBEBB6&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;omnia.jpg&quot; height=&quot;500&quot; width=&quot;263&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
2주일전 기존에 쓰던 뷰티폰에서 벗어나 옴니아폰으로 넘어왔다. 스마트폰은 처음 써보는것이지만 예전에 PDA를 써보고 MyToday Agenda라는 거지같은 프로그램도 만들어보고 하면서 사용해본 경험이 있는지라 크게 문제가 되지는 않았다. 그런데 그 사이 인터페이스 측면에서 눈에 띄게 변화가 있어서 시대를 따라잡기가 조금 힘들었다. 네이버 스마트폰 까페에서 여러가지 유용한 프로그램들과 여러분들이 고생해서 만들어주신 스킨등을 사용하여 어느정도 안정되었으나 개인적으로 블랙 계통의 심플한 디자인을 더 선호하기 때문에 조만간&amp;nbsp;몽땅 바꿔버릴 생각이다.&lt;br /&gt;
&lt;br /&gt;개인적인 생각으로 옴니아의 장점을 나열해 보면 다음과 같다.&lt;br /&gt;
&lt;br /&gt;1. 자유로움 (제조회사가 제공하는 천편일률적인&amp;nbsp;기능에서 벗어날 수 있는)&lt;br /&gt;
2. 다양한 어플리케이션&lt;br /&gt;
3. GPS를 이용한 네이게이션&lt;br /&gt;
4. Wifi를 이용한 무선 인터넷&lt;br /&gt;
5. 4G(M490) 혹은 8G(M495)의&amp;nbsp;내장 메모리&lt;br /&gt;
6. 3.3인치의 넓은 화면&lt;br /&gt;
7. 800MHz의 빠른 CPU 클럭 스피드(오버클러킹)&lt;br /&gt;
&lt;br /&gt;그 반면에 단점은?&lt;br /&gt;
&lt;br /&gt;1. Windows Mobile로 인한 배터리 소모(평균 하루마다 배터리 교환)&lt;br /&gt;
2. 메인메모리의 부족 (128MB)&lt;br /&gt;
3. 상대적으로 낮은&amp;nbsp;GPS 수신율&lt;br /&gt;
4. 외장메모리 슬롯의 위치(배터리를 제거해야만&amp;nbsp;장착가능)&lt;br /&gt;
5. 충전시 젠더가 반드시 필요(크래들 또한 젠더가 요구됨)&lt;br /&gt;
&lt;br /&gt;메인메모리의 부족은 정말 이해가 안되는 부분인데, 삼성이 자체적으로 메모리를 만들고 있으면서 2달러도 안하는 256MB 메모리를 안 쓴 이유가 심히 궁금하다. Xperia의 경우 256MB 메인메모리를 쓰고 있어서 왠만한 프로그램의 사용으로 메모리 부족현상이 발생하지 않는다. 그러나 옴니아의 경우는 여러개의 프로그램을 동시에 띄우다보면 더이상 실행이 불가능해지는 경우가 많이 발생하고 특히 메모리 누수등으로 현재 동작하고 있는 프로그램이 하나도 없음에도 불구하고 프로그램이 실행되지 않는 현상이 자주 발생한다. 그래서 메모리 공간을 확보해주는&amp;nbsp;어플리케이션이 필수적이다. 정말 이 부분이 너무 아쉽다. &lt;br /&gt;
&lt;br /&gt;어서 아이폰이 출시되어서 이에 자극을 받아 삼성이나 LG에서 보다 경쟁력있고 매력적인 스마트폰을 생산해내기를 바란다. &lt;br /&gt;
&lt;br /&gt;장점도 많고 단점도 많은 제품이지만 나는 옴니아가 제일 좋다.&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-62-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-62-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-62-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>잡다한 이야기</category>
			<category>SCH-M490</category>
			<category>리뷰</category>
			<category>스마트폰</category>
			<category>옴니아</category>
			<category>장단점</category>
			<author>행복한브라운</author>
			<guid>http://brown.ezphp.net/62</guid>
			<comments>http://brown.ezphp.net/62#entry62comment</comments>
			<pubDate>Thu, 15 Oct 2009 15:45:34 +0900</pubDate>
		</item>
	</channel>
</rss>
