'분류 전체보기'에 해당되는 글 256건

  1. 2008.10.29 Daum Lycos 개발자 컨퍼러스 3일차!
  2. 2008.10.29 Daum Lycos 개발자 컨퍼러스 2일차!
  3. 2008.10.29 Daum Lycos 개발자 컨퍼러스 1일차!
  4. 2008.10.20 성능시험 방법론과 실무 1
  5. 2008.10.16 dom4j 파싱 / 생성 3
  6. 2008.09.18 같은구문
  7. 2008.09.11 웹진화론 / 내일은 무슨일이??
  8. 2008.09.10 Thinking in java/ 내코드는 jdk 몇버전?
  9. 2008.07.24 이클립스 3.4 플러그인 삭제
  10. 2008.07.24 이클립스 3.4 띄우는 속도 높이기 1

아침에 일어나보니...
일어나보니..
하늘이 맑다!

이번 컨퍼런스 내둥 비가 왔는데 세미나 다 끝나고 돌아가려고 가방을 챙겨드니
하늘은 푸른 얼굴을 하얀 구름사이사이로 내비쳤다.

아~
정말 비가 필요한 지자체는 꼭! Daum Lycos 개발자 컨퍼런스를 유치해볼것을 권유해본다.
그래도 돌아가는 길에 푸른하늘이 머리위에 머물어서 기분은 좋았다.
머리에 가득 담은 많은것들이 업무에서 발휘될것 같은 좋은 느낌이 든다.

발표에 수고해준 많은 분들 수고하셨구요.
더불어 준비에 힘써주신 .. 모두들~ 감사합니다. ^^



안녕~
내년에 또만나요 ^^

우리.. 혹시.. 컨퍼런스 온것이 아니고 유격 비슷한것 하러 온게 아닐까?
난 아침에 눈띄며 이런 생각을 했다.
회사 출근시간은 10시!
하지만 컨퍼런스에서 밥이라도 먹을만큼 일어나려면 7시00시 기상!
세미나는 9:00 부터 시작되었다.


누구하나 땡땡이 치고 안 올법한 시간부터 진행되는 아침 발표였는데 정말 놀라운것은
모두 왔다. 모두.. 하나도 빠짐없이.. 빈자리가 없이 모두 왔다.
지적갈증이 브레인의 이드를 이성이 지배한것이 아닌가 생각되었다.


2일차 키노트의 영광은 "도전무한도전 지식" 의 정재승 교수가 등장하셨다.
~ 하셨는데요! 그런데요~
매일아침 라디오를 통해 바른 발음, 정확한 발음을 선보이시며 과학을 이야기하는분이 연단에
오르셨다.
개발자 뇌구조를 웃기라고 표현하는 수준을 넘어 정말 뇌를 분석하는 분의 이야기라 그런지
키노트 내둥 사람들의 동글 동글 눈동자들은 정재승 교수의 PT를 보고 감탄을 금치 못했다.
남자와 여자의 차이, 사람의 학습의 진화단계, 선입견 역시 학습의 일환 ..
매일 익숙한 길에서 새로운 아이템을 얻은것처럼 신선했다.


키노트를 시작으로 컨퍼런스 2일차를 진행되었다.
어느곳애서는 미래비전에 해당하는 새로운 마켓에 대한 도전 방법을 이야기 하고
연이어 그 도전 마켓에 대해 어떻게 기술적으로 접근해야하는지도 논의 되었다.

다른곳은 개인들이 혹은 팀원들이 프로파일링한 outPut에 대한 발표가 이뤄졌는데
개인적으로 그런 발표를 보면서 "아~ 님들아! 님들은 정말 천재이신것 같아요"
같은 회사 다니지만 스스로가 부끄러울만큼 사람들은 노력했고 노력을 산출해내는 모습은
발전을 더디해온 나를 되돌아 보게끔 하였다.

간간히 휴식시간이 주어도 졌는데
컨퍼런스를 준비한 분들의 수고가 휴식시간에도 빛이 발휘되었다.
타임테이블 상에서 사람들이 다음의맴버가 된것을 보여주고, 이번 세미나에 참석한 사람들의
사진들을 커다란 현수막에 보여줌으로써 "나를 찾아라!" 는 소소한 재미도 주었다.
더불어 폴라로이드 카메라를 들고 사람들의 사진도 찍어주었는데 ㅎㅎ 좋았다.


하지만 그중에 가장 좋았던게 뭐냐고 꼽는다면!!
회사 카페테리아를 그데로 옮겨왔다는 점이다.
같은직원, 같은컵, 같은 커피콩으로 블랜딩된 회사커피를 비발디에서 맛볼 수 있었다는게
개인적으로 제일 맘에 들었다.
(카페테리아 맴버여러분 감사합니다. ^^)


오후에도 열공은 계속 이어졌다.
파란 별을 단 열공이라 외부적으로 공개될 수 없지만 서비스에 열정이 가득 담긴 이들의 발표는
같은 개발자의 가슴을 불태우기에 충분했다.

PM 7:00 ...
2일차 세미나는 공식적으로 끝이 났다.
그리고 이어지는 디너파티~

매해 개발자 컨퍼런스의 디너는 신입직원들과 끼있는 직원들이 주축이 되어서 행사글
가지게 되는데
이번에는 다음내에서도 유명한 다음인 밴드가 초빙되었다.
오~ 보라! 저 열광하는 사람들의 모습!

그리고 언제나 벌어지는 다음만의 독특한 게임...
지난해는 마우스 클릭으로 즐겁게 해주더니 올해는 큐브 가지고 많은사람을 즐겁게 해주었다.
디너의 열광적인 도가니는 2일차 밤도 11시까지 넘기게 만들었다.



2일차도 금방 지나갔다.
오기전에는 공부만 한다고 투덜 거렸는데..
막상와서 보니 다양한 세션을 듣지 못했다는 아쉬움이 더 크게 밀려온다.
탄력받은 말랑말랑한 뇌는 신선한 자극덩어리속에서 월요일을 기다리고 있는것 같다.
가서 해볼것들이 많은것 같다. ^^


가을이 시작되는 10월의 21일에 우리의 개발자 컨퍼런스는 시작되었다.
이른아침에 좁은 버스에 몸을 기대어 함량 100% 짜리 공부하러 비발디파크로
향하였다.

버스안은 이번에 베이징 만큼이나 시끌벅쩍함을 찾아볼 수는 없었다.
공부만 한다는 기분에서 였을까? 모두들 어떻게 뻑뻑한 일정을 소화할 수 있을까
하는 부담이 있어서 그런것 같다. (그래서 그런지 버스내부도 어둡네요~)

버스가 도착한곳은 비발디 파크!
이전에 보드타러 왔던곳을 눈없을때 오려니 조금 낮설었다.
오늘따라 부슬 부슬 비마져 내린다.
지난번 베이징에서도 그렇더니만 우리들의 컨퍼런스는 항상 비를 몰고다니는것 같다.
혹시! 비가 모자라는 지자체가 있다면 차기 다음라이코스 개발자 컨퍼런스를 유치하는것도
좋은 방법이라 생각도 되었다.


일정은 생각보다 빨리 진행되었다.
도착하고 점심을 먹자 마자 컨퍼런스를 시작한다고 오프닝을 알렸다.
산에 물들어있는 단풍들을 눈에 담아 가을을 느끼기도전에 이렇게 우리들의 컨퍼런스는
시작되었다~!


검은옷을 입은사람들! 저들이 모두 다음의 개발자들이다.
저들의 손에서 4천만이 웃고 놀고 즐기고 소통하는 공간을 만들어 낸다.
수없이 펴 둔 노트북은 공부를 하려고 가져온것도 있지만 안타깝게도 대부분
장애처리를 위해 펴두었다면 믿겠는가?!
공부 하러 왔지만 고객들의 안정된 서비스를 위해 세미나중에도, 잠자리에 들기전까지 켜두고
마치 자신의 일부처럼 서비스를 모니터링 하고 있다.



개회사는 석종훈님이 하셨다.
얼핏 강남대로에서 보더라도 너무 흔하게 생기셨다고 놀랄 필요도 없다.
정말 얼핏 보면 동네 슈퍼에서 라디오 들으면서 잔돈즈음은 충분히 깍아줄 그런 모습으로 보이신다.
하지만 미래를 보는 탁원한 안목에서 CEO께서는 개회사에서는 혁신! 을 이야기 하셨다.
어설픈 변화가 아니다. 혁신이였다.

쥐터지게 얻어 맞더라도 혁신을 위해 노력해 달라는 그런 이야기 였다.
이전에 베이징 개발자 컨퍼런스에서는 이재용 전 CEO께서 지구 온난화를 화두로 개발자가
범 지구적 사명을 이뤄낼 수 있는 SF 적 선포가 있었다면 이번에는 개발자 개개인의 혁신으로 대한민국을 구원할 히어로가 되어달라는 혁신을 이야기 했다.

혁신에는 코웍도 필요하고 개개인의 고강도 슈퍼 히어로 프로패셔널 하이퀄리티 업그레이드!
도 수반된다는점! 놓치지 않고 선포해주셨다.


두번째 훌륭한 발표자는 CTO 이재혁님이 하셨다.
CEO님 스타일과 마찬가지로 어디선가 볼 수 있을것 같은 삼촌같은 모습이다.
오프닝에서는 말을 아끼셨지만 show your Dream~ 이 문구의 함축된 의미를 이곳에서 찾길
바라는 당부가 있었다. (실제로 다양한 세션들의 깊이있는 모습들은.. 덜덜덜..)



세번째 영광스런 발표자는 조엘님이 하셨다.
조엘님? 그냥 따로 부를 호칭이 없어 조엘님을 이야기 하겠다.
베컴부부 vs 그리고 무명의 축구선수~, 아이폰vs Zune, Sony vs COBY ..
조엘은 No1. 이 가지는 시장지배력을 먼저 화두로 던졌다.
No1. 이 된다는것은... 시장선두하고 유행을 지배하는 수준의 문제가 아니다.
No1. 은? 다가지는것이다.
더불어 조엘이 생각하는 이야기중에 Ruby도 나왔는데 Ruby야 말로 개발사적으로 혁신에 가까운
언어라는 것이라 높이 평가했다 (Ruby 다시 공부해야 겠어 ㅎㅎㅎ)




자~
컨퍼런스의 대부분의 트랙이 내부자 세션이 대부분이였다.
역시나 업무에서 얻은 소중한 노하우를 공유하는 공간이였기 떄문에 푸른별 세션들이 파다했다.
하지만 이들 세션을 한마디로 이야기 한다면!!
"강백호 필살기 공유!"


좀 우습겠지만 다음내에는 서태웅이나 채치수, 윤대엽 같은 케릭터보다는 강백호가 더 많은것 같다.
수많은 시행착오를 거쳐 탄생한 알토랑 같은 노하우들을 이들은 이번 컨퍼런스를 통해 이야기 하고
그것들을 통해 조직의 구성원들의 업그레이드를 빠르게 진화시키는것을 볼 수 있었다.
발표를 들으면서 느낀것은 누가 이토록 이들을 열정적이게 만들었을까? 였다.
정말 대단했다. 이름이 다른 강백호들의 열정은 다음시즌 북산을 전국1위로 올려놓을 수 있겠다는
희망을 볼 수 있었다.

밤 늦도록 유지된 첫날의 컨퍼런스는 이렇게 마무리가 되어져 갔다.
밤 늦도록.. 밤 늦도록..

끝나고 나니 11시30분이네.. 허그덩..T-T (졸려...)
첫날이 지나갔습니다. ~

 

 


프로젝트를 진행하는 단계에서 가장 많이 누락이 되는것중에 하나가 성능에 관한 이슈가
누락이 되고 있다. 실질적으로 프로젝트 튜닝이라는 과정이 거의 개발이 완료된 시점에
시행하다보니 "어쩔수없다" 라고해서 간과해버리거나 프로젝트 비용으로 처리해버리는 경우가 있다.


200년중반! IT업계에서 빅뱅과 같은 엄청난일이 하나 벌어졌다.
SK에서 진행한 차세대프로젝트!
이 서평을 읽는사람들중에 어떤이는 나와같이 이름만 들어봤을테고 어떤이는 실질적으로
그 프로젝트에 참여를 했을것이다.
당시 시장의 상황에는 JAVA개발자가 가뭄이 들었다고 할 만큼 많은 개발자와 시장에
내노라하는 리소스가 투입이 되어서 국민은행+주택은행 이후로 가장 큰 프로젝트로
주목받기도했다.  (더큰 프로젝트들도 많겠지만 복잡도와 많은 이해관계를 형성해낸
프로젝트로는 2개가 가장큰것 같습니다.)


 당시에 어떠한 방법론이 도입되었는지 모르지만 해당 프로젝트에서는 성능! 이라는 이슈에
 과거의 머큐리!현재의 hp의 자문을 받아 진행을 했다.
 그리고 그 프로젝트가 완결이 되어 빛을 보게 되던날! 몇몇의 엔지니어들과 지각이 있는분들이
 after action에  돌입하기에 이른듯 하다.


 여기서 말하는 afterAction은 바로 실전에서 겪었던 다양한 사례와 '성능시험방법론' 에 대하여
 어떻게  접근하고 어떻게 일을 해나가야 하는지를 정형화 했다는 것이다.


 실무자가 이야기하는 방법론?!
 이책의 가장 큰 매력은 바로 여기에 있다고 볼 수 있다.
 실무자가 시행착오를 거쳐 만들어낸 방법론이기에 군더더기는 오븐에서 기름쫙뺀 상태이고 더군다나
 이해당사자의 합의하에 도출되었기 때문에 그 내용에 대해 신뢰가 깊다고 볼 수 있다.


개인적으로 이책을 보게된 결정적인 이유는 시스템의 성능을 어떻게 하면 잘 볼 수 있고 모니터링
할 수 있을까 하는 기대로 봤는데 안타깝게도 그 부분은 방법론과는 조금 거리가 멀어서 기대만큼
큰 비중을 두고 책에서 다루고 있지는 않다. 하지만 실무자 답게 iostat, vmstat 등과 같은 몇몇
unix, NT 계열에서 모니터링 하는다양한 기법에 대해서 갈증을 풀어줄 만큼은 소개 해주고있다.


책은 무척이나 독특하다.
일반 IT서적에서 쉽고 볼 수 없는 구어체 적인 느낌이 많이든다.
다, 나, 까 로 끝나는 종결어는 볼 수 없고 ~ 하겠습니다. 로 나온다
 (읽기 어찌나 불편하던지 '실용예제로 배우는 웹표준','Head First' 도 그러더만 쩝~)


방법론 답게 문서를 산출해내는 다양한 포멧과 양식! 그리고 성능 분석에 따르는 다양한 수치적인
것은 공식화 해낸것을 볼 수 있다. (이산수학에서나 볼법한것들이 조금 등장합니다.)


더불어 이책은 현장에서 투입한 리소스들의 이름이 가끔 보이는데 아마도
성능에관한 기술컨설팅을 받게 된다면 해당 이름을 가진 담당자를 만나지 않을까 하는 기대도 하게된다.
 (싸인을 받아야 할런지~)


그래도 무엇보다도 이책의 장점은 성능에 관한 방법론책!이라는점이다.
물론 Appilcation은 제니퍼보다는 머큐리에서 만들어낸 Roadrunner기반으로 되어있기 때문에
일반 필드에서 100% 적용 사용하기에는 무리가 있고 성능방법론에 새로운 가치를 발견하고 현업에
일부적용하기에 적당하다고 볼 수 있다.


책은 맘에든다.
실무자가 작성해서 맘에든다.
연구소에서 스타나하면서 만든 방법론이 아니라 갑사와 피터지게 합의하며 만든 방법론이나 맘에든다.
이책을 만들기 위해 노력한 3명의 저자분들을 직접뵌적은 없지만 그들의 노고가 IT를 더욱 가치있게
만드는 것으로 보인다.

dom4j 파싱 / 생성

JAVA 2008. 10. 16. 21:52

XML 파싱

dom4j를 이용하여 쉽게 XML을 파싱 할 수 있습니다.
[ 예제 코드 ]
import java.net.URL;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class Foo {
    public Document parse(URL url) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(url);
        return document;
    }
}


Iterator 사용하기

"document"(SAXReader나 DocumentHelper를 통해 만들어진 XML객체)는 자바의 표준 Iterator를 이용하여 다양한 방법으로 네비게이션 할 수 있다.
[ 예제 코드 ]
public void bar(Document document) throws DocumentException {

        Element root = document.getRootElement();

        // 루트 엘리먼트의 자식노드 반복
        for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
            Element element = (Element) i.next();
            // do something
        }

        // 루트의 엘리먼트 중 "foo"라는 이름을 갖는엘리먼트의 자식노드 반복
        for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
            Element foo = (Element) i.next();
            // do something
        }

        // 루트의 어트리뷰트 반복
        for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
            Attribute attribute = (Attribute) i.next();
            // do something
        }
     }


XPath를 이용한 강력한 네비게이션

dom4j의 XPath 표현들로 document 트리 내 어떤 노드들도 접근할 수 있다.(Attribute, Element or ProcessingInstruction).
 복잡한 네비게이션을 한줄로 할 수 있다.
[ 예제 코드 ]
public void bar(Document document) {
    List list = document.selectNodes( "//foo/bar" );
    Node node = document.selectSingleNode( "//foo/bar/author" );
    String name = node.valueOf( "@name" );
}


XHTML 문서의 링크 네이게이션 예

[ 예제 코드 ]
public void findLinks(Document document) throws DocumentException {
    List list = document.selectNodes( "//a/@href" );
    for (Iterator iter = list.iterator(); iter.hasNext(); ) {
        Attribute attribute = (Attribute) iter.next();
        String url = attribute.getValue();
    }
}


XPath를 배우려면 Zvon tutorial 튜토리얼 참조하세요.  


빠른 반복

커다란 XML tree 전체 iterator를 만들어 가면서 네비게이션 하려면 성능이 떨어지기 때문에 빠른 반복을 할 수 있는 메소드를 사용한다. (treeWalk를 주목)
[ 예제 코드 ]
public void bar(Document document) {
    List list = document.selectNodes( "//foo/bar" );
    Node node = document.selectSingleNode( "//foo/bar/author" );
    String name = node.valueOf( "@name" );
}
public void treeWalk(Document document) {
    treeWalk( document.getRootElement() );
}
public void treeWalk(Element element) {
    for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
        Node node = element.node(i);
        if ( node instanceof Element ) {
            treeWalk( (Element) node );
        }
        else {
            // do something....
        }
    }
}

 
새 XML문서 생성

[ 예제 코드 ]
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Foo {
    public Document createDocument() {
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement( "root" );
        Element author1 = root.addElement( "author" )
            .addAttribute( "name", "James" )
            .addAttribute( "location", "UK" )
            .addText( "James Strachan" );
       
        Element author2 = root.addElement( "author" )
            .addAttribute( "name", "Bob" )
            .addAttribute( "location", "US" )
            .addText( "Bob McWhirter" );
        return document;
    }
}


문서를 파일로 쓰기

Document나 어떤 노드에서도 write()메소드를 이용하여 FileWriter로 쓸수 있다.
FileWriter out = new FileWriter( "foo.xml" );
document.write( out );

XMLWriter를 이용하여 출력 포맷을 변경할 수 있다.

[ 예제 코드 ]
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Foo {
    public void write(Document document) throws IOException {
        // lets write to a file
        XMLWriter writer = new XMLWriter(
            new FileWriter( "output.xml" )
        );
        writer.write( document );
        writer.close();

        // Pretty print the document to System.out
        OutputFormat format = OutputFormat.createPrettyPrint();
        writer = new XMLWriter( System.out, format );
        writer.write( document );
        // Compact format to System.out
        format = OutputFormat.createCompactFormat();
        writer = new XMLWriter( System.out, format );
        writer.write( document );
    }
}


Document를 문자열로 문자열을 Document로

Document나 어떤 노드에서나 asXML()메소드를 호출하여 쉽게 xml문자열을 추출할 수 있다.
Document document = ...;
String text = document.asXML();   
또한 valid한 xml문자열을 DocumentHelper를 이용하여 Document 객체로 만들수 있다.
String text = "<person> <name>James</name> </person>";
Document document = DocumentHelper.parseText(text);

XSLT를 이용한 문서 스타일 적용

Sun의 JAXP API를 사용하여 쉽게 XSLT를 적용할 수 있다.
Xalan, SAXON과 같은 어떠한 XSLT을 가지고도 작업 할수 있다.

[ 예제 코드 ]
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import org.dom4j.Document;
import org.dom4j.io.DocumentResult;
import org.dom4j.io.DocumentSource;
public class Foo {
    public Document styleDocument(
        Document document,
        String stylesheet
    ) throws Exception {
        // load the transformer using JAXP
        TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer(
            new StreamSource( stylesheet )
        );
        // now lets style the given document
        DocumentSource source = new DocumentSource( document );
        DocumentResult result = new DocumentResult();
        transformer.transform( source, result );
        // return the transformed document
        Document transformedDoc = result.getDocument();
        return transformedDoc;
    }
}

같은구문

Ruby/cookBook 2008. 9. 18. 17:42
 objCount = 1
    @image.each{|url|
     str = str + " <objectimageurl#{objCount}:" + escape(url) + ">\n"
     objCount = objCount +1
    }
    
#    @image.each do |url|
#     str = str + " <objectimageurl#{objCount}:" + escape(url) + ">\n"
#     objCount = objCount +1
#    end

사용자 삽입 이미지


많은 사람들이 웹의 진화에대 곰곰히 연구를 했다.
그즈음 게시판에서 블로그로 사람들의 행동이 변화를 일으키자 갑자기 어디선가 선구자적같은
용어하나가 툭! 튀어나왔다.

WEB2.0 !!

순간 밥좀먹고 산다는 컨설턴트들이나 말좀한다는 기획자들은 땅을 치며 후회를 했을것이다.!
"아! 저게 내가 하고 싶은 말인데 저런 간략한 용어를 만들어 내지 못한거야!!"
하지만 보다 정확한 표현은 WEB2.0이 아니다.
웹은 지속적으로 진화하고 있고 그것을 용어적으로 잘 풀이한다면 웹 진화론이 정답에 가깝다.
하지만 책은 꼭 진화론을 이야기하고 있는것은 아니다.
사회 전반적으로 흘러가고 있는 WEB의 형태를 마치 X-ray로 찍어내듯 이야기 하고 있다.
좀 아쉽지만 그래도 이책이 WEB2.0보다는 잘 인터넷을 이야기 하고 있는듯 해서 책을 읽어보도록 했다.

1. 진화라는 변화
 진화라는것은 아이가 어른이 되는것처럼 성장을 하고 변화를 일으킨다.
 손바닥 뒤집듯이 한꺼번에 일어나는게 아니라 서서히 그리고 인지하는 순간 빠른속도로 변화한다.
 책은 사회 전반적에서 벌어지는 진화를 소개하고 있다.
 구글이라는 회사의 진화, 실리콘 벨리에서의 진화, 소수의 의견들에 집중되는 사회적 변화 등을
 예의주시하고 이야기 하고 있다.
 바로 진화라는 변화를 작은 균열들에서 찾아내고 있다.

2. 소수자 생각의 존중
 변화의 속도를 더 빠르게 하는 주된 힘은 소수자의 생각을 메이져 기업들이 수용을 한다는것이다.
 일명 롱테일이라는 한 분야로 싸잡아 이야기 하는게 아니라 블로그를 통해 세상과 소통하는
 소수자들을 포털이나 쇼핑몰에서 의견을 듣고 이에 맞는 모듈을 제공해줌으로써 웹의 진화를
 이끈다고 볼 수 있다.  하지만 정말 중요한것은 그 소수자의 생성 컨텐츠는 생각 이상으로 가치
 있다는것이다.
 바로 변화를 이끄는 선봉을 차지하는 깃발뺏기 게임은 시작되었다.

3. 오픈소스
 책 저자의 직업이 참 의심스럽게 보여진는 부분이다.
 아직 개발자들 사이에서도 홍보와 참여교육을 통해 늘어날것으로 예상하고 조심스럽게 다가가고
 있는 부분에 대해 저자는 콕 찝어 오픈소스 영역에 대해 높은 비중을 두고 있다.
 물론 전문가 수준은 아니겠지만 openAPI가 미치는 사람들의 소통의 방법을 저자는 충분히 알고
 구독자에게 잘 전달해 주고 있다.

웹은 진화하고 있다.
그리고 그 진화의 선봉에는 소수의 블로거들이 존재하고 있다.
그들의 소리는 메이져기업들이 들어주고 있고 기업은 진화의 속도를 높인다.
속도는 기업에게 발전과 수익을 가져다 주고 일반 유저들은 새로운것을 경험하게 된다.


마치 경제의 순환고리를 생성해내는 과정과도 일맥상통하는 이러한 웹의 진화를 책을 통해 살짝
맛볼 수 있었다는데 이책이 만족스러웠다는것을 전해본다.

사용자 삽입 이미지


나는 지금 jdk 몇버전에 머물며 개발하는 개발자인가?
우리의 물음은 거기에서 부터 시작이 되었다.
우리의 물음은 나 자신에게 다시 질문이 던져졌고
openAPI 한개더 알아가고 어디서 세미나 연다는 정보를 안다는것을 이제 더이상
중요한 정보로써의 가치를 잠시 버려보려고 했다.
그랬더니 JAVA개발자가 진화를 지연시켜온것을 알게 되었다.


그렇게 시작된 나의 자랑스런 팀원들과의 스터디가 진행이 되었다.
책을 배송을 시켰고 배송된책의 엄청난 부담감 1300페이지가 날 기다리고 있다.
이전에CODE COMPLETE 도 봤는데 이까이꺼 뭐~ 라고 말하겠지만 이것은 수준이 다른 문제였다.
책은 내가 아는 내가 지금도 주로 사용하는 언어를 이야기 하면서 마치 다른 이야기를 하듯이 풀어내고 있었다.
SCJP를 준비하려고 무작정 외웠던 소스코드들에 대한 원론적인 해석의 방법과 코드가 패턴을 가지게되는 역치의 순간들 그리고 우리가 늘 사용하고 있는 JAVA 용어적 해설까지 실로 바이블!
이라는 단어가 아깝지 않은 책이였다.


헌데 왜! 이책은 그 유명한 바이블이라는 단어를 버리고 Thinking in java라 지었을까?
그 이유는 책의 챕터를 한장 한장 넘겨가면서 알게 되었다.
앞에 코드를 생각하지 않으면 전혀 뒷장이 연상되지 않는 구조~!
챕터도 모두 떨어져 있지만 앞챕터를 이해하지 못하면 뒷 챕터역시 알토랑같은 지식을 주워먹을수
없는 구조의 책이였다.


1. 책의 세밀한 배려
 책은 구독자를 위한 세심한 배려들이 많이 숨어있다.
 a. 주석의 표준화된 표기
  주석의 표준화된 사용으로 작은 sample도 javaDoc를 만들어 낼 수 있는 구조로 되어있다.
  또한 챕처의 초반(2장)에 주석을 효과적으로 달아주는 doc 테그 달기 방법에 대해서 이야기 해준다.
 b. 컴파일 결과를 보여준다.
  코드의 제일 하단! 코드를 눈으로 해석하고 그 결과를 볼 수 있도록 결과를 주석으로 달아주었다.
  국내서적이 따로 그 결과를 뽑아내 코드로 페이지수 늘리기 할 법도 하지만 이것역시 간단한 주석처리
 c. 용어적 해설
  program language가 가지는 특징은 용어에 대한 함축적 사용이다.
  java도 예외가 아닌데 이런 용어에 대해서 책은 간간히 반복적으로 보여준다는것이다.


 이 외에도 책은 참 많은 세심한 배려를 보여준다.
 같은 코드를 가,나,다,라 형태로 진화시켜 나가는것을 보면 이책이 왜 그토록 많이 읽혔는가를 볼 수 있다.
 더불어 진행하는 사이사이 vm안에서 객체와 메모리힙 영역에서 어떤일이 벌어지는지도 보여준다.
 

2.  솔직한 저자의 생각
 java도 신이 만들어낸 언어가 아닌이상 사람의 철학이 담겨져 있고 사람의 실수가 있을 수 있다.
 저자는 이런 부분에서 자신의 솔직한 생각들을 책에 담아놓았다.
 물론 이것이 정답이 될 수 없지만 생각의 깊이를 많이하고 토다는것이기 때문에 저자의 생각마져도
 곰곰히 지켜볼 필요가 있다.
 개인적으로 내부클래스는 Thread 생성을 제외하고는 난 그다지 선호하지 않는다 하지만 저자의 경우에는 내부클래스를 interface를 통해 내부클래스의 확장된 활용을 이야기 하고 있다. (대단~)
 (챕터 가장 마지막 부분에 있는 요약도 참 보기  좋네요)


3. 뜨거운 감자 다루기
 String이 좋은가 StringBuffer가 좋은가? Exception을 이용한 객체 던지기는 바람직 한가?
 finally를 통해 객체 Close를 시도할때 신뢰할만한가?
 하하하...
 개발하면서 얼마나 논란이 많이 되는것들인가. 이것에 대해 책은 저자의 실전코딩을 통해 이것을 이약한다.
 결론는 기대하는 수준에서 결론이 대부분이지만 책은 충분한 설명을 동반한 결과를 이야기 한다.


4. 그리고 응용
 개인적으로 난 이책이 정말 대단하다고 보는것은 일반적인 java지식을 14장까지 보고 싶다.
 그리고 15장부터는 이것에 기반한 좀더 깊이있는 java다루기라 보고 싶다.
 물론 이미 충분히 알고있는것! 그래서 잘 생각없이 사용하는것! 에대해 14장까지 이해를 하고
 15장부터는 정말 깊이있게 생각할 수 있는 응용하는 바를 다루고있다.
 챕터 사이사이마다 비슷한 느낌을 받는 내용들이 있지만 역시나 이책의 주요 의도하는 바는
 개발자로 하여금 jdk의 버전이 높아짐에 따라 같이 버전업하라는게 농후한 메세지다.


이 작렬하는 포스의 책은 정말 1명의 저자가 사람이 만들었을까 하는 생각이 든다.
대단하다. 정말 이렇게 까지 할 수 있다는게 대단하다.
이 책을 모두 이해만 한다며 나도 java의 해안을 얻을것만 같은데 아직 그만한 지식이 갖춰져
 있지 않아서 오직 열심히라는 단어밖에 떠오르지 않는다.
매일 매일 새로운것을 배우고 내가 배운것을 단단히 해야하는 개발자~
좀 고되지만 이렇게 수준높은 사람들의 지경을 만나면 고개가 숙여진다.


이클립스 3.4가 새로운 구조로 업데이트를 받다보니
과거와 동일한 방법으로 플러그인을 제거할 수가 없게 되었다.

어디있을까?
사용자 삽입 이미지


사용자 삽입 이미지

개인적으로 Business Intelligence and Reporting Tools(BIRT)
플러그인 깔았다 너무 해비해져서 지워버렸다.

아웅~ 비지니스 리포트를 만든다고 하는데 무슨 크리스탈 리포트 만지작 거리는것도
아니고 차라리 워드가 더 좋더라는 기분이 들었다.

미안 이클립스 ~
3.4 밀고 있다지만 이건 좀 아니다.



이분을 띄우는데 예전과 같은 옵션으로 띄우면 잘 뜨지 않는다.

사용자 삽입 이미지
 
이클립스를 띄우기 위한 속성정보이다.
이부분을 기존과 동일한 옵션을 부여해서는 무거운 3.4가 잘 뜨지 않는다.
사용자 삽입 이미지


> 기존옵션
C:\lang\eclipse-ganymede\eclipse.exe  -data D:\eclipsJOY\daum -vmargs -Xms128m -Xmx256m -Dfile.encoding=UTF-8

> 새로운 옵션
C:\lang\eclipse-ganymede\eclipse.exe  -data D:\eclipsJOY\daum -vmargs -Xms256m -Xmx400m -Dfile.encoding=UTF-8

참고 하기 바란다.




 


1 ··· 6 7 8 9 10 11 12 ··· 26 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!