1. 개발 관련
SecureCRT 5.2 이상
FTP - 아무거나
JDK 1.5 이상
GWT 1.4.X 이상
ANT 1.7 이상
Tomcat 5.5 이상
eclipse 3.3 이상
FlexBuilder 2 or 3
XPanel - Flex 디버깅용
Cygwin 최신버전 : http://www.cygwin.com/
MEConsole -  윈도 CMD 대체용
Editplus  2.21 이상
gVim 7.1 이상 : http://www.vim.org/
DJ Java Decompiler 3.7 이상
ER-WIN
Toad 8.5 이상
SQL Manager (MS-SQL, MySQL)

2.  비개발 관련
Firefox and Thunderbird
MS Office
HNC
Foxit PDF Reader
WinZip or 7zip
Adobe Photoshop
flyExplorer : http://flychk.new21.org/flyExplorer/
OpenCapture : http://openproject.nazzim.net/opencapture.htm
WinAmp
GomPlayer
NateOn : http://nateonweb.nate.com/
Yahoo! Mini - 전자사전
StickyPad : http://www.greeneclipse.com/stickypad.html
DeamonTool

3. Firefox 플러그인

4. ThunderBird 플러그인
Display Mail User Agent 1.5.1
PitchDark 2.0.2 테마

5. eclipse 플러그인
subclipse : http://subclipse.tigris.org/update_1.2.x/
$ECLIPSE_HOME/eclipse.ini에 아래 내용 추가
-vmargs
-Xverify:none
-XX:+UseParallelGC
-XX:PermSize=64M
-XX:MaxPermSize=128M
-XX:MaxNewSize=32M
-XX:NewSize=32M
-Xms256m
-Xmx256m

원문(영어) : http://mygwt.net/learn/index.php?title=Tutorial:MyGWT_101

본 글은 위 원문의 직역이 아닌, 국내 개발자가 이해하기 쉽도록 의역한 글입니다.

Viewport
Viewport는 브라우져상의 화면 표시영역을 의미하며, 대부분의 어플리케이션에서 'root' 컨테이너로 사용된다.
사용자에 의해 브라우져의 크기가 바뀔 경우 Viewport는 'root' 컨테이너의 크기를 자동으로(0.4초 딜레이 간격) 브라우져의 변경된 크기에 맞게 조절한다.

Viewport를 사용할 경우 HTML Body의 스크롤 바는 생성되지 않으며, Viewport내에 추가한 Widget의 크기가 스크롤을 필요로 할 경우에만 스크롤 바가 생성된다.
Viewport는 일반적으로 'desktop'과 유사한 어플리케이션을 구현할 때 사용한다.

Layout
아마 MyGWT를 가지고 작업하는데 가장 어려운 부분이라면 바로 Layout일 것이다.
MyGWT에서는 전통적인 어플리케이션 Layout 구현 방법과는 다소 다른 형식으로 Layout을 사용하게 된다.
Layout에 대해 더 많은 정보를 알고자 한다면 'Containers and Layout' 튜토리얼을 참고하도록 한다.

간략한 Layout에 대한 이해를 위해, 아래의 어플리케이션 조각을 살펴보자. 이 어플리케이션은 BorderLayout을 사용한다.
참고로 BorderLayout은 5개의 서로다른 위치(NORTH, SOUTH, EAST, WEST, CENTER)에 Widget들을 배치하도록 도와주는 Layout이다.

여기에서의 BorderLayout은 WEST와 CENTER 위치값을 사용한다. MyGWT에서 지원하는 대부분의 Layout들은 LayoutData를 가진다.
LayoutData는 컨테이너 안의 각 Widget의 배치정보를 설정하는데 사용된다.

   1. // Viewport를 생성한 뒤 BorderLayout을 지정한다.
   2. Viewport viewport = new Viewport();  
   3. viewport.setLayout(new BorderLayout());  
   4.   
   5. // WEST 위치에 가로, 세로가 각각 100, 75이고 초대 가로크기가 150인 BorderLayoutData를 생성한다.
   7. BorderLayoutData data = new BorderLayoutData(Style.WEST, 100, 75, 150);  
   8.   
   9. // 1번째 자식 컨텐츠 Widget을 생성하고 앞서 정의한 LayoutData와 함께 Viewport에 추가한다.
  10. ContentPanel west = new ContentPanel(Style.HEADER);  
  11. west.setText("West");  
  12. viewport.add(west, data);   
  13.   
  14. // 2번째 자식 컨텐츠 Widget을 생성한다.
  15. ContentPanel center = new ContentPanel(Style.HEADER);  
  16. center.setText("Center");  
  17.
  18. // CENTER 위치치정은 나머지 영역을 모두 차지하므로 가로, 세로 크기 지정은 필요없다.
  19. viewport.add(center, new BorderLayoutData(Style.CENTER));  
  20. viewport.layout();  

Layout 메소드
Google GWT에서의 Panel과는 다르게, MyGWT는 컨테이너에 Widget을 추가할 때 바로 표시하지 않고 컨테이너의 DOM에 추가한다.
그리고 컨테이너에 추가된 Widget을 실제 표시하는 일은 Layout이 담당한다. 이점은  MyGWT를 이해하기 위한 아주 중요한 개념이다.

이제, 위에서 생성한 ContentPanel에 TabFolder를 추가하도록 한다. 이를 위해 2가지 작업을 해줘야 할 필요가 있다.
첫째, Widget을 생성하고 추가한다.

   1. TabFolder tabFolder = new TabFolder(Style.NONE);  
   2. center.add(tabFolder);  

둘째, ContentPanel에게 추가된 Widget의 배치를 담당할 Layout을 지정해준다.
Layout을 지정하지 않으며, 컨테이너는 일반적인 HTML 흐름에 준해 자식 Widget을 표시하게 된다.

여기서는 ContentPanel의 전체영역에 TabFolder를 배치하기 위해 FillLayout을 사용하도록 한다.

   1. center.setLayout(new FillLayout());  

Cascading Layouts
Viewport를 통해 작업하는 경우, ContentPanel은 자신의 Layout이 수행되기 전까지는 자식 TabFolder를 표시하지 않는다.
앞선 예제에서 어플리케이션은 Viewport와 BorderLayout을 사용했다.
BorderLayout이 수행될 때 추가되는 자식 Widget의 크기가 확정되어 표시되게 된다. 위에서 봤던 CENTER 위치에 추가되는 ContentPanel 역시 BorderLayout에 의해 크기가 재조정된다.

부모 layout에 의해 크기가 조정 될 때 자식 ContentPanel의 layout이 자동으로 수행되므로, ContentPanel의 layout을 명시적으로 호출할 필요가 없다.

ContentPanel의 FillLayout이 수행될 때, TabFolder의 크기가 재조정된다. 그리고 TabFolder의 크기가 변경될 때 TabFolder내의 활성 TabItem의 크기도 재조정된다. 이렇듯, 컨테이너의 Layout이 수행될 때 그 자식 컨테이너 및 패널들의 Layout이 재귀적으로 수행된다.

# anonymous 사용자의 접속 허용 여부 (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부 (default = NO)
local_enable=YES

# write 명령어 허용 여부 (defualt = NO)
write_enable=YES
# 로컬 계정 사용자용 umask (default = 077)
local_umask=022

# anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO)
# anon_upload_enable=YES
# anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO)
# anon_mkdir_write_enable=YES

# 파일 전송 로그를 남길 것인지 여부 (default = YES)
xferlog_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES)
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=YES
# 파일 전송 로그 파일명
xferlog_file=/var/log/vsftpd.log

# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
# ftpd_banner=Welcome to blah FTP service.

# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO)
# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list_file= 에 설정한 파일에
# 지정한다.
# chroot_local_user= 설정과 관련이 있으니 '3. 문제 해결'을 꼭 읽어보라.
#
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list

# -------------------------------------------------------------------
# 기본 설정 파일에는 없는 설정값으로 필요한 설정만 추가한다.
# ※ 중요한 설정은 굵은 글씨로 표시
# -------------------------------------------------------------------

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES

# 사용자가 자신의 home directory를 벗어나지 못하도록 설정
chroot_local_user=YES

# 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명
# message_file=.message

# xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음)
# xferlog_std_format=NO
#
#  - xferlog 표준 포맷은 로긴, 디렉토리 생성등의 로그를 남기지 않음
#   그러나 vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남김
#  - vsftpd 스타일 로그 예
#
#  Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client "127.0.0.1"
#  Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client "127.0.0.1", "/mp3"
#  Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client "127.0.0.1", "/델리
#  스파이스 5집 - [04]키치죠지의 검은 고양이.mp3", 6855473 bytes, 3857.39Kbyte/sec

# 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
anon_max_rate=0
local_max_rate=0
trans_chunk_size=0

# 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능)
# standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함
#
# max_clients=최대 접속자 수, max_per_ip=IP당 접속 수
# max_clients=100
# max_per_ip=3

# Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정
# 디폴트 포트는 21번 포트이다.
# listen=YES
# listen_port=21

원본 파일 : http://kltp.kldp.org/stories.php?story=03/10/09/5659809

'시스템 > 리눅스' 카테고리의 다른 글

배시 셸로 작업하기  (0) 2008.08.21
회사 개발환경 정리  (0) 2008.08.05
Subversion 자동 키워드 설정 (with subclipse)  (0) 2008.02.20
유용한 모니터링 명령어  (0) 2008.02.14
이클립스 Trac plug-in 설치  (0) 2008.02.13
대상 설정 파일 경로
==============
시스템 전체 설정:
  Unix:
    /etc/subversion/servers
    /etc/subversion/config
    /etc/subversion/hairstyles
  Windows:
    %ALLUSERSPROFILE%\Application Data\Subversion\servers
    %ALLUSERSPROFILE%\Application Data\Subversion\config
    %ALLUSERSPROFILE%\Application Data\Subversion\hairstyles
    REGISTRY:HKLM\Software\Tigris.org\Subversion\Servers
    REGISTRY:HKLM\Software\Tigris.org\Subversion\Config
    REGISTRY:HKLM\Software\Tigris.org\Subversion\Hairstyles

사용자별 설정:
  Unix:
    ~/.subversion/servers
    ~/.subversion/config
    ~/.subversion/hairstyles
  Windows:
    %APPDATA%\Subversion\servers
    %APPDATA%\Subversion\config
    %APPDATA%\Subversion\hairstyles
    REGISTRY:HKCU\Software\Tigris.org\Subversion\Servers
    REGISTRY:HKCU\Software\Tigris.org\Subversion\Config
    REGISTRY:HKCU\Software\Tigris.org\Subversion\Hairstyles

설정 파일(config) 수정
==============
enable-auto-props = yes

'시스템 > 리눅스' 카테고리의 다른 글

회사 개발환경 정리  (0) 2008.08.05
vsftp 설정에 관한 문서 (vsftpd.conf)  (0) 2008.02.26
유용한 모니터링 명령어  (0) 2008.02.14
이클립스 Trac plug-in 설치  (0) 2008.02.13
시스템 각종 정보 조회 명령어  (0) 2008.01.21
메모리 조회
free

가상메모리 조회
vmstat 5

자원 모니터링
top

프로세스별 메모리 사용량 조회
nmap -x PID

메모리 사용량 많은 순서대로 프로세스별 정렬해서 보기
ps aux | awk '{print $4"\t"$11}' | sort | uniq -c | awk '{print $2" "$1" "$3}' | sort -nr
Trac PlugIn 설치

1. RPC 플러그인 다운로드 plug-in
XmlRpc : 다운로드
RpcExt : 다운로드
2. /usr/share/trac/plugins/ 폴더로 이동
3. unzip XXXX-plugin.zip 각각 압축 해제
4. cd $UNZIP_DIR/PATH/ (setup.py 있는 디렉토리로 이동)
5. python setup.py bdist_egg 실행
6. easy_install $UNZIP_DIR/PATH (setup.py가 존재하는 디렉토리 지정)
7. vi /trac/$PROJECT/conf/trac.ini
   [components]
   tracrpc.* = enabled
8. Apache 재기동

Permission denied /root/.python-eggs 에러 발생시에는
/etc/apache2/sites-enable/trac 파일을 열어서 아래와 같이
PYTHON_EGG_CACHE 값 지정 후 Apache 재기동

<Location /trac>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/lib/trac
    PythonOption TracUriRoot /trac
    PythonOption TracLocale "ko_KR.utf8"
    SetEnv PYTHON_EGG_CACHE /tmp/trac-eggs
</Location>

이클립스 Trac 플러그인 설치
업데이트 주소 : http://trac-hacks.org/svn/eclipsetracplugin/eclipse/update/
플러그인 홈 : http://www.trac-hacks.org/wiki/EclipseTracPlugin

SomeService.java 에서 ....

SomeDao.java 에서 ....

OtherDao.java 에서 .....

xxxxDao.java 에서 ....
List tempList = new ArrayList();
tempList.add("1001");
tempList.add("1002");

new HashMap().put("listId", tempList);

xxxx-sqlmap.xml 에서 ....
<select id="someList" resultClass="someBean" parameterClass="java.util.Map">
.... 생략 ....
AND SAMPLE_CD IN
<iterate prepend="" property="listId" open="(" close=")" conjunction=", ">
    #listId[]#
</iterate>

※ 참고
prepend - the statement에 붙을 오버라이딩 가능한 SQL부분 (옵션)
property - 반복되기 위한 java.util.List타입의 프로퍼티 (필수)
open - 반복의 전체를 열기 위한 문자열, 괄호를 위해 유용하다. (옵션)
close - 반복의 전체를 닫기 위한 문자열, 괄호를 위해 유용하다. (옵션)
conjunction - 각각의 반복 사이에 적용되기 위한 문자열, AND 그리고 OR을 위해 유용하다. (옵션)

선택박스(List)에서 아이템 상하로 이동하는 샘플 코드


데모 : http://mygwt.net/playpen/list/

'자바 > GWT' 카테고리의 다른 글

com.google.gwt.user.client.rpc.SerializationException 에러 해결  (0) 2009.04.17
MyGWT 레이아웃의 이해  (0) 2008.03.06
MyGWT 0.5.0 Alpha 1 릴리즈  (0) 2008.01.25

+ Recent posts