오늘 다운받았습니다.(http://www.eclipse.org/downloads/)
유로파 (europa) 라는 배포 시스템을 통해서 확장 플러그인에 대한 손쉬운 접근법을 선택했습니다. eclipse java IDE의 경우 PDE를 제거하고 Java IDE, CVS client, XML Editor, Mylyn 만 포함시켰습니다. New 메뉴에서 생성가능한 것들입니다.
사용자 삽입 이미지

eclipse java new items


plugin 개발이나 C/C++ 개발인 경우는 그에 따른 배포판을 다운로드 받거나 유로파를 통해서 업데이트할 수 있습니다. http://www.eclipse.org/downloads/ 예전처럼 JDT(Java Development Tool)와 PDE(Plugin Development Enviroment)가 있는 classic버전도 있습니다.

Mylyn이라는 새로운 기능이 들어갔는데, 커다란 workspace에서 업무단위로 소규모 그룹화 시켜서 작업할 수 있도록 도와주는 기능입니다. 아직 쉽게 와닿지는 않지만 연구해볼 만 합니다.

다시 한 번 변화의 바람이 불 것 같습니다.

jdk1.5에 tomcat5.5 그리고 eclipseWTP1.5 버전에 해당됩니다.


사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

cvs의 버전관리 기능을 이용해서 특정한 시간에 대한 소스 디렉토리와 파일들을 복원해 낼 수 있습니다. 타임머신과도 같은 기능이죠.
현재의 소스와 과거의 소스를 이클립스를 통해서 비교도 할 수 있습니다.
보시죠.

CVS Repositories에서 프로젝트를 선택해서 Check Out As...를 선택합니다. Check Out 할 경우는 cvs에 등록된 대로 바로 프로젝트가 생기게 되는 것은 다 아실 겁니다. 로컬의 디렉토리로 가져올 때 프로젝트 커스터마이징을 하기 위해서 Check Out As... 메뉴를 선택합니다
Check Out As...

Check Out As...


프로젝트 이름을 적당하게 바꿔줍니다. 이미 okjsp2007이라는 이름으로 프로젝트가 있는 상태이기 때문에 okjsp2007_timemachine이라는 프로젝트 이름을 지었습니다. ㅎㅎ 꽤 잘 지은 것 같습니다. Next 버튼을 클릭합니다. Finish 클릭하면 말짱 황입니다. 조심조심.
checkout project naming

checkout project naming


Tag를 설정하는 화면입니다. Dates를 선택하고 Add Date... 버튼을 클릭합니다. 중간 맨 오른쪽에 있죠.
Add Date...

Add Date...


캡쳐한 시점이 6월23일인데 한 달 전 시간 5월23일 저녁 6시 기준으로 소스를 가져오도록 하겠습니다. 시간 세팅은 어렵지 않겠죠.
Create Date Tag

Create Date Tag


시간 태그가 보일 겁니다. 그 태그를 선택하고 Finish 버튼을 클릭합니다.
Select Date Tag

Select Date Tag


퍼스펙티브를 바꿔서 프로젝트 두 개가 나란히 서있는 것을 볼 수 있습니다. ^^; 찌그러져 앉아있는지도 모르죠. 헙. 일단 두 개의 프로젝트를 선택합니다. 비교해 봐야죠.
Select projects compared

Select projects compared


컨텍스트 메뉴의 Compare With > Each Other 를 선택합니다. 말이 되네요. 비교해봐 > 서로
Compare With > Each Other

Compare With > Each Other


화면에 Compare tab이 나타날 겁니다. 탭을 더블클릭해서 전체 화면으로 만들고 비료하면 됩니다. 일단 파일을 선택하면 파일의 어느 부분이 바뀌었는지 우측에 구조 비교화면이 나오고 해당 메소드를 선택하면 하단에 소스가 비교되어 나옵니다. 왼쪽과 오른쪽 소스 상단에 프로젝트 이름이 보이니 어떤 것인지 혼동하지 않아도 됩니다.
Compare

Compare



이클립스에서 프로젝트 구조의 비교도 가능하다니 훌륭하지 않습니까? 이클립스가 조금 더 좋아지지 않나요? ^^ 이상 마치겠습니다.


예배중에 갑자기 전화가 와서 "무슨일이신가요 이따연락드릴께요"라고 메시지 보내고 나서 10분뒤 연락해보니 "케이크 배달왔는데요..." 허걱, 역시나.

덕분에 지금 가족 모두 맛있게 생일축하잔치를 벌이고 있습니다.
케이크 반이 날아가버렸네요.

아주 맛있는 케이크 감사합니다. 행복한 생일이 되도록 많은 분들이 신경써 주셔서 감사합니다.
^^/ 에이콘 만세.
사용자 삽입 이미지

목요일 webappscon 재밌었습니다.

기억나는 두 가지는 노트북 정말 많다와 미투친구들은 정말 많다입니다.




어둠 속에 하연 저 것들이 다 노트북입니다. 특히나 맥북의 약진은 대단했는데, 국내 맥 유저의 절반은 참여했다라고 해도 과언이 아니겠죠.

미투친구들의 활약도 대단했습니다. 미투백일잔치가 두 주 이상 지났지만, 그 두루퍼짐과 그 응집력과 친화력은 소셜네트워크의 사회적 이슈를 만들기에 충분했습니다. 제 앞서 발표하신 리건 과장님도 미투 openAPI를 이용해서 멋진 서비스를 만들어 webappscon을 장식하셨으니까요.



아무 이유 없이 미투친구들이 앉아있는 모습을 제가 찍었습니다.
마이크로블로그의 약진. 대단합니다.

 
이클립스 사이트에 붙어있는 배너입니다. 유로파, 목성이라는 뜻이죠. 목성의 위성입니다. 지난 해 칼리스토(Calisto)라는 프로젝트가 나왔을 때는 이해를 잘 못했는데, 3.3버전과 맥을 같이하는 유로파 프로젝트를 보고서는 어떤 존재인지 감을 잡았습니다.

이클립스의 단점은 잦은 패치로 인한 상관관계에 있는 프로젝트들의 버전 관리가 어렵다는 것입니다. 이에 대한 해결점으로 모듈 버전 간 의존성을 관리해주는 프로젝트가 바로 3.2버전과 함께한 칼리스토, 3.3버전에 맞춰진 유로파입니다.

http://download.eclipse.org/technology/phoenix/demos/install-wtp/install-wtp.html
여기 동영상을 참고로 하시면 금방 알 수 있을 것입니다.

유로파를 사용해서 설치하는 것을 약간의 설명과 함께 보겠습니다.
eclipse europa

eclipse europa

eclipse 3.3RC4를 받아서 시작하면 위와 같이 로고에 Europa가 적혀있는 것을 볼 수 있습니다. eclipse WTP all-in-one을 받지 않아도 다음과 같은 방법으로 WTP 플러그인을 설치할 수 있습니다.

메뉴의 Help > Software Updates > Find and Install... 을 선택합니다.
Find and Install

Find and Install


WTP 관련 프로젝트들을 설치할 것인데, 두번째 메뉴인 Search for new features to install 을 선택합니다.
Feature Updates

Feature Updates


Europa Discovery Site를 선택합니다. 그리고 우측 하단의 Finish 버튼을 가볍게 클릭.
Update sites to visit

Update sites to visit


미러링을 지원하는 사이트 목록이 나옵니다. 카이스트와 다음 커뮤니케이션이 고맙게도 지원하고 있지요.
Update Site Mirrors

Update Site Mirrors


이제 본론으로 들어왔습니다. Europa Discovery Site 의 +를 눌러서 확장시킵니다.
Search Results

Search Results


Europa에는 21개의 프로젝트가 들어있습니다. 아래쪽에 있는 웹 개발 관련 프로젝트를 선택하겠습니다. 스크롤바를 아래로 쭈욱.
Search Results

Search Results


Web and JEE Development 를 선택하려고 합니다. 펼쳐보면 다음과 같이 4개의 서브 프로젝트 모듈들이 보입니다. XML 편집기, WST, JST, 퍼시스턴스 API툴 4가지죠.
Web and JEE Development

Web and JEE Development


체크하는 순간 빨간색 표시의 x가 뜹니다. 해당 프로젝트에서 필요로 하는 다른 프로젝트의 모듈이 없기 때문입니다.
Select Required

Select Required


당황하지 말고, 우측에 있는 Select Required 버튼을 클릭합니다. 그러면 같이 설치되어야할 모듈들의 체크박스가 자동으로 체크됩니다. 빨간 표시도 더 이상 보이지 않습니다.
여기서 유로파의 진가가 나타납니다.
사용자 삽입 이미지

라이센스가 나옵니다. EPL로 알고 있습니다. CPL을 토대로 만든 라이센스죠. 상업적인 용도로 사용할 수 있다 정도가 되겠습니다. ^^; 남이 만든 것 가져다 쓸 때는 라이센스 체크는 기본입니다만 그 종류가 많다 보니 쉽지 않은 것도 사실입니다.
Feature License Agreement

Feature License Agreement


옵션 특성들입니다. Next를 클릭해서 다음으로 이동하죠.
Optional Features

Optional Features


설치가 이뤄집니다. 설치 경로를 바꿀 필요는 없겠죠.
Installation

Installation


필요한 파일을 다운로드 받습니다.
Download files

Download files


마지막으로 설치에 대한 확인 창이 뜹니다. Install All 버튼을 클릭합니다. Install 버튼을 클릭해서 하나씩 설치되는 것들을 확인하셔도 좋습니다. 어느 세월~에 하실랑가요. ㅋㅋ
Feature Verification

Feature Verification


드디어 설치입니다. Run inBackground 버튼을 클릭해 놓으면 이클립스에서 백그라운드로 동작하게 됩니다. 우측하단의 움직이는 프로그레스바를 클릭하면 관련 뷰가 뜹니다.
Installing

Installing


완료되었습니다. 이상이 없다면 이클립스 재시작 후에 Web Tools Platform을 사용할 수 있습니다.
Install Complete.

Install Complete.


어제 모임에서 재미있는 얘기를 들었습니다. 프로젝트의 공통 모듈팀을 없애야 코드들이 깨끗해질 수 있다고 합니다.
개발자 중에 똑똑한 사람들이 주로 들어가는 공통팀입니다. 이 팀의 코드들은 예술적이고 환상적입니다. 아키텍트가 될만하고 아파치 등의 오픈소스 커뮤니티 활동도 열심히 합니다. 신기술은 모두 꿰차고 있고, 정말 훌륭한 개발자들이 모이는 팀이 주로 공통팀입니다.

하지만 프로젝트에서 비즈니스 로직과 프리젠테이션 레이어의 삽질(HTML 태그 미아)을 하고 있는 일반 평범한 개발자들은 이런 좋은 코드들을 잘 모릅니다. 그렇게 똑똑하지 않고, 그렇게 부지런하지 않고, 그렇게 개발에 재미를 붙이고 있지 않은 경우가 많습니다. 그냥 먹고 살기 위해서 프로젝트에 들어와 일하는 중입니다.

여기서 괴리가 발생합니다. 공통으로 짜놓은 것이 있지만 찾기 귀찮습니다. 샘플이라고 있기는 하지만 이렇게 짜나 내가 원하는 방식으로 짜나 그 시간이 그 시간입니다. 납기가 코앞입니다. 자기가 익숙한 대로 코딩을 합니다. 공통을 적용하려 하니 이런 경우는 안 된다고 합니다. 금방 안된다고 합니다. 또 자기가 익숙한 대로 코딩을 합니다.

어제 들은 바로는 구글은 개발방법론이 없다고 합니다. 오히려 개발 방법론이 교복이나 유니폼처럼 속박하는 것이 아닐까. 창의력 말살이라고 할까요. 많은 개발자들이 일할 때 필요한 것은 과연 무엇을까요. 그렇다고 아무런 제약도 없이 풀어놓고 개발하라고 한다면 코드 저장소는 돼지우리처럼 될 것 같네요. 진퇴양난입니다.

사용자 삽입 이미지
단 한 가지 희망이 있다면, 소통입니다. 커뮤니케이션. 문화가 발전하는 곳은 커뮤니케이션의 제약이 없는 곳입니다. 원하는 자원을 가져다 쓸 수 있고, 원하는 요구사항을 정확히 들어서 알 권리가 있고, 원하는 바를 다른 사람에게 이해시킬 자유가 있습니다. 개발팀내에서의 소통은 마지막 희망입니다. 옆 동료가 개발하는 것이 무엇인지 공유하고, 막힌 곳을 혼자 고민하는 것이 아니라 짝 프로그래밍 등을 통해서 공유하면서 풀어가는 문화.

개발팀엔 개발 방법론, 개발 표준이 필요한 것이라기 보다 개발팀 문화가 필요합니다.


웹이 보편화되면서 브라우저에서의 문자세트에 대한 얘기도 점점 많아지고 있습니다. 글자가 깨져 보이는 경우는 바로 이 문자세트가 맞지 않아서인데, 세상의 모든 언어들을 한 화면에 표시하기 위한 방식이 UTF8입니다. 물론 포토샵 등으로 이미지를 통해서 한 화면에 표시하는 방법도 있기는 하죠. 철푸덕. ^^;
동일한 내용의 파일이 문자세트에 따라 어떤 차이가 있는지 간략히 살펴보겠습니다.
text

text

필자가 좋아하는 에디터인 울트라에디트를 이용해서 적어놓은 글자들입니다. ctrl+H를 하면 16진수 형태의 코드로 보여지는데 다음과 같습니다.
사용자 삽입 이미지

ANSI charset

컴퓨터가 내부적으로 기억하는 코드를 볼 수 있습니다. h에 해당하는 68은 16진수로 표기된 것이고 10진수로 바꾸면 6*16+8 = 96+8 = 104 입니다. 104번째 해당하는 문자라는 것을 알 수 있죠. 0D 0A 부분이 보일 텐데, windows에서 엔터를 치면 이렇게 두 문자(2 bytes)가 자동으로 만들어집니다. java에서 "\r\n" 이라고 하는 표시하는 것과 일맥상통하죠. 뒤 이어 한글은 두 자리로 되어있는데, "가"는 B0 A1, "나"는 B3 AA 로 컴퓨터가 기억하고 있다는 것을 알 수 있습니다.

울트라에디트에서 이것을 utf8로 변환해보겠습니다. 다시 ctrl+H를 눌러서 일반텍스트 편집화면으로 되돌립니다.
메뉴의 파일(F)에서 "변환"을 선택하고 ASCII -> UTF8(Unicode 편집) 항목을 선택합니다.
conversion

conversion

파일의 코드셋이 변경되었습니다. 다른 이름으로 저장해보겠습니다.
파일의 크기가 바뀐 것을 감지하셨는지 모르겠네요. ^^; hello_utf8.txt로 저장을 했는데 이 파일을 열어서 ctrl+H를 해보면 다음과 같습니다.
utf8 hex view

utf8 hex view

h앞에 세 문자가 더 들어간 것을 볼 수 있습니다. "EF BB BF". 그리고 영어부분은 이전과 같은데 한글부분의 문자가 2바이트 단위에서 3바이트 단위로 늘어났습니다. 즉 "가"가 EA BO 80 이고 "나"가 EB 82 98 입니다.

정리를 하자면 같은 내용의 문자열을 표시한다고 해도 문자세트(코드세트, charset)에 따라서 내부적으로 기억하는 방식은 다르다는 것입니다.

한 가지 더, utf8편집을 위해서 ultraedit 만 필요한 것은 아닙니다. windows의 메모장에서도 편집이 가능합니다. 저장할 때 파일명을 적고 아래에 있는 인코딩을 ANSI에서 UTF-8로 정해주면 됩니다.
메모장 utf8

메모장 utf8


아, Mac에서는 Smultron (http://smultron.sourceforge.net/)이라는 편집기를 사용하고 있습니다.
읽어주셔서 감사합니다. ^^
많은 사람들을 설래게 했던 미투백일잔치. 정말 아무 이유 없이 모였다고 하기에는 너무나 개성이 강하신 분들. Kenny군 말을 빌자면 "형, 여긴 개발자가 극소수야. ^^;" 발표시간마다 쏟아져 나오는 끼가 가득한 PT와 노래들. 정말이지 xenix님, 너무 하시는 거 아닌가요? 왜캐 잘하셔요. 그것도 랩을. ^^; 전국 노래 자랑에 한번 뜨심이... 쿨럭.
찰즈님이 분위기 띄우고, 이어 받아서 우리의 rath님이 마무리... 난 rath님이 반주까지 같이 하실 줄 알았는데...
일단 동영상 허락없이 올립니다. 캠이 3년묵어서 까맣습니다. 너무 기대는 마시길. ㅎㅎ
찰즈님 다행이다

rath님 다행이다


오후1시부터 저녁10시반정도까지 새로운 사람들과 새롭게 인연을 맺었고, 조금 알던 분들과 조금 더 얘기하고 즐길 수 있었던 소중한 시간이었습니다.
노리피플 장소는 좋았지만 대책없이 많이 와서 버텨주신 인자하신 미투주민들.
인류의 가장 큰 약점은 "외로움"이다를 다시 한 번 확인할 수 있는 자리이기도 했습니다.
뻘쭘함. 그건 누군가 노력해야 없어지는거니까요.

모두 수고하셨어요. 만박님, 코디안님 깔아주신 멍석 고맙습니다. 만박님 정말 미투돌잔치는 잠실에서 효리 아씨 불러서 크게 해요. 까짓거 블리자드보다 더 재밌게 해보면 어때요.

add on
백일몽님 사진: http://picasaweb.google.co.kr/stadia/huvOOL
pengdo님 사진: http://www.flickr.com/photos/pengdo/sets/72157600332435813/
브루펜시럽님 사진: http://picasaweb.google.co.kr/fairypark/AwyvKE 392장?

그리고 다음번 모임엔 절대 수염없이 나갈 겁니다. ^^;
원래 저 이랬다구요.
사용자 삽입 이미지

왼쪽이 접니다.

image from: http://flickr.com/photos/doubletrack/437773874/

브라우저 하단에 위치한 debug 패널을 창으로 띄워서 사용할 수 있습니다.
control + F12(Mac은 command + F12) 단축키를 이용하면 바로 새로운 창으로 띄울 수 있습니다.
모니터를 두 개 사용하는 경우 좋은 효과를 볼 수 있습니다. ^^;(하나 지르고 싶다.)

하단에서 창으로 띄우는 방법은 검색칸 옆의 꺽쇠 아이콘을 클릭해도 됩니다.
open firebug in new window

open firebug in new window


related: http://www.getfirebug.com/using.html

+ Recent posts