2007년 11월 8일 목요일

넷빈즈 UML 프로젝트에서 시퀀스 다이어그램(Sequence Diagram) 그리기 (1)

UML의 시퀀스 다이어그램은 객체간에 메시지의 흐름을 보여줍니다. NetBeans는 UML 플러그인을 제공하여 시퀀스 다이어그램을 손쉽게 작성할 수 있도록 도와줍니다.

이 글에서는 NetBeans 6.0 Beta2를 이용하여 시퀀스 다이어그램 프로젝트를 생성하는 방법에 대해 살펴보도록 하겠습니다.

우선 여러분이 설치한 NetBeans에 UML 플러그인이 설치되어 있지않다면 Tools / Plugins 메뉴를 선택하여 Available Plugins 목록에서 UML을 선택 설치합니다.

정상적으로 UML 플러그인이 설치되면 새로운 프로젝트 종류로 UML을 선택할 수 있습니다. 실제 프로젝트 생성 메뉴를 선택하면 3가지 종류의 UML 프로젝트가 있습니다.
  • Platform-Independent Model
    • 코드 생생이 이루어지지 않으며 어떠한 Rule도 적용되지 않습니다.
  • Java-Platform Model
    • Java 비지니스 Rule을 적용합니다. 코드 생성도 가능합니다.
  • Reverse Engineered Java-Platform Model
    • Java 프로젝트를 이용하여 UML 다이어그램을 만들어냅니다.
이 중 Java-Platform Model 프로젝트를 생성하여 시퀀스 다이어그램을 만들어보도록 하겠습니다. 아래의 순서대로 새로운 시퀀스 다이어그램을 생성합니다.
  • UML 프로젝트의 Projects 브라우저에서 New / Diagram... 메뉴 선택
  • Create New Diagram... 대화 상자에서 "Sequence Diagram"을 선택하고 원하는 이름을 지정
새로운 시퀀스 다이어그램을 생성하면 다이어그램을 그릴 수 있는 빈 화면과 아래와 같은 팔렛트가 나타납니다.


위 팔렛트에서 원하는 요소를 선택하여 시퀀스 다이어그램을 작성할 수 있습니다. 팔렛트의 각 요소에 대해 간단히 정리해보도록 하겠습니다.
  • Lifeline
    • 메시지 상호작용에 참여하는 하나의 주체입니다. 예를 들면, Java의 객체등이 Lifeline일 수 있습니다.
  • Actor
    • 시스템의 사용자를 타나냅니다.
  • Synchronous Message
    • 수행하는 절차가 완료되기 전에는 호출자로 리턴하지 않는 메시지를 나타냅니다.
  • Asynchronous Message
    • 수행하는 절차가 완료되기 전에 호출자에게 리턴하는 메시지를 나타냅니다. 보통 비동기 호출이라고하죠.
  • Create Message
  • Message To Self
    • 현재 Lifeline 내에서 메시지 호출이 이루어지는 경우 사용합니다.
  • Destroy Lifeline
  • Combined Fragment
  • Comment
  • Link Comment
다음 글에서는 실제 시퀀스 다이어그램을 작성하는 방법에 대하여 살펴보도록 하겠습니다.

2007년 11월 6일 화요일

넷빈즈에서 서브버전(Subversion)을 사용하자 - 설정

서브버전(Subversion)은 CVS의 단점을 보완한 소스버전 관리 도구입니다. NetBeans 6.0에서는 CVS와 더불어 기본적으로 서브버전을 IDE 환경에서 사용할 수 있습니다. 이 글에서는 서브버전을 NetBeans에서 사용하기 위한 설정 방법부터 소스 check out 방법까지 살펴보도록 하겠습니다.

1. 서브버전 설치
NetBeans에서 서브버전을 사용하기 위해서는 우선 서브버전 S/W를 설치하여야 합니다. 이 글을 작성 중인 현재 가장 최신 버전인 1.4.5 Windows용 파일을 http://subversion.tigris.org 에서 다운로드 받을 수 있습니다. 다운로드 받은 ZIP 파일은 압축 해지 하십시오.

여러분이 ZIP 압축을 푼 폴더가 C:\svn-win32-1.4.5 라고 가정하면 svn.exe 파일이 위치한 C:\svn-win32-1.4.5\bin 폴더를 Windows PATH 환경 변수에 추가합니다.
  • TIP: Windows PATH 환경 변수를 설정하기 위해서는 다음과 같은 단계를 따릅니다.
  • - 제어판의 시스템에서 고급 탭을 선택하여 환경 변수 버튼을 클릭합니다.
  • - "사용자 변수 편집" 대화 상자에서 PATH 값에 ';' 기호로 구분하여 경로를 추가합니다.
정상적으로 서브버전의 설정이 완료되었으면 NetBeans를 재 실행하여 Versioning / Subversion 메뉴를 선택하여 아래 화면과 같이 대화상자가 나타나는지 확인하십시오.


2. 설치를 확인하기 위하여 Checkout 해보기
이제 SVN 저장소에서 소스코드를 checkout 해보도록 하겠습니다. checkout 해볼 소스코드로는 Sun의 오픈소스 Java ME 프로젝트인 phoneMe SVN 저장소를 사용하겠습니다.

앞에서 실행한 메뉴의 대화상자에서 Repository URL에 "https://phoneme.dev.java.net/svn/phoneme/trunk"를 입력합니다. 이때 나타나는 User, Password 필드에는 User에 "guest"를 입력하고 Password 필드는 그대로 비워둔채로 Next 버튼을 선택합니다.

SVN 서버에 접속 시도 중 "Server certificate verification failed" 메시지가 나타나면 "Accept permanently"를 선택하여 진행합니다. 정상적으로 SVN 서버와 연결되면 아래와 같은 화면이 나타납니다.


위 화면의 각 필드에 대해 간단히 정리해보도록 하겠습니다.
  • Repository Folder(s) : 소스 코드를 가져올 특정 폴더위치를 지정합니다. Browse 버튼을 선택하여 직접 폴더 위치를 SVN 서버에서 탐색할수도 있습니다.
  • Repository Revision : 소스 코드를 가져올 특정 revision 버전을 선택합니다. 이 값을 비워두면 가장 최신 버전의 소스 코드를 가져오게 됩니다.
  • Local Folder : 자신의 PC에서 소스 코드를 저장할 위치를 선택합니다.
이 값들을 적절히 설정한 후 Finish 버튼을 선택하면 SVN 서버에서 자신의 PC로 코드를 check out하게 됩니다. 탐색기에서 실제로 파일들이 만들어졌는지 확인해보시기 바랍니다.

이번 글에서는 NetBeans 6.0에서 서브버전을 사용하기 위한 설정 방법 및 실제 check out 과정을 살펴보았습니다. 다음에는 SVN에서 관리되는 NetBeans 프로젝트 소스와 서브 버전의 여러 기능들을 연계하여 사용하는 방법에 대해 살펴보도록 하겠습니다.

2007년 11월 5일 월요일

6.0 버전 에디터의 참신한 기능들

http://wiki.netbeans.org/wiki/view/Java_EditorUsersGuide

이미 잘 알고 계실 수 있는 내용이지만 제가 좀 IDE의 에디터에 관심이 많은지라 공유해봅니다.
위 링크를 보시면 NetBeans 6.0에서 강화된 에디터 기능에 대한 WIKI 페이지를 보실 수 있습니다.

위 내용 중 맘에 드는 기능 몇 가지 소개해보면...

  • import 자동으로 입력 해 주기 : Alt-Shift-i, Alt-Shift-f
  • 사용하지 않는 코드 gray 처리 및 사용하지 않는 import gray 처리
  • deprecate된 코드는 strike out으로 표시
  • context에 맞는 code completion
  • method의 return 부분 highlight 표시 --> 정말 맘에 드는 군요 ^^
  • exception 발생 부분 highlight 표시
  • override하거나 implement한 method highlight 표시
  • instant rename: 특정 변수 등을 사용하는 부분까지 모두 한번에 수정하는 기능. Refactoring 보다 쓰기 편하겠군요. 이 기능도 잘 쓰면 휙휙 코드 수정이 가능하답니다.

등등등 NetBeans도 점점 훌륭한 에디터를 갖추어가는군요 ^^

아래의 내용은 현재 5.5 버전에서 제공되는 에디터의 사용할 만한 키 매핑 정보입니다.

* 아래 내용은 NetBeans의 기본 profile을 사용하는 경우이다. 만일, Emacs를 선호하는 개발자라면 Tools > Options 메뉴를 선택하고 Keymap을 선택한 후 Profile을 Emacs로 변경하여 사용하시기 바란다.

  • Ctrl-[
    • 에디터에서 현재 강조된 괄호({}, ()) 문자로 바로 이동
  • Ctrl-Shift-[
    • 에디터에서 현재 강조된 괄호 문자로 싸인 모든 문자열을 선택
  • Ctrl-G
    • 지정한 줄 번호로 바로 이동
  • Ctrl-HOME
    • 소스 코드의 가장 첫 줄로 이동
  • Ctrl-END
    • 소스 코드의 가장 마지막 줄로 이동
  • Alt-Shift-S
    • Java 클래스의 현재 문법 요소를 선택. 연속적으로 이 키를 누르면 다음번 요소로 확장하여 선택
  • Alt-Shit-A
    • Alt-Shift-S로 확장 선택한 문법 요소를 한단계 줄여서 이전 단계의 요소를 선택하도록 함
  • Ctrl-Minus(-)
    • 코드의 현재 블럭을 접음 (code folding)
  • Ctrl-Plus(+)
    • 현재 접혀진 코드 블럭을 다시 펼침
  • Ctrl-J, S
    • 키 매크로 레코딩 시작
  • Ctrl-J, E
    • 키 매크로 레코딩 완료
  • Ctrl-Z
    • Undo
  • Ctrl-Y
    • Redo
  • Ctrl-E
    • 현재 줄을 지움. 클립보드로 복사 안됨
  • Ctrl-U
    • 현재 문자 삽입 위치 앞에 있는 모든 문자열을 지움
    • 그런 후 다시 입력하면 그 앞의 indentation 문자도 지움 (즉, 공백 문자)
    • 그런 후 다시 입력하면 줄 바꿈 문자도 지움
  • Ctrl-BACKSPACE
    • 현재 문자 삽입 위치 앞에 있는 단어를 지움
  • Ctrl-K
    • 현재 문자 삽입 위치 앞에 있는 단어를 복사하여 현재 위치에 붙임. 반복 입력하면 그 전 단계의 단어로 계속 이동
  • Ctrl-L
    • 현재 문자 삽입 위치 뒤에 있는 단어를 복사하여 현재 위치에 붙임. 반복 입력하면 그 다음 단계의 단어로 계속 이동
  • Ctrl-F3
    • 현재 선택된 단어를 현 소스 코드에서 검색. 모든 일치되는 단어를 강조색으로 표시 함
  • Shift-F3
    • 역 방향으로 검색
  • Ctrl-SPACE (or \)
    • 자바 코드 자동 완성 대화상자를 연다
  • Alt-Shift-F
    • Fix import. 필요없는 import를 제거하거나 필요한 것을 추가
  • Alt-G
    • 현재 선택된 method나 변수의 선언부로 바로 이동
  • Ctrl-Shift-T
    • 현재 라인을 주석 처리
  • Ctrl-Shift-D
    • 현재 라인의 주석을 삭제
  • Ctrl-J, D
    • 디버깅 로그를 출력하고자 하는 변수 값의 바로뒤에 커서를 위치하고 이 키 조합을 선택하면 해당 변수에 대한 출력 println 코드가 자동으로 작성된다
  • Alt-O
    • 현재 커서가 위치한 identifier에 대한 Java 소스 코드를 연다
  • Alt-Shift-O
    • 현재 커서가 위치한 identifier에 대한 Java 소스 코드를 선택하여 열기위한 대화상자를 보여준다
  • Ctrl-B
    • 현재 선택한 method의 base에 해당하는 소스 코드를 연다
  • Alt-F1
    • 현재 선택한 코드에 대한 Java 도움말 HTML 페이지를 연다
  • Ctrl-F2
    • 북마크를 설정하거나 해지한다
  • F2
    • 설정한 북마크로 이동한다. 계속 선택 시 다음 번 북마크로 이동한다
  • Ctrl-mouse click
    • 해당 identifier의 소스 코드로 바로 이동

NetBeans를 배우자 블로그에 대한 소개

NetBeans를 배우자 한국어 블로그에 오신 여러분들을 환영합니다.

이 블로그의 최우선 목적은 NetBeans에 관련된 여러 기술적인 팁을 개발자 여러분들과 공유하는데 있습니다.

또한, Planet NetBeans 사이트에 site feed를 제공함으로서 NetBeans의 한글화 작업에 이바지하는 것도 또한 목적입니다.

혹, 이 글을 읽으시는 여러분들 중 이 Blog에 NetBeans 관련 글을 제공하시고 싶으신 분이 있으시면 이 게시물에 답글로 자신의 이메일 정보를 제공해주시기 바랍니다.

감사합니다.