어제 보낸 메일링리스트 답장이 왔습니다. Sun Microsystems에서 근무하시는 분이십니다. Aaron Houston 님.

그래서 답장 보냈습니다. ㅎㅎ 먼저 한글로 쓰고 번역기 돌렸습니다. 머릿속에 있는 ^^;

답신 내용은 이렇습니다.


고맙습니다.

기대하지 못했던 답장입니다.

이번 컨퍼런스는 한국 개발자들의 축제입니다. 5월에 열리는 자바원 2008 전세계 자바인의 축제인 것처럼요.

양수열 님은 2006년에 옥상훈 님에게 회장자리를 물려주었고, 2008년에는 최상훈 님으로 이어받게 됩니다.

 

조인영 에반젤리트께서 갑자기 아프다는 연락이 와서 이번에 참석을 못하게 됩니다.

그분의 쾌유를 빕니다.

 

한국에서는 엔터프라이즈 프로그래밍 언어로 자바가 주류입니다.

가끔씩 한국의 자바 커뮤니티 소식을 메일링리스트를 통해서 전달하겠습니다.

 

행복하세요.


아래가 진짜...

-------------------------

Thank you, Aaron Houston.

I'm appreciate for your reply that I unexpected.

 

This conference is a big festival for Korean Java Programmers, such as JavaOne 2008 in May for the World Java Programmers.

 

Mr. Sooyeol Yang passed Chairmanship to Mr. Sanghoon Ok in 2006, And Mr. Sanghoon Choi, who is vice chairman now will be the next in this year.

 

Unhappily, Evangelist Inyoung Cho's abrupt sickness make her absence this time.

She was expected to open a new java trend session.

I wish her getting well ASAP.

 

In Korea, many enterprise software projects are based in java technology.

So we train java programmers more and more.

Maybe it's almost 100,000 java programmers in Korea.

 

Now, I was encouraged for your reply.

So, I'll send Korean java community news occasionally.

I've subscribed this mailing list over 3 years. Just reading.

 

Sincerely,

 

Kenu, Heo

82-11-9595-2045

www.okjsp.pe.kr

 

 

-----Original Message-----

From: Aaron.Houston@Sun.COM [mailto:Aaron.Houston@Sun.COM]

Sent: Thursday, February 14, 2008 1:28 AM

To: jug-leaders@jugs.dev.java.net

Subject: Re: [jug-leaders] 9th Korea Java Conference will be open this Saturday.

 

Hello Kenu Heo...

 

And WELCOME to the JUG Leaders mailing list... Give my respects to your

Chairman: Mr. Sooyeol Yang. Good Luck on your Conference this weekend!

 

The Java Community Organization (JCO) is a very large JUG from Korea.

Our Evangelists Inyoung Cho and Sang Shin visit there often. They have a membership of over 8000 Java Developers....

 

Again....Welcome Aboard...Nice to have a representative from your community on this list.

 

 

Cordially,

 

Aaron Houston

Program Coordinator

Java User Groups

Java Champions

Technology Outreach

Sun Microsystems, Inc.

Menlo Park, Ca

 

 

허광남 wrote:

> 

> Hi. Jug-leaders

> 

> I’m Kenu Heo

> 

> I live in South Korea. Owner of JSP/Servlet Community Site,

> www.okjsp.pe.kr <http://www.okjsp.pe.kr> ,

> 

> JCO(www.jco.or.kr <http://www.jco.or.kr>) member site

> 

> This Saturday 16^th , Feb. We will open 9^th Korea Java Conference

> 

> “Enjoy Java! Change the World”

> 

> Site: http://www.jco.or.kr/conference/conferenceInfo9th.jsp

> 

> (sorry for all Korean Languange)

> 

> It’s free enterence, conference book will be sold in about $10 optionally.

> 

> We have 2 keynotes, and 30 sessions.

> 

> Until yesterday evening, about 4,500 korean java developers registered.

> 

> Many vendors sponsor this conference.

> 

> Let’s Enjoy Java! Change the World.

> 

> From South Korea

> 

> Kenu, Heo

> 

> 82-11-9595-2045

> 

> www.okjsp.pe.kr <http://www.okjsp.pe.kr>

> 



영어로 호들갑 떨고 있는 제 자신이 아직 어리게 느껴집니다. ^^; 환갑이 23년 남은 사람이 철없긴...

dev.java.net 이라는 사이트에 jugs.dev.java.net 이라는 그룹이 있습니다.
전 세계의 Java User Groups 의 모임이라고 할 수 있는데, 여기 메일링리스트를 3년째 구독해오고 있었죠. 오늘 처음으로 여기에 메일을 날렸습니다.

Hi. Jug-leaders

I’m Kenu Heo

I live in South Korea. Owner of JSP/Servlet Community Site, www.okjsp.pe.kr ,

JCO(www.jco.or.kr) member site

This Saturday 16th, Feb. We will open 9th Korea Java Conference

“Enjoy Java! Change the World”

Site: http://www.jco.or.kr/conference/conferenceInfo9th.jsp

(sorry for all Korean Languange)

 

Its free enterence, conference book will be sold in about $10 optionally.

We have 2 keynotes, and 30 sessions.

 

Until yesterday evening, about 4,500 korean java developers registered.

Many vendors sponsor this conference.

 

Lets Enjoy Java! Change the World.

 

From South Korea

Kenu, Heo

82-11-9595-2045

www.okjsp.pe.kr

 

세계에 내놓아도 손색없는 행사인데, 그노무 영어 때문에 너무 숨겨진 것 아닌가 생각됩니다.
힘내야죠.

Eclipse 3.4 M5 is available for download.

See the New & Noteworthy here.

from: http://www.realjenius.com/node/615

간만에 펌질이군요. ^^;
부지런합니다. 이클립스. 개발 주기에 리듬이 있다고 하던데, 멋있습니다.
noteworthy 살펴봐야겠네요.

dynamic help는 커서의 위치에 따른 문맥상의 도움말을 보여줍니다.
help > Dynamic Help 로 뷰를 열 수 있습니다.
사용자 삽입 이미지

프로젝트 익스플로러에 대한 내용입니다. Related Topics라는 제목의 뷰입니다.
사용자 삽입 이미지


하단의 뷰 탭을 클릭할 때 마다 Dynamic Help 메뉴로 열린 뷰의 내용이 변합니다.
사용자 삽입 이미지

snippet 탭을 눌렀을 경우 바뀐 내용입니다.
사용자 삽입 이미지

만만한 것이 보이질 않는군요.
Reverse Engineering이 되는 무료로 사용가능한 소프트웨어는 잘 안 보입니다.
그냥
http://www.visual-paradigm.com/ evaluation 이용했습니다.

테스트케이스가 없는 기존 코드 설계입니다.
사용자 삽입 이미지

테스트케이스를 만든 경우입니다.
사용자 삽입 이미지

많이 복잡하긴 합니다.
프로젝트 소스 폴더 구성은 다음과 같습니다.
사용자 삽입 이미지

테스트케이스의 아웃풋 클래스폴더를 따로 지정해주는 센스도 잊지 마세요.
사용자 삽입 이미지

2008년 제9회 JCO 자바컨퍼런스에서 발표할 내용입니다.
대략의 줄거리는 다음과 같습니다.

레거시 코드 관리 전략
허광남
GS이숍

목차
레거시 코드란?
남이 짠 코드 빨리 알아보기
리팩토링 방법
테스트케이스라굽쇼?
인터페이스의 역할
복사할 것인가 상속할 것인가
기능 추가 방법
팀역량

수많은 방법론 중에
개발 방법론은 넘쳐나지만 유지보수에 관한 방법론은 어디에?
소프트웨어의 변경주기는 짧아지고 있다.
웹 비즈니스 애플리케이션은 기민하고 안정적으로 변경하는 것이 관리의 목표

레거시 코드
누군가 나에게 맡겨놓은 코드
자기가 직접 짜지 않은 누군가가 만들어 놓은 코드
많은 의문의 그림자와 중압감을 내포한 코드
얽히고 설킨, 아둔하게 짜놓은, 갈아엎고 싶지만   그럴 자신이 안 생기는 코드

레거시 코드
기능 하나 추가하려면 몇 일 밤 새게 만드는 코드
어느 누구도 선뜻 나서지 않는 코드
손을 대면 댈수록 나락으로 빠져버리는 코드
“차라리 날 죽여줘”라고 절규하게 만드는 코드
개선한다는 생각 자체가 몸서리처지는 코드

남이 짠 코드 빨리 알아보기
들여쓰기 (Indent)
Code Formatter
IDE 코드 네비게이션 기능
- F3
- ctrl+K
- 형광펜

남이 짠 코드 빨리 알아보기
팀원간 용어의 일관성
변수명, 함수명의 기능에 따른 변경
- buy() -> order()
남이 짠 코드 빨리 알아보기
프레임워크 사용시 명명규칙은 절대적
- /order/order.jsp
- /js/order/order.js
- /css/order/order.css
- OrderController.java
- OrderService.java
Open Resources(ctrl+shift+R)
Convention over Configuration

리팩토링 방법
Re + Factor + ing
- 소스(Factor)의 재(Re)구성(ing)
Martin Fowler
- Refactoring, 1999
- 외부 동작은 바꾸지 않으면서    내부 구조를 개선하는 방법

사연 많은 JSP 리팩토링
JSP 파일 하나에 11,000 라인의 코드
7년간 산전화수전화 다 겪은 전설의 코드
그와 결부된 사촌형제 코드들 각각 6,7천라인
1차 프로젝트 Java와 Javascript의 분리
자바스크립트의 분리
객체를 이용하기

자바스크립트의 분리
함수에 파라미터를 통해 전달

자바스크립트의 분리
JSP, Javascript 스파게티 분리
리팩토링 고려사항
소스의 증가
- 선별적 js로딩으로 효율화
보안이슈
- 권한 및 로직 유효성 체크는 이중화 또는 서버단으로 이동
JS캐쉬 이슈
- 자주 변경되는 내용은 jsp 안에서 처리
- js파일에 날짜별 버전
서버단과 클라이언트단 혼재된 로직
- 로직을 단순화하거나 jsp에서 처리하고 분리하지 않는다.

JSP,JS 분리 효과
서버단의 속도 개선효과
  1005.352223 -> 757.8979948

javascript를 잘 하는?전문가가??js 파일을 따로 최적화 작업할 수 있다. (관리 포인트의 전문성 확보)

js 변경시 기존 jsp를 수정하지 않아도 된다.

전체 소스의 가독성과 이해력 향상 (jsp, js)

인터페이스의 역할

복사할 것인가 상속할 것인가

테스트케이스라굽쇼?

Edit & Pray
        vs
Cover & Modify

Backup, Cover Fire!
Acrobatic Net

기능 추가 방법

팀역량
깨진 유리창 비유
코드리뷰, 짝 프로그래밍
- 버그의 최소화
- 코딩 공감대 확장
- 더 이상 겁나지 않는 휴일 전화
낳은 정보다는 기른 정

정리
레거시 코드는 비운의 코드입니다.
좋은 유모를 만나서 제대로 리팩토링하면 버그 없고, 건강하게 자랄 수 있습니다.
함께 키우려면 코드 리뷰, 짝 프로그래밍 등을 이용하면 됩니다.
잘 키운 레거시 코드 하나, 열 개발자 안 부럽다

참고자료
Working Effectively With Legacy Code, Michael C. Feathers, Prentice Hall, 2005
리팩토링, 마틴 파울러, 대청, 2002
소프트웨어 공학의 사실과 오해, Robert L. Glass, 인사이트, 2004
GS이숍 주문리팩토링 보고서, 김현,김현기, GS이숍, 2008

CCL


IBM developerWorks에 Mylyn 2.0 관련한 글이 올라왔군요. 물론 한글로 번역이 된 것입니다. 이클립스 3.3 버전부터 기본적으로 포함된 기능입니다. 작업세트(working set)를 보완 정도가 아닌 획기적으로 진화시킨 기능입니다.

Trac, Bugzilla, JIRA 등의 issue tracker와 연결해서 Task를 공유하거나 상태를 변경시킬 수 있습니다.

http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html

http://www.ibm.com/developerworks/kr/library/j-mylyn2/index.html
2008년 2월 2일 okjsp 2월 세미나 입니다.
화질이 좋지 않기 때문에 소리만 확인하시는 것이 좋습니다.


기본 실습 시간
Eclipse Overview
  1. Layout
  2. Terms
  3. License
  4. SiteMap
  5. Package Guide

Project Start

  1. Java Project
  2. HelloWorld
  3. src, class
  4. Code Navigation
  5. Refactoring
  6. Editing

CVS 협업

  1. 코드 공유 개념
  2. CVS Perspective

Eclipse Configuration

  1. Preferences
  2. Help
  3. short cut

Eclipse Plugin

  1. extention
  2. Europa

Debug Perspective

  1. Debug Intro

JDK Version

  1. Compiler Version

Q&A

웹에서 유니코드 문자열을 다루는 일은 제법 걸림이 됩니다. 어제도 웹서비스를 스트림으로 읽어서 처리하는 가운데 한글이 유니코드 문자열로 반환되는 바람에 애를 먹었었는데, 다행히 2004년에 비슷한 이유로 만든 코드를 이용해서 해결했습니다.

유니코드문자열을 캐릭터문자열로 바꾸는 클래스, 작은 것이지만 구글 코드를 통해서 공유합니다. http://code.google.com/p/unicodereader
사용자 삽입 이미지

테스트케이스도 같이 있기 때문에 쉽게 적용하실 수 있을 것입니다.
라이센스는 아파치 라이센스 2.0 입니다. 제가 이해하기로는 맘대로 쓰셔도 될 것입니다. 메소드 주석의 저작자 @author 만 남겨주세요. ^^


서브버전을 통해서 이클립스 프로젝트 형태로 등록도 해 놓았습니다. 모쪼록 개발에 도움이 되길 바랍니다. 행복하세요.

+ Recent posts