레이블이 이클립스인 게시물을 표시합니다. 모든 게시물 표시
레이블이 이클립스인 게시물을 표시합니다. 모든 게시물 표시

8/13/2010

Eclipse 에서 메모리 Heap 상태 체크하기 및 GC하기

몇몇 플러그인도 있는 것 같습니다만, 3.5 이상은 기본으로 들어가 있는 듯 합니다. ( 그전부터 있었을지도?? )

 

Preference –> General 을 선택하면 아래와 같이 “Show heap status” 라는 컬럼이 있는데, 기본으로는 체크가 되어 있지 않습니다.

 

 

체크를 켜고 나면 화면 우하단에 아래와 같이 힙사이즈를 보여주는 UI가 나타납니다.

전체 HeapSize는 본인 PC의 세팅 및 eclipse.ini 에서 세팅한 –Xmx 같은 파라메터의 영향을 받겠지요.

 

 

보시면 지금 이 스샷을 뜬 이클립스는 전체 992M 중에 224M를 쓰고 있다는 걸 알 수 있네요.

그 옆에 보면 휴지통 모양이 있는데, 네 맞습니다. 누르면 Garbage Collection합니다.

 

너무 무거운 어플리케이션 띄우거나 해서 Heap Size 다 썼다는 오류를 허구한 날 보시는 분이라면 틈틈히 저 버튼 눌러주시면 되겠습니다.

(그럴 일이 자주 없길 바랍니다. –_-;;)

3/16/2010

How to fix eclipse "resource is out of sync with the file system"

자바 관련 프로젝트를 이클립스로 하다 보면, 이런 에러 종종 많이 날때가 있다.

 

이럴때는 프로젝트 선택해서 마우스 팝업창 띄운 다음에 Refresh한번 해주면 해결.

계속 발생해서 귀찮으면 Window->Preference 메뉴를 띄운 다음 General->Workspace로 이동해서 Refresh Automatically 체크.

 

글 쓸게 없어서 이런거라도 포스팅 –_-;;;

5/14/2009

Eclipse에서 WTP로 서버 스타트업시 45초 후 종료되어 버리는 현상

Spring을 쓰거나 기타 등등 다른 것들을 이용해서 이클립스 WTP환경하에서 자바기반 웹어플리케이션을 만들 때, 생성하는 빈이 너무 많거나 해서 서버가 올라가는 시간이 너무 길면 서버 스타트업이 중지되면서 에러가 발생합니다.

기본적으로는 이 타임아웃이 45초로 되어 있는데, 스타트업 시간을 줄이면 좋겠지만 부득이하게 이보다 시간이 더 걸릴때는 타임아웃 시간을 늘려야겠죠.

그런데 이걸 어디서 바꾸어야 하는지 모르는 경우가 많습니다. eclipse 에서 생성한 서버의 server.xml 이나 web.xml, context.xml 뭐 이딴거 다 까봐도 스타트업 타임아웃 설정에 대한 건 없죠. 이클립스에서 서버를 스타트 시켜 주기 때문에 서버의 스타트업 타임아웃은 이클립스 쪽에서 뭔가 바꾸어 주어야 합니다.

방법은 의외로 간단한데, 이클립스의 server 에디터 창에서 해당 서버를 더블클릭하여 Overview 및 Modules 롤 보이게 한 다음 Overview쪽 항목들을 자세히 보면 “Timeouts” 이라는 게 보입니다. 이걸 열어보면 Start(in seconds) 라는 항목이 보이는데 요걸 수정해 주면 됩니다.


비스타 캡쳐도구로 그렸더니 엉망진창이지만 –_-; 이미 이클립스나 WTP에 익숙하신 분들이라면 쉽게 아실 수 있을겁니다.

image


요즘 바빠서 포스팅이 너무 뜸한지라 이런거라도 올려봅니다. –_-;;;;;;;;;

12/04/2008

Eclipse 에서 소스파일에 함께 넣어둔 xml 파일들이 build 시 누락될 때

웹개발을 위해 Eclipse 에서 WTP 환경 맞추어놓고 build 하시는 분들은 아마도 output 을 WebContent/WEB-INF/classes 로 맞추어 놓으실겁니다.

이게 아니더라도 ibatis/hibernate 라든가 각종 프레임워크나 라이브러리를 사용하게 되면 설정을 xml로 하는게 대부분의 추세이지요. ( 드물게 .properties .. )

최근에 3.4 설치한 이후 처음으로 dynamic web project 를 생성하고 프로젝트 뼈대를 구성하던 중(Spring 2.5 + iBatis + ...) 이런 현상이 발생했습니다.

build path 쪽 source includes/excludes 쪽으로 아무리 고쳐봐도 안되서 어쩔 수 없이 export -> ant 로 빌드 스크립트를 만든 다음 excludes 쪽 항목에 있는 **/*.xml 을 삭제하고, 그 다음부터는 꼬박 하루를 ANT로 빌드를 했습니다.

오늘 이 부분의 번거로움에 대해서 팀 동료인 광식씨와 이야기를 하던 중 광식씨가 동일증상에 대한 글을 써놓은 블로그 포스팅을 발견해서 알려줬습니다.


Window -> Preference -> Java -> Compiler -> Building 까지 들어와 보면 아래와 같은 화면을 볼 수가 있는데요

image

저도 몇번이나 이 근처까지 들어왔다가 나갔었는데, 저기서 "Output folder" 를 열어볼 생각을 못했었네요. -_-;

열어보면 이쁘게도 *.xml 을 output folder 로 복사시에 죄다 걸러내도록 필터가 설정되어 있군요.

image

깔끔하게 삭제해주고 나면 문제 해결!


얼마전까지만 해도 이런 증상이 없었던 걸로 봐서 최근 설치한 플러그인 또는 업데이트한 플러그인 중 하나의 소행인듯 합니다만 -_-;;

제가 참고한 글의 링크를 위에 걸어 두었지만, 동일 현상으로 고생하실 분들이 꽤 있으실 것 같아서 저도 별도로 포스팅 해둡니다.

10/30/2008

native2ascii가 싫다면 Eclipse 용 Properties Editor 플러그인을 사용해보세요

Java 를 기반으로 구현된 모든 코드에서 국제화 등을 이유로 리소스 파일 작성을 할때에, 문자열 등의 리소스 파일은 ascii 값의 ISO-8859-1 인코딩으로 작성해 주어야 합니다.

프로퍼티 파일들을 UTF-8 로 읽어주도록 변경되면 좋겠지만 어쨌든 현재는 그렇습니다.

이 때문에 jdk 에는 native2ascii 라는 실행파일이 들어 있는데( $JAVA_HOME/bin 에 들어있음 ) 이놈을 이용해서 프로퍼티 파일을 파라메터로 건내주거나 파일 실행 후 문자열을 입력해보면 Latin-1 인코딩의 ascii 값을 알 수 있습니다.

ANT에서도 native2ascii task 를 지원하기 때문에 일반적으로 컴파일 및 빌드 과정과는 별개로 native2ascii 를 이용해서 리소스 파일들을 바꾸어 주는 작업을 추가하게 됩니다.

Quick and Dirty Hack for UTF-8 Support in ResourceBundle 라는 포스팅을 보면 PropertyResourceBundle 의 wrapper class 구현이 있는데 이런 걸 이용하는 것이 편하긴 합니다. 다만 해당 포스팅의 아래쪽 comment 를 보면 3가지 정도의 bug case 에 대한 지적이 있는데 특히 Brian 이 지적한 내용은 반드시 적용해서 사용하셔야겠습니다.

Very cool however I found a bug in your impl. when asking for a resource bundle with a parent. This is how I fixed it. Notice the call to getString which makes sure to recursively go over the parent bundles. Also checking for null.

protected Object handleGetObject(String key) {
    String value = (String)bundle.getString(key);
    if (value==null) return null;
    try {
        return new String (value.getBytes("ISO-8859-1"),"UTF-8") ;
    } catch (UnsupportedEncodingException e) {
    // Shouldn't fail - but should we still add logging message?
    return null;
    }
}

And another small thing: not all ISO-8859-1 chars are a subset of UTF-8. The (C) sign seems to clash. If I put a \u00a9 in a UTF-8 file, it fails. But if I put the actual sign, it works. For some reason it is encoded as two bytes even though it is below 192 decimal.

Not a big deal though. Still very cool solution.

첫번째 지적한 경우에 해당하는 문자는 저작권 표시와 유로화 표시, 그리고 무한대 표시 등이 있는 것 같네요.


이런 프로그래밍적인 것 말고 이클립스 플러그인 형태의 '편집기'를 원하는 분이라면 Properties Editor 라는 것을 추천합니다.

이클립스의 Help -> software updates -> add site 를 선택하고 http://propedit.sourceforge.jp/eclipse/updates/ 를 추가해서 업데이트를 하면 됩니다.

설치를 하고 나서 파일을 생성할때 확장자를 .properties 로 설정하면 해당 파일을 편집할때 자동으로 이 Properties Editor 를 이용해서 편집이 되고 properties 파일의 아이콘도 에디터 설치 후에는 아래와 같이 녹색 P 모양으로 바뀌게 됩니다.

image

물론 파일을 선택하고 팝업메뉴를 띄워서 Open with... 로 파일을 열 수도 있습니다.

package.properties 파일을 열어보면 이렇게 이쁘게 한글로 표시가 되어 있습니다...만...

image

Open with 를 선택하고 일반 텍스트 편집기로 열어보면

image

native2ascii 를 돌린 것처럼 이쁘게 변환되어 있습니다. 전체 프로젝트의 인코딩이 UTF-8로 지정되어 있어도 해당 .properties 파일은 ISO-8859-1 로 맞춰지기 때문에 별도로 파일 인코딩을 바꾸어주지 않아도 되니 편리하군요.

6/04/2008

Eclipse 스플래쉬 화면이 지겹다면

이클립스 설치 경로의 plugins/org.eclipse.platform_3.X.X/ 아래에 보면 "splash.bmp" 파일이 있는데, 요게 실행시 로딩되는 스플래쉬 이미지입니다.
이것만 슬쩍 편집해주시면 됩니다.

심심해서 이것저것 "이클립스" 가 들어간 단어들로 스플래쉬 몇개를 만들어 보았습니다. ( 라기보다는 그냥 퍼와서 Gimp 로 살짝만 손봤습니다)

다운로드해서 splash.bmp 로  바꾸어 사용하시면 됩니다.
스플래쉬 이미지명이나 경로를 바꾸고 싶으면 osgi.splashLocation 파라메터를 실행시 주거나 osgi.splashPath 설정값을 바꾸어도 된다고 하네요. (테스트는 못해봤음)


1. 미쯔비시의 구형 이클립스 ( 개인적으로 구형의 뒷모습을 좋아해서...)


미쯔비시의 구형 '이클립스' . 혹시나 차주분이 요청하시면 삭제하겠습니다. 사용이 익숙치 않은 Gimp 로 번호판을 지우다 보니 작업결과가 좀 엉성합니다.

image

2. 오리지널 스플래쉬 수정본

원본 이클립스 스플래시에 제 개인 홈페이지 URL 넣은 버전입니다.

이클립스 시작시 힙사이즈와 gc 관련 파라메터 몇개 바꾼거 말고는 커스터마이즈된 내용이 없습니다만 -_-;

splash

3. 영화 "토탈 이클립스" 포스터

다들 잘 아시는 레오나르도 디카프리오 주연의 "토탈 이클립스" 를 살짝 손봤습니다. Gimp 로 하니 좀 엉성하군요 ㅜ.ㅜ

A FILM BY 뒤에 글자들을 지워놨으니 입맛에 맞게 넣어보셔도 좋겠네요. 

splash

매번 스플래쉬 뜨는 게 보기 싫으신 분들은 splash.bmp 를 삭제하시거나 다른 이름으로 바꾸시면 됩니다.


적용화면(?)

image

2/03/2008

1월말 구매서적

Eclipse를 활용한 Java 프로젝트 실무

류대석

제이에스팩토리㈜ 2008.01.12

.
내 몸 사용설명서

마이클 로이젠, 메맷 오즈 | 유태우 옮김

김영사 2007.03.06

.

Eclipse를 활용한 Java 프로젝트 실무는 스르륵 살펴본 후에 이미 yes24에 서평을 작성해 두었고, "내 몸 사용설명서" 는 집에서 틈날때마다 읽어보고 있다.


내 몸 사용설명서의 경우 어려운부분은 어렵고 또 쉬운부분은 쉬운데, 아무튼 읽어두면 도움이 될 만한 내용이다.

1/29/2008

Eclipse 를 도입해서 사용중

지금의 회사에 입사한 이후로 거의 5년정도를 UNIX 머신상에서 vi 코딩하다가 최근에 개발환경을 바꾸면서(팀이 바뀌었다) Eclipse + CVS + 등등으로 세팅해서 쓰고 있다.
중간중간에 개인 프로젝트나 집에서 놀때는 물론 이런저런 IDE (라고해봐야 몇개 안되지만) 를 갖고 놀긴 했지만...

Eclipse 를 사용하는 이유는 CVS 를 개발환경에 적용했다는 점이 가장 큰 부분이다. (매번 콘솔에서 명령어 일일이 입력하긴 귀찮으니까) 개발서버쪽에 계정 따로 만들어서 소스코드 checkout 한다음에 코딩해도 되긴 하지만 '팀  표준 개발환경' 을 설정하고 쓰는게 좋겠다라는 내부 분위기에 따라 일단 나도 개인PC 에 tomcat 을 설정하고 CVS 에서 소스코드를 다운받아 개발 및 테스트 한 후, 소스코드만을 CVS로 업로드하고 있다.
이후 개발서버에서는 CVS의 데이터를 매일 오후 12시30분과 자정 두번에 걸쳐 checkout 한 후 build 및 deploy 를 하고 있다.

Eclipse 를 쓴다고는 하나 현재 프로젝트에서는 개발팀원들끼리 맡은 부분이 거의 확실히 나누어져 있는 상태이고  팀 자체로 만든 공통 라이브러리를 쓰는 부분이 없기에 package explorer 같은건 있으나마나이고, 오히려 코딩속도에 있어서는 vi 보다 훨씬 떨어지고 있는 입장이다.

아직 Eclipse 를 충분히 익히지 않아서 그런 부분도 있지만 블록설정후 파일간 복사라든지, 블록별 버퍼 저장, 삭제라든지 기타 다른 부분에 있어서 vi 에 비해서 속도를 내어주지 못한다.
마우스를 쓰기 위해서 손가락이 키보드 위를 떠난다는 점 또한 단점이라면 단점이다.
가장 큰 단점은 회사에서 준 조그만 17인치 LCD 모니터와 개인적으로 집에서 들고온 19인치 와이드 LCD 에서 너무나도 열악한 세로 사이즈의 한계가 그나마 PuTTy 로 vi 를 쓸때는 어느정도 쓸만했으나 Eclipse 를 쓰면서 가뜩이나 좁은 세로길이가 더 작아져 버렸다는 것이지 ( Pivot 모니터 구입을 고려중이다 -_-;; )

그럼에도 불구하고 Eclipse 를 이용하고 개인 PC 에 개발환경을 구축해 개발 및 test 를 하게 된 이유는 이전 SKTelink MMS G/W 개발시 프로젝트 막판에 한참 바쁠때  누군가가 패키지에 신규 기능을 코딩하게 되면 해당 사용자가 그 코딩을 '버그없이' 완전하게 완성할동안 계속 컴파일 에러가 나버려서 다른 사람들이 작업을 할 수 없게 된다는 단점을 극복해보기 위함이었다. ( jsp 로만 개발하면 되지 않냐는 소린 하지말고... -_-; )

이런저런 이클립스와 tomcat 등 개발환경을 설정하면서 써본 결과 우선 서블릿 컴파일과 기타 등등을 위해서는 확실히 이클립스쪽에서 WTP 패키지를 받는 것이 편리하다.

다만 WTP 의 경우 실행 또는 서블릿 빌드시에 내부적으로 webapp 및 web.xml 등의 설정을 가져가고 webapp 나 docBase 등의 설정, 기타 등등이 무척이나 번거로운 관계로  Tomcat 은 별도로 설치해서 개발서버와 동일하게 설정한 다음(docBase 정도만 달라진다)  Tomcat 플러그인을 설치해서 쓰면 편리하다.
Tomcat plugin 의 경우 docBase 를 설정할 수 있게 해주는데 이 부분을 CVS 에서 checkout 한 WebContent 로 설정해주면 된다.

요즘 포스팅을 모두 medium쪽으로 하고 있습니다

안녕하세요? 어쩌다보니 그냥 한번 써보기로 한 medium.com 에다가 죄다 최근 포스팅을 하고 있습니다. 현재 도메인인 potatosoft.com 은 제가 대학때인가 사회 취업한지 얼마 안됐을때부터 유지해 온 도메인이고, 블로그 시스템은 그...