Egloos | Log-in


"사랑하지 않으면 떠나라"를 읽고 중요했던 부분 발췌


또 다른 인위적(이고 받아들기 어려운) 경계는 플랫폼 또는 운영체제다. 윈도를 거부하고 유닉스만 고집하는 것이 얼마나 아둔한 짓인지 그 일자리가 사라질수록 점점 깨닫게 된다. 닷넷 대 J2EE나 다른 플랫폼도 마찬가지다. 장기근속을 바란다면 직장에서 플랫폼에 대해 중립적이어야 한다. 모두 자신의 취향이 있지만 자신의 이상은 잠시 보류해야만 할 것이다. 하나를 습득하고 다른 하나에 능숙해져라. 자신의 기술이 기술 플랫폼을 넘나들어야 한다. 기술은 단지 도구일 뿐이다.
p.64     


가장 못하는 사람이 되라.

 전설적인 재즈 기타리스트 팻 메스니(Pat Metheny)는 젊은 연주자들에게 조언을 한마디 했다. " 속해 있는 밴드에서 항상 가장 못하는 사람이 되라."  자신이 속한 모든 밴드에서 가장 못하는 사람이 되라.

밴드에서 최악의 사람이라는 것은 항상 작신보다 나은 사람과 연주한다는 것을 의미한다.
주변 사람이 자신의 능력에 영향을 준다. 주변 사람을 신중하게 선택하라.
p.75

돕기를 거절하면 쓸모없는 사람이다.
여러분은 숙련된 소프트웨어 개발자일지도 모른다. 적절한 기술을 골라 시간과 노력을 적절히 투자해 기술 수준을 다른 사람들보다 높였을 수도 잇다. 그러나 똑똑하고 지식이 있어도 다른 사 돕기를 거절하면 쓸모없는 사람이다.
p.278

노동은 그대가 꾸는 가장 깊은 꿈의 한 조각을 채워줍니다. 노동함으로써 진실로 삶을 사랑할 수 있으며 노동을 통해 삶을 사랑하는 길만이 생의 가장 깊은 비밀을 아는 일입니다.
-칼릴 지브란(kahlil gibran), [EL Profeta]

'지금 무슨 일을 하는지'나 '무엇을 가졌는지'가 중요하지 않다는 것을 진짜 배웠다. 그것은 어떻게 받아들이냐에 달려 있다.
그것은 내면의 문제이다. 만족스런 경력을 만들어 나가려면 항상 적극적으로 찾아야 하고 그것을 목적을 갖고 판단하고 결정해야 한다.
p.292

by 행복하자 | 2009/07/30 16:13 | 트랙백 | 덧글(0)

SAX 방식으로 웹 리소스 파싱할때 2-BYTE 이슈 해결

    menuXmlSaxHandler = new MenuXmlSaxHandler();
    factory = SAXParserFactory.newInstance();
    URL url2 = new URL(url);


    HttpURLConnection httpConn = null;

    httpConn = (HttpURLConnection)url2.openConnection();
    HttpURLConnection.setFollowRedirects(true);
    httpConn.connect();

    BufferedReader reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));

    InputSource is = new InputSource(reader);
    is.setEncoding("UTF-8");

    sparser = factory.newSAXParser();

    sparser.parse(is,menuXmlSaxHandler);

    httpConn.disconnect();

로컬에서는 괜찮았는데
썬서버에 올리니까 SAX 파싱시 에러가 났다.
UTF-8로 저장되지 않아서 그런걸로 짐작.
그래서 httpurlconnection을 통해 웹 리소스 xml을 스트림으로 읽어와서
inputsource에 넣고 utf-8로 인코딩 한다음 sax parser에게 던져주니 해결    

by 행복하자 | 2009/07/30 15:20 | JAVA 향기 | 트랙백 | 덧글(0)

UTFDataFormatException 처리

XML 문서를 모 쇼핑몰에서 받아와 파싱하는 과정에서 UTFDataFormatException 이 발생한다.


log : java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence

위와 같은 Exception은 처음 보았기에 조금 당황. XML 문서에 영어와 한글이 들어 갔을 때 서로
상이한 에러 메세지가 출력되어 인코딩 문제가 의심이 갔다.

옆에 있는 인도 엔지니어 친구 왈,
"JDK 1.3에서 parsing 방법은 loose parsing 인데 반해서, JDK 1.4의 parsing 방법은 strict parsing이다"

정확한 내용을 바로 알아챌 수는 없었지만, parsing 의 내부 규칙이 보다 엄격해 졌다는 감이 왔다.
(추가 학습 필요 ...)

기존의 소스 코드는 ...


SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = parserFactory.newSAXParser();
//..생략
saxParser.parse(uri, xmlHandler);


코드를 모두 공개하는 건 불가하므로 ...
JDK 1.3 에서는 parser 객체를 받아온 후 바로 parse 메소드 호출로 파싱이 가능했다.
더 이상의 부가 작업이 필요치 않았던 것이다.
setValidating(), setNamespaceAware() 정도의 부가 작업만이 필요했는데, JDK 1.4에서는 위 같은
방법으로 하면 처음에 제시했던 Exception이 떨어 졌다.

일단 인코딩을 지정해주기 위해서 파일 경로를 uri 받는 파싱 대신에 stream으로 받는 파싱 방법을
사용했다.


SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = parserFactory.newSAXParser();
//..생략
FileInputStream stream = new FileInputStream(new File(uri));
InputSource inputSource = new InputSource(stream);
inputSource.setEncoding("euc-kr");
saxParser.parse(inputSource, xmlHandler);


성공적으로 인코딩을 지정해주었다고 생각했는데.. 수 번을 돌려봐도 동일한 에러가 발생했다.

다음 문제는 파일을 읽어 들이는 '방법'에 대한 차이때문에 발생했다.
자바 IO에서는 두 가지 방법을 제공하고 있는데, 하나는 stream 구조로 이는 1byte를 기반으로 하고 있다.
두 번째는 write, reader로 이는 2byte를 기반으로 하고 있다. 두 방법의 각각의 차이점과 사용 목적을
가지고 있는데 이는 차후에 다루기 위해서 미뤄 논다.

해결 방벙은 XML 문서를 읽어 들일 때 stream 기반이 아닌 reader로 읽음으로서 문제 해결.


SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = parserFactory.newSAXParser();
//..생략
FileReader reader= new FileReader(new File(uri));
InputSource inputSource = new InputSource(reader);
inputSource.setEncoding("euc-kr");
saxParser.parse(inputSource, xmlHandler);


출처 : Tong - 삽질만이 살 길이다님의 JSP & ETC통

by 행복하자 | 2009/07/24 14:01 | 그외... | 트랙백 | 덧글(0)

운동

비가 주륵주륵 내리고,
우박이 내렸다.
지금이 몇시인지 알 수 없는 시간이 찾아왔고,
끈적끈적한 땀이 뒤덮은 내 몸을 이끌어
휘트니스 센터를 향했다.
운동해야지...
내 몸을 단련시키기 위해,
고통없이 얻는게 없다는 진리를 스스로에게 일깨워주기 위해..
한끼 밥을 먹지않앗을때 밀려오는 허기짐과 나약함을 느껴보고는,
내 안의 나약함을 다시금 반성하게 된다.

"운동하자 운동하자 운동하자"
건강하게 살기위해,
내가 하고픈 것들을 메꾸기 위해...
정말 공부좀 더 집중해서 하자                                                

by 행복하자 | 2009/06/03 00:20 | 나의 하루 | 트랙백 | 덧글(4)

푸른 아침의 상념

남한산성 동문 주변에 도착해서 숨이 넘어갈듯한 가파른 숨속에
잔디밭을 찾았다.
잔디에 드러누워 한참 동안이나 하늘을 쳐다보고서는 푸른 하늘의 상념에 빠지게 되었다.
길을 걸을때 보던 하늘은 내가 올려다 보아야 했지만,
내가 바닥에 누우니 굳이 올려다 보지 않아도
내 눈에 펼쳐져 있었다.

카메라 렌즈를 들어 하늘을 찍어댔다.
그리고 상록의 초록색과 하늘의 파란색을 바꾸고는
'초현실주의'작품이 탄생헀다며
나름 흡족해했다.

오래전, 사귀던 여자친구의 엉덩이를 두들기며 잘 들어가라고 말하던 때가 있었다. 그때의 그 친구는 몹시도 놀랐던지 타려던 버스를 놓쳐버리고서는 그런 날 한참동안이나 노려보았던거 같다. 이해가지 않는다고선.. ㅎㅎㅎ
그때의 나는 부모님의 불화가 싫어, 적어도 나만큼은 처음 사귀게 된 여자와 결혼도 하고 평생을 행복하게 사리라는 굳은 결심속에 살고 있었다. 그래, 그랬었지....

'사랑하던 사람이 떠나고 나서 남는것은 나의 죽음이다.'
처음 사랑을 했던 난 죽었고 지금 남은건 죽기전의 기억을 간직한 남은 사랑일 뿐이다.
이럴 줄 알았으면 내가진 행운, 사랑을 모두다 그 사람에게 쏟아붇진 않는건데.. ㅎㅎㅎ
그 일이 있고나서는 나에게 사랑'이란 '일'보다도 더 시시한 존재로 미루어져 버렸고,
쭉 이런 모습으로 살아가게 되었다.

"내가 이 세상에 왜 태어났을까?" 하는 물음의 답을 찾기 위해서...         





by 행복하자 | 2009/06/01 01:24 | 트랙백 | 덧글(0)

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