Web Project 생성후 프레임웍 적용시 주의사항
  • 이클립스 사용팁
  1. 프레임웍 적용을 위한 jar 파일들을 WebContent - WEB-INF - lib 폴더 안에 복사해넣어야, 웹서버로 포팅할 경우 jar로 묶인 class파일들도 참조될 수 있다.
  2. test 폴더는 build path - use as a source folder로 변경해야 JUnit을 활용할 수 있다.
  3. Referenced Libraries에서 각 jar파일의 Properties를 보면 java source Attachment, Javadoc Location, Native Library를 이용하면 이클립스에서 API를 확인할 수 있다.
         - Java Source Attachment : spring-source.jar처럼 jar나 zip파일로 압축된 소스폴더를 참조시킨다.
         - Javadoc Location : Javadoc URL 은 구글링으로 API문서를 찾은 다음 주소를 넣어도 되고, 다운로드받은 javadoc문서가 들어있는 폴더패스를 입력하고 꼭 Validate 체크한다.
by 이호연 | 2008/07/17 15:57 | 프로그래밍 | 트랙백 | 덧글(0)
get pearls of wisdom from granny

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Fowler)

Debug only code - comments can lie.

If you have too many special cases, you are doing it wrong.

Get your data structures correct first, and the rest of the program will write itself.

Testing can show the presence of bugs, but not their absence.

The first step in fixing a broken program is getting it to fail repeatedly.

The fastest algorithm can frequently be replaced by one that is almost as fast and much easier to understand.

The cheapest, fastest, and most reliable components of a computer system are those that aren't there.

Good judgement comes from experience, and experience comes from bad judgement.

Don't use the computer to do things that can be done efficiently by hand.

[Thompson's Rule for first-time telescope makers] It is faster to make a four-inch mirror then a six-inch mirror than to make a six-inch mirror.

If you lie to the computer, it will get you.

Inside of every large program is a small program struggling to get out.

출처: http://www.javaranch.com/granny.jsp

by 이호연 | 2008/05/15 09:52 | 트랙백 | 덧글(0)
JavaOne2008 참가 후기


Sun에서 JavaFX를 아주 강력하게 밀고 있지만 아직은 때가 아닌 듯 보였고, RIA 시장에서는 adobe Flex가 대세라는 걸 많이 느꼈습니다.

Adobe Flex SDK Flex Builder 3(60일 시험판) 다운로드 링크입니다. 관심있으신 분은 한번 써보세요. 여기 클릭(http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email)

.. 그건 그렇고...

자바원 컨퍼런스에 대한 간단한 소개를 하자면..

Sun에서 주최하는 전세계 자바관련 업체와 자바개발자들의 축제입니다.

규모도 엄청나더군요.. 15000명 참가, 세션은 300 여개..

 

그곳 분위기는 대강 이런 분위기....

img12.jpgimg16.jpg

구성은 전체 참가자가 참석하는 General Session, 각 관심분야별로 헤쳐모이는 Technical Session, 손을 더럽히면서 몸으로 느껴보는 Hands-on-lab, 업체 전시회장 Java Pavilion 등으로 구성되어있었습니다.

 

전 무엇보다 자바의 아버지 James Gosling을 눈앞에서 직접 만나고(아무리 봐도 KFC 할아버지같은 저 푸근한 외모),

img10.jpgimg15.jpg

Effective Java의 저자인 Joshua Bloch 에게 사인받고 (저번주에 발간된 Effective Java 2판 출시기념으로 책구입해서 가져오면 사인을 해주더라구요(얍삽한 상술...)... 돌아다니다가 얼굴보이길래 낼름 책사들고 점심밥먹으려고 폼잡는데 가서 사인 받아왔습니다...ㅎㅎㅎ)

img13.jpgimg14.jpg

Spring 의 아버지 Rod Johnson에게 바로 눈앞에서 강의를 들은게 젤 기억에 남네요.^^ (특이하게도 A I 로 발음하는... 그래도 천천히 또박또박 말해줘서 그나마 알아들었습니다.)

img11.jpg

자바원에서 자바 기술뿐만 아니라 요즘 대세인 Web2.0 기류에 맞춰 스크립트 언어에 관한 강의가 상당히 많았습니다.

JavaScript, Ruby, JRuby, Groovy, Python, Jython 등등...

서점에서 둘러봐도 프로그래밍 랭귀지 섹션에는 스크립트 언어관련 책들이 대부분이더군요.

img9.jpgimg8.jpg

프레임웍과 관련해서는 가장 유명하고 강력한 프레임웍 Spring 2.5을 비롯해서, Struts2, JSF 2.0, (J)Ruby on rails, Grails, GWT, jMaki 등등이 소개되고 Hands-on-lab형식으로 실습도 진행되었습니다.

전 개인적인 관심으로 'Developing with (J)Ruby on rails'  Hands-on-lab세션에 참여했는데 우연찮게 늦게 강의실에 들어온 미국인이 자리가 없어서 맨끝자리에서 조용히 실습하고 있던 제 옆에 앉아서 같은 컴퓨터에서 실습을 하게 되었습니다.

짝프로그래밍을 해본거죠.. 외국인이랑... 실습 따라하다가 에러나면 옆에서 보고있는 사람이 후딱 잡아주고 다른 사람은 코딩하고,, 계속 주고받다보니까 재밌더군요.. 색다른 즐거움이었습니다.

그 미국인, 루비는 한번도 해본적이 없는 순수 자바개발자라고 하던데, 잘 하더군요.. 마지막 끝날 때는 실습한 내용에 대해 저에게 간단한 Wrap-up까지 해주고 사라졌습니다. That's cool~ 이러면서...

img7.jpg

SOA라는 개념이 나온지 벌써 10 여년이 되어가지만, 아직까지도 SOA는 일반 개발자들에게 멀고먼 딴나라 얘기가 아닌가 하는 개인적인 생각도 해보았습니다.

하지만 향후 발전가능성을 볼땐 분명 투자할만한 가치가 있는 분야가 아닌가 생각해봅니다.

세션들중에 SOA 구현을 위한 구체적인 방안 모색에 관한 세션과 WebService RESTful이 무엇인지에 대한 개념설명에 대한 세션이 여럿 있었어요.

Apache Tuscany, Restlet SOA프레임웍을 이용한 개발 적용사례 발표도 있었구요. 하지만.. 아직도 SOA는 감이 잘 안 옵니다. 이런....

 

간단한 소개글은 여기서 마치고, 계속해서 컨퍼런스에서 참석했던 세션들 중 재밌게 들었던 세션들 몇 개 요약해서 올리겠습니다.

 

* 최근 3년간 자바원컨퍼런스에서 발표됐던 세션과 핸즈온랩 다운받을 수 있는 주소입니다. 참고하세요(http://developers.sun.com/learning/javaoneonline/)

아직 2008년 핸즈온랩만 올라오고 나머지는 없네요. 2007년과 2006년 세션들 다운받아보시고 Hands-on-lab 따라 해보면 최신 트렌드도 알 수 있고, 자바 개발역량 발전에 많은 도움되실거라 생각됩니다.

실습은 아무래도 Sun이 주최한 행사다보니 NetBeans로 실습하면 편하도록 되어있습니다. Netbeans 6.1 다운로드는 여기에서...(http://www.netbeans.org/community/releases/61/)

Netbeans 최신버전은 무엇보다도 예전보다 시작속도가 빨라졌고, Javascript 지원, Spring 2.5 프레임웍, Ruby/JRuby, RESTful 지원 등 이클립스 못지않은 기능을 지원합니다.

지금까지 IDE라고 하면 이클립스가 지배적이었지만, 최근들어 슬슬 Netbeans 쪽으로 대세가 기우는 게 아닌가하는 생각도 들었습니다.


남는건 사진 밖에 없다고 생각해서 최대한 많이 찍어오려고 했는데, 정작 제 사진은 달랑 이거 한장뿐입니다.- _-)a

img6.jpg

by 이호연 | 2008/05/14 16:43 | Log | 트랙백 | 덧글(0)
2008 JavaOne 컨퍼런스 후기

1. 장소 : Moscone Center (San Francisco, California)

2. 일시 : '08. 5. 6 ~ 5. 9

3. 참가인원 : 약 15,000명

4. 개요 : 전세계 Java엔지니어 및 관련 업체 관련자들이 참관하는 세계 최대 Java개발자 축제

5. 내용

     - General Session : Sun(James Gosling 등), Oracle, AMD, Intel, MotoDev 진행,  컨퍼런스 전체 참가자 참여

     - Technical Session : 주로 Sun사의 엔지니어 강연 위주, Capzemini, Google, SpringSource 출신 명엔지니어들의 강연 및 Q&A 형태로 운영

         . Java Platform, Standard Edition (Java SE)

         . Java Platform, Enterprise Edition (Java EE)

         . Java Platform, Micro Edition (Java ME)

         . Desktop

         . Next Generation Web

         . SOA and Enterprise Integration

         . Tools and Scripting Languages

         . Cool Stuff

         . Open Source

         . Consumer Technologies

         . Rich Media and Content

     - BOF(Birds-of-a-feather) : 테크니컬 세션과 비슷하지만 조금더 심도있는 주제로 현장의 목소리 청취에 비중을 둠. 동일한 관심주제를 가진 참여자들의 활발한 의견 교환

     - Hands-on-lab : 직접 손을 더럽히면서(?) 최신 기술을 실습해보는 시간

     - Java Pavilion : 자바 관련 제품 및 솔루션 전시회, 국내 업체중 삼성전자 정보통신, 제니퍼, XCE(MS 협력업체) 등 참여

6. 결과

     - 자바 코어기술의 open source화(OpenJDK), 올해 릴리즈될 JDK 7.0 관련 추가되는 feature소개, 타 언어의 장점들은 언제든지 끌어안을 수 있다는 인상(closure, late initialization 등)

     - Web2.0 관련 Ajax, Agile 구현이라는 시대적 흐름에 따른 스크립트 언어(Javascript, (j)ruby,  groovy, jython 등) 언어 소개  : 속도가 느리고 아무나 쉽게 할 수 있는 하급기술로 천시받던 스크립트 언어의 초강세. 대부분의 사례 소개에서 스크립트 언어를 객체지향적으로 구현하고 있었으며 다양한 IDE(Eclipse, Aptana, Netbeans 등)로 코드 생성 자동화 활용. 서점에 진열된 책 중 스크립트 언어 관련 서적이 반 이상 차지

     - Sun사의 RIA관련 기술인 JavaFX 소개, Adobe사의 Flex, MS사의 Silverlight에 비해 늦게 출발하여 상대적으로 UI의 유려함이 떨어지지만, 자바를 기반으로 하고 있어 접근성이 쉽고 웹어플리케이션 뿐만 아니라 데스크탑, 모바일 등 다양한 플랫폼에 적용될 수 있는 기술이라는 점에서 향후 RIA 시장의 주도권 경쟁이 더욱 심화될 것으로 보임

     - SOA관련 WebService, RESTful 프로젝트 구현사례 및 Lessons learned 소개

     - 자동화를 통한 프로세스 개선 : Mylin, Hudson 등 '지속적인 통합(Continuous Integration)'과 관련된 프로세스 자동화 사례 소개. Do more with less 라는 구호가 인상적이었음

7. 참고자료

    참여한 테크니컬 세션 pdf파일, Hands-on-lab 소스코드 첨부(http://developers.sun.com/learning/javaoneonline 에서 다운로드 가능)

by 이호연 | 2008/05/13 17:48 | Log | 트랙백 | 덧글(0)
java.lang.UnsupportedClassVersionError
[펌] error : java.lang.UnsupportedClassVersionError
기억보조
Unsupported major.minor version 48.0 ==>jdk 1.4
Unsupported major.minor version 49.0 ==>jdk 5.0
Unsupported major.minor version 50.0 ==>jdk 6.0
by 이호연 | 2008/03/14 17:18 | 기억보조 | 트랙백 | 덧글(0)
Incremental Development
 어떻게 큰 변화를 얻을 수 있을지 생각하고 있다면,
매일의 작은 변화를 소홀히 하지 말아야 한다.
작은 변화가 조금씩 쌓여서 예상치 못한 큰 변화가 되는 것이다.
-마리안 라이트 에델만
by 이호연 | 2008/02/26 09:45 | Log | 트랙백 | 덧글(0)
Speed Reading
First things first
사람들이 책을 느리게 읽는 이유는 목적과 포커스(집중할 부분?)가 부족하기 때문이다. 다음은 책을 읽기 전에 생각해봐야할 질문들이다. 이 질문들에 대답할 시간을 가져라. 그 리스트는 다음과 같다.
  • 나는 왜 이 책을 읽나?
  • 나는 왜 이 책이 필요하다고 생각하는가?
  • 이 책은 내가 찾고자하는 가장 적합한 책인가?
  • 얼마다 오랫동안 그 책에 시간을 투자하려고 하는가?
  • 이 책에서 얻은 정보를 언제 활용할 것인가?
  • 속독에 대해서 이미 알고 있는 것은 무엇인가?
  • 이 책에서 나는 무엇을 기대하고 있나?
  • 어떻게 하면 나는 목표를 달성한 때를 알게되나?
좀 더 빠르게 책을 읽을 수 있고, 읽은 것을 기억할 수 있을 것이다.
언제나 항상 책 전부를 다 읽을 필요는 없다는 걸 알게 될 것이다.

Speed Reading은 단순히 책을 빨리 읽는 것이 아니라 똑똑하게 읽기 위한 방법(Smart reading)이다.
Smart Reading은,
  1. 읽을거리로부터 내가 어떤 것을 원하는 지를 결정하게 하고
  2. 가능한 한 효율적으로 읽을 수 있게 하고
  3. 그것을 필요로 할때 그 정보를 떠올릴 수 있게 한다.
...to be continued
@Teach yourself speed reading에서 발췌

by 이호연 | 2008/02/24 22:43 | 미분류 | 트랙백 | 덧글(0)
[스크랩]인간의 의미와 가치
인간의 의미와 가치
사람은 돈만 가지고 살 수는 없다.

by 이호연 | 2008/02/24 21:06 | Log | 트랙백 | 덧글(0)
The general legacy management strategy
The general legacy management strategy is:
1. Identify change points
2. Find an inflection point
3. Cover the inflection point
    a. Break external dependencies
    b. Break internal dependencies
    c. Write tests
4. Make changes
5. Refactor the covered code

출처 : Working Effectively With Legacy Code
Michael Feathers
Object Mentor, Inc.
mfeathers@objectmentor.com
by 고릴라 | 2008/02/24 19:37 | 기억보조 | 트랙백 | 덧글(0)
Where storage lives
  • Registers : fastest, inside the processor, allocated by the compiler
  • The stack : direct support from the processor via its stack pointer, extremely fast, ex)object reference(in RAM)
  • The heap : all java object live, there's price you pay for the flexibility, slower than stack(in RAM)
  • Static storage : in a fixed location, You can use the static keyword to specify that a particular element of an object is static, but java objects themselves are never placed in static storage.
  • Constant storage : placed directly in the program code, safe since they can never change, in ROM
  • Non-RAM storages : some data to be sent another medium or machine(ex. streamed objects, persistent objects)
by 고릴라 | 2008/02/21 18:17 | 기억보조 | 트랙백 | 덧글(0)
< 이전페이지 다음페이지 >