'java'에 해당되는 글 134건

  1. 2009.04.30 [Java Visual VM] JDK에 포함된 무료 프로파일링 툴
  2. 2009.04.20 [Blog2Book Test] 현재까지 57%정도의 진척률 (2)
  3. 2009.04.17 [Glassfish] 요청한 URL이 없는 경우 디렉토리 목록(Directory listring) 안보이게 하기
  4. 2009.04.10 [Java Performance Tips] 자바 성능 팁
  5. 2009.04.08 Sun 4월 오픈 기술 세미나
  6. 2009.03.11 [정규 표현식 분석기] 웹 기반의 정규 표현식 분석기 (1)
  7. 2009.03.04 [이벤트안내] 한빛 미디어에서 자바 로드맵 만들기 이벤트를 하네요.
  8. 2009.03.02 [자바 모니터링] 자바 모니터링 툴 직접 만들기
  9. 2009.02.25 [Garbage First] G1 콜렉터란 ??? (1)
  10. 2009.02.19 [NetBeans 성능 튜닝 관련 링크 모음] 넷빈즈 사이트에서 제공하는 성능 관련 링크들
  11. 2009.02.19 [자바 메모리 옵션 튜닝] Sun 에서 제공하는 자바 메모리 옵션 튜닝
  12. 2009.02.17 [프로그래밍 언어의 역사] 프로그래밍 언어의 역사를 한눈에 볼 수 있는 문서 (1)
  13. 2009.02.11 [Java Runtime] Java Runtime.exec() 메소드가 잘 안돌아 갈 때 (CreateProcess error=2 발생)
  14. 2009.02.10 [JIRA] 지라 성능 튜닝
  15. 2009.02.07 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-05 public, protected, private
  16. 2009.02.06 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-04 equals와 == 의 차이점
  17. 2009.02.06 [리눅스] 자바 개발용 환경 세팅
  18. 2009.02.03 [자바 커뮤니티] 삼성 SDS에서 이번달에 세미나가 있습니다.
  19. 2009.02.02 [GWT와 연계 가능한 그래프] AJAX 기반의 GWT에서 사용할수 있는 그래프
  20. 2009.01.28 [성능 튜닝 가이드] 기본적인 자바 성능 튜닝 가이드
  21. 2009.01.28 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-03 자바 개발 툴
  22. 2009.01.26 [Java Graph] JFreeChart를 쉽게 사용할 수 있는 예제 사이트 (1)
  23. 2009.01.25 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-02 JVM과 HotSpot
  24. 2009.01.23 [Glassfish] Glassfish 설치하기 - 3. 서버 시작하기
  25. 2009.01.21 [Glassfish] Glassfish 설치하기 - 2. 빌드하기
  26. 2009.01.21 [JavaFX] JavaFX과연 뜰까? (1)
  27. 2009.01.20 [FileDistributor] File Distributor 파일 전송 UI
  28. 2009.01.19 [Glassfish] Glassfish 설치하기 - 1. 파일 압축 풀기
  29. 2009.01.19 [JVM Option] 자바 성능 튜닝에 대한 좋은 글- JVM Option 위주의 튜닝 방법
  30. 2009.01.19 [File Distributor] 파일 전송 프로그램.
https://visualvm.dev.java.net/

VisualVM이라는 무료 툴이 있다.
사용자 삽입 이미지

이 툴이 JDK 6.0의 update 7 부터는 JDK의 bin 디렉토리에 jvisualvm.exe 라는 파일로 추가되어 있다.

한번 사용해 보면 알겠지만, 정말 대단한 툴이다.

jconsole은 JMX를 데이터를 보기 위한 툴이라면,
이 툴은 메모리 상태 파악 및 성능 및 메모리 프로파일링까지 가능하기 때문에 성능상 문제가 있는 분들에게
많은 도움이 될 것이라 생각된다.

하지만, 아직까지 안정화 되지는 않아서 모니터링 대상 JVM이 죽는 현상이 발생할 수 있으므로,
조심해서 사용하기 바란다.

운영서버보다는 테스트 서버에서...

추가로 이 툴을 사용한 후기를 "영어"로 작성할 능력이 있다면
500불을 받을 수 있는 기회를 놓치지 말기 바란다.

나도 함 시간 있으면, 해보려고~~
자세한 내용은 아래 링크 참조.
http://java.sun.com/community/javavisualvm/


Posted by tuning-java

댓글을 달아 주세요

Blog2Book 시리즈의 테스트 책을
현재까지 57%정도를 집필완료하였다.

아직도 갈 길이 멀긴 하지만,
출근 버스에서 쓰는것도 쉽진 않다.

퇴근하면 피곤해서 아무것도 못하것고~~~.

목표는 7월말 집필 완료
9월초 출판 ~~~
Posted by tuning-java

댓글을 달아 주세요

  1. BlogIcon 레몬에이드 2009.04.21 08:11  댓글주소  수정/삭제  댓글쓰기

    고생이시네요 ^^
    화이팅! 입니다!

  2. BlogIcon 황상철 2009.05.04 19:14  댓글주소  수정/삭제  댓글쓰기

    오 벌써 두번째 책을..난 언제 한번 써볼까..쩝.

Glassfish를 설치하여 사용하다보면,
없는 URL을 요청할 경우 디렉토리 목록이 나오게 된다.

대부분의 시스템 운영자는 디렉토리 목록에 어떤 파일이 있는지를 보여주기 안좋아 하므로,
옵션을 수정하여 안보이도록 해야 한다.


{glassfish설치위치}/domains/domain1/config
디렉토리로 이동한다.

디렉토리에 있는 default-web.xml 파일의 listing 부분을 false로 지정해야 한다.

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>listings</param-name>
      <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

참고로 내가 못찾은 건지 모르겠지만,
설정에는 이 옵션을 지정하는 부분이 없다.

Posted by tuning-java

댓글을 달아 주세요

오늘 팀장님께서 복사한 문서를 한번 읽어 보라고 주셨다.
9개의 자바 성능 팁에 대해서 아~주 간단하게 정리되어 있는 문서다. (2페이지에 걸친...)

그 장의 첫번째 구문에는 Michael A. Jackson 이라는 할아버지가 쓴 글귀가 있다.

The First Rule of Optimization : Don't do it
The Second Rule of Optimization (for experts only) : Don't do it yet.

이 문서가 언제 쓴 문서인지는 모르겠지만.... 이 글귀는 약간 이해는 안된다. ^^;

Tip #1 : Object creation is bad
Tip #2 : static is good  ==> I don't think so 다.
Tip #3 : Table switch good, lookup switch bad
Tip #4 : Small methods are good methods
Tip #5 : Exceptions are exceptional
Tip #6 : Use decorator patterns with care
Tip #7 : instanceof is faster on classes
Tip #8 : Use synchronized minimally
Tip #9 : Beware external libraries
Posted by tuning-java

댓글을 달아 주세요

http://blog.sdnkorea.com/sls/123

Sun에서 항상 하는건지는 모르겠지만, 오픈 기술 세미나를 하네요.
이미 하나는 지나갔고...

전 다음주 화요일 세미나 참석할랍니다.

4월 오픈 기술세미나가 일정입니다. 
------------------------------------------------------------------------------------
세미나 일 | 시간 | 주제 
------------------------------------------------------------------------------------ 
4월 07일(화) | 19:00 ~ 19:50 | 클라우드 컴퓨팅을 위한 서버가상화 

4월 14일(화) | 19:00 ~ 19:50 | Glassfish의 미래와 자바EE 

4월 28일(화) | 19:00 ~ 19:50 | 한국썬의 SOA전략:자바캡스(JavaCAPS)6버전

Posted by tuning-java
TAG java, 자바

댓글을 달아 주세요

http://regexp.resource.googlepages.com/analyzer.html

웹기반의 정규 표현식을 분석해주는 툴이 있어서 소개한다.

정규 표현식을 서비스에 적용하기 전에,
한번정도는 체크해 주는 쎈쑤~~~
Posted by tuning-java

댓글을 달아 주세요

  1. BlogIcon Outsider 2009.03.12 10:06  댓글주소  수정/삭제  댓글쓰기

    처음엔 뭔가했는데 분석한걸 트리로 보여주니가 보기가 좋군요..
    좋은툴 소개 감사드립니다.

사용자 삽입 이미지

http://www.hanb.co.kr/events/roadmap/


한빛미디어에서 자바에 대한 로드맵을 자기 블로그에 올리고,
트랙백을 걸어 두면,
상품권을 주네요. (달랑 3명)
하지만, 모든 참여자에게 한빛 미디어 책을 한권씩 준답니다.

뭐 간단하게 작성해서 올려도 손해 볼 것은 없을 듯...
Posted by tuning-java

댓글을 달아 주세요

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

메일에서 온 글을 보고 링크를 따라가 봤는데,
시간만 있다면, 이 글 보고 APM하나 맹글 수 있다는 생각이 든다.

뭐 시간이 없다는 것은 핑계일 뿐이지만... ^^;
Posted by tuning-java

댓글을 달아 주세요

http://java.sun.com/javaone/sf/2008/articles/rockstar_tonyprintezis.jsp

먼저 위의 인터뷰 내용을 읽어보자.
Garbage First Collector가 뭔지 대충 감을 잡을 것이다.

분명 대부분 안읽어 보시겠지만....적어도 아래 줄들은 일어 주기 바란다.
G1=next-generation low-pause garbage collector
G1 will ultimately replace the Concurrent Mark-Sweep (CMS) garbage collector
G1, even though it is generational, there is no physical separation between the two generations.

Three Objectives of G1
The first objective is consistent low pauses over time.
The second objective is to avoid, as much as possible, having a full GC.
The final objective is good throughput.


if you care about getting the job done as quickly as possible, and don't care much for how long your application is going to be stopped by the garbage collector, the throughput collector is the best choice.

if you have a batch job that is going to take a few minutes or a few hours and you want it to be done as quickly as possible, then a throughput collector is clearly the best choice.

But, if you are working on a very interactive job that needs to interact with people, other applications, or users through web pages, then a low latency garbage collector is the best choice.


Why does garbage collection take so long? ==> Garbage collection is very memory-bound. And memory speeds these days are quite slow compared to CPU speeds

글 중간에는 다음의 내용을 읽어보라고 이야기한다.
GC와 친해지는 코딩 방법
http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-2906.pdf

그리고, 저 이너뷰 한 사람이 사진을 잘 찍는가본데, 사진과 개발과의 상관관계를 아래와 같이 이야기 했다.
You need to be committed and to be patient and try out things again and again, to make sure that you get it just right. I see some parallels between photography and development.

마지막엔 그가 이야기하는 아름다운 코드란....
Beautiful code is code that is simple, easy to understand, and efficient
란다.

더 자세한 내용을 보시려면 아래의 영어지만, 쉽지 않은 용어로 되어 있는 문서를 참조하기 바란다.
http://research.sun.com/jtech/pubs/04-g1-paper-ismm.pdf

참고로 G1은 JDK 7 부터 추가된단다.
그리고, early access 로 JDK 1.6.1에서 추가 되었다.
http://www.tuning-java.com/272

Posted by tuning-java

댓글을 달아 주세요

  1. 지나가다 2009.06.09 21:39  댓글주소  수정/삭제  댓글쓰기

    Java Update 1.6.0.14에 G1 GC를 릴리즈했군요.
    http://www.yunsobi.com/blog/492

http://performance.netbeans.org/

근데 이 글들은 NetBeans를 보다 빨리 사용하기 위한 설명들인감?
Posted by tuning-java

댓글을 달아 주세요

http://java.sun.com/performance/reference/whitepapers/tuning.html

썬에서 제공하는 자바 튜닝 whitepaper

물론 JVM 옵션 튜닝만 한다고 해서 답은 안나오겠지만,
튜닝할게 더이상 없다면, JVM 버젼 upgrade 및 옵션 튜닝을 해야 할 것이다.

아래는 이 글의 목차다.

뭐 다 읽기 귀찮으신 분들은 4.2 부터 적용해 보시면 된다.

1   Introduction

1.1   Goals
1.2   This is a Living Document
1.3   How to Use this White Paper

2   Best Practices

2.1   Use the most recent Java™ release
2.2   Get the latest Java™ update release
2.3   Insure your operating system patches are up-to-date
2.4   Eliminate variability

3   Making Decisions from Data

3.1   Beware of Microbenchmarks!
3.2   Use Statistics
3.3   Use a benchmark harness

4   Tuning Ideas

4.1   General Tuning Guidelines

4.1.1   Be Aware of Ergonomics Settings
4.1.2   Heap Sizing
4.1.3   Garbage Collector Policy
4.1.4   Other Tuning Parameters

4.2   Tuning Examples

4.2.1   Tuning Example 1: Tuning for Throughput
4.2.2   Tuning Example 2: Try the parallel old generation collector
4.2.3   Tuning Example 3: Try 256 MB pages
4.2.4   Tuning Example 4: Try -XX:+AggressiveOpts
4.2.5   Tuning Example 5: Try Biased Locking
4.2.6   Tuning Example 6: Tuning for low pause times and high throughput
4.2.7   Tuning Example 7: Try AggressiveOpts for low pause times and high throughput

5   Monitoring and Profiling

5.1   Monitoring
5.2   Profiling

6   Coding for Performance
7   Pointers
8   Feedback and the Java Performance Community

8.1   Feedback
8.2   Java Performance Community

Posted by tuning-java

댓글을 달아 주세요

http://oreilly.com/news/graphics/prog_lang_poster.pdf

너무 많은 것을 기대하는 분은 실망할 수 있으나,
어떤 언어가 언제 나오고 어떻게 버젼업이 되었는지를 볼 수 있는 문서다.
Posted by tuning-java

댓글을 달아 주세요

  1. BlogIcon k16wire 2009.02.21 08:03  댓글주소  수정/삭제  댓글쓰기

    오 훌룡하네.

Java의 Runtime이라는 클래스가 있다.

이 클래스를 사용하면, shell script 던지, exe 파일이던 어떤 실행파일이라도
자바 JVM에서 실행시킬 수 있다.

그런데, 정상적으로 잘 실행되면 걱정이 없는데,
CreateProcess error=2
를 떨어뜨리면서 실행이 가끔 안될 때가 있다.

그럴땐 아래의 링크를 참조해서 해결하기 바란다.

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1
Posted by tuning-java
TAG java, 자바

댓글을 달아 주세요

http://www.atlassian.com/software/jira/docs/latest/performance.html

지라 자체적으로 성능 튜닝이 가능한 환경이 마련되어 있다.

이렇게 링크까지 만들어 정리해 놓은것을 보면 성능 이슈가 많긴 많은가 부다.


 

Posted by tuning-java

댓글을 달아 주세요

자바에서 public, protected, private, 그리고, 아무것도 지정하지 않을 때의 차이점도 가끔 혼동될 때가 있다.

물론 public 이나 private 갖고 혼동하는 사람은 없겠지만...

protected는 자기 자신과 같은 패키지, 그리고 상속관계에 있는 클래스에서 접근이 가능하고,

아무것도 명시하지 않을 경우에는 자기 자신과 같은 패키지에서만 접근 가능하다.

그래서 접근 가능성은
public > protected > 아무것도 지정하지 않을 때 > private 순이다.

http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html
Posted by tuning-java
TAG java, 자바

댓글을 달아 주세요

자바를 처음 배울때 혼동되는 것중 하나가 equals를 언제 사용해야 하고, ==을 언제 사용해야 하는지에 대해서다.

영어를 잘 하시는 분은 아래의 링크를 읽어보시면, 자세한 내용을 확인할 수 있을 것이다.

http://www.javabeat.net/qna/13-what-is-difference-between-equals-and-/

http://leepoint.net/notes-java/data/expressions/22compareobjects.html

결론만 이야기하면, equals는 객체의 값을 비교하고, ==은 동일한 객체인지를 비교하는 것이다.

기본적으로 String 클래스만 값이 같은지를 비교하고, 여러분들이 만든 클래스는 자동으로 각 속성들을 비교해주지 않기 때문에, equals() 메소드를 직접 구현해야만, equals로 비교가 가능하다.

Posted by tuning-java
TAG java, 자바

댓글을 달아 주세요

리눅스 설치후 자바 개발용 세팅...

1. 자바 설치
   centos가 설치되면, 자바를 선택해서 설치할 수도 있는데, 버젼이 1.4다 - -;
   JDK 5.0이나 6.0 을 설치한 후 해당 경로를 프로파일에 등록한다.

   프로파일 수정은 계정 로그인 후 디렉토리에 존재하는 .bash_profile 파일을 변경하면 된다.
   유의사항 : jdkxxxx.bin파일을 수행한 위치에 jdk가 설치되므로, 압축이 해제될 위치에서 bin을 실행할 것.

2. eclipse 설치
   eclipse는 www.eclipse.org 사이트 들어가면, 자동으로 리눅스임을 인식하여 리눅스용을 다운 받을 수 있다
   이클립스 설치는 그리 어렵지 않으니(압축만 풀면 된다.

   그런데 만약 centos 5를 설치했다면 JVM exit code = -1 이 나타나면서 프로그램이 수행되지 않을 수도 있다. 그럴 경우 터미널에서 이클리브를 띄우면 다음과 같은 메시지가 나타날 수도 있다.

/jre/lib/i386/client/libjvm.so: reloc 후에 prot 세그먼트를 복구할 수 없습니다: 허가 거부됨

 이런 경우 SELinux 관련 옵션을 disable 해야 한다.

1. 다음 명령을 입력하여 로드한 라이브러리에 대한 기본 보안 컨텍스트를 변경
   이때 libjvm.so 가 있는 디렉토리로 이동해야함.
   chcon -t texrel_shlib_t *.so
2. /etc/selinux 의 config 파일에 다음 줄을 추가하여 SELinux를 비활성화.
   SELINUX=disabled


3. tomcat 설치
   tomcat도 다운로드해서 압축만 풀면 되므로, 그리 어렵지 않을 것이다.
   단지, catalina.sh에 JAVA_HOME 값을 지정하는 걸 잊지 말아야 한다.


Posted by tuning-java

댓글을 달아 주세요

일시: 2009년 2월12일 목요일 18:00 ~ 20:00
장소: 멀티 캠퍼스 1702호
 =========================================================================

  18:00 ~ 18:05  세미나 소개
  18:05 ~ 18:30  효과적인 테스트 코드 작성(황상철 책임 SDS)
  18:30 ~ 18:40  휴식
  18:40 ~ 19:05  Secure Web Application(채수민 책임 SDS)
  19:05 ~ 19:15  휴식
  19:15 ~ 19:40  넵튠(Neptune) 과 하둡(Hadoop) 소개 (김형준 NHN)
  19:40 ~ 20:00  Q&A 및 세미나 정리
=========================================================================
 
이번 세미나도 알차게 준비했습니다.
NHN의 김형준 실장이 새로운 오픈소스인 넵튠과 요즘 GFS로 많은 인기를 끌고 있는 하둡에 대해 소개할 예정이며,
보안그룹의 보안 전문가인 채수민 책임이 안전하게 웹 애플리케이션을 개발하는 방법에 대해 강의합니다.
끝으로 단위 테스트를 제대로 할 수 있도록 효과적으로 테스트 코드를 작성하는 법에 대해 제가 발표를 진행합니다.
 
자리가 한정되어 있습니다. 참여를 원하시는 분은 황상철 책임님에게 메일로 신청해 주시면 감사하겠습니다.
알차고 재미있는 시간이 될것을 약속드리며 엔지니어링에 관심있는 분들의 많은 참여 부탁드립니다.

Posted by tuning-java

댓글을 달아 주세요

얼마전부터 그래프를 사용할 일이 생겨서 각종 그래프를 알아보고 있다.

그중 GWT와 같이 사용 가능한 Flash 기반의 그래프는 다음과 같다.
- OFCGWT : http://code.google.com/p/ofcgwt/
영국 아저씨가 만든 그래프 인듯 하다.
이 그래프의 가장 큰 단점은 UI가 우리 팀장님 마음에 들지 않는 다는 것이다.
- Fusion Chart : http://code.google.com/p/gwt-fusionchart/
근데 Fusion Chart 를 제대로 사용하려면 상용을 구매해야 하므로,
별로 인기가 많지는 않은 듯 하다.

추가로 자바 스크립트 기반의 chronoscope라는 그래프도 있다.
http://timepedia.org/chronoscope/
Posted by tuning-java

댓글을 달아 주세요

http://dlc.sun.com/pdf/819-3681/819-3681.pdf

문서의 제목은 Sun Java SystemApplication Server 9.1 PerformanceTuning Guide라고 되어 있다.

하지만, 실제 내용은 특정 Application 서버에 한정된 내용이 아닌 범용적이고, 기본적인 이야기가 많이 정리되어 있다.

세부적인 내용은 아니더라도, 제목만이라도 읽어 놓으면 많은 도움이 될 듯 하다.

바로 다운로드 받기 귀찮은 분들은 아래의 내용을 펼쳐서 제목만이라도 읽어보기 바란다.

Posted by tuning-java

댓글을 달아 주세요

1999년도에 내가 자바를 배울때의 개발툴은 Ultra Edit 이었다.
지금도 울트라 에딧은 자바만이아닌 여러 언어의 최고의 개발 툴이다.

하지만 현재 가장 많이 사용되는 툴은 누가 뭐래도 eclipse 일 것이다.
이클립스를 다운로드 받으시려면, 검색엔진에서 www.eclipse.org 에 접속후 상단에 있는 Download를 선택하여,
원하는 것을 받으면 되는데, 자바 기반의 웹 어플리케이션을 개발할 경우에는 아래의 그림에서 가장 첫번째 이클립스를...
그렇지 않은 경우에는 그 아래에 있는 이클립스를 다운 받으면 된다.


추가로 이클립스 이외에 유명한 툴로는 Sun 에서 제공하는 NetBeans라는 툴이 있긴 한데,
약간 프로그램이 무거워서 많은 사람들이 애용하지는 않는다.

그리고, 개인적으로는 예전에 세미나 하면서 무료로 받은 IntelliJ라는 툴을 사용할 때도 있는데,
아직까지는 이클립스보다는 좋은 툴 같다.(상용이라는게 좀 흠이지만...)


다음에는 equals와 == 에 대해서 알아보도록 하겠다.
Posted by tuning-java

댓글을 달아 주세요

완전 무료인(메뉴얼만 유료인...)
자바 기반의 차트인 JFreeChart.
http://www.jfree.org/jfreechart/

SWT와 마찬가지로, JFreeChart도 여러 샘플이 존재한다.
http://www.java2s.com/Code/Java/Chart/CatalogChart.htm

JFreeChart 메뉴얼이 있다고 하더라도, 이 사이트의 예를 보는 것이 훨씬 이해가 쉬울 것이다.

참고로 이 예는 Swing 에서 사용하는 방법만 나와 있으며,
SWT에 적용은 아직 안해 봐서 정확히 적용 가능하다는 이야기는 못하겠다. ^^;
Posted by tuning-java

댓글을 달아 주세요

  1. 초보 2009.01.26 19:45  댓글주소  수정/삭제  댓글쓰기

    데모 애플리케이션을 디컴파일해서 사용한 기억이 나는군요. 이 라이브러리는 정말 좋은것 같아요.

먼저 JVM이 뭔지 알아보자.

JVM은 Java Virtual Machine의 약자로 한국말로하면 자바 가상 머신을 의미한다.

쉽게 말하면 자바로 만들어진 클래스 파일을 번역해서 수행하는 소프트웨어라고 생각하면 된다. 자세한 내용은 아래 링크를 참조하면 된다. (JVM의 스펙에 대한 내용이라 열나 어렵긴 할 것이다.)

http://java.sun.com/docs/books/jvms/


그렇다면Hotspot은 뭘까 ??? 

Hotspot은 VM의 한 종류라고 보면된다. 이게 나오기 전의 VM을 보통 클래식 VM 이라고 부르며, Hotspot에 대해서 한 마디로 설명하면 다음과 같다.(출처 : http://kr.sun.com/software/opensource/faq.html#b11)

Q :
자바 HotSpot 가상머신은 무엇이고, 개발자들은 이 컴포넌트로 무엇을 할 수 있나요?
A :
자바 HotSpot은 일종의 자바 가상머신의 구현으로, 자바 HotSpot VM에는 다음과 같은 자바 플랫폼을 위한 핵심 실행 엔진이 포함됩니다:
  • 자바 바이트코드를 지원 하드웨어 플랫폼 상에서 최적화된 네이티브 기계어 코드로 변환하는 동적 컴파일러
  • 메모리 관리 및 가비지 컬렉션 서브시스템
  • 스레드 및 동기화
  • 모니터링, 디버깅, 프로파일링 텔레메트리(profiling telemetry)
  • 바이트코드 검사기(bytecode verifier)를 포함한 자바 보안 아키텍처 부분들

HotSpot은 그 자체가 “일단 한번 작성하면 어디서든 실행된다(Write Once, Run Anywhere)”라는 자바 기술의 약속을 가장 구체적으로 실현한 Java SE 플랫폼 컴포넌트라 할 수 있습니다.

개발자들은 이 코드를 통해 세계 최고 수준의 가상머신이 어떻게 구축되는지 살펴볼 수 있을 뿐 아니라, 버그 픽스, 그리고 새로운 가비지 컬렉션, 동기화, 바이트코드 컴파일러 알고리즘의 테스트, VM을 새로운 하드웨어 아키텍처와 운영체제에 이식하는 등의 작업을 수행할 수 있게 됩니다.


Hotspot 에 대해서는 아래 링크를 참조하는 것이 가장 쉬울 것이다.

http://java.sun.com/javase/technologies/hotspot/index.jsp

그리고, Hotspot  VM을 튜닝하기 위한 옵션은 아래의 링크를 참조하면 된다.

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

다음에는 개발툴에 대해서 알아 보자.

Posted by tuning-java

댓글을 달아 주세요

ant 스크립트를 수행한 이후에 몇가지 설정을 마치면 서버를 기동할 수 있다.

http://docs.sun.com/app/docs/doc/819-3193/aboaa?a=view

링크를 보면 몇몇가지 설정할 게 있으니 참조하기 바란다.
간단하게 정리하면(윈도우용)
1. bin 디렉토리를 path에 추가
2. AS_ADMIN_USER 라는 것을 환경 변수에 추가하고, 설치할때의 PC나 서버 계정을 추가한다.

서버를 다음의 명령어로 시작할 수 있다.

asadmin start-domain domain1

정상적으로 수행되었다면 다음과 같은 메시지가 나타난다.
도메인 domain1을(를) 시작합니다. 잠시 기다려 주십시오.
로그가 D:\glassfish\domains\domain1\logs\server.log(으)로 리디렉션되었습니다.
마스터 비밀번호를 입력하십시오>
출력을 D:/glassfish/domains/domain1/logs/server.log(으)로 리디렉션하는 중
도메인 domain1에서 클라이언트 요청을 받을 준비가 되었습니다. 백그라운드에서 추가
 서비스를 시작하는 중입니다.
다음에서 해당 구성 및 로그를 사용하여 도메인 [domain1]이(가) [Sun Java System Ap
plication Server 9.1_02 (build b04-fcs)]을(를) 실행하는 중입니다: [D:\glassfish\
domains].
관리 콘솔은 [http://localhost:4848]에서 사용할 수 있습니다.
"asadmin" 명령에도 같은 포트 [4848]을(를) 사용합니다.
사용자 웹 응용 프로그램은 다음 URL에서 사용할 수 있습니다:
[http://localhost:8080 https://localhost:8181 ].
다음 웹 내용을 사용할 수 있습니다:
[/web1  /__wstx-services ].
표준 JMX 클라이언트(예, JConsole)는 도메인 관리를 위해 JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://smlee:8686/jmxrmi]에 연결될 수 있습니다.
도메인은 최소한 다음 포트에서 연결을 수신합니다:
[8080 8181 4848 3700 3820 3920 8686 ].
도메인이 Application Server 클러스터 및 다른 독립 실행형 인스턴스를 지원하지 않
습니다.

설치시 유의사항
서버를 수행할때 리눅스는 상관 없겠지만,
PC 이름이 한글일 경우 서버가 정상적으로 뜨지 않을 수 있다.
이 경우 domain1/logs 디렉토리의 server.log 파일에 다음과 같은 메시지가 나타난다.

com.sun.appserv.server.ServerLifecycleException
 at com.sun.enterprise.admin.server.core.JmxConnectorLifecycle.onStartup(JmxConnectorLifecycle.java:153)
 at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:442)
 at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:120)
 at com.sun.enterprise.server.PEMain.run(PEMain.java:411)
 at com.sun.enterprise.server.PEMain.main(PEMain.java:338)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at com.sun.enterprise.server.PELaunch.main(PELaunch.java:412)
Caused by: java.lang.NullPointerException
 at javax.management.remote.JMXConnectorServerFactory.newJMXConnectorServer(JMXConnectorServerFactory.java:283)
 at com.sun.enterprise.admin.jmx.remote.server.rmi.JmxConnectorServerDriver.startConnectorServer(JmxConnectorServerDriver.java:215)
 at com.sun.enterprise.admin.server.core.JmxConnectorLifecycle.onStartup(JmxConnectorLifecycle.java:134)
 ... 9 more

Posted by tuning-java

댓글을 달아 주세요

Glassfish를 설치하고 나서 가장 황당했던것이, bin 디렉토리에 아무것도 실행파일이 없다는 것이다.

관련 문서도 눌러 보면 Glassfish에 대한 문서가 아니라, Sun Java System Application Server 에 대한 문서고... - -;

Glassfish의 압축을 푼 root 디렉토리를 보면 setup.xml과 setup-cluster.xml 두개의 파일이 존재한다.
클러스터 구성할 것이 아니라면 setup.xml을 사용하면 된다.

Ant를 이용하여 설치하기
그래서, 가장 먼저 ant를 설치해야 한다. (그런데 친절하게도 glassfish\lib\ant 디렉토리가 포함되어 있으며, 여기의 실행파일을 사용해도 된다.)
ant의 bin 디렉토리를 갖고 있는 장비의 path에 등록을 하고,
setup.xml 파일이 있는 위치에서 다음의 명령을 수행한다.
ant -buildfile setup.xml

아니면 귀찮으면 다음과 같이 해도 된다.

lib\ant\bin\ant -f setup.xml

그러면 아래와 같은 결과가 떨어지면서 필요한 파일들이 생성된다.

설치법 원문은 다음 링크를 참조한다.
https://glassfish.dev.java.net/downloads/v2.1-b60e.html

아래의 내용을 펼치면 된다. ^^;

Posted by tuning-java

댓글을 달아 주세요

어제 잠깐(?) 짬을 내어 Java FX를 봤는데,

현재 제공되는 이클립스에서 플러그인이 아직까진 정상적으로 돌지 않는듯 하다.
(만들기 시작한지도 얼마 안된듯~~~)
NetBeans로 하는 것이 시간을 아끼는 방법인듯...

Sun의 신상철 교수님께서 강의를 하신다는데,
관심있으신 분들은 참여하세요.


근데 JavaFX 과연 뜰까?

http://www.javapassion.com/javafx



'UI > JavaFX' 카테고리의 다른 글

[JavaFX] JavaFX과연 뜰까?  (1) 2009.01.21
Posted by tuning-java

댓글을 달아 주세요

  1. 흐음 2009.02.02 13:05  댓글주소  수정/삭제  댓글쓰기

    플러그인이 여럿 있는거 같던데...
    개인적으로 아래 주소의 플러그인은 쓸만한듯 싶습니다

    http://kenai.com/projects/eplugin/pages/Home

혹시 궁금해 하는 사용자가 있을 것 같아,
UI 캡쳐 화면을 올린다.

참고로 앞서 올린 파일은 Windows 용이다.

(Java가 OS independent 하다고는 하지만, SWT 는 컴파일시의 라이브러리를 따르는 듯 하다.)

사용자 삽입 이미지
Posted by tuning-java

댓글을 달아 주세요

Glassfish는 J2EE 5를 따르는 오픈소스 애플리케이션 서버를 말한다.
참고로 J2EE 5 는
-JavaServer Pages(JSP) 2.1
-JavaServer Faces(JSF) 1.2
-Servlet 2.5
-Enterprise JavaBeans 3.0
-Java API for Web Services(JAX-WS) 2.0
-Java Architecture for XML Binding(JAXB) 2.0
-Web Services Metadata for the Java Platform 1.0
라는 여러 표준의 버젼을 따른다.

다운로드는 아래의 링크에서 맘에 드는 버젼으로 선택한다.
https://glassfish.dev.java.net/public/downloadsindex.html

Glassfish 설치하기
Jar를 다운로드 했다면, jar파일이 있는 위치에서 다음의 명령어를 친다.
java -Xmx256m -jar jar파일명
그러면 동의하라는 반 강제적 화면이 나타나고,
스크롤을 아래로 주루룩 내린 후 동의를 하면,
파일들의 압축이 풀릴것이다.

Posted by tuning-java

댓글을 달아 주세요

http://2005elc.elancer.co.kr/eTimes/page/eTimes_list.html?cstr=Q0FURUNPREU9QTEwMDAxNTAw

자바 성능 튜닝은 JVM 옵션만 튜닝한다고 해서 되는 것은 아니다.

하지만, Application 단에서 튜닝을 모두 마쳤을 경우 가장 마지막에 해야 하는 것이
JVM의 GC 옵션 및 메모리 부분의 튜닝이다.

물론 사람에 따라 방식이 틀려서 GC 옵션을 처음부터 할 수도 있다.
Posted by tuning-java

댓글을 달아 주세요


누군가 파일을 한방에 보낼 수 있는 프로그램이 있으면 좋겠다고 해서,
주말에 와이프도 출장가고 집에서 심심해서 한번 만들었다.

- 자바 소켓을 이용해서 만들었으며,
- 텍스트 기반의 파일만 전송 가능하다.
- 바이너리 파일 지원은 안될 것이다.
- UI는 SWT를 이용해서 만들었다.

가장 중요한 JDK 는 최신 버젼을 사용하기 바란다.
내가 만든 프로그램 부분은 JDK 5.0 가장 첫 Release를 사용하긴 했지만,
SWT에서 제공하는 라이브러리의 JDK 버젼이 뭔지 모르니...

간단한 사용법(정말 간단한~~~~)은 첨부 파일에 같이 들어 있다.


Posted by tuning-java

댓글을 달아 주세요