<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>나의 뇌세포를 움직이는 영혼</title>
	<link>http://wizneo.egloos.com</link>
	<description>역사에 획을 긋는 사람</description>
	<language>ko</language>
	<pubDate>Mon, 16 Nov 2009 07:06:19 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>나의 뇌세포를 움직이는 영혼</title>
		<url>http://pds8.egloos.com/logo/200803/24/60/d0018760.jpg</url>
		<link>http://wizneo.egloos.com</link>
		<width>80</width>
		<height>62</height>
		<description>역사에 획을 긋는 사람</description>
	</image>
  	<item>
		<title><![CDATA[ 형광등 종류 ]]> </title>
		<link>http://wizneo.egloos.com/2473896</link>
		<guid>http://wizneo.egloos.com/2473896</guid>
		<description>
			<![CDATA[ 
  <span class="Apple-style-span" ?font-family: 돋움, Dotum, AppleGothic, sans-serif; line-height: normal; font-size: 12px; color: rgb(68, 68, 68); ?>형광등에 색온도(캘빈온도라고 하던데요..)에 따라서 5종류로 구분한답니다. 단파장 형광등은 색온도 없이 무조건 주광색만 낼 수 있는 것으로 알고요. 삼파장 이상 형광등에서만 색조합이 가능한 것으로 압니다.<br>삼파장 형광등을 만들때는 색을 내는 형광물질을 등내에 칠할때 3색을 낼 수 있도록 칠해서 자연색에 가깝게 그리고 눈이 덜 피로하게 하기 위함으로 압니다~<br><br><br><br>보통 시중에 출시되는 형광등 5종류는 다음과 같습니다.<br><br>1. 주광색 (Cooldaylight) - 약한 푸른빛이 도는 색을 냅니다. 색온도는 6500K 정도 됩니다.<br><br>2. 주백색 (daylight) - 아주 하얀 백색의 형광등 이구요. 색온도는 5000K 정도 입니다.<br><br>3. 백색 (coolwhite) - 백색에 아주 아주 약간의 노란색이 있습니다. 색온도는 4100K 입니다.<br><br>4. 온백색 (warmwhite) - 노란빛이 도는 따뜻한 느낌의 백색이라고 보심 되구요. 온도는 3000K 입니다.<br><br>5. 전구색 (Incandlelight) - 백열등 아시죠? 흔히 아시는 전구 동그란거 그 색을 냅니다. 온도는 2700K<br><br><br><br>대충 이렇게 다섯개로 분류 되는데요. 위에 명칭은 한글명칭은 KS 정식명칭이구요. 영어는 영어권에서 정식명칭입니다. 그리고 회사마다 각각 코드로 분류되구요. 보통은 백색을 제외한 4종류만 생산됩니다. 백색을 생산하는 회사는 제가 알기로는 필립스뿐인걸로 알아요..&nbsp;<br><br>각 회사별로 부르는 코드가 있는데..<br><br><br>필립스는 순서대로 주광색(865), 주백색(850), 백색(840), 온백색(830), 전구색(827)로 분류하구요.<br><br>오스람은 주광색(11), 주백색(21), 백색(생산하지 않음), 온백색(31), 전구색(41)로 분류합니다.&nbsp;<br><br>우리나라 제품군들 번개표라던지 GE삼성 같은 경우는.. KS표기법을 사용하는 것으로 알고 있어요..<br><br><br>[출처] DC inside 게시판 <a href="http://gall.dcinside.com/list.php?id=fish&amp;no=69018&amp;page=1&amp;bbs">http://gall.dcinside.com/list.php?id=fish&amp;no=69018&amp;page=1&amp;bbs</a>=</span><br/><br/>tag : <a href="/tag/형광등" rel="tag">형광등</a>,&nbsp;<a href="/tag/색온도" rel="tag">색온도</a>,&nbsp;<a href="/tag/주광색" rel="tag">주광색</a>,&nbsp;<a href="/tag/주백색" rel="tag">주백색</a>,&nbsp;<a href="/tag/온백색" rel="tag">온백색</a>,&nbsp;<a href="/tag/전구색" rel="tag">전구색</a>			 ]]> 
		</description>
		<category>형광등</category>
		<category>색온도</category>
		<category>주광색</category>
		<category>주백색</category>
		<category>온백색</category>
		<category>전구색</category>

		<comments>http://wizneo.egloos.com/2473896#comments</comments>
		<pubDate>Mon, 16 Nov 2009 07:06:19 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [OS]윈도우 사용 시 백업 ]]> </title>
		<link>http://wizneo.egloos.com/2218490</link>
		<guid>http://wizneo.egloos.com/2218490</guid>
		<description>
			<![CDATA[ 
  회사에서 윈도우가 있는 C드라이브 파티션이 날아가서 바탕화면 파일들, 온갖 시스템 파일들이 날아가버렸다.<br><br>이 계기로 백업받고 싶은 자료는 전부 D 에 넣기로 하고 레지스트리를 뒤지다가 좋은 걸 발견했다.<br>(나중에 알고 보니 Microsoft에서 제공하는 Tip 에 나오는 것이었다.)<br><br>일단, C드라이브와 별도로 D드라이브 파티션이 나뉘어 있어야하는 것은 당연한 것.<br><br>내문서, IE 즐겨찾기, 바탕화면의 파일들이 D에 저장되도록 하고 싶다면<br><br>regedit 을 실행하여<br>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion<br>\Explorer\User Shell Folders<br>에 있는 값들을 바꿔 주면 된다.<br><br>%USERPROFILE% 값은 다른 설정 값에도 영향을 미치기 때문에 일부 데이터 Backup을 위해 USERPROFILE까지 바꾸는 것은 지나친 조치라고 생각하여 위의 값들만 바꿔주었다.<br><br>Desktop 이 바탕화면 값이므로 D:\바탕화면 이런 식으로 바꿔주었다.<br><br>바꿔준후 윈도우 로그아웃, 로그인하면 설정값이 변경 완료.<br><br/><br/>tag : <a href="/tag/백업" rel="tag">백업</a>,&nbsp;<a href="/tag/윈도우" rel="tag">윈도우</a>,&nbsp;<a href="/tag/레지스트리" rel="tag">레지스트리</a>,&nbsp;<a href="/tag/바탕화면" rel="tag">바탕화면</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>
		<category>백업</category>
		<category>윈도우</category>
		<category>레지스트리</category>
		<category>바탕화면</category>

		<comments>http://wizneo.egloos.com/2218490#comments</comments>
		<pubDate>Fri, 30 Jan 2009 03:38:22 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [OA] 엑셀에서 파일 이름, 시트 이름 입력 ]]> </title>
		<link>http://wizneo.egloos.com/2138655</link>
		<guid>http://wizneo.egloos.com/2138655</guid>
		<description>
			<![CDATA[ 
  <p>Microsoft Excel에서 파일 이름과 시트 이름을 가져오는 방법은 cell 정보를 추출하여 문자의 개수를 추출, 잘라내는 것이다.<br><br>cell 함수는 cell 의 정보를 반환하고 값에다 "filename"을 주면 file의 full path 를 가져온다.<br><br>그리고 search 함수는 문자열에서 조건에 따라 해당 문자 개수를 돌려주고 mid 함수는 개수에 맞는 문자열을 추출해준다.<br><br>결론.<br><br>파일 이름은<br>=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-5)<br><br>시트 이름은<br>=MID(CELL("filename"),SEARCH("]",CELL("filename"))+1, SEARCH("]",CELL("filename")))</p><br/><br/>tag : <a href="/tag/Excel" rel="tag">Excel</a>,&nbsp;<a href="/tag/OA" rel="tag">OA</a>,&nbsp;<a href="/tag/엑셀" rel="tag">엑셀</a>,&nbsp;<a href="/tag/파일이름" rel="tag">파일이름</a>,&nbsp;<a href="/tag/시트이름" rel="tag">시트이름</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>
		<category>Excel</category>
		<category>OA</category>
		<category>엑셀</category>
		<category>파일이름</category>
		<category>시트이름</category>

		<comments>http://wizneo.egloos.com/2138655#comments</comments>
		<pubDate>Sun, 16 Nov 2008 02:24:56 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [DB]오라클 힌트 사용 ]]> </title>
		<link>http://wizneo.egloos.com/2097312</link>
		<guid>http://wizneo.egloos.com/2097312</guid>
		<description>
			<![CDATA[ 
  <p><strong>*오라클 힌트 사용표</strong></p><p><table style="BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="459" border="0" x:str><colgroup><span style="FONT-SIZE: 100%"><strong></strong></span><tbody><tr style="HEIGHT: 14.25pt" height="19"><td class="xl37" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; WIDTH: 515pt; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" width="459" colspan="3" height="19"><span style="FONT-SIZE: 100%"><strong>INDEX ACCESS OPERATION 관련 HINT</strong></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl25" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">HINT</span></td><td class="xl26" style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: windowtext; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">내용</span></td><td class="xl27" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">사용법</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18" x:str="INDEX "><span style="FONT-SIZE: 100%">INDEX<span style="mso-spacerun: yes">&nbsp;</span></span></td><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX를 순차적으로 스캔</span></td><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX(TABLE명, INDEX명)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">INDEX_DESC</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX를 역순으로 스캔</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX_DESC(TABLE명, INDEX명)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">INDEX_FFS</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX FAST FULL SCAN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX_FFS(TABLE명, INDEX명)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">PARALLEL_INDEX</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX PARALLEL SCAN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">PARALLEL_INDEX(TABLE명,INDEX명)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">NOPARALLEL_INDEX</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX PARALLEL SCAN 제한</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">NOPARALLEL_INDEX(TABLE명,INDEX명)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">AND_EQUALS</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">INDEX MERGE 수행</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">AND_EQUALS(INDEX_NAME, INDEX_NAME)</span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">FULL</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">FULL SCAN</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">FULL(TALBE명)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"><strong></strong></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"><strong></strong></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl37" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" colspan="3" height="19"><span style="FONT-SIZE: 100%"><strong>JOIN ACCESS OPERATION 관련 HINT</strong></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl25" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">HINT</span></td><td class="xl26" style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: windowtext; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">내용</span></td><td class="xl27" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">사용법</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">USE_NL</span></td><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">NESTED LOOP JOIN</span></td><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">USE_NL(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">USE_MERGE</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">SORT MERGE JOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">USE_MERGE(TABBLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">USE_HASH</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">HASH JOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">USE_HASH(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">HASH_AJ</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">HASH ANTIJOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">HASH_AJ(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">HASH_SJ</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">HASH SEMIJOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">HASH_SJ(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">NL_AJ</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">NESTED LOOP ANTI JOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">NL_AJ(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">NL_SJ</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">NESTED LOOP SEMIJOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">NL_SJ(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">MERGE_AJ</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">SORT MERGE ANTIJOIN</span></td><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">MERGE_AJ(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">MERGE_SJ</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">SORT MERGE SEMIJOIN</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%">MERGE_SJ(TABLE1, TABLE2)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl37" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" colspan="3" height="19"><span style="FONT-SIZE: 100%"><strong>JOIN시 DRIVING 순서 결정 HINT</strong></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl25" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">HINT</span></td><td class="xl40" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" colspan="2"><span style="FONT-SIZE: 100%">내용</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">ORDERED</span></td><td class="xl35" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" colspan="2"><span style="FONT-SIZE: 100%">FROM 절의 앞에서부터 DRIVING</span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">DRIVING</span></td><td class="xl36" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" colspan="2"><span style="FONT-SIZE: 100%">해당 테이블을 먼저 DRIVING- driving(table)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 100%"></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl37" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" colspan="3" height="19"><span style="FONT-SIZE: 100%"><strong>기타 힌트</strong></span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl28" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">HINT</span></td><td class="xl40" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" colspan="2"><span style="FONT-SIZE: 100%">내용</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl24" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">append</span></td><td class="xl33" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" colspan="2"><span style="FONT-SIZE: 100%">insert 시 direct loading</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">parallel</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">select, insert 시 여러 개의 프로세스로 수행- parallel(table, 개수)</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">cache</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">데이터를 메모리에 caching</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">nocache</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">데이터를 메모리에 caching하지 않음</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">push_subq</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">subquery를 먼저 수행</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">rewrite</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">query rewrite 수행</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">norewrite</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">query rewrite 를<span style="mso-spacerun: yes">&nbsp; </span>수행 못함</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">use_concat</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">in절을 concatenation access operation으로 수행</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">use_expand</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">in절을 concatenation access operation으로 수행 못하게 함</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-SIZE: 100%">merge</span></td><td class="xl29" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">view merging 수행</span></td></tr><tr style="HEIGHT: 14.25pt" height="19"><td class="xl23" style="BORDER-RIGHT: windowtext 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: windowtext 1pt solid; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent" height="19"><span style="FONT-SIZE: 100%">no_merge</span></td><td class="xl31" style="BORDER-RIGHT: black 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 394pt; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" width="525" colspan="2"><span style="FONT-SIZE: 100%">view merging 수행 못하게 함</span></td></tr></tbody></table><br />
<br />
출처 : <a href="http://www.mungchung.com/">http://www.mungchung.com/</a></p><!--"<--><br/><br/>tag : <a href="/tag/오라클" rel="tag">오라클</a>,&nbsp;<a href="/tag/oracle" rel="tag">oracle</a>,&nbsp;<a href="/tag/hint" rel="tag">hint</a>,&nbsp;<a href="/tag/parallel" rel="tag">parallel</a>,&nbsp;<a href="/tag/use_hash" rel="tag">use_hash</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>
		<category>오라클</category>
		<category>oracle</category>
		<category>hint</category>
		<category>parallel</category>
		<category>use_hash</category>

		<comments>http://wizneo.egloos.com/2097312#comments</comments>
		<pubDate>Tue, 14 Oct 2008 05:43:08 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [가격] HDD 가격 동향(2008-10-12) ]]> </title>
		<link>http://wizneo.egloos.com/2094316</link>
		<guid>http://wizneo.egloos.com/2094316</guid>
		<description>
			<![CDATA[ 
  <table style="WIDTH: 308pt; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="410" border="0" x:str><colgroup><col style="WIDTH: 45pt; mso-width-source: userset; mso-width-alt: 1706" width="60"><col style="WIDTH: 70pt; mso-width-source: userset; mso-width-alt: 2645" width="93"><col style="WIDTH: 65pt; mso-width-source: userset; mso-width-alt: 2474" width="87"><col style="WIDTH: 94pt; mso-width-source: userset; mso-width-alt: 3555" width="125"><col style="WIDTH: 34pt; mso-width-source: userset; mso-width-alt: 1280" width="45"><tbody><tr style="HEIGHT: 13.5pt" height="18"><td class="xl22" id="_x0000_s1025" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 45pt; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: #ccffcc" width="60" height="18" x:autofilterrange="$A$1:$E$1" x:autofilter="all"><span style="FONT-FAMILY: 돋움">회사</span></td><td class="xl22" id="_x0000_s1026" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 70pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: #ccffcc" width="93" x:autofilter="all"><span style="FONT-FAMILY: 돋움">용량(GB)</span></td><td class="xl22" id="_x0000_s1027" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 65pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: #ccffcc" width="87" x:autofilter="all"><span style="FONT-FAMILY: 돋움">가격(원)</span></td><td class="xl22" id="_x0000_s1028" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 94pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: #ccffcc" width="125" x:autofilter="all"><span style="FONT-FAMILY: 돋움">가격/용량(원)</span></td><td class="xl22" id="_x0000_s1029" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 34pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: #ccffcc" width="45" x:autofilter="all"><span style="FONT-FAMILY: 돋움">램</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">WD</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">640</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">88000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C2/B2,0)"><span style="FONT-FAMILY: 돋움">138</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">16</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">WD</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">500</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">75000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C3/B3,0)"><span style="FONT-FAMILY: 돋움">150</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">16</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">삼성</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">1024</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">155000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C4/B4,0)"><span style="FONT-FAMILY: 돋움">151</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">32</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">삼성</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">750</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">116000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C5/B5,0)"><span style="FONT-FAMILY: 돋움">155</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">32</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">WD</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">400</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">72000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C6/B6,0)"><span style="FONT-FAMILY: 돋움">180</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">16</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">WD</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">320</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">61000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C7/B7,0)"><span style="FONT-FAMILY: 돋움">191</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">16</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">삼성</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">250</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">53000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C8/B8,0)"><span style="FONT-FAMILY: 돋움">212</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">16</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">삼성</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">160</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">44000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C9/B9,0)"><span style="FONT-FAMILY: 돋움">275</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">8</span></td></tr><tr style="HEIGHT: 13.5pt" height="18"><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" height="18"><span style="FONT-FAMILY: 돋움">삼성</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">80</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">42000</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num x:fmla="=ROUND(C10/B10,0)"><span style="FONT-FAMILY: 돋움">525</span></td><td class="xl23" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align="right" x:num><span style="FONT-FAMILY: 돋움">8</span></td></tr></tbody></table><br>자료 출처 : 다나와<br>편집 : 글쓴이<br/><br/>tag : <a href="/tag/하드디스크" rel="tag">하드디스크</a>,&nbsp;<a href="/tag/HDD" rel="tag">HDD</a>,&nbsp;<a href="/tag/하드" rel="tag">하드</a>,&nbsp;<a href="/tag/가격" rel="tag">가격</a>,&nbsp;<a href="/tag/시세" rel="tag">시세</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>
		<category>하드디스크</category>
		<category>HDD</category>
		<category>하드</category>
		<category>가격</category>
		<category>시세</category>

		<comments>http://wizneo.egloos.com/2094316#comments</comments>
		<pubDate>Sun, 12 Oct 2008 02:00:00 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [Javascript]적금 원리금 계산기 ]]> </title>
		<link>http://wizneo.egloos.com/2046147</link>
		<guid>http://wizneo.egloos.com/2046147</guid>
		<description>
			<![CDATA[ 
  비과세, 세금우대 옵션 포함<br />
<br />
문득 한 번에 계산해서 보고 싶어서 만들었다.<br />
<br />
그런데 계산해주는 싸이트가 있나보다.<br />
<br />
풉.<br />
<br />
<a href="http://pds10.egloos.com/pds/200809/04/60/index.html">index.html</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>

		<comments>http://wizneo.egloos.com/2046147#comments</comments>
		<pubDate>Thu, 04 Sep 2008 02:43:39 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ ConcurrentModificationException in JAVA ]]> </title>
		<link>http://wizneo.egloos.com/2042453</link>
		<guid>http://wizneo.egloos.com/2042453</guid>
		<description>
			<![CDATA[ 
  객체의 상태를 동시에 수정을 하는 것이 허용하지 않을 때 발생시키는 <a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>이 있습니다. <a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>의 쓰임으로 Javadoc API에서 예로 든 것은 하나의 쓰레드가 컬렉션을 순회(iterate) 중일 때, 다른 하나의 쓰레드가 컬렉션을 수정하는 경우입니다. 컬렉션의 모든 요소를 살펴보려고 순회하고 있는데, 컬렉션이 늘었다 줄었다 하는 경우를 생각해보세요. 매우 불안정한 순회가 될 것입니다.<br><br>재미있는 생각이 떠올랐습니다. 만일 학교에서 숙제 검사를 하는 경우를 생각해보죠. 요즘도 이런 용어를 쓰는지 모르지만, 1분단부터 차례로 선생님이 학생들의 숙제를 검사하게 됩니다. 만약에 학생들이 자유롭게 자리를 비울 수 있다거나, 검사 도중에 자리를 바꿔 앉을 수 있다면 제대로 된 검사가 불가능할 것입니다. ^^<br><br><a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>은 반드시 다수의 쓰레드가 동반된 상황과 관계된 것은 아니라고 API는 전합니다.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffdaed">If a single thread issues a sequence of method invocations that violates the <strong>contract</strong> of an object, the object may throw this exception. For example, if a thread modifies a collection directly while it is iterating over the collection with a <strong>fail-fast</strong> iterator, the iterator will throw this exception.</div><br>'숙제 검사'를 제대로 수행하기 위해서는 학생들이 검사를 받는 시점에 자리에 위치해야 합니다. 이것이 숙제검사의 <strong>Contract</strong>으로 볼 수 있습니다. 위에서 <strong>fail-fast </strong>라는 용어가 나오는데요. 이것은 이렇게 설명할 수 있습니다. 학생이 검사를 받기 전에 자리를 비웠다고 해서 반드시 문제가 생기는 것은 아닙니다. 비웠다가도 검사하는 시점에 본인의 위치에 있기만 하면 문제가 될 것이 없습니다. 그러나, 통제의 편의를 위해서는 이러한 문제도 엄격하게 다룰 수 있죠. 이와 같은 정책이 <strong>fail-fast </strong>라고 할 수 있습니다.<br><br>API에서는 <a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a> 구현을 너무 신뢰하지 말라는 듯한 문구가 있습니다.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffdaed">Fail-fast operations throw <tt>ConcurrentModificationException</tt> on a best-effort basis. Therefore, it would be wrong to write a program that depended on this exception for its correctness: <em><tt>ConcurrentModificationException</tt> should be used only to detect bugs.</em></div><br><a href="http://webapp2.net/tt/110"><span style="COLOR: #5a5194">민재님이 발견한 재미있는 현상</span></a>이 적절한 예가 아닌가 생각되네요.<br><br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">public void testArrayList() {</div><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">List&lt;String&gt; strings = new ArrayList&lt;String&gt;();<br>strings.add("1");<br>strings.add("2");<br>strings.add("3");<br>strings.add("4");<br>strings.add("5");<br>strings.add("6");<br>strings.add("7");<br>strings.add("8");</div><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">for (String string : strings)<br>&nbsp; if ("<strong>7</strong>".equals(string))<br>&nbsp; &nbsp;strings.remove(string);</div><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">}</div><br>비교하는 문자열이 7인 경우에만 <a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>가 발생하지 않습니다. 원인을 알아보기 위해서는 ArrayList의 구현을 찾아봐야겠죠. 실제로는 AbstractList의 내부 클래스인 Itr에 구현되어 있습니다.<br><br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9">private class Itr implements Iterator&lt;E&gt; {<br>...<br>int expectedModCount = modCount;<br></div><br>modCount는 컬렉션이 수정된 횟수를 임시로 기록하는 값입니다. Iterator를 생성하면서 그 값을 복사해둡니다. 그리고, iterator 객체에서 <span style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 0px; COLOR: #202020; PADDING-TOP: 3px; BACKGROUND-COLOR: #ffdaed">next() 혹은 remove() 메소드가 호출</span>되면 복사한 값 즉, <strong>iterator 생성 시점의 수정 횟수</strong>와 <strong>현재의 수정 횟수</strong>를 비교합니다. 두 수치가 갖지 않으면, <a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>를 발생시킵니다.<br><br>그렇다면 앞의 예제에서 예외가 발생하는 과정을 추정해보고, 왜 "7"을 비교할 때는 예외가 나지 않는지<span id="callbacknestyounghoeinfo1597419" style="FLOAT: left; WIDTH: 226px; HEIGHT: 196px"><object id="younghoeinfo1597419" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" height="100%" width="100%" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"><param name="_cx" value="5080"><param name="_cy" value="5080"><param name="FlashVars" value=""><param name="Movie" value="http://cfs.tistory.com/blog/plugins/CallBack/callback.swf?destDocId=callbacknestyounghoeinfo1597419&amp;id=159&amp;callbackId=younghoeinfo1597419&amp;host=http://younghoe.info&amp;float=left&amp;"><param name="Src" value="http://cfs.tistory.com/blog/plugins/CallBack/callback.swf?destDocId=callbacknestyounghoeinfo1597419&amp;id=159&amp;callbackId=younghoeinfo1597419&amp;host=http://younghoe.info&amp;float=left&amp;"><param name="WMode" value="Transparent"><param name="Play" value="0"><param name="Loop" value="-1"><param name="Quality" value="High"><param name="SAlign" value="LT"><param name="Menu" value="-1"><param name="Base" value=""><param name="AllowScriptAccess" value=""><param name="Scale" value="NoScale"><param name="DeviceFont" value="0"><param name="EmbedMovie" value="0"><param name="BGColor" value=""><param name="SWRemote" value=""><param name="MovieData" value=""><param name="SeamlessTabbing" value="1"><param name="Profile" value="0"><param name="ProfileAddress" value=""><param name="ProfilePort" value="0"><param name="AllowNetworking" value="all"><param name="AllowFullScreen" value="false">    <embed width="100%" height="100%" wmode="transparent" id="younghoeinfo1597419" src="http://cfs.tistory.com/blog/plugins/CallBack/callback.swf?destDocId=callbacknestyounghoeinfo1597419&id=159&callbackId=younghoeinfo1597419&host=http://younghoe.info&float=left&" allowscriptaccess="always" menu="false" type="application/x-shockwave-flash"  ></embed></object></span>확인해보죠.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9">for (String string : strings)<br>&nbsp; if ("<strong>7</strong>".equals(string))<br>&nbsp; &nbsp;strings.remove(string);</div><br>JDK5에서 지원하는 간결한 for문입니다. <strong>foreach</strong> 구문이라고도 하죠. 실제로는 strings라는 이름의 ArrayList 객체에의 iterator() 메소드를 호출하게 됩니다. 보다 정확하게 이야기하면 Iteratable 인터페이스를 구현한 객체의 iterator() 메소드를 호출하죠. iterator() 메소드는 Iterator 객체를 반환하는데, hasNext() 메소드를 호출하여 true가 반환되면 next() 메소드를 호출하여 결과를 반환하는 방식으로 컬렉션의 요소들을 순차적으로 반환합니다. 매우 복잡해보이는 일을 <strong>foreach</strong> 로 표현할 수 있어 편리해진 것이죠.<br><br>위의 구문을 다음과 같이 변경할 수도 있습니다. 구문을 더 복잡해지지만, 내부적인 동작을 보여주는데는 더 유리하죠.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9">String string = null;<br>for (Iterator it = strings.iterator(); it.hasNext();) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; string = (String)it.next();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; if ("7".equals(string))<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; strings.remove(string);<br>&nbsp; &nbsp; &nbsp;&nbsp; }</div><br><br>앞에서 Iterator의 <span style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 0px; COLOR: #202020; PADDING-TOP: 3px; BACKGROUND-COLOR: #ffdaed">next()</span>가 <a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>를 발생시킬 수 있다고 했죠. <strong>foreach</strong> 수행 중에 암묵적으로 next()가 호출된다는 사실을 기억하세요. 위 코드의 remove() 메소드는 Iterator 객체의 것이 아니라 ArrayList의 행위입니다. ArrayList의 remove()에서 아래의 코드를 발견할 수 있습니다.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9">modCount++;</div><br><strong>iterator 생성 시점의 수정 횟수</strong>와 <strong>현재의 수정 횟수</strong>를 비교합니다!<br><br><a title="class in java.util" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html" target="classFrame"><span style="COLOR: #5a5194">ConcurrentModificationException</span></a>이 발생하겠죠.<br><br>그렇다면 "7"의 경우는 왜 발생하지 않을까요? 또한, "8"로 비교를 수행해도 의외의 결과를 얻습니다. 소스를 한참 뒤져보고서야 해답은 Iterator 객체의 next()와 hasNext()에 있음을 알게 되었습니다.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9">public boolean hasNext() {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; return cursor != size();<br>}<br><br>public E next() {<br>&nbsp; ...<br>lastRet = cursor++;<br><br></div><br>cursor 값은 0부터 시작하여 하나씩 증가하죠. 이를 효과적으로 표현하기 위해서 예제 코드를 수정해보겠습니다.<br><br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">public void testArrayList() {</div><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">List&lt;String&gt; strings = new ArrayList&lt;String&gt;();<br>strings.add("1");<br>strings.add("2");<br>strings.add("3");<br>strings.add("4");<br>strings.add("5");<br>strings.add("6");<br>strings.add("7");<br>strings.add("8");</div><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">String string = null;<br>int coursor = 0;<br>for (Iterator it = strings.iterator(); it.hasNext();) {<br>&nbsp; string = (String) it.next();<br>&nbsp; System.out.print(++coursor + " : ");<br>&nbsp; if ("7".equals(string))<br>&nbsp; &nbsp;strings.remove(string);<br>&nbsp; <br>&nbsp; System.out.println(coursor == strings.size());<br>}</div><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #c9edff">}</div><br>출력 값은 다음과 같습니다.<br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9">1 : false<br>2 : false<br>3 : false<br>4 : false<br>5 : false<br>6 : false<br>7 : true</div><br>"7"의 경우엔 hasNext()가 false를 반환하게 됩니다. 결국, 그 다음 요소는 순회가 안되고 무시되어 버리죠. ^^<br><br>그렇다면 "8"은 어떻습니까? 앞의 예제의 "7"을 "8"로 변경하여 수행해보면, 8번 반복이 아니라 9번 반복이 수행됩니다. 원인은&nbsp; Iterator 객체의 hasNext() 메소드의 구현이 크기 비교가 아니라 수치가 동일한가를 비교하고 있기 때문이죠. ^^<br><br>이러한 현상에 대해 API에서 on a best-effort basis라고 귀뜸해준 것이라면 매우 적절한 처사라 생각됩니다.<br><br><div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffdaed">Fail-fast operations throw <tt>ConcurrentModificationException</tt><strong> on a best-effort basis</strong>. Therefore, it would be wrong to write a program that depended on this exception for its correctness: <em><tt>ConcurrentModificationException</tt> should be used only to detect bugs.<br><br></em><br></div><br><br>출처: <a href="http://younghoe.info/">http://younghoe.info/</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>

		<comments>http://wizneo.egloos.com/2042453#comments</comments>
		<pubDate>Mon, 01 Sep 2008 09:20:34 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [OA]엑셀 가계부 ]]> </title>
		<link>http://wizneo.egloos.com/1665778</link>
		<guid>http://wizneo.egloos.com/1665778</guid>
		<description>
			<![CDATA[ 
  2008년용<br />
<br />
<a href="http://pds8.egloos.com/pds/200807/12/60/housekeepling_v2008.07%28excel_97-2003%29.xls" style="padding: 0pt 0pt 0pt 15px; background: transparent url(http://md.egloos.com/img/eg/icon_file.gif) no-repeat scroll left center; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; list-style-type: none; list-style-image: none; list-style-position: outside;">housekeepling_v2008.07(excel_97-2003).xls</a><br />
<a href="http://pds8.egloos.com/pds/200807/12/60/housekeepling_v2008.07%28excel_2007%29.xlsx" style="padding: 0pt 0pt 0pt 15px; background: transparent url(http://md.egloos.com/img/eg/icon_file.gif) no-repeat scroll left center; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; list-style-type: none; list-style-image: none; list-style-position: outside;">housekeepling_v2008.07(excel_2007).xlsx</a><br />
<br />
기능 - 월별 통계, 연간 통계, 수입·지출 분류별 통계 기능, 지출 종류별 통계 기능<br />
특징 - 사용자 수동 입력 최소화<br />
<br/><br/>tag : <a href="/tag/excel" rel="tag">excel</a>,&nbsp;<a href="/tag/엑셀" rel="tag">엑셀</a>,&nbsp;<a href="/tag/가계부" rel="tag">가계부</a>			 ]]> 
		</description>
		<category>컴퓨터 이야기</category>
		<category>excel</category>
		<category>엑셀</category>
		<category>가계부</category>

		<comments>http://wizneo.egloos.com/1665778#comments</comments>
		<pubDate>Sat, 12 Jul 2008 09:04:00 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 잔멸치 볶음 ]]> </title>
		<link>http://wizneo.egloos.com/1923528</link>
		<guid>http://wizneo.egloos.com/1923528</guid>
		<description>
			<![CDATA[ 
  <p>구분 : 밑반찬<br>재료 : 잔멸치, 간장, 설탕, 기름(포도씨유, 콩기름, 올리브유... 아무거나), 풋고추, 참깨<br>도구 : 잔멸치 볶을 후라이팬<br><br><br>1.&nbsp;후라이팬에 기름을 충분히 두른다.<br>2. 풋고추에서 씨를 제거한&nbsp;후 어슷썰기하여 기름에 볶는다.<br>3. 볶은 기름에 간장 약간, 설탕을 넣고 섞는다. 멸치 자체가 짠 맛이 나므로 간장은 아주 조금 넣는다.<br>4. 설탕 때문에 기름이 끓기 시작하면 잔멸치를 붓고 섞어준다.<br>5. 잔멸치가 뭉쳐다니지 않을 때쯤 참깨를 뿌린다.(다 한 후에 뿌려도 무방)<br>6. 먹어보아 바삭한 정도가 자신의 취향에 맞을 정도까지 볶는다.<br><br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200806/07/60/d0018760_4849f2d3d36b0.jpg" width="262" height="197" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200806/07/60/d0018760_4849f2d3d36b0.jpg');" /></div></p><br/><br/>tag : <a href="/tag/잔멸치" rel="tag">잔멸치</a>,&nbsp;<a href="/tag/잔멸치볶음" rel="tag">잔멸치볶음</a>,&nbsp;<a href="/tag/밑반찬" rel="tag">밑반찬</a>,&nbsp;<a href="/tag/요리" rel="tag">요리</a>			 ]]> 
		</description>
		<category>요리 이야기</category>
		<category>잔멸치</category>
		<category>잔멸치볶음</category>
		<category>밑반찬</category>
		<category>요리</category>

		<comments>http://wizneo.egloos.com/1923528#comments</comments>
		<pubDate>Sat, 07 Jun 2008 02:31:25 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 탄 냄비 닦아내기 ]]> </title>
		<link>http://wizneo.egloos.com/1896339</link>
		<guid>http://wizneo.egloos.com/1896339</guid>
		<description>
			<![CDATA[ 
  <p>요리를 하다보면 깜박하고 조리 시간을 넘겼거나 기타 이유로 해서 냄비에 탄 음식 찌꺼기가 붙어 안 지워지는 경우가 있다. 게다가 설탕이라도 양념에 추가되어 있었다면 녹아 굳은 그을음은 아무리 쇠 수세미로 문질러도 지워지지 않는다. 뜨거운 물에 불려도 좀처럼 떨어지지&nbsp;않는 그을음. 어떻게 없앨 수 있을까.<br><br>&nbsp;이 때 유용한 것이 바로 계면활성제이다. 계면활성제는 물과도 친하고 기름과도 친한 물질이라서 섬유에 붙은 때를 떼어내는 세제로도 사용된다. 즉, 비누에 들어있는 것이 계면활성제이다. 그런데 이 계면활성제는 맥주에도 들어있다. 클레오파트라는 자신의 못생긴 외모를 화장술로 가렸던 것으로 유명한데 그 짙은 화장을 지우기 위해 맥주 거품을 사용했다는 일화도 있다.<br><br>&nbsp;따라서 냄비에서 그을음 찌꺼기를 떼어낼 때도 마찬가지로 계면활성제를 넣으면 좋다. 먹고 남아 김빠진 맥주는 버리지 말고 모아두었다가 이럴 때 쓰자. 혹은 맥주가 없다면 비누를 넣어도 된다. 냄비 그을음이 잠길정도로 물을 붓고 비누 조각을 넣거나 비눗물 대신 맥주를 부어 끓이면 그을음이 떠오르는 것을 볼 수 있다.<br><br>&nbsp;물이 어느 정도 끓었을 때 비눗물을 버리고 뜨거운 상태에서 바로 수세미로 문질러보자. 놀라울 정도로 잘 닦아진다. 물론 뜨거우니 고무장갑을 끼는 것을 잊지 말아야겠다.</p>			 ]]> 
		</description>
		<category>상식이야기</category>

		<comments>http://wizneo.egloos.com/1896339#comments</comments>
		<pubDate>Mon, 19 May 2008 14:48:22 GMT</pubDate>
		<dc:creator>내맘대로</dc:creator>
	</item>
</channel>
</rss>
