지난 주에도 자바지기 사람들을 만나서 얘기를 했지만 IBM dw에서 주최하는 스크린캐스트 이벤트에 심히 눈길이 갑니다. 물론 경품 때문이죠. 맥북 시리즈는 두 개나 있지만 아직 맥북이 없는고로... 쩝.
형은 참가하지 말라고 자바지기 아저씨가 말리는데, 사실 급 땡기는 이벤트입니다. dw 아티클 중에서 맘에 드는 것 골라서 자기가 실습하는 모습을 스크린캐스트 프로그램을 통해서 녹화한 뒤에 제출하면 되는데, 음...
땡깁니다. ^^; 이미 okjsp를 운영하면서 만들어 본 것도 있고 한데 말이죠.
http://www.okjsp.pe.kr/lecture/viewlet"

혹 참고해서 먼저 참가하실 분들은 아래 링크를 보시기 바랍니다.
http://www.ibm.com/developerworks/kr/event/screencast/

지난 번에도 언급했던 eBay 개발팀의 이클립스 플러그인 적용에 대한 후속글이 떴습니다.
http://www.ibm.com/developerworks/kr/library/os-eclipse-ebay2/index.html?ca=drs-kr

Megajars 라는 개념은 공감이 많이 갑니다.

소스 파일 수십만 개를 이클립스에서 실행해 본 적이 있는가? 실행하면, 시스템에 엄청난 부담을 주고, 많은 메모리를 필요로 해(이클립스에서 out of memory 예외를 받아 본 적이 있는가?), 시스템이 극단적으로 느려지는 원인이 된다. 이런 경우 시스템에서 실제 소스 코드를 받아 오는 대신 컴파일된 코드로 연결하는 것이 더 좋은 방법이 된다.

from: http://www.ibm.com/developerworks/kr/library/os-eclipse-ebay2/index.html?ca=drs-kr#N100F2

플러그인 만들기 어렵지 않다던데, 어서어서 실험해봐야겠습니다.
쩝.
http://www.ibm.com/developerworks/kr/library/os-eclipse-ganymede/index.html?ca=drs-kr
사실 쓰는 것만 씁니다. 그래서 가니메데를 통해서 동시에 배포된 24개의 프로젝트 중에서 아는 것은 몇 개 안 됩니다.
하지만 dW에 소개된 글을 통해서 그 얄팍한 지식을 좀 더 두껍게 만들 수 있습니다.

책을 읽는 경우가 있고, 책의 목차만 보는 경우도 있고, 책의 요약본만 보는 경우도 있습니다.
세 가지 경우 중에서 시간 대비 효과가 가장 큰 것이 마지막 요약본을 보는 경우인데요. 이클립스의 24가지 프로젝트를 정독하기는 힘든 상황에서 요약본은 거의 대학교 시험 앞서서 족보를 보는 것과 같은 효율성을 지니고 있습니다.

하긴 답답함은 해소하겠지만, 어디서 아는 척은 삼가는 것이 좋겠죠. 경험이 없는 지식은 선무당과 같으니까요.

오래된 에디터 중에 MS-DOS시절의 edit로 불러낸 텍스트 편집기가 있습니다.

사용자 삽입 이미지


마우스가 일반에게 선보이기 직전의 편집기로 기억을 하는데, 윈도우가 나온 후 메모장(notepad)에 자리를 빼았기게 되었죠. 아직도 윈도우XP에서 edit 명령으로 위 화면을 볼 수 있습니다.

리눅스/유닉스에서는 vi와 emacs가 가장 많이 쓰이는 에디터일 것입니다. 물론 pico라는 에디터도 있습니다. vi는 vim으로 확장판이 나오기도 했지요. 윈도우버전도 지원합니다.
http://www.vim.org/

디벨로퍼웍스에 vi에 관한 좋은 컨닝페이퍼가 있습니다.

물론 저는 vi에서 꼭 익혀야 할 필수기능만 주로 쓰고 있습니다.
hjkl ; 좌하상우
:1 ; 문서 맨 처음
:$ ; 문서 맨 끝
:숫자 ; 라인번호로 이동
/패턴 ; 패턴 이동
^b, ^f ; 페이지 back, forward

x ; 삭제
i ; 삽입

^^; TV리모콘 기능보다 많군요. 전원on/off, 채널up/down, 볼륨up/down만 알면 TV를 볼 수 있는데 말이죠.
역시 편집은 어려운 것 같습니다. 편집기를 다른 것으로 갈아타는 것도 따라서 쉬운 일은 아니겠죠.

아마도 자꾸 쓰면 늘겠죠.

related: http://www.ibm.com/developerworks/kr/library/tutorial/l-vi/


급한 IBM의 협찬으로 볼펜과 샤방한 developerWorks 스티커를 가지고 갔습니다.
한 시간은 JUnit에 대한 이론, 다른 한 시간은 JUnit의 실제 사용, 그리고 세 번 째 시간은 TPTP의 프로파일링에 대한 가벼운 리뷰 정도가 되었습니다.

관련 자료는 http://okjsp.tistory.com/tag/test 에서 확인할 수 있습니다.

강의를 준비하면서 가장 인상 깊었던 것은 상용 JProfiler 못지 않게 좋아진 TPTP였습니다.

좀 더 많이 연구를 해서 공유를 해야할 것 같네요.

참가하신 분들 긴 시간 동안 잘 들어주셔서 고맙습니다.
그리고 IBM dW 고맙습니다. ^^

http://www.ibm.com/developerworks/kr/library/os-eclipse-plugindev1/index.html?ca=drs-kr

소프트웨어 엔지니어를 들어보셨나요? ^^; 제가 가장 좋아하는 직업 중에 하나입니다. 개발자도 아니고 기획자도 아니고, 그렇다고 디자이너도 아니죠. 이 셋을 포괄한 명칭이 소프트웨어 엔지니어입니다. 무슨 일을 하는지는 아시겠죠. 서비스를 만들어가는 직업입니다.

Chris Aniszczyk, 소프트웨어 엔지니어, IBM에 의해서 쓰여진 기사입니다. OSGi라고 떠드는 기술을 사용하는데, Pervasive라는 단어와 연관이 있다는 정도만 저도 알고 있습니다. jar hell(jar 지옥)을 벗어나기 위한 기술이라고 들었는데, eclipse에 밀접하게 적용된 것입니다.

단순 유저에서 벗어나서 하드코어 유저로 올라서는 방법 중 하나가 플러그인 개발이겠죠. ^^; 자동차 운전과 정비에 빗대어 생각해 볼 수 있을 것입니다.
온실에서 키운 화초는 약하다고 합니다. 프로그램 개발환경 중에서 가장 온실같다고 할까요, 그런 게 있습니다. 바로 브라우저의 HTML 렌더러입니다. 가장 마음이 넓은 실행기라서 마크업이 깨져도 알아서 대체로 잘 보여주는 편입니다.

때문에 웹 개발자들은 프로그래머 취급도 못받고 허드렛일꾼으로 대하던 시절이 있었습니다.
하지만 그런 유약한 개발습관에서 벗어나 조금 깐깐해질 필요가 있는 것 같습니다.
자바원의 북스토어에서 본 책 중 인상적인 것 하나가 Refactoring HTML이었습니다.

IBM DW에도 비슷한 류의 글이 올라왔군요.

유효성 검사는 여러분의 페이지에 "예측 가능한"이라는 도장을 찍는 방법이다. 태그를 적절히 사용하면, 페이지는 구조적으로 건전하며, 사용과 탐색도 쉽다.

from: http://www.ibm.com/developerworks/kr/library/wa-inherit1/

프로그래머들의 애매한 결과에 대한 삽질은 누구나 겪는 일이지만 HTML 개발자들이 가장 심하다고 말하면 지나친 생각일까요?

유지보수하는 입장에서 HTML을 다루는 자세와 기법에 대해서 도움이 되는 내용이었습니다.

좋아하는 기획자 중 한 부류는 기획서가 깐깐해서 처음에 답답해 보이지만 프로젝트 후반에 말바꾸지 않고 신뢰감있게 독려하는 분들입니다. 웹개발도 깐깐하게 바꿔보는 것이 어떨까요.
재즈를 좋아하는 사람들이 있습니다. 오케스트라나 클래식한 음악들과 달리 굉장히 맛깔나는 자유스러움 때문이죠.
재즈를 하는 사람들의 그룹은 보통 밴드라고 합니다. 각자의 애드립과 기교를 갖고 연주를 하지만 전체 하모니는 깨뜨리지 않습니다.
jazz 라는 이름으로 IBM Rational에서 미는 것이 있습니다.
관련 URL :
http://jazz.net
http://www.jazzlab.net
http://jazz.pe.kr

협업 통합 솔루션이라고 할 수 있는데, 여기의 수장이 디자인 패턴 저자 4사람 중 한 사람입니다. Kenu Kent Beck과 함께 JUnit도 만들었습니다. Eclipse 개발에서 리딩을 하고 계신 분입니다. 바로 에릭 감마(Erich Gamma)라는 이름을 가지신 분이죠.
아래 링크를 따라 가시면 에릭 아저씨의 한국 개발자들을 위한 인사말을 들으실 수 있습니다.
http://www.ibm.com/developerworks/kr/event/erich_gamma/

개발에서 튀지 않는 법, 잘 아시는 분은 공유부탁합니다. 묻어가는 법 말고요, 다른 사람들을 잘 이끌어서 모두 같은 방향으로 튀는 법 말이죠.
좋은 연주처럼 좋은 소프트웨어 개발을 위해서 하모니를 맞추는 비법이 급 땡깁니다.
"규모가 크고, 불규칙하게 구성된 웹 사이트는
사이트에 있는 모든 이미지를 관리하는 것처럼 사소하게 보이는 것도
완전히 복잡하게 될 수 있다."
from: eBay의 이클립스, Part 1

작은 사이트를 운영하는 일도 시간이 흐르면 복잡해집니다. 하물며 웹에서 비즈니스를 벌이는 사이트의 복잡도는 얼마나 크겠습니까. eBay와 유사업종인 인터넷쇼핑몰에서 근무하는 저도 비슷한 문제로 골머리를 앓고 있습니다. 저희 팀원들도 마찬가지입니다.

이클립스의 IDE 기능과 플러그인을 직접 만들어서 업무에 적용하는 방법은 꼭 배워보고 싶습니다. 국내에도 그렇게 하시는 개발자들이 있으리라 생각되는데, 이렇게 공유하는 글이 나왔다는 것은 아주 감사한 일입니다.

related:
http://www.ibm.com/developerworks/kr/library/os-eclipse-ebay1/index.html?ca=drs-kr
 
제가 초보라고 한다면 "우르르 돌 던지실" 분들 많은 것으로 알고 있습니다. 초보소리는 못 듣는 저이지만 ibm dw에서 재밌는 메일이 와서 찾아가보니 익숙한 분이 재밌는 문제를 내셨더군요.
데이터 목록에서 양쪽 다 있는 원소 목록 either는 구했습니다. 두 목록을 포괄하는 both를 구해보실 분. 문제

간단하지만 테스트케이스를 만들어서 시도했습니다. ㅡㅡ; 이 말에 벌써 긴장하시는 분들도 계시는 것 같군요. 릴렉스, 테킷이지.
import java.util.ArrayList;
import junit.framework.TestCase;
public class FirstQuizSetTest extends TestCase {
 private FirstQuizSet quizSet;
 private ArrayList ys;
 private ArrayList xs;
 
 protected void setUp() throws Exception {
  quizSet = new FirstQuizSet();
  ys = new ArrayList();
  xs = new ArrayList();
  super.setUp();
 }
 public void testBoth() {
  xs.add("1");
  ys.add("2");
  ArrayList both = quizSet.both(xs, ys);
  assertTrue(both.contains("1"));
  assertTrue(both.contains("2"));
 }
 public void testOrder() {
  xs.add("1");
  ys.add("2");
  ArrayList both = quizSet.both(xs, ys);
  String string = both.toString();
  assertEquals("[1, 2]", string);
 }
}

정답은 구했습니다. 한 번 가서 풀어보세요.
제 소스는 첨부합니다.

+ Recent posts