민진우님의 댓글을 보고 포스팅합니다. 원시적으로 콘솔에서 변경하는 법도 있지만 UI가 있습니다. spotlight에서 java라고 입력하면 여러 항목이 나오는데, java 환경설정 항목을 선택합니다.

다음과 같은 창이 뜨는데 원하는 버전을 선택하고 드래그 하면 됩니다.

민진우님 고맙습니다. 이클립스 유틸리티 책도 잘 볼께요.
/System/Library/Frameworks/JavaVM.framework/Versions 디렉토리에서
CurrentJDK로 심볼릭 링크 걸려 있는 것을 1.6으로 바꿔주면 됩니다.

kenuheoyimacbookpro:~ kenu$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing)

kenuheoyimacbookpro:~ kenu$ which java
/System/Library/Frameworks/JavaVM.framework/Home/bin/java
...

kenuheoyimacbookpro:JavaVM.framework kenu$ ls -altr
total 72
drwxr-xr-x  84 root  wheel  2856 12 10 17:00 ..
lrwxr-xr-x   1 root  wheel    29 12 11 09:30 Libraries -> Versions/CurrentJDK/Libraries
lrwxr-xr-x   1 root  wheel    24 12 11 09:30 Home -> Versions/CurrentJDK/Home
lrwxr-xr-x   1 root  wheel    28 12 11 09:30 Commands -> Versions/CurrentJDK/Commands
lrwxr-xr-x   1 root  wheel    27 12 11 09:30 Classes -> Versions/CurrentJDK/Classes
drwxr-xr-x   7 root  wheel   476 12 11 09:30 Versions
lrwxr-xr-x   1 root  wheel    26 12 11 09:30 Resources -> Versions/Current/Resources
lrwxr-xr-x   1 root  wheel    23 12 11 09:30 JavaVM -> Versions/Current/JavaVM
lrwxr-xr-x   1 root  wheel    27 12 11 09:30 Frameworks -> Versions/Current/Frameworks
lrwxr-xr-x   1 root  wheel    94 12 11 09:30 CodeResources -> ../../../../../../../../../System/Library/Frameworks/JavaVM.framework/Versions/A/CodeResources
lrwxr-xr-x   1 root  wheel    24 12 12 19:43 Headers -> Versions/Current/Headers
drwxr-xr-x   3 root  wheel   408 12 12 19:43 .
kenuheoyimacbookpro:JavaVM.framework kenu$ which java
/System/Library/Frameworks/JavaVM.framework/Home/bin/java
kenuheoyimacbookpro:JavaVM.framework kenu$ cd Versions
kenuheoyimacbookpro:Versions kenu$ ls
1.3        1.4.1        1.5.0        A
1.3.1        1.4.2        1.6        Current
1.4        1.5        1.6.0        CurrentJDK
kenuheoyimacbookpro:Versions kenu$ ls -altr
total 56
drwxr-xr-x  3 root  wheel  102  7 18  2008 1.3.1
lrwxr-xr-x  1 root  wheel    3 12 10 17:00 1.4.1 -> 1.4
drwxr-xr-x  8 root  wheel  272 12 10 17:00 1.4.2
lrwxr-xr-x  1 root  wheel    3 12 11 09:30 CurrentJDK -> 1.5
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.3 -> 1.3.1
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.4 -> 1.4.2
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.5 -> 1.5.0
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.6 -> 1.6.0
lrwxr-xr-x  1 root  wheel    1 12 11 09:30 Current -> A
drwxr-xr-x  6 root  wheel  272 12 11 09:30 A
drwxr-xr-x  7 root  wheel  476 12 11 09:30 .
drwxr-xr-x  3 root  wheel  408 12 12 19:43 ..
drwxr-xr-x  8 root  wheel  340  2  2 10:46 1.6.0
drwxr-xr-x  8 root  wheel  306  2  3 13:53 1.5.0
kenuheoyimacbookpro:Versions kenu$ rm CurrentJDK
rm: CurrentJDK: Permission denied
kenuheoyimacbookpro:Versions kenu$ sudo rm CurrentJDK
Password:
kenuheoyimacbookpro:Versions kenu$ sudo ln -s 1.6 CurrentJDK
kenuheoyimacbookpro:Versions kenu$ ls -altr
total 56
drwxr-xr-x  3 root  wheel  102  7 18  2008 1.3.1
lrwxr-xr-x  1 root  wheel    3 12 10 17:00 1.4.1 -> 1.4
drwxr-xr-x  8 root  wheel  272 12 10 17:00 1.4.2
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.3 -> 1.3.1
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.4 -> 1.4.2
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.5 -> 1.5.0
lrwxr-xr-x  1 root  wheel    5 12 11 09:30 1.6 -> 1.6.0
lrwxr-xr-x  1 root  wheel    1 12 11 09:30 Current -> A
drwxr-xr-x  6 root  wheel  272 12 11 09:30 A
drwxr-xr-x  3 root  wheel  408 12 12 19:43 ..
drwxr-xr-x  8 root  wheel  340  2  2 10:46 1.6.0
drwxr-xr-x  8 root  wheel  306  2  3 13:53 1.5.0
lrwxr-xr-x  1 root  wheel    3  2  3 13:54 CurrentJDK -> 1.6
drwxr-xr-x  7 root  wheel  476  2  3 13:54 .

kenuheoyimacbookpro:Versions kenu$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)
kenuheoyimacbookpro:Versions kenu$


ps. eclipse 3.4 mac os x버전은 java6에서 안 돌아갑니다.

The Eclipse SWT framework doesn't support 64-bit Java. Unlike Swing, SWT uses old-skool Cocoa bindings and those are 32-bit. Until IBM gets around to moving SWT to Cocoa, your only option is to run Eclipse under Java 5.
from: http://forums.macosxhints.com/showthread.php?t=91060

3.5버전m4는 동작하더군요.

2006년 구입한 구형 맥북프로 리셋할 일이 있어서 재설치하니 옛생각이 납니다.

Dock입니다.

파이어폭스 받아서 설치했습니다. Finder가 iTunes를 따라가기 전 좌측 메뉴의 모양입니다.

윈도우 업데이트 만큼이나 맥도 소프트웨어 업데이트가 잦습니다.

한참을 다운로드 받네요. ^^;

세 번을 업데이트를 더 했습니다.

Java5 까지만 지원됩니다. Java6와 Java7은 맥OS 10.4.x 에서는 지원되지 않는다고 합니다.

마찬가지로 마지막 업데이트인데 자바가 약간 아쉽습니다.

^^; 그냥 추억거리입니다.
JRuby, JythonScala, Groovy 등 JVM 위에서 돌아가는 비자바 언어들입니다. 다른 언어로 프로그래밍해서 자바 class 파일을 만들어 내기 때문이죠. JVM을 또 하나의 플랫폼으로 만드는 전략입니다. 오늘은 Buildr이라는 것을 봤는데, 이 녀석은 아예 대놓고 Ruby기반으로 자바를 빌드합니다.

말이 좋아 플랫폼이지 잡탕이 아닌가 하는 생각도 듭니다. 하긴 저는 중국집에서 잡탕밥을 좋아하는 한 사람입니다.
image from: http://bookkyung.com/bbs/board.php?bo_table=special&wr_id=10
정규표현식은 문자열의 패턴을 이용하는 것인 줄 알지만 쓰기 힘들다고 느끼는 것 중 하나입니다. 이클립스는 기본적으로 정규표현식을 지원하는데, html 태그의 일괄 변경에 사용해 보았습니다.

하늘색으로 되어 있는 부분을 Find로 찾을 때 원하는 문자열로 이동이 된다면 제대로 정규표현식을 잡은 것입니다. 
<option value="ajaxqna">ajaxqna | Ajax QnA</option>
여기에서 "ajaxqna | " 부분을 인식한 표현식은 ">\w*\s\|\s" 입니다.
\w는 a~z,A~Z,0~9까지 인식하는 기호입니다.
\s는 space(공백)이죠.

도움말을 잘 이용하면 어렵지 않게 원하는 패턴을 찾아낼 수 있을 것입니다.

황상철님의 애자일 SCRUM 방법론 적용기와 이상민님의 GWT 그리고 GWT-ext 세션에 이어서 제가 findbugs 예찬론을 폈습니다. (각 링크마다 발표자료 있습니다.)
30명이 안되는 인원이 모였고, 반은 SDS소속 반은 인터넷을 통해서 신청받은 분들이 모였습니다.

세 세션의 공통점이 있는 듯 했습니다.
회사 조직은 새로운 것을 나에게 요구하지 않는다. 
그래서 내가 새로운 방법과 기술을 익혀도 회사는 무관심하다.
새로운 것을 적용해 프로세스를 개선하려고 해도 회사 조직은 달가워하지 않는다.
귀찮아 한다. 이렇게 말하면서 "좋아 보이는군요. 하지만 너무 이상적이라 우리 팀에는 맞지 않아요." 시도하기를 꺼린다.
때문에 새로운 것을 적용하려면 또 다른 노력이 필요하다. 

황상철님의 소규모의 성공 사례부터 만들어 나가기를 얘기했고, 제 생각은 사람들의 행동을 이끌어 내는 것은 감동이기 때문에 쇼를 하라고 얘기합니다. 이상민님은 쉬면서 멋진 GWT 애플리케이션을 만드셨더군요.

9시까지 예정이었지만 25분씩 발표로 8시 반 정도에 끝나고 뒷풀이 장소로 옮겼습니다.

거대 조직 내의 조용한 움직임.
당장은 효과가 없지만, 10년, 20년 지난 우리나라 업계의 중요한 뿌리가 될 것입니다.
꽃이야 C자 들어간 직위의 사람들 몫이죠. 
파일 첨부합니다.
지난 발표자료에 적용점에 대한 고민만 살짝 추가했습니다.
okjsp 사이트의 버그는 하나 남았습니다.
이것도 곧 잡으러 출격합니다.

지속적인 통합 빌드에서 crontab 처럼 주기적으로 빌드가 돌게 할 수 있습니다. 아래는 10분 주기로 실행하도록 한 결과입니다. trend 링크를 누르면 다음과 같이 그래프로도 확인이 가능합니다.

빌드의 실행 시점은 다음과 같이 정할 수 있습니다. 우측의 ? 아이콘을 클릭하면 해당항목에 대한 설명이 보이게 됩니다. 빌드에는 분 시간 일 월 요일 5가지 설정을 하게 됩니다. 매 10분마다 설정하려면 0,10,20,30,40,50 처럼 공백없이 분을 나열하고 이후 4항목을 * * * * 로 채우면 됩니다.

빌드 로그가 많이 남을까봐 Discard Old Builds처럼 옛날 빌드기록을 삭제할 수 있습니다. 7일간 최대 200개의 빌드기록을 보관한다는 의미입니다.


소스코드를 가져오는 방법은 다음과 같습니다. CVSROOT를 적어주면 됩니다. 아이디와 패스워드가 노출되는데, 인트라넷용이라는 전제가 있습니다. 또한 빌드전용 CVS아이디를 만들어 주는 것도 괜찮을 것입니다.

간략하게 hudson의 설정에 대해서 살펴보았습니다.





from: http://www.zentus.com/sqlitejdbc/ 
구글링해서 제일 먼저 나온 사이트입니다. 검색어는 sqlite jdbc 였죠. freshmeat project로 버전업 발표가 된다고 합니다. 
sqlite3를 보고 처음 든 생각은 음, 이거 자바에서 어떻게 연결하지 였습니다. 리스너 또는 데몬이 떠 있지 않기 때문이죠. sqlitejdbc를 써보고 난 느낌은 약간 허탈했습니다. 원래 데몬이 뜨지 않더군요. 파일DB 입출력을 ANSI SQL로 만들어 놓은 느낌이었습니다. 따로 프로세스가 도는 것이라기보다는 애플리케이션에 애드온으로 삽입된 느낌이라고 할까요.

sqlitejdbc에는 현재 sqlite3가 포함되어 있습니다. 따로 sqlite를 받지 않아도 됩니다. 이클립스에서 테스트한 프로젝트 통째로 압축해서 올립니다. 라이센스는 BSD군요.


jdbc에 익숙한 분들은 아시겠지만 코드는 간결합니다.
사용법(usage) 부분에 사용시 주의사항이 나와 있습니다. 경량DB의 제한사항이 있으니 꼭 숙지하고 작업하셔야 할 것 같습니다. 항목은 다음과 같습니다.

간단한 DB가 필요할 때 유용할 것 같습니다. 대용량이나 빈번한 사용은 아직 무리겠지요.

고전적인 자바 클래스의 테스트는 main() 메소드에 값을 찍어보는 코드를 넣어서 콘솔에서 확인합니다. 이클립스에 익숙해진 덕에 JUnit에서 System.out.println() 집어 넣는 것은 초딩같은 습관이라고 생각을 "저만"했었습니다. 하지만, 찍어본다는 것 그리고 그것을 눈으로 확인하는 것은 굉장한 심리적 안정감을 주기는 합니다. 아직 assertEquals() 는 보이지 않는 신뢰가 필요하기 때문이죠.

httpunit의 테스트코드를 보니 재밌는 부분이 있었습니다. 상당히 많은 수의 테스트케이스에 main() 메소드가 있었고, 그 메인메소드는 JUnit을 기반으로 해당 테스트코드를 수행하도록 만들어주는 것이었습니다.


suite() 메소드를 inline 리팩토링하면 junit.textui.TestRunner.run( new TestSuite( EncodingTest.class ));  를 통해서 실행을 합니다. Java Application 으로 실행한 결과는 다음과 같습니다.

..............
Time: 3.813

OK (14 tests)

물론 이 클래스는 JUnit을 통해서도 실행됩니다.

다른 사람의 코드를 읽는 것, 프로그래머 소통의 시작이 아닐까 생각해봅니다.

참고로 HttpUnitTest 클래스의 상속구조입니다. ctrl+T 로 이클립스에서 볼 수 있습니다.


 

+ Recent posts