Egloos | Log-in


건강

최근 내 건강이 걱정이 된다.
하고싶은 것들도 내가 건강해야만 할 수 있고, 또 돈을 벌수 있으니까.
3주정도 프로젝을 하면서 지쳤단 이유로 운동을 전혀 하지 않았으니까.
조금만 먹어두 살찌는 내 체질이 이럴땐 싫다. ㅎㅎ
특히, 눈이 너무 벅벅해서 불편하였다,
결국, 남한산성에 올랐다 돌아오는길에 약국에 들러 비타민제 같은 사려고했는데,
무려 20마넌이나 하는 약을 사버렸다. ㅋ
간과 소장에 좋다나 뭐나 - _-
옵타미케어의 제품인데, 약간 다단계 풍이 - _-;;
3개월치라서 따지고 보면 크게 비싼건 아닌데,
갑자기 또 지출이 나가니까(아껴쓰다가) 크게 느껴진다. ㅎㅎ
아무튼, 건강하게 살자.
그리고 열심히 공부하자.

by 행복하자 | 2009/05/31 22:39 | 트랙백 | 덧글(0)

어른이 되어가는것

토요일 아침, 6시간도 체 못 자서 일어 났다.
놀고 싶어서, 자는 시간이 아까워서..
어제도 새벽 4시까지 놀았던거 같다.
ㅋㅋㅋ 아침에 눈을떠 좋아하는 게임을 하다가,
동치미에 냉면을 만들어 먹고는
감자와 고구마를 찜기에 올렸다.
근데 게임하느라 물이 다 쫄고 냄비가 타들어가는줄 모르고 ㅡ.ㅜ 결국 냄비 태워먹었다.
집으로부터 엄마가 보내온 택배가 도착했다.
토마토 7개 마 5개..
어라 근데 신문에 쌓인 마의 중간부분이 마치 쥐가 파먹은것마냥 쓸려있었다. 뭐지 이건 - _-;;
박스가 멀쩡한데 쥐가 들어왓을리도 없고. 찜찜.. 그래도 어머니가 보내주신거니 맛있게 먹어야지..
그리고 또 보니 장조림 한통... 살찐다고 기름지지 않은 부위로만 특별히 만든.. 맛나겠다.. ㅋㅋ
그리고 또.. 고등어조림.. ㅋ 내가 좋아하는대로 만들어서 얼려가지고 보내주셨다능.. ㅎㅎ
그러구 감자 몇알.. 감자와 고구마는 얼마전에 사놓은게 있었는데 ㅎㅎ
그래두 고향땅에서 보내온 감자는 더 맛있으려나 ㅎㅎㅎ
여름이라며 붙여준 차렵이불세트와..
고향 방에 있던 내 메모리폼 베게 ㅋㅋ
모두 햇볕에 까실까실하게 말려져서 보내져 왔다. ㅎㅎ 색상도 이뿌다 ㅎㅎ
붙여진 물건들을 다 정리한 다음,
대청소를 시작했다.
편의상 집 창가에 널어두었던 건조대를 베란다로 놓고, 빨래를 널고,
침대위를 진동 팍팍! 청소기로 갈아끼운다음 침대를 팡! 팡! 털면서 진드기를 잡고
어머니가 붙여주신 새 이불 세트를 깔고.. 베게 호청과 배게도 분리해서
모두다 나의 트롬 세탁기 안으로 ㄱㄱ 씽~~ 어라
이불은 나눠서 세탁해야겠다 싶어, 이불만 빼고 메트와 베게 등을 넣고 먼저 한벙 슝 슝!
그러는 사이 스팀 청소기로 방 구석구석을 청소하고, 설거지도 깨끗하게 하고..
어머니가 붙여주신 과일과 마를 개끗이 씻어 냉장고로 ㄱㄱ씽 ㅋㅋ
휴..
설거지 하면서 문득 든 생각..
내가 먹은걸 치우는데도 이렇게 힘들고
특히 그 씽크대 망을 비울때마다
손에 느껴지는 그 미끈미끈하면서 끈쩍한 음식물 찌꺼기의 느낌.. ㅡ.ㅜ]
정말 안좋은데, 어머니는 어떻게 다 하셨을까.. 그 긴 세월을.. ㅎㅎ
고무장갑 사야겠다 - _-
여이제 책상위에 놓여진 토마토와 감자 두알 고구마 두알.. ㅋㅋ
이렇게 글을 쓰고 좀 돌려놓은 빨래를 널어놓고
회사 헬스장에가서 수영과 헬스를 하다가
영화와 장을 보고 집으로 돌아올 예정.. ㅎㅎ
    

2시간동안 청소를 했다.

by 행복하자 | 2009/05/30 14:35 | 나의 하루 | 트랙백 | 덧글(0)

프리마커 문법

http://freemarker.org/docs/index.html

FreeMarker는 Velocity와 마찬가지로 templating 언어이다.
우리가 Jsp를 코딩하다보면 날코딩으로 생산성이 떨어진다. 그래서 우리는 좀더 편리하게 사용하기위해서 템플릿 엔진을 사용한다.
그리고 가장 큰 장점은 아래의 1번에서 보듯이 매크로 기능으로 기능을 만들어서 사용할 수 있다는 점이다.
다음은 FreeMarker의 사용 방법을 기술했다.
FTL tag
<# >


주석
<#--주석달기-->


반복문
1.
<#list [Object code에서 key값 ]  as  [별칭할 값]>
 
2. for(int i=0;i<10;i++)
<#list  1..10  as i >
      ${i}
   <#assign i=i+1?int>
 
3. 사이즈를 알고 싶을때.. Key 값이 list 인 경우
 
<#assign size=list?size>
 
4. 다른 변수로 정의하고 싶을때에는
<#setting [새로]=[기존]>

 
5. 변수선언
<#assign x=0>   <#--x에 0를 할당해 준것이다. -->
x값을 출력하고자 할때 --> ${x}


6. <#macro green>
“<@green>”이런식으로 쓴다.
주로 변하지 않는 변수를 이렇게 선언해서 쓴다.
 
7. 조건문
<#if>
 
8. int형으로 선언해 주고 싶은때에는
<#assign x=0 ? int>
 

1. @macro
- 프리마커 템플릿 전역에서 공통으로 사용되는 UI 디펜던트한 함수는 매크로로 만들어 여러 ftl에서 사용할 수 있도록 해준다. 샘플을 참고하도록 한다.
- 형식 : <@매크로명 변수1, 변수2, ... />
- 샘플1) 긴 문자열을 적당한 크기로 자르는 기능의 매크로
*사용법 : <@trimX ${item.title}, 20 />
*매크로 :
<#macro trimX src max><#compress>
<#if src?length &gt; max>
${src[0..max-1]}..
<#else>
${src}
</#if>
</#compress></#macro>

 

- 샘플2) YYYYMMDD 형식의 문자열을 YYYY.MM.DD 형식으로 변환하는 매크로
*사용법 : <@parseDay ${item.regdate} />
*매크로 :
<#macro parseDay src><#compress>
<#if src?length == 8>
${src[0..3]}.${src[4..5]?number}.${src[6..7]?number}
<#else>
${src}
</#if>
</#compress></#macro>

 

2. #list
- 배열 형식의 오브젝트를 루핑 처리할때 사용하는 프리마커 지시자이다. “로컬엘리어스_index” 라는 변수는 0부터 시작하는 시퀀스번호이다.
- 형식 : <#list 배열객체 as 로컬엘리어스명></#list>
- 샘플1)
<#list LIST as item>
번호 : ${item_index+1} | 이름 : ${item.name} | 아이디 : ${item.id}
</#list>

 

3. #if
- 프리마커 조건문에 사용되는 지시자이다.
- 형식 : <#if 조건식></#if>
- 샘플1) string 비교
<#if ENTITY.usergrade == “A” >......</#if>
- 샘플2) number 비교
<#if ENTITY.userclass?number == 3>.....</#if>
- 샘플3) boolean 비교
<#if ENTITY.isAuth()>.....</#if>

 

4. #break
- Loop문을 중단하고 다음 스크립트로 넘어가려고 할때 사용되는 지시자이다.
- 형식 : <#break>
- 샘플1) 루프문을 실행하는 중 5번째에서 escape 하는 예
<#list LIST as item>
<#if item_index &gt; 3><#break></#if>
</#list>

 

5. #assign
- 프리마커내에서 사용자 정의 로컬변수가 필요할 때 사용하는 지시자이다.
- 형식 : <#assign 로컬변수명 = 초기화값>
- 샘플1) <#assign CHECK = item_index>

 

6. [x...y]
- 문자열의 일정 범위를 자를때 사용하는 함수
- 형식 : ${문자열[1..5]}
- 샘플1) ${item.name[1..5]}

 

7. ?has_content
- 리스트형 오브젝트가 null이 아니고 최소 1개 이상의 컨텐츠를 가지고 있는지 체크하는 함수로써 ?has_content는 ?exists와 ?size>0 두가지 체크를 동시에 해주는 함수이다.
- 형식 : 리스트오브젝트?has_content
- 샘플1) <#if LIST?has_content>.....</#if>

 

8. ?exists
- NULL체크 함수. if_exists는 <#if 지시자 없이도 사용할 수 있게 해주는 표현식이다.
- 형식 : 오브젝트?exists
- 샘플1) <#if ENTITY.username?exists>${ENTITY.username?substring(0, 5)}</#if>
- 샘플2) <#if LIST?exists && LIST?size &gt; 0>.....</#if>
- 샘플3) ${ENTITY.username?if_exists}

 

9. ?default
- NULL값을 대체해주는 함수
- 형식 : 오브젝트?default(디폴트값)
- 샘플1) ${item.userclass?default(“99”)}
- 샘플2) ${item.age?default(20)}

 

10. ?string
- 문자열로 형변환하는 함수
- 형식 : 오브젝트?string
- 샘플1) <#if item.age?string == “29”>.....</#if>
- 샘플2) ${item.regdate?string(“yyyy/MM/dd HH:mm”)}
- 샘플3) 숫자를 통화표시로 나타내는 예
<#assign MONEY = 1234567>
${MONEY?string(",##0")}

 

11. ?number
- 숫자로 형변환하는 함수
- 형식 : 오브젝트?number
- 샘플1) <#if item.userclass?number &gt; 3>.....</#if>
- 샘플2) ${LIST_POINTS[item.gid?number].entityname?default(“”)}

 

12. ?js_string
- 문자열을 자바스크립트에 유효하도록 필터링해주는 함수. 문자열내에 싱글쿼테이션(‘)등이 포함되어 스크립트에 오류가 나는것을 방지하기 위하여 사용되는 함수이다. 화면상에는 HTML 태그로 취급된다.
- 형식 : 오브젝트?js_string
- 샘플1) 문자열 <img src=’/image/enterprise.gif’>을 js_string으로 처리했을때 소스보기를 하면 <img src=\’/image/enterprise.gif\’>으로 출력된다.
- 샘플2) <a href=”javascript:getName(‘${item.homeurl?js_string}’);”>

 

13. ?html
- 문자열을 HTML Symbolic Entity로 필터링해주는 함수. 문자열내의 HTML태그등을 깨뜨려 화면상으로 출력되도록 할때 사용하는 함수이다. 화면상에 HTML태그가 아닌 일반 문자열로 취급된다.
- 형식 : 오브젝트?html
- 샘플1) 문자열 <img src=’/image/enterprise.gif’>을 html로 처리하면 화면상에 <img src=’/image/enterprise.gif’> 로 출력되고 소스보기를 하면 &lt;img src=’/image/enterprise.gif’&gt;로 출력된다.


14. ?index_of
- 특정 문자(열)가 시작되는 위치를 정수형으로 반환한다. 인덱스는 0부터 시작됨.
- 형식 : 오브젝트?index_of(특정문자)
- 샘플1) “abcde”?index_of(“c”) 는 2를 반환한다.


15. ?replace
- 문자열의 일부를 주어진 문자로 대체하는 함수
- 형식 : 오브젝트?replace(찾을문자열, 대체할문자열)
- 샘플1) ${item.content?replace(“>”, “&gt;”)}

 

16. item_has_next
-리스트 객체의 다음 컨텐츠가 존재하는지(EOF) 체크하는 함수
-형식 : 리스트엘리어스이름_has_next
-샘플1) 이름과 이름사이에 , 를 찍어주되 마지막은 찍지 않는 경우의 예
<#list LIST as item>
${item.name?default(“”)}<#if item_has_next>,</#if>
</#list>

 

by 행복하자 | 2009/05/25 15:52 | JAVA 향기 | 트랙백 | 덧글(2)

담배,오뎅 그리고 폭풍우

폭풍우가 치던 날 이었다.
하루중 어느때인지 가늠 할 수 없는. '시간'이란 단어가 사라져버린 세상이 찾아왔다.
조그마한 어촌 마을에는 태풍 주의보가 내려져 있었고, 비가 억수같이 쏟아져내리는
버스 종점에는 거친 숨을 내뿜던 기계들이 아무렇게나 늘어져 있었다.

그때 내 손엔 아버지의 담배값이 들려져 있었고, 아직 초등학교에 입학하기
전이었던 것 같다.
우리집에서 가장 가까웠던 담배가게는 버스 종점 어귀 어디엔가에 있는 조그마한 구멍가게,
지친 몸과 거칠은 손을 가진 사람들이 뜨거운 난로 주전자의 김을 쐬며,
얼은 몸과 그날의 근심들을 조금이나마 날려보낼 수 있는 공간이었다.
나 또한 비슷한 맘으로 그 곳을 찾았고, 아버지의 담배를 사고남은 돈으로
무엇인가를 하려 할때, 내 눈에 보인건 뜨거운 김이 모락모락 나는
큰 냄비에 사이 좋게 들어있던 '오뎅' 이었다.

"아줌마 저 오뎅 얼마에요? 저거 하나 먹을께요."
그러구선 먹기 시작한 오뎅..
살금 살금 아껴먹던 와중 옆에 있던 기사아저씨 한분이
성큼 성큼 오뎅을 먹었다.
몇번 먹다 질렸는지 어딘가에 양념처럼 찍어먹었는데,
그러구선 내가 이해 할 수 없는 묘한 표정을 지으며 이내
만족한듯이 다시 찍어 먹곤 했다.
그 아저씨가 남은 오뎅조각을 털어놓고 문을 나서려 할때,
호기심에 가득 찬 눈으로 주인아주머니에게 물었다.
"아줌마 저거 찍어먹는거 뭐에요?"
그때의 그 아주머니는 따분하고 지루해하다. 이거 재밌겠다 싶은
표정과 느낌으로 나에게 말했다.
"거기다가 오뎅 찍어 먹어봐 맛있어!"
음.. 지금도 누군가가 나에게 "무엇 무엇이 그렇다" 라고 말하면
곧잘 믿어버리듯이, 그때도 그랬다.
아.. 그렇구나 찍어 먹으면 맛있는 건가보다.. 하고..
오뎅에다가 그 무엇인가를 [듬뿍]찍었던거 같다.
아까워서 아겨먹던 그 오뎅을 말이다.
그래, 결국 난 오뎅에다 '그것'을 듬뿍 찍었고
입에 털어넣었다.
"으아아아아아아아악!!!" 이게 무슨 맛이야!!!
콧구멍과. 얼굴 전체의 구멍과 구멍이란곳에서는
뜨겁고 매운 김이 뿜어져 나오는 듯 했다.
죽을 쌍을한 내 얼굴을 보고 안되어 보였는지
그 아주머니는 한마디 하였다. " 그거 겨자야..."
그때 내 뇌리에 박혔던 3글자가 있었다 "연겨자"
그 이후로 난 겨자라면 조심스럽게 되었고,
냉면을 먹을때나 어디에서건 겨자를 볼때면 그때를 떠 올리며
그때의 오뎅조각을 아껴먹던 내 모습을 떠올리곤 한다.
그러구선.. 이미 내 기억은 오랜 시간을 지나쳐 왔구나... 하고



by 행복하자 | 2009/05/25 00:15 | 나의 하루 | 트랙백 | 덧글(0)

신촌에서 돌아오는길

누군가의 문상을 다녀오며,
신촌 길을 걸어내려오는길,
때마침 성년의 날이라. 손마다 장미 한송이씩을 꼭 쥐며
웃고 떠드는 사람들을 볼때마다
나의 젊음이 그리워진다.
난 또래 애들보다 더 빨리 사랑을했었다.

지하철 안 휴대폰을 꺼내어 사랑에 대한 글을 읽어내려간다.
익숙한 글귀에서 내 시선이 머물다가
곧, 허공을 바라보며 생각에 잠긴다.
하루종일 전화기를 붙잡고 누군가에게
" 넌 누구꺼?, 지홍이꺼" 라는
유치한 말을 주문하고서는
그 수줍은 듯한 몇 마디 대답을 듣고나면
세상을 다 가진것처럼 마냥 행복해하던 시절이 있었음을
떠올리게 되었다.
그래, 나에게도 그런 사람이 있었지,
자신보다 날 더 사랑해주고, 그 누구보다 내게 진실했던 사람..

지금 내 삶은 너무도 자유롭고 행복하다.
  

by 행복하자 | 2009/05/19 00:23 | 나의 하루 | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶