<?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>[Will] 창조본능, 프로그래머! </title>
	<link>http://hongsgo.egloos.com</link>
	<description>가슴 뜨거운 프로그래머
나는 나의 일을 즐기며 사랑한다.</description>
	<language>ko</language>
	<pubDate>Thu, 30 Jul 2009 07:13:56 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>[Will] 창조본능, 프로그래머! </title>
		<url>http://pds13.egloos.com/logo/200905/20/19/d0053419.jpg</url>
		<link>http://hongsgo.egloos.com</link>
		<width>80</width>
		<height>78</height>
		<description>가슴 뜨거운 프로그래머
나는 나의 일을 즐기며 사랑한다.</description>
	</image>
  	<item>
		<title><![CDATA[ "사랑하지 않으면 떠나라"를 읽고 중요했던 부분 발췌 ]]> </title>
		<link>http://hongsgo.egloos.com/2815467</link>
		<guid>http://hongsgo.egloos.com/2815467</guid>
		<description>
			<![CDATA[ 
  <br>또 다른 인위적(이고 받아들기 어려운) 경계는 플랫폼 또는 운영체제다. 윈도를 거부하고 유닉스만 고집하는 것이 얼마나 아둔한 짓인지 그 일자리가 사라질수록 점점 깨닫게 된다. 닷넷 대 J2EE나 다른 플랫폼도 마찬가지다. 장기근속을 바란다면 직장에서 플랫폼에 대해 중립적이어야 한다. 모두 자신의 취향이 있지만 자신의 이상은 잠시 보류해야만 할 것이다. 하나를 습득하고 다른 하나에 능숙해져라. 자신의 기술이 기술 플랫폼을 넘나들어야 한다. 기술은 단지 도구일 뿐이다.<br>p.64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br><br>가장 못하는 사람이 되라.<br><br>&nbsp;전설적인 재즈 기타리스트 팻 메스니(Pat Metheny)는 젊은 연주자들에게 조언을 한마디 했다. " 속해 있는 밴드에서 항상 가장 못하는 사람이 되라."&nbsp; 자신이 속한 모든 밴드에서 가장 못하는 사람이 되라.<br><br>밴드에서 최악의 사람이라는 것은 항상 작신보다 나은 사람과 연주한다는 것을 의미한다.<br>주변 사람이 자신의 능력에 영향을 준다. 주변 사람을 신중하게 선택하라. <br>p.75<br><br>돕기를 거절하면 쓸모없는 사람이다.<br>여러분은 숙련된 소프트웨어 개발자일지도 모른다. 적절한 기술을 골라 시간과 노력을 적절히 투자해 기술 수준을 다른 사람들보다 높였을 수도 잇다. 그러나 똑똑하고 지식이 있어도 다른 사 돕기를 거절하면 쓸모없는 사람이다.<br>p.278<br><br>노동은 그대가 꾸는 가장 깊은 꿈의 한 조각을 채워줍니다. 노동함으로써 진실로 삶을 사랑할 수 있으며 노동을 통해 삶을 사랑하는 길만이 생의 가장 깊은 비밀을 아는 일입니다.<br>-칼릴 지브란(kahlil gibran), [EL Profeta]<br><br>'지금 무슨 일을 하는지'나 '무엇을 가졌는지'가 중요하지 않다는 것을 진짜 배웠다. 그것은 어떻게 받아들이냐에 달려 있다.<br>그것은 내면의 문제이다. 만족스런 경력을 만들어 나가려면 항상 적극적으로 찾아야 하고 그것을 목적을 갖고 판단하고 결정해야 한다.<br>p.292<br/><br/>tag : <a href="/tag/사랑하지않으면떠나라" rel="tag">사랑하지않으면떠나라</a>,&nbsp;<a href="/tag/독후감" rel="tag">독후감</a>			 ]]> 
		</description>
		<category>사랑하지않으면떠나라</category>
		<category>독후감</category>

		<comments>http://hongsgo.egloos.com/2815467#comments</comments>
		<pubDate>Thu, 30 Jul 2009 07:13:56 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ SAX 방식으로 웹 리소스 파싱할때 2-BYTE 이슈 해결 ]]> </title>
		<link>http://hongsgo.egloos.com/2815330</link>
		<guid>http://hongsgo.egloos.com/2815330</guid>
		<description>
			<![CDATA[ 
  <p>&nbsp;&nbsp;&nbsp; menuXmlSaxHandler = new MenuXmlSaxHandler();<br>&nbsp;&nbsp;&nbsp;&nbsp;factory = SAXParserFactory.newInstance();<br>&nbsp;&nbsp;&nbsp;&nbsp;URL url2 = new URL(url);</p><p><br>&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection httpConn = null;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;httpConn = (HttpURLConnection)url2.openConnection();<br>&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection.setFollowRedirects(true);<br>&nbsp;&nbsp;&nbsp;&nbsp;httpConn.connect();</p><p>&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));</p><p>&nbsp;&nbsp;&nbsp;&nbsp;InputSource is = new InputSource(reader);<br>&nbsp;&nbsp;&nbsp;&nbsp;is.setEncoding("UTF-8");</p><p>&nbsp;&nbsp;&nbsp;&nbsp;sparser = factory.newSAXParser();</p><p>&nbsp;&nbsp;&nbsp;&nbsp;sparser.parse(is,menuXmlSaxHandler);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;httpConn.disconnect();<br><br>로컬에서는 괜찮았는데<br>썬서버에 올리니까 SAX 파싱시 에러가 났다.<br>UTF-8로 저장되지 않아서 그런걸로 짐작.<br>그래서 httpurlconnection을 통해 웹 리소스 xml을 스트림으로 읽어와서<br>inputsource에 넣고 utf-8로 인코딩 한다음 sax parser에게 던져주니 해결&nbsp;&nbsp;&nbsp;&nbsp;</p><br/><br/>tag : <a href="/tag/sax" rel="tag">sax</a>			 ]]> 
		</description>
		<category>JAVA 향기</category>
		<category>sax</category>

		<comments>http://hongsgo.egloos.com/2815330#comments</comments>
		<pubDate>Thu, 30 Jul 2009 06:20:24 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ UTFDataFormatException 처리 ]]> </title>
		<link>http://hongsgo.egloos.com/2734140</link>
		<guid>http://hongsgo.egloos.com/2734140</guid>
		<description>
			<![CDATA[ 
  XML 문서를 모 쇼핑몰에서 받아와 파싱하는 과정에서 UTFDataFormatException 이 발생한다.<br />
<br />
<br />
   log : java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence<br />
<br />
위와 같은 Exception은 처음 보았기에 조금 당황. XML 문서에 영어와 한글이 들어 갔을 때 서로<br />
상이한 에러 메세지가 출력되어 인코딩 문제가 의심이 갔다.<br />
<br />
옆에 있는 인도 엔지니어 친구 왈, <br />
"JDK 1.3에서 parsing 방법은 loose parsing 인데 반해서, JDK 1.4의 parsing 방법은 strict parsing이다"<br />
<br />
정확한 내용을 바로 알아챌 수는 없었지만, parsing 의 내부 규칙이 보다 엄격해 졌다는 감이 왔다.<br />
(추가 학습 필요 ...)<br />
<br />
기존의 소스 코드는 ...<br />
<br />
<br />
   SAXParserFactory parserFactory = SAXParserFactory.newInstance();<br />
   SAXParser saxParser = parserFactory.newSAXParser();<br />
   //..생략<br />
   saxParser.parse(uri, xmlHandler);<br />
<br />
<br />
코드를 모두 공개하는 건 불가하므로 ... <br />
JDK 1.3 에서는 parser 객체를 받아온 후 바로 parse 메소드 호출로 파싱이 가능했다.<br />
더 이상의 부가 작업이 필요치 않았던 것이다.<br />
setValidating(), setNamespaceAware() 정도의 부가 작업만이 필요했는데, JDK 1.4에서는 위 같은<br />
방법으로 하면 처음에 제시했던 Exception이 떨어 졌다.<br />
<br />
일단 인코딩을 지정해주기 위해서 파일 경로를 uri 받는 파싱 대신에 stream으로 받는 파싱 방법을<br />
사용했다.<br />
<br />
<br />
   SAXParserFactory parserFactory = SAXParserFactory.newInstance();<br />
   SAXParser saxParser = parserFactory.newSAXParser();<br />
   //..생략<br />
   FileInputStream stream = new FileInputStream(new File(uri));   <br />
   InputSource inputSource = new InputSource(stream);<br />
   inputSource.setEncoding("euc-kr"); <br />
   saxParser.parse(inputSource, xmlHandler);<br />
<br />
<br />
성공적으로 인코딩을 지정해주었다고 생각했는데.. 수 번을 돌려봐도 동일한 에러가 발생했다.<br />
<br />
다음 문제는 파일을 읽어 들이는 '방법'에 대한 차이때문에 발생했다.<br />
자바 IO에서는 두 가지 방법을 제공하고 있는데, 하나는 stream 구조로 이는 1byte를 기반으로 하고 있다.<br />
두 번째는 write, reader로 이는 2byte를 기반으로 하고 있다. 두 방법의 각각의 차이점과 사용 목적을<br />
가지고 있는데 이는 차후에 다루기 위해서 미뤄 논다.<br />
<br />
해결 방벙은 XML 문서를 읽어 들일 때 stream 기반이 아닌 reader로 읽음으로서 문제 해결.<br />
<br />
<br />
   SAXParserFactory parserFactory = SAXParserFactory.newInstance();<br />
   SAXParser saxParser = parserFactory.newSAXParser();<br />
   //..생략<br />
  FileReader reader= new FileReader(new File(uri));   <br />
  InputSource inputSource = new InputSource(reader);<br />
   inputSource.setEncoding("euc-kr"); <br />
   saxParser.parse(inputSource, xmlHandler);<br />
<br />
<br />
출처 : Tong - 삽질만이 살 길이다님의 JSP & ETC통<br />
			 ]]> 
		</description>
		<category>그외...</category>

		<comments>http://hongsgo.egloos.com/2734140#comments</comments>
		<pubDate>Fri, 24 Jul 2009 05:01:01 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 운동 ]]> </title>
		<link>http://hongsgo.egloos.com/2270982</link>
		<guid>http://hongsgo.egloos.com/2270982</guid>
		<description>
			<![CDATA[ 
  비가 주륵주륵 내리고,<br>우박이 내렸다.<br>지금이 몇시인지 알 수 없는 시간이 찾아왔고,<br>끈적끈적한 땀이 뒤덮은 내 몸을 이끌어<br>휘트니스 센터를 향했다.<br>운동해야지...<br>내 몸을 단련시키기 위해,<br>고통없이 얻는게 없다는 진리를 스스로에게 일깨워주기 위해..<br>한끼 밥을 먹지않앗을때 밀려오는 허기짐과 나약함을 느껴보고는,<br>내 안의 나약함을 다시금&nbsp;반성하게 된다.<br><br>"운동하자 운동하자 운동하자"<br>건강하게 살기위해,<br>내가 하고픈 것들을 메꾸기 위해...<br>정말 공부좀 더 집중해서 하자&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>			 ]]> 
		</description>
		<category>나의 하루</category>

		<comments>http://hongsgo.egloos.com/2270982#comments</comments>
		<pubDate>Tue, 02 Jun 2009 15:20:39 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 푸른 아침의 상념 ]]> </title>
		<link>http://hongsgo.egloos.com/2263062</link>
		<guid>http://hongsgo.egloos.com/2263062</guid>
		<description>
			<![CDATA[ 
  <p>남한산성 동문 주변에 도착해서 숨이 넘어갈듯한 가파른 숨속에<br>잔디밭을 찾았다.<br>잔디에 드러누워 한참 동안이나 하늘을 쳐다보고서는 푸른 하늘의 상념에 빠지게 되었다.<br>길을 걸을때 보던 하늘은 내가 올려다 보아야 했지만,<br>내가 바닥에 누우니 굳이 올려다 보지 않아도<br>내 눈에 펼쳐져 있었다.<br><br>카메라 렌즈를 들어 하늘을 찍어댔다.<br>그리고 상록의 초록색과 하늘의 파란색을 바꾸고는<br>'초현실주의'작품이 탄생헀다며<br>나름 흡족해했다.<br><br>오래전, 사귀던 여자친구의 엉덩이를 두들기며 잘 들어가라고 말하던 때가 있었다. 그때의 그 친구는 몹시도 놀랐던지 타려던 버스를 놓쳐버리고서는 그런 날 한참동안이나 노려보았던거 같다. 이해가지 않는다고선.. ㅎㅎㅎ<br>그때의 나는 부모님의 불화가 싫어, 적어도 나만큼은 처음&nbsp;사귀게 된 여자와 결혼도 하고 평생을 행복하게 사리라는 굳은 결심속에 살고 있었다. 그래, 그랬었지....<br><br>'사랑하던 사람이 떠나고 나서 남는것은 나의 죽음이다.'<br>처음 사랑을 했던 난 죽었고 지금 남은건 죽기전의 기억을 간직한 남은 사랑일 뿐이다.<br>이럴 줄 알았으면 내가진 행운, 사랑을 모두다 그 사람에게 쏟아붇진 않는건데.. ㅎㅎㅎ<br>그 일이 있고나서는 나에게 사랑'이란 '일'보다도 더 시시한 존재로 미루어져 버렸고,<br>쭉&nbsp;이런 모습으로 살아가게 되었다.<br><br>"내가 이 세상에 왜 태어났을까?" 하는 물음의 답을 찾기 위해서...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br><br><br><br><br></p>			 ]]> 
		</description>

		<comments>http://hongsgo.egloos.com/2263062#comments</comments>
		<pubDate>Sun, 31 May 2009 16:24:20 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 건강 ]]> </title>
		<link>http://hongsgo.egloos.com/2262385</link>
		<guid>http://hongsgo.egloos.com/2262385</guid>
		<description>
			<![CDATA[ 
  최근 내 건강이 걱정이 된다.<br>하고싶은 것들도 내가 건강해야만 할 수 있고, 또 돈을 벌수 있으니까.<br>3주정도&nbsp;프로젝을 하면서 지쳤단 이유로 운동을 전혀 하지 않았으니까.<br>조금만 먹어두 살찌는 내 체질이 이럴땐 싫다. ㅎㅎ<br>특히, 눈이 너무 벅벅해서 불편하였다,<br>결국, 남한산성에 올랐다 돌아오는길에 약국에 들러 비타민제 같은 사려고했는데,<br>무려 20마넌이나 하는 약을 사버렸다. ㅋ<br>간과 소장에 좋다나 뭐나 - _-<br>옵타미케어의 제품인데, 약간 다단계 풍이 - _-;;<br>3개월치라서 따지고 보면 크게 비싼건 아닌데,<br>갑자기 또 지출이 나가니까(아껴쓰다가) 크게 느껴진다. ㅎㅎ<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>,&nbsp;<a href="/tag/건강" rel="tag">건강</a>			 ]]> 
		</description>
		<category>옵티마케어</category>
		<category>리웰</category>
		<category>레비큐플러스</category>
		<category>건강의약품</category>
		<category>건강</category>

		<comments>http://hongsgo.egloos.com/2262385#comments</comments>
		<pubDate>Sun, 31 May 2009 13:39:43 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 어른이 되어가는것 ]]> </title>
		<link>http://hongsgo.egloos.com/2252032</link>
		<guid>http://hongsgo.egloos.com/2252032</guid>
		<description>
			<![CDATA[ 
  토요일 아침, 6시간도 체 못 자서 일어 났다.<br>놀고 싶어서, 자는 시간이 아까워서..<br>어제도 새벽 4시까지 놀았던거 같다.<br>ㅋㅋㅋ 아침에 눈을떠 좋아하는 게임을 하다가,<br>동치미에 냉면을 만들어 먹고는<br>감자와 고구마를 찜기에 올렸다.<br>근데 게임하느라 물이 다 쫄고 냄비가 타들어가는줄 모르고 ㅡ.ㅜ 결국 냄비 태워먹었다. <br>집으로부터 엄마가 보내온 택배가 도착했다.<br>토마토 7개 마 5개..<br>어라 근데 신문에 쌓인 마의 중간부분이 마치 쥐가 파먹은것마냥 쓸려있었다. 뭐지 이건 - _-;;<br>박스가 멀쩡한데 쥐가 들어왓을리도 없고. 찜찜.. 그래도 어머니가 보내주신거니 맛있게 먹어야지..<br>그리고 또 보니 장조림 한통... 살찐다고 기름지지 않은 부위로만 특별히 만든.. 맛나겠다.. ㅋㅋ<br>그리고 또.. 고등어조림.. ㅋ 내가 좋아하는대로 만들어서 얼려가지고 보내주셨다능.. ㅎㅎ<br>그러구 감자 몇알.. 감자와 고구마는 얼마전에 사놓은게 있었는데 ㅎㅎ<br>그래두 고향땅에서 보내온 감자는 더 맛있으려나 ㅎㅎㅎ<br>여름이라며 붙여준 차렵이불세트와..<br>고향 방에 있던 내 메모리폼 베게 ㅋㅋ <br>모두 햇볕에 까실까실하게 말려져서 보내져 왔다. ㅎㅎ 색상도 이뿌다 ㅎㅎ<br>붙여진 물건들을 다 정리한 다음,<br>대청소를 시작했다.<br>편의상 집 창가에 널어두었던 건조대를 베란다로 놓고, 빨래를 널고,<br>침대위를 진동 팍팍! 청소기로 갈아끼운다음 침대를 팡! 팡! 털면서 진드기를 잡고<br>어머니가 붙여주신 새 이불 세트를 깔고.. 베게 호청과 배게도 분리해서<br>모두다 나의 트롬 세탁기 안으로 ㄱㄱ 씽~~ 어라<br>이불은 나눠서 세탁해야겠다 싶어, 이불만 빼고 메트와 베게 등을 넣고 먼저 한벙 슝 슝!<br>그러는 사이 스팀 청소기로 방 구석구석을 청소하고, 설거지도 깨끗하게 하고..<br>어머니가 붙여주신 과일과 마를 개끗이 씻어 냉장고로 ㄱㄱ씽 ㅋㅋ<br>휴..<br>설거지 하면서 문득 든 생각..<br>내가 먹은걸 치우는데도 이렇게 힘들고<br>특히 그 씽크대 망을 비울때마다<br>손에 느껴지는 그 미끈미끈하면서 끈쩍한 음식물 찌꺼기의 느낌.. ㅡ.ㅜ]<br>정말 안좋은데, 어머니는 어떻게 다 하셨을까.. 그 긴 세월을.. ㅎㅎ<br>고무장갑 사야겠다 - _-<br>여이제 책상위에 놓여진 토마토와 감자 두알 고구마 두알.. ㅋㅋ<br>이렇게 글을 쓰고 좀 돌려놓은 빨래를 널어놓고<br>회사 헬스장에가서 수영과 헬스를 하다가<br>영화와 장을 보고 집으로 돌아올 예정.. ㅎㅎ<br>&nbsp;&nbsp;&nbsp;&nbsp;<br><br>2시간동안 청소를 했다.<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>,&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>,&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>
		<category>사랑</category>
		<category>청소</category>
		<category>청소기</category>
		<category>스팀청소기</category>
		<category>침대</category>
		<category>이불</category>
		<category>여름</category>

		<comments>http://hongsgo.egloos.com/2252032#comments</comments>
		<pubDate>Sat, 30 May 2009 05:35:39 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 프리마커 문법 ]]> </title>
		<link>http://hongsgo.egloos.com/2234441</link>
		<guid>http://hongsgo.egloos.com/2234441</guid>
		<description>
			<![CDATA[ 
  <p><a href="http://freemarker.org/docs/index.html">http://freemarker.org/docs/index.html</a></p><p>FreeMarker는 Velocity와 마찬가지로 templating 언어이다.<br>우리가 Jsp를 코딩하다보면 날코딩으로 생산성이 떨어진다. 그래서 우리는 좀더 편리하게 사용하기위해서 템플릿 엔진을 사용한다.<br>그리고 가장 큰 장점은 아래의 1번에서 보듯이 매크로 기능으로 기능을 만들어서 사용할 수 있다는 점이다.<br>다음은 FreeMarker의 사용 방법을 기술했다.<br>FTL tag <br>&lt;# &gt; </p><p><br>주석 <br>&lt;#--주석달기--&gt; </p><p><br>반복문 <br>1. <br>&lt;#list [Object code에서 key값 ]&nbsp; as&nbsp; [별칭할 값]&gt; <br>&nbsp;<br>2. for(int i=0;i&lt;10;i++)<br>&lt;#list&nbsp; 1..10&nbsp; as i &gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${i}<br>&nbsp;&nbsp; &lt;#assign i=i+1?int&gt;<br>&nbsp;<br>3. 사이즈를 알고 싶을때.. Key 값이 list 인 경우<br>&nbsp;<br>&lt;#assign size=list?size&gt;<br>&nbsp;<br>4. 다른 변수로 정의하고 싶을때에는 <br>&lt;#setting [새로]=[기존]&gt;</p><p>&nbsp;<br>5. 변수선언 <br>&lt;#assign x=0&gt;&nbsp;&nbsp; &lt;#--x에 0를 할당해 준것이다. --&gt; <br>x값을 출력하고자 할때 --&gt; ${x} </p><p><br>6. &lt;#macro green&gt; <br>“&lt;@green&gt;”이런식으로 쓴다. <br>주로 변하지 않는 변수를 이렇게 선언해서 쓴다. <br>&nbsp;<br>7. 조건문 <br>&lt;#if&gt; <br>&nbsp;<br>8. int형으로 선언해 주고 싶은때에는<br>&lt;#assign x=0 ? int&gt;<br>&nbsp;</p><p>1. @macro<br>- 프리마커 템플릿 전역에서 공통으로 사용되는 UI 디펜던트한 함수는 매크로로 만들어 여러 ftl에서 사용할 수 있도록 해준다. 샘플을 참고하도록 한다.<br>- 형식 : &lt;@매크로명 변수1, 변수2, ... /&gt;<br>- 샘플1) 긴 문자열을 적당한 크기로 자르는 기능의 매크로<br>*사용법 : &lt;@trimX ${item.title}, 20 /&gt;<br>*매크로 : <br>&lt;#macro trimX src max&gt;&lt;#compress&gt;<br>&lt;#if src?length &amp;gt; max&gt;<br>${src[0..max-1]}..<br>&lt;#else&gt;<br>${src}<br>&lt;/#if&gt;<br>&lt;/#compress&gt;&lt;/#macro&gt;</p><p>&nbsp;</p><p>- 샘플2) YYYYMMDD 형식의 문자열을 YYYY.MM.DD 형식으로 변환하는 매크로<br>*사용법 : &lt;@parseDay ${item.regdate} /&gt;<br>*매크로 : <br>&lt;#macro parseDay src&gt;&lt;#compress&gt;<br>&lt;#if src?length == 8&gt;<br>${src[0..3]}.${src[4..5]?number}.${src[6..7]?number}<br>&lt;#else&gt;<br>${src}<br>&lt;/#if&gt;<br>&lt;/#compress&gt;&lt;/#macro&gt;</p><p>&nbsp;</p><p>2. #list<br>- 배열 형식의 오브젝트를 루핑 처리할때 사용하는 프리마커 지시자이다. “로컬엘리어스_index” 라는 변수는 0부터 시작하는 시퀀스번호이다.<br>- 형식 : &lt;#list 배열객체 as 로컬엘리어스명&gt;&lt;/#list&gt;<br>- 샘플1)<br>&lt;#list LIST as item&gt;<br>번호 : ${item_index+1} | 이름 : ${item.name} | 아이디 : ${item.id}<br>&lt;/#list&gt;</p><p>&nbsp;</p><p>3. #if<br>- 프리마커 조건문에 사용되는 지시자이다.<br>- 형식 : &lt;#if 조건식&gt;&lt;/#if&gt;<br>- 샘플1) string 비교<br>&lt;#if ENTITY.usergrade == “A” &gt;......&lt;/#if&gt;<br>- 샘플2) number 비교<br>&lt;#if ENTITY.userclass?number == 3&gt;.....&lt;/#if&gt;<br>- 샘플3) boolean 비교<br>&lt;#if ENTITY.isAuth()&gt;.....&lt;/#if&gt;</p><p>&nbsp;</p><p>4. #break<br>- Loop문을 중단하고 다음 스크립트로 넘어가려고 할때 사용되는 지시자이다.<br>- 형식 : &lt;#break&gt;<br>- 샘플1) 루프문을 실행하는 중 5번째에서 escape 하는 예<br>&lt;#list LIST as item&gt;<br>&lt;#if item_index &amp;gt; 3&gt;&lt;#break&gt;&lt;/#if&gt;<br>&lt;/#list&gt;</p><p>&nbsp;</p><p>5. #assign<br>- 프리마커내에서 사용자 정의 로컬변수가 필요할 때 사용하는 지시자이다.<br>- 형식 : &lt;#assign 로컬변수명 = 초기화값&gt;<br>- 샘플1) &lt;#assign CHECK = item_index&gt;</p><p>&nbsp;</p><p>6. [x...y]<br>- 문자열의 일정 범위를 자를때 사용하는 함수<br>- 형식 : ${문자열[1..5]}<br>- 샘플1) ${item.name[1..5]}</p><p>&nbsp;</p><p>7. ?has_content<br>- 리스트형 오브젝트가 null이 아니고 최소 1개 이상의 컨텐츠를 가지고 있는지 체크하는 함수로써 ?has_content는 ?exists와 ?size&gt;0 두가지 체크를 동시에 해주는 함수이다.<br>- 형식 : 리스트오브젝트?has_content<br>- 샘플1) &lt;#if LIST?has_content&gt;.....&lt;/#if&gt;</p><p>&nbsp;</p><p>8. ?exists<br>- NULL체크 함수. if_exists는 &lt;#if 지시자 없이도 사용할 수 있게 해주는 표현식이다.<br>- 형식 : 오브젝트?exists<br>- 샘플1) &lt;#if ENTITY.username?exists&gt;${ENTITY.username?substring(0, 5)}&lt;/#if&gt;<br>- 샘플2) &lt;#if LIST?exists &amp;&amp; LIST?size &amp;gt; 0&gt;.....&lt;/#if&gt;<br>- 샘플3) ${ENTITY.username?if_exists}</p><p>&nbsp;</p><p>9. ?default<br>- NULL값을 대체해주는 함수<br>- 형식 : 오브젝트?default(디폴트값)<br>- 샘플1) ${item.userclass?default(“99”)}<br>- 샘플2) ${item.age?default(20)}</p><p>&nbsp;</p><p>10. ?string<br>- 문자열로 형변환하는 함수<br>- 형식 : 오브젝트?string<br>- 샘플1) &lt;#if item.age?string == “29”&gt;.....&lt;/#if&gt;<br>- 샘플2) ${item.regdate?string(“yyyy/MM/dd HH:mm”)}<br>- 샘플3) 숫자를 통화표시로 나타내는 예<br>&lt;#assign MONEY = 1234567&gt;<br>${MONEY?string(",##0")}</p><p>&nbsp;</p><p>11. ?number<br>- 숫자로 형변환하는 함수<br>- 형식 : 오브젝트?number<br>- 샘플1) &lt;#if item.userclass?number &amp;gt; 3&gt;.....&lt;/#if&gt;<br>- 샘플2) ${LIST_POINTS[item.gid?number].entityname?default(“”)}</p><p>&nbsp;</p><p>12. ?js_string<br>- 문자열을 자바스크립트에 유효하도록 필터링해주는 함수. 문자열내에 싱글쿼테이션(‘)등이 포함되어 스크립트에 오류가 나는것을 방지하기 위하여 사용되는 함수이다. 화면상에는 HTML 태그로 취급된다.<br>- 형식 : 오브젝트?js_string<br>- 샘플1) 문자열 &lt;img src=’/image/enterprise.gif’&gt;을 js_string으로 처리했을때 소스보기를 하면 &lt;img src=\’/image/enterprise.gif\’&gt;으로 출력된다.<br>- 샘플2) &lt;a href=”javascript:getName(‘${item.homeurl?js_string}’);”&gt;</p><p>&nbsp;</p><p>13. ?html<br>- 문자열을 HTML Symbolic Entity로 필터링해주는 함수. 문자열내의 HTML태그등을 깨뜨려 화면상으로 출력되도록 할때 사용하는 함수이다. 화면상에 HTML태그가 아닌 일반 문자열로 취급된다.<br>- 형식 : 오브젝트?html<br>- 샘플1) 문자열 &lt;img src=’/image/enterprise.gif’&gt;을 html로 처리하면 화면상에 &lt;img src=’/image/enterprise.gif’&gt; 로 출력되고 소스보기를 하면 &amp;lt;img src=’/image/enterprise.gif’&amp;gt;로 출력된다.</p><p><br>14. ?index_of<br>- 특정 문자(열)가 시작되는 위치를 정수형으로 반환한다. 인덱스는 0부터 시작됨.<br>- 형식 : 오브젝트?index_of(특정문자)<br>- 샘플1) “abcde”?index_of(“c”) 는 2를 반환한다.</p><p><br>15. ?replace<br>- 문자열의 일부를 주어진 문자로 대체하는 함수<br>- 형식 : 오브젝트?replace(찾을문자열, 대체할문자열)<br>- 샘플1) ${item.content?replace(“&gt;”, “&amp;gt;”)}</p><p>&nbsp;</p><p>16. item_has_next<br>-리스트 객체의 다음 컨텐츠가 존재하는지(EOF) 체크하는 함수<br>-형식 : 리스트엘리어스이름_has_next<br>-샘플1) 이름과 이름사이에 , 를 찍어주되 마지막은 찍지 않는 경우의 예<br>&lt;#list LIST as item&gt;<br>${item.name?default(“”)}&lt;#if item_has_next&gt;,&lt;/#if&gt;<br>&lt;/#list&gt;</p><p>&nbsp;</p><br/><br/>tag : <a href="/tag/프리마커" rel="tag">프리마커</a>,&nbsp;<a href="/tag/자바" rel="tag">자바</a>			 ]]> 
		</description>
		<category>JAVA 향기</category>
		<category>프리마커</category>
		<category>자바</category>

		<comments>http://hongsgo.egloos.com/2234441#comments</comments>
		<pubDate>Mon, 25 May 2009 06:52:53 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 담배,오뎅 그리고 폭풍우 ]]> </title>
		<link>http://hongsgo.egloos.com/2233356</link>
		<guid>http://hongsgo.egloos.com/2233356</guid>
		<description>
			<![CDATA[ 
  폭풍우가 치던 날 이었다.<br>하루중 어느때인지 가늠 할 수 없는. '시간'이란 단어가 사라져버린 세상이 찾아왔다.<br>조그마한 어촌 마을에는 태풍 주의보가 내려져 있었고, 비가 억수같이 쏟아져내리는<br>버스 종점에는 거친 숨을 내뿜던 기계들이 아무렇게나 늘어져 있었다.<br><br>그때 내 손엔 아버지의 담배값이 들려져 있었고, 아직 초등학교에 입학하기<br>전이었던 것 같다.<br>우리집에서 가장 가까웠던 담배가게는 버스 종점 어귀 어디엔가에 있는 조그마한 구멍가게,<br>지친 몸과 거칠은 손을 가진 사람들이 뜨거운 난로 주전자의 김을 쐬며,<br>얼은 몸과 그날의 근심들을 조금이나마 날려보낼 수 있는 공간이었다.<br>나 또한 비슷한 맘으로 그 곳을 찾았고, 아버지의 담배를 사고남은 돈으로<br>무엇인가를 하려 할때, 내 눈에 보인건 뜨거운 김이 모락모락 나는<br>큰 냄비에 사이 좋게 들어있던 '오뎅' 이었다.<br><br>"아줌마 저 오뎅 얼마에요? 저거 하나 먹을께요."<br>그러구선 먹기 시작한 오뎅..<br>살금 살금 아껴먹던 와중 옆에 있던 기사아저씨 한분이<br>성큼 성큼 오뎅을 먹었다.<br>몇번 먹다 질렸는지 어딘가에 양념처럼 찍어먹었는데,<br>그러구선 내가 이해 할 수 없는 묘한 표정을 지으며 이내<br>만족한듯이 다시 찍어 먹곤 했다.<br>그 아저씨가 남은 오뎅조각을 털어놓고 문을 나서려 할때,<br>호기심에 가득 찬 눈으로 주인아주머니에게 물었다.<br>"아줌마 저거 찍어먹는거 뭐에요?"<br>그때의 그 아주머니는 따분하고 지루해하다. 이거 재밌겠다 싶은<br>표정과 느낌으로 나에게 말했다.<br>"거기다가 오뎅 찍어 먹어봐 맛있어!"<br>음.. 지금도 누군가가 나에게 "무엇 무엇이 그렇다" 라고 말하면<br>곧잘 믿어버리듯이, 그때도 그랬다.<br>아.. 그렇구나 찍어 먹으면 맛있는 건가보다.. 하고..<br>오뎅에다가 그 무엇인가를 [듬뿍]찍었던거 같다.<br>아까워서 아겨먹던 그 오뎅을 말이다.<br>그래, 결국 난&nbsp;오뎅에다 '그것'을 듬뿍 찍었고<br>입에 털어넣었다.<br>"으아아아아아아아악!!!" 이게 무슨 맛이야!!!<br>콧구멍과. 얼굴 전체의 구멍과 구멍이란곳에서는<br>뜨겁고 매운 김이 뿜어져 나오는 듯 했다.<br>죽을 쌍을한 내 얼굴을 보고 안되어 보였는지<br>그 아주머니는 한마디 하였다. " 그거 겨자야..."<br>그때 내 뇌리에 박혔던 3글자가 있었다 "연겨자"<br>그 이후로 난 겨자라면 조심스럽게 되었고,<br>냉면을 먹을때나 어디에서건 겨자를 볼때면 그때를 떠 올리며<br>그때의 오뎅조각을 아껴먹던 내 모습을 떠올리곤 한다.<br>그러구선.. 이미 내 기억은 오랜 시간을 지나쳐 왔구나... 하고<br><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>,&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>
		<category>에세이</category>

		<comments>http://hongsgo.egloos.com/2233356#comments</comments>
		<pubDate>Sun, 24 May 2009 15:15:41 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 신촌에서 돌아오는길 ]]> </title>
		<link>http://hongsgo.egloos.com/2208835</link>
		<guid>http://hongsgo.egloos.com/2208835</guid>
		<description>
			<![CDATA[ 
  누군가의 문상을 다녀오며,<br>신촌 길을 걸어내려오는길,<br>때마침 성년의 날이라. 손마다 장미 한송이씩을 꼭 쥐며<br>웃고 떠드는 사람들을 볼때마다<br>나의 젊음이 그리워진다.<br>난 또래 애들보다 더 빨리 사랑을했었다.<br><br>지하철 안 휴대폰을 꺼내어 사랑에 대한 글을 읽어내려간다.<br>익숙한 글귀에서 내 시선이 머물다가<br>곧, 허공을 바라보며 생각에 잠긴다.<br>하루종일 전화기를 붙잡고 누군가에게 <br>" 넌 누구꺼?, 지홍이꺼" 라는<br>유치한 말을 주문하고서는<br>그 수줍은 듯한 몇 마디 대답을 듣고나면<br>세상을 다 가진것처럼 마냥 행복해하던 시절이 있었음을<br>떠올리게 되었다.<br>그래, 나에게도 그런 사람이 있었지,<br>자신보다 날 더 사랑해주고, 그 누구보다 내게 진실했던 사람.. <br><br>지금 내 삶은 너무도 자유롭고 행복하다.<br>&nbsp;&nbsp;<br>			 ]]> 
		</description>
		<category>나의 하루</category>

		<comments>http://hongsgo.egloos.com/2208835#comments</comments>
		<pubDate>Mon, 18 May 2009 15:23:42 GMT</pubDate>
		<dc:creator>행복하자</dc:creator>
	</item>
</channel>
</rss>
