• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Monday, 16 Nov 2009 01:00
블로그로 주로 저를 아시는 분은 의례 글이 뜸하면 '바쁘구나.'하고 짐작하시더군요. 글이 줄어든 이유야 다양하지만, 굳이 짚어보자면 실증을 느낀 탓입니다. [각주:1] 블로그를 줄여도 '글쓰기 욕구'가 남아서인지 오히려 다른 곳에 쓰게 되더라고요. 가끔 근황을 묻는 분이 있어서 짤막하게 블로그가 허전한 이유로 시작했지만 실은 알려 드리고 싶은 내용이 있어 글을 씁니다. OSGi 입문서 번역을 시작했다는 소식입니다.

Modular Java: Creating Flexible Applications with OSGi and Spring

Modular Java란 책입니다. Spring in action 저자로 유명한 Craig Walls가 썼죠. 소트웍스 앤솔러지 공역 이후 다시는 번역을 안하려던 마음을 바꾼 이유는 지인의 권유, Spring in action에 대한 좋은 인상 등이 있지만, 얇은 책 두께가 한 몫 단단히 했습니다. 출판사 측에서 알려주신 '하루 3쪽씩 거르지 않고'라는 평범한 비법을 실천하고 있는데 쉽지는 않습니다. 11월 한 달은 목표가 '번역 품질'보다는 '하루 3쪽씩 해내기'에 맞춰져 있습니다. 장기전이기 때문에 용두사미로 끝났던 전철을 밟지 않기 위해서입니다. :)

원서에 알려진 오류도 있고, 출간 이후 OSGi 관련 API에 변경이 있을지 몰라 예제를 올려둘 목적으로 구글 프로젝트를 만들었습니다. 첫 페이지엔 대강의 일정을 올려놓았고, 혼자서 하지만 작업관리도 사용하고 있습니다. 이르긴 하지만, 잠재 독자나 독자와 교류를 위해 구글 그룹스도 개설했습니다. 같은 시점에 Practical Programming을 번역을 시작한 이대엽님과 함께 번역 과정에서 선택한 우리말 표현을 공유하고 있습니다.

여자들이나 할 법한 정리정돈[각주:2]을 마치고 나니 작년 SpringOne에서 해변에서 두 딸을 돌보던 Craig Walls와 사진 찍은 기억이 났습니다. 찾아보니 케누형이 공유한 사진이 있네요. 트위터를 통해 Craig Walls에게 알려 주었더니 사진 찍은 기억은 하지만 보내주지는 않았던 모양입니다. 번역 소식과 함께 사진도 기뻐하더군요.


  1. 더 정확하게는 101가지 이유가 머리 속을 떠다니지만, 그다지 중요하지는 않은 듯합니다. [본문으로]
  2. tvN '남녀탐구생활' 참조 [본문으로]
Author: "영회" Tags: "ModularJava"
Comments Send by mail Print  Save  Delicious 
Date: Friday, 13 Nov 2009 15:57
가능성이 높다 → 가능성이 크다
(의지를) 가지고 → (의지를) 갖추고
감안해 → 고려해, 참작해, 살펴, 생각해[각주:1]
(~을/를) 갖고 있지만 → (~가) 있지만
검색을 할 → 검색할
갖아보면 → 가져 보면
관심을 갖는 → 관심을 두는
구비한 → 갖춘[각주:2]
그러나, → 그러나[각주:3]
근자에는 → 요즘에는
금새 → 금세[각주:4]
(능력이) 급성장하다 → 급향상하다
기반한 → 기반을 둔
꺼림직한 → 꺼림칙한
꺽인다 → 꺾인다
꽤나 → [각주:5]
나올라나 → 나오려나
난이도도 높고 → 어렵고
너무 좋아서 → 아주/매우 좋아서
누구말대로 → 누구 말대로
다달을수록 → 다다를수록
대개의 경우 → 대개
도식화 한다 → 도식화한다
되더라구요 → 되더라고요
동일하게 → 같이
뒤 이어는 → 뒤이어는
뒷풀이 → 뒤풀이
들여다 보면 → 들여다보면
맞냐 → 맞느냐
몇 일 → 며칠
모양을 띈다 → 모양을 띤다
무엇이었냐 → 무엇이었느냐
바꾼 후 → 바꾸고
방치했다 → 버려뒀다
병기하기 → 함께 적기
보내다보니 → 보내다 보니
보여질 → 보일
부르짓던 → 부르짖던
부합하는 → 맞는
분명 → 분명히
불러지는 → 불리는
블로그스피어 → 블로고스피어
빼앗긴 후 → 빼앗기고
빽빽히 → 빽빽이
사용할 수 있는 방법은 → 사용하는 방법
새 집으로 → 새집으로
수 밖에 → 수밖에[각주:6]
쉽상인 → 십상인
스스로도 → 자신도[각주:7]
않는가 → 않은가
얼마전 → 얼마 전
얼핏보면 → 언뜻 보면
의례 → 으레
~의 경우 → ~는
이로 인해 → 이 때문에, 이로 말미암아, 이 탓에, 이 덕분에[각주:8]
이와 같이 → 이처럼
익숙치 → 익숙지 [각주:9]
~인 반면 → ~이지만[각주:10]
일체 없다 → 일절 없다
제3자 → 제삼자
주눅들어하는 → 주눅이 들어하는
중생으로써 → 중생으로서
지불한 → 지급한, 낸
지져분하게 → 지저분하게[각주:11]
짖굳게도 → 짓궂게도
짜투리 → 자투리
짧막하게 → 짤막하게
쪽팔리게시리 → 쪽팔리게끔
촉진시켜 → 촉진해
최선을 다하지 → 온 힘을 다하지/기울이지
컨퍼런스 → 콘퍼런스
컬럼 → 칼럼
큰 경우에 → 크면
필요로 할 → 필요할
하고 있는 → 하는, 한 [각주:12]
하길래 → 하기에
~하기 위해서는 → ~하려면, ~하려고
하다보니 → 하다 보니
한 가운데 → 한가운데
한가지 → 한 가지
한김에 → 한 김에
해외여행 → 외국/재외/국외여행
향후 → (순화용어) 앞으로
혼돈스럽게 → 혼란스럽게
휴대폰 → 휴대전화
휴우 → 후유
힘든 → 어려운[각주:13]
100 여 → 100여

수집 동기: 한국어 맞춤법/문법 검사기 쓰기에 따른 개선 활동
  1. 일본어에서 온 말입니다. [본문으로]
  2. 일반 순화 권장 용어로, 되도록 고쳐 쓰면 좋습니다. 따라서 굳이 쓰고 싶다면 써도 됩니다. [본문으로]
  3. 문장 첫머리의 접속이나 연결을 나타내는 말(접속부사 또는 연결을 나타내는 부사어) 다음에는 반점을 씁니다. 다만, 일반적으로 쓰이는 접속어('그러나, 그러므로, 그리고, 그런데'와 이에 대응하는 '이러나, 이러므로, 이런데') 뒤에는 쓰지 않음이 원칙입니다. [본문으로]
  4. '금새'가 '물건의 시세나 값'의 의미로 쓰였다면 옳습니다. 그러나 많은 예에서 '금세'의 오용으로 '금새'가 사용되고 있습니다. [본문으로]
  5. '보통보다 좀 더한 정도로'를 뜻하는 단어는 '꽤'입니다. '나'가 보조사이므로 '꽤나'처럼 쓸 수도 있지만, 부사는 조사가 필요하지 않으므로 '꽤'로 씀이 적절합니다. [본문으로]
  6. '-밖에'가 '오직 그것뿐임'을 뜻하면 조사이므로 앞의 명사에 붙여써야 하고, '-밖에'가 '바깥, 범위나 한계를 넘어선 부분'을 뜻하면 '밖 (명사)+에 (조사)'이기 때문에 앞 명사와 띄어 써야 합니다. [본문으로]
  7. '스스로'는 '저절로, 자진하여, 제힘으로'를 뜻하는 부사인데, 국어사전들이 부사 외에 자기 자신을 뜻하는 명사로 보아 '스스로가 스스로에게 물어 보라', '스스로를 생각해 보아라' 등의 용례를 보이고 있으나 분별 없고 치졸한 짓이다. 이 말 역시 아무 조사도 붙이지 말고 부사로만 써야 한다. [이수열, "부사를 옳게 써야 글이 산다", 말과글, 70권, 1997년 봄호, 32∼35쪽] [본문으로]
  8. 순화용어(일본어/외래어) -に 因り, -에 인하여)을 옮겨다 '-로 인하여'로 쓰고 있는 말입니다. 영어(by+사물)를 번역하면서도 이를 가져다 쓰기도 합니다. 이는 토씨 '-로'가 '원인'이란 뜻 구실을 하므로 아예 '인해, 인하여'가 필요 없을 때가 많습니다. 대체로 명사 '탓·때문·덕분'이나 '-로 말미암아'로 바꿔써야 할 말입니다. 개정된 민사 소송법에는 '-로 인해'를 대체로 '-로 말미암아'로 바꿔 쓰고 있습니다.[한겨레 신문 자체 자료에 따름]" [본문으로]
  9. [본문으로]
  10. 뒤에 오는 말이 앞의 말과 상반됨을 나타낼 때 '반면'이라는 말을 씁니다. 주로 '-은,는 반면에'의 형태로 쓰는데 한자어보다 '-지만'이라는 접속 조사를 쓰는 것이 좋습니다. [본문으로]
  11. 'ㅓ'와 'ㅕ'가 다른 자음에 붙었을 때 비슷하게 소리납니다. '지져분'이 아니라 '지저분'이 바릅니다. [본문으로]
  12. '있다'가 보조용언으로 쓰이면 앞말이 뜻하는 행동이나 변화가 끝난 상태가 지속됨을 뜻합니다. 하지만, 용언에 현재형 어미를 쓰는 것으로 현재를 나타냄에는 무리가 없으므로 '있다'는 빼고 씀이 적절합니다. [본문으로]
  13. '어렵다.'가 더 구체적으로 뜻을 전합니다.
    예) 고르긴 힘들어 → 고르긴 어려워
    낙관하기는 힘들다 낙관하기는 어렵다
    [본문으로]
Author: "영회" Tags: "2009 이야기, 개선, 진화, 한국..."
Comments Send by mail Print  Save  Delicious 
Date: Monday, 09 Nov 2009 09:03
Using Mylyn with Google Code - Updated for Eclipse 3.4 (Ganymede) 을 따라 해서 성공

몇 가지 주의할 사항을 메모:

1. 가니메데(JEE)에는 Mylyn Connector: Web Templates (Advanced) 가 없어서 설치해야 한다. 업데이트 URL: http://download.eclipse.org/tools/mylyn/update/incubator

2. Eclipse Outliner (Google Code)가 제공하는 Query Pattern 값에서 개행문자(\n)를 빼야 Type, Priority가 작업 목록 표시 이름에서 빠짐

3. 처음에는(default) 활성(open) 이슈 목록만 반환한다. 즉, Query Request URL 값이 아래와 같이 설정되어 있다.
${serverUrl}/csv?colspec=ID+Status+Type+Owner+Summary

쿼리 요청 URL 형식이 다음과 같아서 can 파라미터 기본(default) 값이 2라고 추측할 수 있다.

Query Request URL:
${serverUrl}/csv?can=${can}&colspec=ID+Status+Type+Owner+Summary&q=${search}

만일 마감한(closed) 이슈도 함께 보고 싶으면 Query Request URL 값에서 "can=1"로 지정해야 한다.
${serverUrl}/csv?can=1&colspec=ID+Status+Type+Owner+Summary

참조: http://alblue.blogspot.com/2009/04/google-code-and-mylyn-redux.html


Author: "영회" Tags: "2009 이야기, Eclipse, google code, My..."
Comments Send by mail Print  Save  Delicious 
Date: Friday, 06 Nov 2009 00:00
실용적 접근은 최근 전 분야에 걸쳐 대 유행이다. 설계 접근으로써 TDD에 대한 논쟁은 많지만 아쉽게 경험(practices)에 대한 공유는 찾아보기 힘들다. 그래서, 대단한 경험은 아니지만, JUnit 테스트를 특정 목적에 맞게 활용한 사례를 공유한다.

1. JUnit 테스트 작성을 통해 미지의 코드를 학습하기[각주:1]
현장에서 일하다보면 많은 사람이 겪는 상황이 있다. 누군가 짜 놓은 프로그램(API)을 사용해야 하는 상황이다. 보통은 담당자 혹은 사수에게 묻거나 문서를 찾아본다. 경험상 오래된 코드는 기존 코드를 이해하기가 그리 쉽지 않다. 먼 옛날 선조(?)들이 밝혔지만, 개발보다는 유지보수에 훨씬 비용이 든다. 그 중에서도 기존 코드를 파악하는데 소비하는 시간/노력이 가장 크다.

실제로 겪은 일이지만, 혹시 경험이 없는 분을 고려하면 이런 가정을 해보자. 특정 시스템 인프라를 써서 시스템을 개발해야 하는 상황이다. ESB나 EAI, MCI, DW 뭐든 좋다. 그런데 애초에 시스템을 개발한 인력이 없어졌고 문서조차 없이 운영하는 아슬아슬(?)한 상황이라고 생각해보자. 잘 알지도 못하는 시스템 인프라를 써야 하는 개발자는 어찌 해야 할까?

흔히 쓰는 방법은 유사 사례의 기존 코드를 찾아 분석하는 방법이 있다. 확실한 방법이지만, 고생이 심하다. ㅡㅡ;

이보다 아주 조금 좋은 방법이 JUnit 사용이다. API를 설명하는 문서조차 없어도 이클립스가 제공하는 행복한 환경 덕이 크다. 객체를 생성한 후 점만 찍어도 API 함수 정도는 알 수 있는 바로 그 기능 말이다. 이를 활용해서 그럴싸한 함수(메소드)를 호출해서 결과를 확인해본다. System.out.println() 으로 확인한 후에 마무리는 assertXXX 함수로 정리한다.

이런 방법으로 오류 상황과 해당 시스템과 연동할 때 필요한 입출력 파라미터를 정리한 경험이 있다. 약 3일에 걸쳐 순수하게 8시간 정도 투입해서 필요한 사항을 충분히 파악한 경험이 있다. 만일 소스 코드 분석만으론 훨씬 더 오랜 시간이 걸렸을 일이다. JUnit을 안 쓰고 디버거를 활용해도 같은 결과를 얻는다. 그러나, 원격 시스템까지 고려한 배포를 해야 한다는 점을 고려하면 기다리는 시간이 만만치 않다. 적어도 JUnit으로 했던 시간보다는 더 걸린다. 물론, JUnit 사용법에 익숙치 않은 분에겐 예외다.

툴 사용에 익숙해야 생산성이 난다. 요즘 툴 사용에 대한 경험을 공유하고 싶어 집필에 대해 심각하게 고려중이다. :)

내년 어느 때에 KSUG 혹은 JCO 컨퍼런스에서 실제 코드를 가지고 경험을 공유하는 자리를 만들 생각이다.

2. 사후 테스트를 작성해도 회귀 테스트 위력은 대단하다
이미 여러 차례 회귀 테스트 위력에 대해서는 이야기했다. Test First는 우리 환경에 맞지 않다는 이야기를 워낙 많이 들었고, 조엘 말마따나 컴파일 항목이 아닌 외부 요인을 건드리는 테스트는 워낙에 힘들기도 하다. 그런 점을 인정하더라도 사후 테스트를 자동화 테스트로 작성하는 일은 충분히 가치가 있다. 두 어 차례 프로젝트에서 저항하는 다수 개발자에 대항하여 테스트 케이스를 작성하게 했다. 결과는 어떨까? 링크한 효과만도 대단한 결과지만, 문화라 할 만한 효과를 얻었다.

테스트 작성 전에는 '왜 테스트가 필요하냐?' 혹은 요구사항이나 표준이 바뀌면 글씨 하나 바꾸는 일에도 핏대를 세우던 개발자가 변한다. 테스트 작성을 하고, 리팩토링 하는 일에 익숙해진 개발자는 놀랍게도 서너 달만에 변화를 쉽게 수용했다. 변화에 대한 적응력을 갖는 점을 실제로 목격하곤 정말 놀랐다.

3. 문서화
개발자는 문서를 좋아하지 않는다. 작성도 싫어하지만, 잘 읽지도 않는다. 그래도 필수 사항은 알게 하려고 예제를 만든다. 그런데, 겉으로 드러나지 않는 작동원리(mechanism)는 예제를 만들기 쉽지 않다. 그래서, 주요 단면을 보여주기 위해 테스트 케이스를 만든 일이 있다. 그렇게 만든 테스트 케이스를 갈고 닦다보니 놀라운 경험을 했다. 책에서는 테스트 케이스가 요구사항에 대한 명세 역할을 한다지만, 피부에 와닿지는 않았다. 그러나, 적어도 작동원리나 조건에 따라 다른 결과가 드러나는 현상을 규명하는데는 놀라운 효과를 발휘했다. 심지어 자바를 처음 접하는 노련한 프로그래머에게 테스트 케이스를 보여주니 평소에 자기가 원했던 것이라고 반기는 일도 있었다.

물론, 한계는 있다. 모델이라고 부를 수 있는 큰 그림은 문서로 표현해야 한다. :)
  1. Toby 형한테 배운 기법임을 밝혀둔다. [본문으로]
Author: "영회" Tags: "2009 이야기, 개발, 개발일지"
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 05 Nov 2009 00:00
누구 말대로 허여멀건 스킨으로 바꾸고 블로그를 버려뒀다. 그러다 술 한잔 한 김에 Toby 님의 도발(?)에 응답한다. 아아~ 목소리 제대로 나오려나?

요즘 변화의 소용돌이 한가운데 있는 고객과 만난다. 제3자 입장에서 냉정하게 볼 수 있지만, 당사자는 매우 힘들어한다. 머리로는 이해하지만 사실 난 모른다. 그런 일을 겪을 기회가 없었으니까. TV를 보면 '변화가 제일 쉬웠어요.'라는 광고속 발언을 들을 수 있다. 후배 덕에 그 회사에 대해 좀 들었는데, 두 가지 측면에서 정말 놀라운 일이 벌어졌다. 회사 기밀일 수 있어서 더 언급은 자제한다.

생업 와중에 이런 격변기를 관찰자로 보내다 보니 마치 내가 포레스트 검프가 된 듯한 기분도 든다. 他山之石으로 배우는 바는 스스로 바꾸지 않으면 당한다는 사실이다. 대나무처럼 바람에 휘지 않으면 꺾인다.

또 한가지 배우는 사실이 있다.

나라를 빼앗기고 다시 토지 배분을 하다 보니 선점한 사람에게 돌아가는 이익이 크다. 그 이전부터 있었지만, 조선시대 김선달이 유명하지 않은가. 선점의 비법은 20년쯤 전부터 복부인이 계승했다. 대형 사업인 SI 분야도 비슷한 듯하다. 선점한 이들이 안락하게 시세차익(?)을 많이 얻었다. 그런데 종말이 멀지 않은 듯하다.

어차피 나 역시 한 시대를 살아가는 중생이다. 중생으로서 거대한 시간의 흐름을 마치 남의 일인 양 보는 재미가 쏠쏠하다. :)
Author: "영회" Tags: "2009 이야기, 변화, 변화의 소용..."
Comments Send by mail Print  Save  Delicious 
Date: Friday, 23 Oct 2009 08:57
* 갑자기 불려가서 하는 회의
* 소프트웨어 업데이트(브라우저 등)
* 조언을 구하는 팀원이나 지인의 메시지에 응대하기
* 회의실을 예약해놓고, 승인을 기다리는 시간 (승인 여부에 따라 공지를 하고, 예약을 다시 해야 함)

이슈 트래커를 통한 작업 관리를 하며... 갑자기 생각나서 메모
단순 인터럽트로 보기 힘든 모호한 작업으로 공수 측정의 헛점
Author: "영회" Tags: "프로젝트 로그"
Comments Send by mail Print  Save  Delicious 
Date: Friday, 23 Oct 2009 02:25
노트북 새로 깔면서 필수 유틸리티 활용 환경 만들기 v3 Launcy를 모두 검색하기 v3 등을 정리했는데, 집에 PC도 곧 새로 깔아야 한다. 프로그램 구하는 URL과 사용법 링크를 준비

프로그램 다운로드 URL 사용법
빵집
http://www.bkyang.com/
 -
Vista Switcher
http://www.ntwind.com/software/vistaswitcher/download.html 환상적인 Alt-Tab 대체 유틸리티 VistaSwitcher :: 웹초보의 Tech 2.1
Everything
http://www.voidtools.com/download.php 데스크탑 검색 툴 새로운 강자 Everything!!
Launchy http://sourceforge.net/projects/launchy/files/ 키보드로 몽땅 해결하는 Launchy 사용법과 활용팁 (1)
파이어폭스
http://www.mozilla.or.kr/ko/firefox/ 초보자에게 추천하는 파이어폭스 확장기능 베스트 8
teracopy http://www.codesector.com/download.php 윈도우의 아쉬운 2%를 채워주는 프리웨어 Top 10
KeyTweak http://webpages.charter.net/krumsick/ 윈도우의 아쉬운 2%를 채워주는 프리웨어 Top 10
Screen Hunter
http://www.wisdom-soft.com/sh/sh_free.htm 윈도우용 프리웨어 스크린샷 프로그램 screen hunter
Notepad++ http://sourceforge.net/projects/notepad-plus/files/ Notepad++ 의 몇가지 부가기능 사용하기
Autoruns http://live.sysinternals.com/autoruns.exe Sysinternal의 시스템 관리 프로그램을 한자리에.. Sysinternals Live
MKN TaskExplorer http://www.mkn-software.de/en/software/desktop/taskexplorer/ Sysinternal의 시스템 관리 프로그램을 한자리에.. Sysinternals Live
Author: "영회" Tags: "2009 이야기, PC 설치, 유틸리티"
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 22 Oct 2009 03:30
이러한 상황 속에서도 대부분의 기업들은 어떻게든 베이비붐 세대까지는 함께 끌고안고 가기 위해 필사적으로 노력하고 있다. 그러나 이들이 곶감을 모두 빼먹어 버린 후의 회사에는 현재의 주력 세대를 끌어안아 줄 힘 같은 것은 남아 있지 않다. 시험삼아 당신이 근무하는 회사의 사원 명부와 재무제표를 비교하여 베이비붐 세대의 퇴직금을 모두 지급했을 경우, 어느 정도의 현금이 남게 되는지 계산해 보라. 대부분의 회사는 빈 껍데기만 남게 된다는 것을 알 수 있을 것이다.


- 일본이나 우리나 같은 시대상
- 후반부(시험삼아 ~) 냉철한 현실 인식 방법 ... 배우자


지식을 습득하는 일과 그것을 실제로 활용할 수 있는가의 사이에는 깊은 틈이 존재한다.


- 훈련 필요


- Fact to Act
전략사고 컴플리트북 43쪽

하늘 단계의 사실 수집과 비 단계의 사실 분석에서는 우직하게 사실(=팩트)을 직시할 필요가 있다. 분석은 사실에만 기초하여 실시하면 된다. 주관적인 의견은 필요하지 않다.





전략사고 컴플리트북 - 10점
가와세 마고토 지음, 현창혁 옮김/일빛

Author: "영회" Tags: "2009 이야기"
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 22 Oct 2009 00:08
1. 필수 플러그인 설치

2. 설정 변경
3. 튜닝
  • Heap 메모리 보기 설정: Preferences -> General 에서 Show heap status를 체크
  • GC 줄이기 위한 메모리 설정: eclipse.ini에서 -Xms와 -Xmx 값을 -Xms1000M -Xmx1000M 로 변경
  • 불필요한 플러그인 초기 기동 방지: Preferences -> General -> Startup and Shutdown 에서 디폴트로 선택되는 플러그인 중 불필요한 것 제외 (내 경우는 모두 불필요함)
  • 저장시 Organize Imports 자동 실행: Preferences -> Java -> Editor -> Save Actions에서 Perform the selected actions on save와 Organize imports 를 순서대로 선택
  • 워크스페이스 자동 리프레시 설정: 이클립스 밖에서 워크스페이스 파일 수정한 경우 자동으로 이클립스에서도 인식하게 함. Preferences -> General -> Workspace 에서 Refresh automatically 선택
  • 자바 파일 아이콘을 다양하게: 자바 파일을 펼쳐야 해당 파일이 Class, Interface, Enum 중에 어떤 타입을 정의했나 알 수 있다. Preferences -> General ->Appearance -> Label Decorations 에서 Java Type Indicator를 선택하면, 자바 파일 아이콘이 Class, Interface, Enum 등의 타입 정보가 드러나게 바뀐다.

eclipse.ini 예제

더보기

// 가니메데(3.4) 기준 eclipse.ini 예제
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms1000M
-Xmx1000M

// 갈릴레오(3.5) 에서 문제를 해결했다는 1인
http://gerions.egloos.com/5101012

참고:
Author: "영회" Tags: "2009 이야기, 이클립스"
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 21 Oct 2009 05:06
벤자민의 글을 보고 돌연!

벤자민의 선택:
  • Code Assist (CTRL + Space)
  • Quick Fix (CTRL + 1)
  • Refactoring (ALT + SHIFT + T)
  • Source (ALT + SHIFT + S)
  • Surround With (ALT + SHIFT + Z)
  • Delete Rows (CTRL + D)
  • Call Hierarchy (CTRL + ALT + H)
  • Quick Type Hierarchy (CTRL + T)
  • Quick Outline (CTRL + O)
  • Show All Shortcuts (CTRL + SHIFT + L)

아래는 내 선택:
  • Code Assist (CTRL + Space)
  • Quick Fix (CTRL + 1)
  • Quick Access (CTRL + 3) [각주:1]
  • Refactoring (ALT + SHIFT + T) [각주:2]
  • Source (ALT + SHIFT + S) [각주:3]
  • Delete Rows (CTRL + D)
  • Maximize Active View or Editor (CTRL + M) [각주:4]
  • Back/Forward (ALT + LEFT/RIGHT)
  • Quick Outline (CTRL + O)
  • Open Resource (CTRL + SHIFT + R)

한국 스프링 사용자 모임 메일링에 공유했더니 다양한 노하우가 주렁주렁 달렸습니다.

특히 주목을 끄는 단축키를 모아 보면:
  • Open Task (CTRL + F12) - Mylyn
  • Open Editor Drop-Down (Ctrl + E)
  • 에디터 활성화 (F12 )

  1. 벤자민과 다른 선택을 굵게 표시 [본문으로]
  2. 빈도로 따지면 Rename... (ALT + SHIFT + R)을 압도적으로 많이 쓰지만, Refactoring 하위 메뉴를 모두 뺄 순 없네. [본문으로]
  3. getters/setters 만들 때 주로 씀. [본문으로]
  4. 순전히 노트북 사용 때문에 자주 씀. [본문으로]
Author: "영회" Tags: "2009 이야기, Eclipse, 단축키, 이..."
Comments Send by mail Print  Save  Delicious 
Date: Tuesday, 20 Oct 2009 00:08
launchy를 배워 쓰다 보니 매우 편리했다. Weby라는 플러그인을 통해 즐겨찾기나 검색엔진과 연결해주는 기능이 있음을 알았다.

1. 즐겨찾기 검색
내친김에 먼저 즐겨찾기 바로가기를 찾아 시도했다. 파이어폭스 3 에서는 about:config으로 들어가서 browser.bookmarks.autoExportHTML의 값을 true로 바꿔주고 파이어폭스를 재기동하고 나서 카탈로그를 다시 만들어야(Rebuild Catalog) 했다. 이제 즐겨찾기 이름을 기억한다면 바로 페이지를 열 수 있다.

2. 검색엔진 호출
다음으로, 검색엔진을 연결해본다. launcy를 쓰기 전까지는 파이어폭스에 필요한 검색엔진을 추가해서 썼다.

사용자 삽입 이미지

Weby에 설정은 간단하다. %s가 문자열로 바뀐다는 사실과 검색 결과 URL 형식만 알면 쉽게 설정할 수 있다.

추가한 내용:
  • 내 블로그 내 검색
  • RFC 검색
  • JSR 검색
  • 구글 이미지 검색
  • Naver 사전 검색
  • 구글 코드 검색
  • Krugle
  • 약어 검색 (v3에서 추가)[각주:1]
Google Image 등은 모두 입력하지 않고, Gooi 나 goi만 입력해도 찾아준다.

설정을 다시 사용할 수 있을까? 설정 화면에서 import/export 기능은 제공하지 않는다. 하지만, 수작업 import/export는 가능하다. 비스타 기준으로 C:\Users\ahnyounghoe\AppData\Roaming\Launchy 폴더를 보면 Launchy.ini 파일이 있다. [weby]로 구분한 영역을 아래 내용으로 바꾸고 Rebuild Catalog 명령을 실행하면 import 완료!

더보기

[weby]
sites\1\name=Younghoe.info
sites\1\base=http://younghoe.info/
sites\1\query=search/%s
sites\1\default=false
sites\2\name=Wikipedia
sites\2\base=http://en.wikipedia.com/
sites\2\query="wiki/Special:Search?search=%s&fulltext=Search"
sites\3\name=Weather
sites\3\base=http://www.weather.com/
sites\3\query=weather/local/%s
sites\4\name=RFC
sites\4\base=http://tools.ietf.org/html/
sites\4\query=rfc%s
sites\5\name=Naver Dictionary
sites\5\base=http://dic.naver.com/search.nhn
sites\5\query="?target=dic&query=%s&x=0&y=0"
sites\6\name=Maps
sites\6\base=http://maps.google.com/
sites\6\query="maps?f=q&hl=en&geocode=&q=%s&ie=UTF8&z=12&iwloc=addr&om=1"
sites\7\name=Krugle
sites\7\base=http://www.krugle.org/kse/entfiles
sites\7\query="?query=%s"
sites\8\name=JSR
sites\8\base=http://jcp.org/en/jsr/detail
sites\8\query="?id=%s"
sites\9\name=Google Images
sites\9\base=http://images.google.co.kr/
sites\9\query="images?q=%s"
sites\10\name=Google Code
sites\10\base=http://www.google.co.kr/codesearch
sites\10\query="?q=%s"
sites\11\name=Google
sites\11\base=http://www.google.com/
sites\11\query="search?source=launchy&q=%s"
sites\12\name=Dictionary
sites\12\base=http://www.thefreedictionary.com/
sites\12\query=%s
sites\13\name=Amazon
sites\13\base=http://www.amazon.com/
sites\13\query="gp/search/?keywords=%s&index=blended"
sites\14\name=Acronyms
sites\14\base=http://acronyms.thefreedictionary.com/
sites\14\query=%s
sites\size=14
version=2
firefox=true
ie=true
sites\2\default=false
sites\3\default=false
sites\4\default=false
sites\5\default=false
sites\6\default=false
sites\7\default=false
sites\8\default=false
sites\9\default=false
sites\10\default=false
sites\11\default=true
sites\12\default=false
sites\13\default=false
sites\14\default=false
sites\15\name=Acronyms
sites\15\base=http://www.thefreedictionary.com/
sites\15\query=%s
sites\15\default=false

3. 파일 및 폴더 검색
웹초보님 블로그에서 편리하고 빠른 검색 :: Launchy에서 Everything 검색하기라는 글에서 찾을 수 있다. 그대로 하는 대신에 응용해서 Runner 플러그인을 사용한다. Runner plugin options 를 다음과 같이 설정한다.

Name: find
Program: C:\Program Files\Everything\Everything.exe
Arguments: -search $$

find 라고 입력하고, Tab키를 누른 후에 검색어를 입력한다. Everything의 검색 속도는 정말 놀랍다.

4. 다운로드 파일 검색
옵션 catalog 탭에서 각종 메신저나 브라우저에서 내려 받은 파일을 바로 찾기 위해서 파일 내려 받은 디렉터리를 추가하고 모든 파일 유형(*.*)을 지정한다. 다운로드 받은 이후 바로 사용할 때는 유용하지만, 2번 이상 쓰지 않는 경우도 있다. 설치 파일(installer)이 대표 사례인데, 이와 같은 경우 다른 폴더로 옮겨서 검색 대상에서 뺀다.
  1. dictionary와 thesaurus 둘 대신에 통합해서 보여주는 thefreedictionary로 교체 포함 [본문으로]
Author: "영회" Tags: "2009 이야기, Launcy, 검색 엔진, ..."
Comments Send by mail Print  Save  Delicious 
Date: Monday, 19 Oct 2009 23:30
Adblock Plus 설치만으로도 광고 대부분이 사라진다. 그러나 포탈 사이트에서 눈을 현혹하는 플래시는 남아 있다. 약간의 설정으로 제거할 수 있다. 하루에도 수 십 통을 보는 지메일에 있는 광고는 Adblock Plus 설치만으로는 해결을 못 한다. 이를 가능하게 하는 확장 기능이 따로 있다. 이제 ABP 아이콘을 클릭하면 '감출 요소 선택'이라는 메뉴가 나타난다. 친절하게 Ctrl+Shift+K 단축키도 제공한다.


Selecting element to hide


이제 광고 없이 지메일을 읽을 수 있다.

Author: "영회" Tags: "2009 이야기, 광고 제거"
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 15 Oct 2009 06:56
* 다시 떠올리기 위해 날짜 갱신

대소문자 변환 단축키를 잊어버려서, Ctrl+Shift+L 키로 단축키를 찾아본다. Ctrl+Shift+X 또는 Ctrl+Shift+Y 다. 아쉬운 건 토글이 안된다는 점...

사용자 삽입 이미지
Author: "영회" Tags: "이클립스 노하우, 대소문자 변..."
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 15 Oct 2009 06:38
Update 주소 메모할 겸 기록함

* Test Coverage 측정: Alt+Shift+X, T 대신 Alt+Shift+E, T만 써주면 OK
http://update.eclemma.org/

* TestCase와 테스트 대상 사이에서 Jump to 지원:
http://moreunit.sourceforge.net/org.moreunit.updatesite/

관련 글:
TDD를 위한 기본 코딩 습관 3종 세트
TDD를 위한 이클립스 메소드 생성 템플릿
Author: "영회" Tags: "2009 이야기, JUnit, 이클립스, 테..."
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 15 Oct 2009 04:21
SI 현장에서 자동화 테스트를 적용하면서 테스트 작성 여부에 따라 개발자 성향이 바뀌는 모습을 경험할 수 있다. 같은 기반 기술을 사용하지만, 개발 일정이 달라 A 시스템과 B 시스템 개발자 투입 사이에 한 달 정도 공백이 있었다. 국내 SI에선 JUnit 테스트 작성을 필수 활동으로 삼고, 테스트 내용이 적절한가 까지 동료 검토 혹은 인스펙션하는 일은 흔치 않아 반발이 심하다. 우여곡절 끝에 개발이 한 달쯤 지나자 90% 가까이 테스트를 작성한다.

A 시스템 개발이 약 두 달쯤 진척했을 즈음의 일이다. 공통으로 사용하는 기반 코드(혹은 프레임워크)에 API 변경이 필요했다. 그래서, 거의 모든 DAO 클래스에 몇 줄이지만 변경이 필요했다. 공교롭게 개발 착수가 늦은 B 시스템 개발자에게 먼저 공지를 했다. 예상대로 상당한 반발을 겪을 수 있었다. 심지어 아직 완성한 DAO가 하나도 없는 개발자마저 변경 발생에 대해 불평을 토로했다. B 시스템 개발자는 한 달 남짓 새로운 개발환경(Spring과 X-internet 사용 기반을 공통화한 기반 코드 사용 및 화면 입력 데이터 및 DB 접근 로직에 대한 JUnit 작성)에 익숙해지는 중이었다.

긴 설득 과정에서 얻은 피로감을 안고 이번에는 A 시스템 개발자에게 공지했다. A 시스템 개발자는 두 달 전과 달리 수정사항에 대해 거부감이 확연하게 적었다. 단지, '바꿔야 하는 이유'와 '현재 방법이 가장 나은가?' 등을 확인해왔다. 안도감을  넘어서 고마움을 느낄 수 있었다. 태도 변화는 어디서 왔을까? 답은 확실했다. 우리는 TDD를 채용하지는 않았다. 무슨 말이냐면, 테스트를 먼저 만들지는 않는다. 사용자 입력 값과 DB 상태를 고려하여 서버측 로직이 정상작동 하는가를 확인하는 기능 테스트를 JUnit 기반으로 작성한다. 어차피 화면을 통해 제삼자가 테스트를 하기 때문에 JUnit이 제공하는 기능 검증 효과는 크지 않았다.[각주:1] 가장 두드러진 효과는 회귀 테스트가 주는 이점이다.

이와 달리 눈에는 잘 띄지 않았지만, 훨씬 강력한 이점을 발견했다. 아직 대다수 개발자가 JUnit 테스트 작성에 서툴다 보니 동료 검토를 강화했다. 개발자가 코드를 작성하고 나면, 이슈 트래커(툴은 Redmine)를 사용하여 동료 검토를 요청한다. 코드 전체를 몇 사람이 나누어서 검토해주고 지적사항은 '결함'이나 '권고'로 다시 이슈 트래커에 올린다. 처음에는 개발자가 수정에 반감을 갖지만, 반복하다 보면 일상으로 변한다. 일상으로 변하면, 이유가 어떻든 더 나은 코드를 만들기 위해 수정을 수용한다. 회귀 테스트를 갖췄으니 리팩터링은 한결 수월하다. 자동화 테스트를 몇 달 이상 수행한 개발자는 분명히 그렇지 않은 개발자 혹은 테스트 수행하기 전보다 변화에 대해 관대했다. 물론, 테스트를 작성하지 않아도 동료 검토 과정을 통해 성향을 바꿀 수 있다. 하지만, 기준 부합 여부를 명확히 성공이나 실패로 판별해주는 방법이 있는 경우는 그렇지 않은 경우에 비해 확연히 유리하다.
  1. 화면을 띄워서 확인하는 기능 테스트를 JUnit 기반으로 대체하려면 테스트 케이스 작성에 더 큰 공수를 투입해야 하는데 현실적으로 어려웠다. [본문으로]
Author: "영회" Tags: "2009 이야기, JUnit, Test, 테스트"
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 14 Oct 2009 23:42
일 때문에 쓰는 프로그램이 설치 가정에서 시작 프로그램에 두 번 등록하는 버그를 갖고 있다. 그래서, 시작하자마자 두 개의 프로세스가 뜬다. autoruns를 써서 등록 상황을 확인해보니 아래 두 개 키 아래에 해당 프로그램이 모두 등록되어 있다.
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run  
만일을 위해 레지스트리를 백업한다.

Windows Vista 또는 Windows 7

  1. 시작
    그림 축소그림 확대
    시작 단추
    을 클릭하고 검색 시작 상자에 systempropertiesprotection을 입력한 다음 Enter 키를 누릅니다.
    그림 축소그림 확대
    사용자 계정 컨트롤 권한
    관리자 암호나 확인을 요청하는 메시지가 나타나면 암호를 입력하거나 허용을 클릭합니다.
  2. Windows에서 사용 가능한 디스크와 가장 최근의 복원 지점을 검색할 때까지 기다립니다. 시스템 속성 대화 상자의 시스템 보호 탭에서 만들기를 클릭합니다.
  3. 복원 지점 이름을 입력하고 만들기를 클릭합니다.
  4. 복원 지점이 성공적으로 만들어지면 확인을 차례로 두 번 클릭합니다.

HKLM과 HKCU 차이는 무얼까?

HKCU means HKey Current User, ie your personal profile related settings,
HKLM means HKey Local Machine, ie your machines specific settings.

출처: http://www.portegeclub.com/forum/viewtopic.php?t=305


Author: "영회" Tags: "2009 이야기, Autoruns, 시작 프로..."
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 14 Oct 2009 02:37
노트북 설치를 새로 했다. 일하는 데 필요한 프로그램만 깔고 쓰다 보니 필수 유틸리티가 고프다. 그중에서 설치형 프로그램이 아닌 process explorer, autoruns 등은 설치 위치까지 찾아가 실행하려면 번거롭다. 바로가기를 만드는 방법도 있지만 바로기가는 최대한 아끼는 성격이다. 일단, Utils라는 폴더를 만들어 설치가 필요 없이 바로 실행하는 프로그램을 몰아넣는다. 그리고 나서, '윈도+R' 키를 누르고 나서 명령어로 타자해서 실행하기로 한다. 경로를 못 찾는다. 이클립스 등장 이후로 사용한 기억이 가물가물한 환경 설정을 한다.

(Launchy 사용자)
Launchy 사용법은 웹초보님이 친절하게 설명하고 있다. Alt + Space로 실행하면 깔끔한 UI가 나타나는 인터페이스가 마음에 쏙 든다.

2008-07-19_204959

기본으로 시작 프로그램 등록한 프로그램(설치형)만 사용 가능하다. 옵션 catalog 탭에서 원하는 디렉터리와 파일 유형을 지정해주면 원하는 프로그램 무엇이든 실행 가능하다.

2008-07-19_215432

주의 사항: '*.exe'로 하지 않고, 'exe'로 했더니 작동하지 않았다.

조금 응용해서 다른 필요에 맞춰 설정했다. 각종 메신저나 브라우저에서 내려 받은 파일을 바로 찾기 위해서 파일 내려 받은 디렉터리를 추가하고 모든 파일 유형(*.*)을 지정했다. 이제 내려 받은 후 이름을 타자하면 바로 읽을 수 있다.

(플러긴 설명에도 눈이 가지만 일단 패스)

(Launchy 사용 안함)
비스타 기준으로 바탕화면에서 '컴퓨터' 아이콘 선택 후 Alt+Enter > 고급 시스템 설정 선택 > 환경변수 버튼 클릭 > Path 항목에 폴더 위치 추가
Author: "영회" Tags: "2009 이야기"
Comments Send by mail Print  Save  Delicious 
Date: Friday, 09 Oct 2009 03:48
중복 제거는 코드뿐 아니라 일상 작업에서도 유용하다. 하루에도 수 십 번씩 클릭하는 메뉴가 있는데 단축키가 없다. 요즘 Team > Show History를 반복해서 사용한다. 지루하고 손목 아픈 일이다. 이클립스에서 단축키를 정의할 수 있음을 떠올렸다.

Ctrl+3 키를 누른 후(Quick Access) 'keys'로 검색한다. Preferences 창에서 General > Keys 항목에 접근할 수 있다. 필터에서 'show hi'까지 입력하면 둘만 남는다. 물론, Subversive를 설치하지 않으면 하나만 나타날 것이다.

사용자 삽입 이미지


Team 하위 주요 명령이 Ctrl+Alt와 알파벳 조합키인 점에 착안하여 Ctrl+Alt+H로 하고 싶지만 이미 사용중이다. Open Call Hierarchy가 쓰고 있다. Preferences 창에서 General > Keys 항목 아래쪽에 있는 Binding 입력 상자에 키 조합을 넣어보면 충돌을 확인할 수 있다. 한발 양보해서 Ctrl+Alt+H로 대신하려 했더니 Add to svn:ignore...가 쓰고 있다. 아예 마지막 글자를 선택해서 Ctrl+Alt+Y로 정했더니 OK다.

사용자 삽입 이미지

Author: "영회" Tags: "2009 이야기, 단축키, 이클립스"
Comments Send by mail Print  Save  Delicious 
Date: Friday, 09 Oct 2009 00:21
3년 전에 한껏 고무되어서 이런 글을 써 놓았지만, 별반 나아지지 않았다. 개발 프로젝트에서 컨설팅하는 일 외에는 생활의 아주 기본까지도 서툰 터라 삶을 대부분 일에서 배운다. 일외에 준비 없이 당하는(?) 많은 경험 속에서 가끔 '그렇구나.'하며 깨닫기도 한다. 편식을 하듯 마음을 끄는 일만 쳐다보고 그 외에는 내버려뒀던 과거는 고스란히 대가를 묻는다. 제풀에 지쳐서 종종 부질없이 현실과 동떨어진 천국(?)을 꿈꾸기도 한다. 나이만큼의 세월 덕에 부질없음을 이제는 안다.

어제 다른 사람에게 준 상처가 나에게 되돌아오는 일을 경험했다. 한두 번 있는 일도 아니지만, 짧게나마 진심으로 반성했다. 생활에 휩쓸려 다니면 나도 몰래 다른 사람을 비난하는 일에 몰두해 정작 내 모습은 버려두곤 한다. 이런 일이 쌓이고 쌓이면 결국 그게 나 대부분을 구성한다.

요즘 일터에서 개발 프로젝트를 유지보수처럼 하고 있다. 지속적으로 개선하는 프로젝트 구도가 만들어졌다. 같은 코드를 다시 보고, 여러 번 생각해보는 과정에서 코드가 나날이 좋아지는 모습을 확연히 느낄 수 있다. 처음에는 잦은 수정에 강한 반감을 품은 개발자도 코드가 좋아진 만큼 성숙해진다.

이러한 일터의 경험이 반성하고 있던 나에게 말해준다. '프로젝트에만 그리하지 말고, 너의 생활에도 적용해봐.' 엉망인 주변과 자신을 그대로 두지 말고, 보고 싶지 않은 모습은 애써 감추려 하지 말고, 개발자에게 리팩토링을 종용하듯 차츰 개선을 해보라고 말한다. 생소한 리팩토링을 강요받은 개발자와 똑같이 반감을 갖는다. 망설이고 있지만, 실천에 옮겨야지. 꾸준한 개선이 보여준 놀라운 힘은 눈으로 확인했다. 다만, 내 몸을 구성하는 거대한 악성코드를 끈기를 가지고 엉킨 실타래를 풀듯 개선해나갈 일이 좀 버겁게 느껴진다. 자꾸 잊어버리지만 틈만 나면 반성하고, 호흡을 짧게 가져가는 TDD 스타일을 접목해봐야겠다.
Author: "영회" Tags: "2009 이야기"
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 07 Oct 2009 06:30


그라운드의 지휘자라는 로시츠키도 그 재능을 사랑하는 약관의 주장 세스크 파브레가스. 혁명과도 같은 행보를 보여준 벵거 키드지만, 킹 앙리 이후에 단연 돋보이는 존재다.

그리고, 올 여름 내 티셔츠의 주인공이자 가장 사랑하는 축구 선수 제라드.


내 평생 잊지 못할 개인기를 보여줬던 호나우두에 비할 수 없고, 무회전킥을 선보이는 호날두(크날두)보다 킥이 화려하진 않지만, 축구를 통해 감동을 선사하는 스티븐 쩨라~~드

사용자 삽입 이미지

그리고, 전통 강호지만 최근 어려운 살림에도 불구하고, 제라드 판박이인 마드리드의 마법사 토레스....

리버풀은 최강과는 거리가 있지만, 좋아하지 않을 수 없다. 세상이 나를 저버려도 끝까지 최선을 다하는 군계일할 있음에...
Author: "영회" Tags: "2009 이야기, 세스크, 아스날, ..."
Comments Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader