'자바'에 해당되는 글 147건

  1. 2009.01.26 [Java Graph] JFreeChart를 쉽게 사용할 수 있는 예제 사이트 (1)
  2. 2009.01.25 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-02 JVM과 HotSpot
  3. 2009.01.23 [Glassfish] Glassfish 설치하기 - 3. 서버 시작하기
  4. 2009.01.21 [Glassfish] Glassfish 설치하기 - 2. 빌드하기
  5. 2009.01.21 [JavaFX] JavaFX과연 뜰까? (1)
  6. 2009.01.20 [FileDistributor] File Distributor 파일 전송 UI
  7. 2009.01.19 [Glassfish] Glassfish 설치하기 - 1. 파일 압축 풀기
  8. 2009.01.19 [JVM Option] 자바 성능 튜닝에 대한 좋은 글- JVM Option 위주의 튜닝 방법
  9. 2009.01.19 [File Distributor] 파일 전송 프로그램.
  10. 2009.01.11 [J2EE Cache] ehcache를 사용한 페이지 캐시
  11. 2009.01.08 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-01 JDK와 JRE
  12. 2008.12.24 [이벤트] Jennifer 4.0 출시기념 이벤트중...
  13. 2008.12.21 [Blog2Book] 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기 1쇄 오타 모음 (2)
  14. 2008.12.16 [Tomcat Apache 연동] 톰캣과 아파치 연동(JDK 1.6 + Apache 2.2 + Tomcat 6.0) (2)
  15. 2008.12.10 [Thread Checker] Thread Check 소개 - Thread 정보를 파악하자.
  16. 2008.12.10 [Jennifer] 제니퍼 사용시 쿼리(DB Query)들의 목록이 나오지 않을때
  17. 2008.11.27 [자바커뮤니티] 삼성 SDS 자바 커뮤니티 세미나 GWT-ext 발표 자료 (6)
  18. 2008.11.25 [자바커뮤니티] 삼성SDS 자바 커뮤니티 세미나와 관련하여
  19. 2008.11.20 [삼성SDS 세미나] 삼성 SDS 자바 커뮤니티에서 세미나를 실시합니다. (1)
  20. 2008.11.16 [HistoryManager] 맛보기 동영상 (2)
  21. 2008.11.14 [vmstat manager] vmstat manager 2008.11.14 버젼
  22. 2008.11.05 [Blog2Book 세미나] 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기 세미나 합니다.
  23. 2008.11.05 [jconsole] JConsoled을 사용해서 Tomcat 5.5 모니터링 하기
  24. 2008.10.30 [Blog2Book] 흠... 누가 그랬을까? (2)
  25. 2008.10.22 [History Manager] History Manager 소개 (2)
  26. 2008.10.17 [썬테크데이] 썬 테크 데이 (Sun Tech Days 2008 Seoul) 후기
  27. 2008.10.14 [구매정보] 썬테크데이에서 몇가지 책을 반값에 드리네요.
  28. 2008.09.18 [HttpWatch] 브라우저에서 날라가는 요청을 모니터링하는 방법
  29. 2008.09.16 [vmstat manager] vmstat manager JDK 5.0 재컴파일 버젼
  30. 2008.09.12 [GWT-Ext] GWT 개발을 훨씬 쉽게 도와주는 GWT-Ext
완전 무료인(메뉴얼만 유료인...)
자바 기반의 차트인 JFreeChart.
http://www.jfree.org/jfreechart/

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

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

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

먼저 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
혹시 궁금해 하는 사용자가 있을 것 같아,
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
kenu님 미투데이에 놀러갔다가 ehcache 를 발견했다.

간단히 사용법을 정리한 블로그는 영어지만,
http://blog.cherouvim.com/caching-pages-using-ehcache


ehcache는 홈페이지에서 다운로드 가능하다.
http://ehcache.sourceforge.net 

왜 페이지 캐시가 필요한지는 대부분 아시겠지만,
예를 들어서 간단하게 말씀드리면...
온라인 쇼핑몰에서 대분류, 중분류, 소분류로 상품의 목록이 나오고
해당 상품의 개수가 나와있다고 가정해보자.
만약 이런 페이지의 캐시를 지정하지 않았다면, 페이지를 호출할 때마다 해당 카테고리의 상품 개수를 가져오는 쿼리가 계속 수행될 것이다.

그런데 캐시를 사용한다면???
거의 HTML을 읽어오는 속도로 메모리에서 데이터를 읽어 올 수 있으므로,
해당 화면이 엄청나게 자주 불리는 초기화면이거나 include되는 화면이라면 WAS 와 DB 사용량이 현저하게 줄어들 수 있다.
추가로 I/O 도 줄어들 수 있을 것이다.
Posted by tuning-java
자바라는 단어만 들어도 스트레스를 받는 분들이 가끔 계신것 같습니다.

특히 경력이 10년 넘으신 분들 중 서버나 DB, 네트웍만 하신 분이나
C나 Cobol만을 하신 분들은 쉽게 접근하기가 어려운게 현실이지요.

그래서 오늘부터 틈틈이 자바의 ㅈ, Java의 J 도 모르시는 분들이 쉽게 자바를 배울 수 있도록
강좌를 개설하려 합니다.

자바 기본 문법은 그리 상세히 다루지 않을 겁니다.
그런건 책에 잘 나와 있으니까요.
가장 추천하는 책은 Head First Java 입니다.
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1809610&CategoryNumber=001001003016
올해는 어떨지 모르겠지만, 작년까지만 해도 삼성SDS 신입사원 자습 교재였습니다.


고급 개발자분들, 저보다 똑똑하신분, 심장이 너무 약하신분들은 절대로 이 글을 보지 마세요.
그런분들이 거신 별 도움 안되는 딴지는 과감히 삭제하겠습니다. ^^;

그럼 시작하겠습니다.

기본적인 이해를 돕기 위해서 용어부터...
- JDK와 JRE
http://java.sun.com/
를 접속해 보세요.
(물론 영업니다. 영어에 울렁증이 있으셔도 그냥 따라가 보세요.)
상단 메뉴에 있는 Downloads를 눌러보세요. 갖다 대기만 해도 뭐 여러 목록이 나타나는데 일단 그냥 누르세요.


그림과 같은 화면이 나타날겁니다. 만약 이런 화면이 나타나지 않았다면, 웹사이트 접속부터 다시...
열나 종류가 많은데 왼쪽것만 보세요.

가장 위 부터 개발툴, Java EE, Java ME, Java SE, JavaFX,Database 가 있습니다.
개발 툴은 말 그대로 썬에서 맹글고 밀고 있는 개발 툴이 있지요.
가장 대표적인 Sun Studio와 NetBeans가 있는데, 이것들은 많은 사람들이 사용하고 있지 않은 SWING이라는걸 사용해서 맹근겁니다. 그래서 화면이 좀 우울하죠.

그렇다면 많이 쓰는 Eclipse 는? 그건 Sun에서 맹그는게 아니라 IBM이랑 여러 회사가 같이 연합해서 맹그는 겁니다.
eclipse에 대해서 자세히 알아보시려면 http://www.eclipse.org 에 들어가서 보시면 됩니다.
URL이 org 이기 때문에 말 그대로 비 영리조직입니다. 그래서 꽁짜로 나누어 주는 겁니다.

그 다음에 있는 Java EE 라는게 있죠?
여기서 EE는 Enterprise Edtion 의 약자로, PC나 클라이언트를 위한 어플리케이션이 아닌 Web이나 기업용 시스템을 개발하기 위한 환경을 제공해 줍니다. 일단 여러분은 Pass...

Java ME 는 Micro Edtion에 대한 약자로 모바일을 위한 개발 환경을 제공합니다.
근데 뭐 여러분들에겐 별 도움이 안되겠죠?

그 다음이 Java SE 입니다. 일단 딴거 먼저 설명드리고 이거에 대한 설명을 다시 드리겠습니다.

JavaFX 는 Flash (요즘은 FLEX라고 많이 알려져 있는) 나 MS의 Silverlight 와 같이 브라우져 화면에서 좀더 화려하고 예쁜 화면을 제공하는 거 라고만 생각하고 계시면 되겠습니다.
나온지 꽤 되었는데, 아직 실무에 적용하긴 거시기한 상태입니다.

Database는 JavaDB라는 Java기반의 DB(아직 이거에 대해서는 공부를 안해서 잘 모르지만 언제부턴가 JDK를 깔면 같이 깔립니다.)와 Sun이 구매해버린 mySql 을 여기서 다운로드 할 수 있습니다.

이제 Java SE를 링크에서 확장해서 가장 위에 있는 Java SE (JDK) 를 클릭해 봅시다.
여러가지 다운로드 링크가 있는데, 기본적으로 다음과 같은 것들이 있지요.
Java SE Runtime Environment.....
Java SE Development Kit .....
.....
나머지는 모르셔도 되구요.
여기서 맨 위에 있는 것이 바로 JRE 이고,
두번째 있는 것이 JDK(JSDK)

JRE가 하는 일은 http://java.sun.com/javase/6/webnotes/install/jre/README 를 참조하시면 됩니다.
한마디로 자바를 실행할 수 있는 환경만을 제공합니다.
이것만 다운로드 받으면 개발은 불가능하다~~~
라고 생각하시면 됩니다.

JDK는 말 그대로 개발 킷입니다.
.java로 만든 텍스트 기반의 파일을 .class 라는 바이너리 타입의 파일로 컴파일 하는 일도 하고,
각종 모니터링 기능 및 분석기능 등등 여러가지 개발에 필요한 킷들을 제공합니다.

쓰다보니 글이 길어졌네요.
다음에는 JVM이 뭔지에 대해서 설명해 드리겠습니다.

PS : 이 강좌가 작성되는 주기는 일정하지 않습니다.


Posted by tuning-java
http://www.jennifersoft.com/137/forum/show/ko/3877.html

제니퍼 4.0을 설치해서 한번 사용해보고,
블로그에 글을 올리면 문화상품권 5만원을 선착순 !!! 으로 준다고 한다.
시작한지 좀 되었지만, 12월 31일까지는 아직 1주일 남았으니,
시간 되시는 분들은 한번 도전해 보기 바란다.

난 구찮아서 패스~~~.
(상황봐서 시간되면 한번 해볼까도 생각중임...)
Posted by tuning-java
이제서야 좀 여유가 생겨서 1쇄에 있던 오타를 정리한다.

저도 사람이니까, 이정도 실수는 좀 애교로 봐 주세요 ^^;

(1쇄 구매한 분들은 꼭 한번씩은 보셔야 하는데...)

내용 펼치기






Posted by tuning-java

울 회사 최모책임님이 블로그에 연동하는 글을 올리셔서...
허락받고 올립니다.

(제가 아직 확인은 못했지만 되것죠 ???)
---------------------------------------------------------------------------------------
현재 정확한 환경은 다음과같습니다.

JDK 1.6 + Apache 2.2 + Tomcat 6.0 + mod_jk 로 Windows XP에서 개발환경을 구성하였습니다.


향후 Spring framework, iBatis, MySQL로 개발작업을 진행하려 합니다.

우선 mod_jk를 이용한 연동방법이 필요하신 분들을 위해 올립니다.

참고로 mod_jk2는 더이상 개발을 진행하지 않는다고 합니다.

- 설치경로
Java: c:\java
Apache: c:\apache
Tomcat: c:\tomcat
App: c:\docs


1.Windows 환경변수에 추가
JAVA_HOME = c:\java

2. mod_jk.so파일을 c:\apache\modules 에 복사

3. c:\apache\conf\httpd.conf 변경
     LoadModule jk_module modules/mod_jk.so 추가
     include conf/mod_jk.conf 추가 (<IfModule .. 윗부분)

4. c:\apache\conf\mod_jk.conf 생성
     JkWorkersFile “c:/apache/conf/workers.properties”
     JkLogFile “c:/tomcat/logs/mod_jk.log”
     JkLogLevel error
     JkAutoAlias “c:/docs”
     JkMount /* ajp13
     JkUnmount /*.php ajp13
     <Directory “c:/docs”>
         Options Indexes FollowSymLinks
         allow from all
     </Directory>

5. c:\apache\conf\worksers.properties 생성(도메인명은 알맞게 변경)
    work.list=ajp1.3
    worker.ajp13.port=8009
    worker.ajp13.host=localhost
    worker.ajp13.domain=xxx.yyy.com
    worker.ajp13.type=ajp13

6. c:\tomcat\conf\server.xml 변경
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
     <Connector port="9999" protocol="HTTP/1.1" connectionTimeout="2000" redirectPort="8443" />
     <Engine name="Catalina" defaultHost="xxx.yyy.com">
         <Host name="xxx.yyy.com" appBase="c:/docs" unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        </Host>
    </Engine>
    ...
    <Host name="localhost" appBase="c:/docs" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
         <Context path="" docBase="c:/docs" reloadable="true" />
         …
     </Host>

7. Apache, Tomcat 재기동

8. 확인: 아래 주소를 쳐서 Tomcat의 examples화면이 보이면 정상임

http://localhost/examples

Posted by tuning-java
Thread Checker라는걸 만들었다.(2일 반동안...)

회사 나가기 전에 같이 일하던 사람들에게 줄 선물로...
(책 써야하는데, 이런거나 맹글고 있으니 - -)

이게 뭘 하는 거냐면,
-성능 테스트를 하거나
-시스템을 운영하거나
-WAS의 문제로 장애가 났을때

개발자의 실수로 다른 Thread에 Lock(Block)을 발생시켰을 때
어떤 프로그램에서 발생했는지를 확인할 수 있는 그런 프로그램이다.
(뭐 똑똑하신 고급 개발자 분들께선 이미 이런거 만들어서 사용하고 계실테니 Pass...)

설치의 단순화를 위해서 JSP 딸랑 하나로 만들었으며,
JSP 하나에 넣기 위해서
HTML 노가다 + CSS 노가다 + JavaScript 노가다를 병행해서 개발했다.

두가지 버젼이 있는데, 하나는 메모리 정보를 보여주는 버젼, 다른 하나는 메모리 정보를 안보여 주는 버젼이다.
혹시라도 메모리 정보를 보여주면 서버에 부하가 발생할 수 있으니....


그림을 보면 알겠지만, 만약 다른 쓰레드를 잡고 있는 범인 쓰레드에 찐하게 표시를 해 주도록 해 놓았다.

원래 엄청나게 우울한 UI 였지만, 울팀 디자이너에게 별다방 커피 한잔 사준다고 꼬셔서 화면도 약간 이쁘게 포장했다.

이 프로그램을 왜 만들었냐면,
지난주 금요일에 성능 테스트를 하는데, XXXXXXXX 라는 프레임웍에서 사용하는 한 프로그램의 메소드에
Synchronized라는 블록을 써서 해당 메소드를 사용하는 다른 쓰레드의 응답속도가 엄청나게 증가하는 현상이 발생을 해서,
이런 문제를 제니퍼나 다른 모니터링 툴을 못 쓰는 사람들이 어떻게 잡을 수 있을까?
해서 만들게 되었다.

뭐 어찌보면, JConsole(이게 뭔지 모르는 분들은 제 책 보세욤...)을 써서 볼수 있겠지만,
서버에 부하가 많이 갈 수도 있고, 방화벽으로 막혀있는 상황이라면,
사용하기가 쉽지 않다.

아직 성능 테스트할 때 사용한 적은 없어서
(내 PC에서는 부하를 발생시켜서 테스트는 해 봤지만...)
해당 JSP를 아직은 공개하진 않을 예정이다.

뭐 소스가 이따구야~~
라는 분도 있을 수가 있고... ㅎㅎㅎ

혹~~ 써보고 싶은 분들은 저에게 이멜 보내주시면, 보내드리도록 하겠다.
메일 주소는 "자바 성능을 결정짓는 코딩 습관과 튜닝 이야기"에 있는 주소를 참조~~~ ㅎㅎ
http://www.hanb.co.kr/book/look.html?isbn=978-89-7914-522-9

한가지 단점으로는 StackTrace 정보를 다 볼 경우 서버에 부하가 많이 갈 수도 있으므로,
괜히 서버 CPU 100% 인 상황에서 사용해서 욕먹는 일이 없길 바란다.

Posted by tuning-java
제니퍼를 사용하다보면 X-View나 통계정보에 쿼리 목록이 안나올 때가 있다.

만약 DB의 Connection을 WAS에서 제공하는 것을 사용하지 않을 경우나,
다른 특이한 경우에 이런 일이 발생하게 된다.

그럴때에는 당황하지 말고, 다음과 같이 하면 된다.

1. 먼저 어떤 메소드에서 DB Connection을 맺는지 확인해야 한다.
제니퍼에 로긴하여
장애진단 - 유틸리티 - 로딩 클래스 목록을 찾아간다.
(만약 이 메뉴도 못찾아 가면 이 설명을 읽지 말기 바란다. ^^)

2. 로딩 클래스 목록중에서 DB와 연결을하는 getConnection 관련 메소드를 찾는다.
그 메소드의 매개변수까지 꼭 확인해야 한다.

3. w11.conf 나 w12.conf 와 같이 각 WAS 별 설정이 지정되어 있는 설정파일을 연다.
(제니퍼에서 관리도구를 통해서 설정하는 것이 더 낫다. 실시간으로 반영이 되기 때문에...)
거기서
jdbc_connection_get =
이라고 되어 있는 부분을 찾는다.
분명히 #으로 주석이 되어 있을 것이다.
그 주석을 풀고 저 설정값 뒷 부붓에 패키지를 포함하여 클래스와 메소드와 매개변수를 지정한다.
예를 들어 삼성 SDS의 Athena (지금은 Anyframe 인가??)를 사용할 경우에는 다음과 같이 지정하면 된다.

jdbc_connection_get = athena.titan.services.datasource.impl.AbstractDataSourceService.getConnection()
만약 매개변수의 타입이 String이면, ....getConnection(String) 과 같이 지정하면된다.

그리고 나서 conf 파일을 저장하거나 수정 버튼을 클릭해서 변경사항을 반영한다.

그래도 안되면, 제니퍼 소프트에 전화하세요~~~~ ㅋㅋㅋ

Posted by tuning-java
어제 삼성 SDS 자바커뮤니티 세미나를 실시했습니다.

생각보다(신청하신 분들보다) 너무 적게 참여하셨더군요.

살짝 기분 나빴습니다.

다음부터는 40% 오버해서 신청자를 받아야 할 것 같습니다.
뭐 회사생활, 사회생활하면서 급작스런 야근이나 일이 생길 수 있습니다.
하지만, 그렇게 되면 그 세미나를 운영하는 운영진에게 알려주는게 예의라고 생각합니다.
뭐 벤더에서 하는 세미나도 아니고,
신청자 수를 제한해서 진행한 무료 세미나인데, 빠지신 분 중에서 메일을 주신분은 한분도 없었습니다. - -;

참고로 다음부터는 무료 세미나는 진행 안할 예정이라고 하네요.^^;

PS : 제가 책 드린 분들은 좀 온라인 서점사이트나 블로그에 서평을 좀 올려주세요. ㅋㅋㅋ

그리고 오늘 진행하는 한빛 미디어 세미나도 많이 참석해 주세요~~~
http://edu.hanb.co.kr/view_detail.php?hi_id=354




첨부는 위의 링크를 참조하시구요.
Posted by tuning-java
2008년 11월 26일 (수)에 진행되는 삼성 SDS 자바 커뮤니티 세미나와 관련하여 한가지 알려드립니다.

일단 많은 분들이 신청해 주셔서 감사드립니다.

정상적으로 신청이 되신 분들은 월요일에 메일을 받으셨을 겁니다.

만약 메일을 못 받으셨다면, 제대로 신청이 안되신 거겠죠.

제가 Copy & Paste를 했기 때문에 아마도 이멜 주소에 오타가 있었을겁니다. ^^;

못오시는 분은 꼭 댓글을  보내주시기 바랍니다.
(제가 낮에 이너넷을 쓰지 못하는 곳에서 일하기 때문에 확인을 못할 수도 있습니다. - -)

그리고...
강의장에 입장하는 것은 18시 50분 정도부터 신청하신 순으로 입장하실 겁니다.
그래야 공평할 것 같아서...

만약 18시 50분 정도까지 도착을 못하시면 먼저 신청하셨다고 하더라고
강의장에 못 앉아서 못 들으실 수도 있습니다.

무료 세미나이기 때문에 신청하신 분들 이외에도 더 오실것 같습니다.

30명 정원의 PC가 있는 강의장이라 굉장히 비좁을 수 있습니다.

이점 양해해 주시기 바랍니다.

Posted by tuning-java

1.오프라인 세미나를 실시합니다.

11월 26일 저녁 7시부터 9시까지 커뮤니티 오프라인 세미나를 실시합니다.

이번 세미나의의 큰 주제는 애자일과 개발이며 사내분들 뿐만 아니라 사외로도 오픈해서 진행합니다.


일시: 2008년 11월26일 수요일 19:00 ~ 21:00

장소: 서울 역삼동 멀티 캠퍼스 1502호

(역삼역에서 내려서 언덕위로 쭉~~ 올라오면됨)

==================================================

19:00 ~ 19:05  세미나 소개

19:05 ~ 19:30  스크럼을 활용한 소프트웨어 개발(황상철 책임 SDS)

19:30 ~ 19:40  휴식

19:40 ~ 20:05  GWT-ext(이상민 책임 SDS)

20:05 ~ 20:15  휴식

20:15 ~ 20:40  버그패턴의 정적 분석툴 findbugs 활용(허광남 OKJSP 운영자)

20:40 ~ 21:00  Q&A 및 세미나 정리

==================================================

자리가 한정되어 있습니다. 참여를 원하시는 분은 저에게 메일로 신청해 주시면 감사하겠습니다.

알차고 재미있는 시간이 될것을 약속드리며 엔지니어링에 관심있는 분들의 많은 참여 부탁드립니다.

접수 종료~~

Posted by tuning-java
History Manager 의 맛보기 동영상을 올려드립니다.

그냥 일단 구경만...

먼저 써 보신다던 황XX 책임님이 바쁘다고 안써보고, 피드백도 안주고 있습니다. ㅋㅋㅋ

근데 너무 화질이 떨어지네요... - -;

'My Tools > HistoryManager' 카테고리의 다른 글

[HistoryManager] 맛보기 동영상  (2) 2008.11.16
[History Manager] History Manager 소개  (2) 2008.10.22
Posted by tuning-java

오늘 같이 일하는 분이 오류를 하나 이야기해서....

IBM의 vmstat에 pc와 ec라는 수치가 추가되었나봅니다.
근데, 그 수치가 소숫점이라는 - -;
그래서 정수형만 확인하도록 한 소스를 소숫점 데이터도 확인 가능하도록 변경했습니다.

그리고 기본선택을 10초 단위로 선택되도록 변경하고,
3초 단위도 추가했습니다. ^^;

또 다른 버그가 있다면 말씀해 주세요.
(쓰는 분도 그리 많진 않겠지만...)

참고로 JDK 5.0 이상 사용가능 합니다.
Posted by tuning-java
http://edu.hanb.co.kr/view_detail.php?hi_id=354

11월 27일 목요일에 세미나를 실시합니다.

자세한 내용은 링크를 참조하시구요.

예전 OKJSP 세미나 오신분은 안들어 오셔도 됩니다.
중복되는 내용이 많걸랑요.
Posted by tuning-java

Tomcat 5.5의 최신 버젼에서는 JConsole 모니터링이 안되도록 지정되어 있다.
이러한 문제를 해결하기 위해서,
Tomcat의 catalina.bat나 .sh 파일의 JAVA_OPTS에 다음과 같은 옵션을 추가해 주어야 한다.
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

물론 위의 옵션은 한줄에 추가해야만 한다.

Posted by tuning-java

그냥 한번 혹시나 해서 네이버에서 검색을 해봤다.
"자바 성능 튜닝"이라고....



창작동화

근데, 창작동화. - -;

누가 그랬을까?

누가 그랬을까?
Posted by tuning-java

지난  몇 주간 틈틈이 짬 날때 마다 만든 프로그램이 있다. (이거 만드느라고 집필에는 손도 안댔다는 - -)

실제 만든건 2주정도 되는 것 같다.

뭐 어떻게 보면 별거 아니지만,
내 업무상 필요해서 만든 프로그램이다.

이 프로그램은 다음과 같은 기능을 제공하는 프로그램이다.
- 뭔가 작업을 하는 동안 발생한 이슈 사항들을 적어 놓는다.
- 그 이슈에 대한 시간이 자동으로 저장된다.
- 나중에 해당 내용을 시간대 별로 확인을 할 수 있다.
- Internet Explorer나 Firefox만 있으면 사용가능하다.(Mac 유저분들에게는 죄송하지만, 내가 테스트해 본 결과 GWT ext의 오류로 인해서 Safari에서는 돌아가질 않는다. 메소드 하나 때문인데, 그 메소드는 현재는 꼭 써야 하는 상황이기에, 나중에 관련 버그를 GWT ext를 맹그는 애들이 수정하면 사용 가능할 듯 하다.)


아직 정식으로 누군가에게 써보라고 주기에는 부족한 부분들이 있어서
어느 정도 쓸만한 상태가 되면 공유할 생각이다.

기본적으로 GWT ext를 갖고 만들었기 때문에, Tomcat만 설치되어 있는 PC나 서버에서는 누구나 사용할 수 있다. 나중에 제공할 WAR 파일만 Tomcat의 webapps 디렉토리에 복사하고 Tomcat 수행하면 설치는 끝...
DB를 사용하게되면 설치하기도 귀찮을 것으로 판단되어, 개인용도로 사용하기 위해서 파일 기반으로 관련 정보를 저장하도록 만들었다.
만약 나중에 사용하는 분들이 많을 경우 DB 버젼도 시간이 있다면 확장할 생각이다.
(그럴 일은 별로 없을듯... ^^);

GWT를 사용하면 디자인을 위한 CSS를 정의하기 위한 시간이 많이 소요되는데, (뭐 처음에 정의해 놓으면 되겠지만, 나같은 개발자에게는 그 작업이 제일 싫은 노가다 작업이라....)
GWT ext를 사용하니 화면의 디자인을 위한 시간이 많이 줄어들어 편했다.
하지만, GWT와 GWT ext는 코딩 방식이 완전히 틀리다.

GWT ext 에 대한 이해를 하는데  개발중 대부분의 시간이 소요되었다.

궁금해 하시는 분들은 많지 않겠지만, 사용하는 동영상과 실제 Tomcat 설치용 WAR 파일은 조만간 공개하도록 하겠습니다.

'My Tools > HistoryManager' 카테고리의 다른 글

[HistoryManager] 맛보기 동영상  (2) 2008.11.16
[History Manager] History Manager 소개  (2) 2008.10.22
Posted by tuning-java

일 때문에 첫날부터 테크데이즈를 가지는 못했다.
덕분에 가방도 못받고...

꼭 들어야 했던 자바 성능 향상 세션도 못들었다.
분명 최초 계획에는 자바 성능 향상이 둘째날 있었기 때문에,
그것만 믿고 둘째날 갔는데 T T;

나중에(1주일 내에) 동영상이랑 강의 자료들을 공유한다고 하니,
함 기대해 봐야겠다.

(가수를 해도 될만한 실력을 가지신)
OKJSP 허광남님하고 이야기하다보니, 여러 유명한 분들을 많이 만났다.
제가 얼굴은 잘 기억하지만, 이름은 잘 기억하지 못해서 일일이 나열할 순 없고...


이것 저것 듣다가(첫날 내용들이 들을게 더 많았는데...)
솔라리스 성능에 대한 세션이 있길래 한번 들어가 봤다.
외국 아저씨가 하는 거라서,
맨 앞에서 두번째 줄에 앉아서 열심히 듣는데
뭐 하나 물어보길래 손들고 대답했더니, 강사가 조그만 포장된 박스를 던져줬다.
뭔지 모르고 강의 듣다가 또하나 물어보길래 대답했더니
듀크 스트레스 볼도 하나 받았고,
강의 끝나고 던져준 솔라리스 T 셔츠도 한장...

박스에 들었던게 뭔가 봤더니 스위스 밀리터리 볼펜.
인터넷에 찾아봤더니 개당 4만원이 넘는다는....

내년부터 그 볼펜을 사용해야지. ㅋㅋㅋ

시간되면 솔라리스를 한번 깔아서 써봐야겠다.
(근데 시간이 되려나?)
근데 머 Mac을 쓰는데 궂이 솔라리스를 깔 필요는 모르겠지만...

그리고, 가장 아쉬웠던 것은 마지막에 쿠션 담요를 나누어 줄 때였던것 같다.
질서를 지키는 사람들을 무시하고,
새치기해서 담요를 받아가는 몇몇 사람들과
이미 오랬동안 줄을 선 사람들에게, 이 줄에서 줄 쿠션은 없으니 다른줄에 알라서 서라는
세미나 담당자는 집에 돌아오는 나를 짜증나게 했다.

Posted by tuning-java
어제 인터넷 서핑하다가 우연히 발견했습니다.

썬 테크 데이에서 여러 최신 책을 책을 50% DC된 가격으로 드립니다.

게다가 글 목록에 있는 제 책도 50%에...

벌써 50%가 될 때가 아니라서 출판사에 문의했더니,
출판사는 제가 이야기 할때 까지 몰랐답니다. - -;

아마도 자체적으로 손해보면서 제공해 주는 행사인듯 합니다.
http://sdnkorea.com/blog/666

제책 말고도 다른 책들도 싸게 드리니 기회되시면 이번에 구매하세요.
Posted by tuning-java



보통 개발을 하거나 테스트를 할때 여러 화면이 복합적으로 요청되는 페이지에서 어떤 것이 느린지를 확인할 수 있는 방법이 쉽지는 않다.
여러가지 툴이 있겠지만, HttpWatch 라는 툴은 지금까지 봐왔던 툴중 강력한 것중 하나다.
물론 상용이지만, 일반 사용자를 위한 Basic 버젼도 있다.
나도 물론 Basic 버젼을 사용중이지만, 해당 요청에 대한 상세정보를 못 볼 뿐이지,
어떤 화면에서 응답이 느린지는 확인할 수 있다.

사용법은 간단하다, 다운로드해서 설치한 다음에 익스플로러에서 HttpWatch를 선택하면 프로그램이 구동된다.
거기서 Record를 누른후 위에 있는 브라우져에서 페이지 요청을 하면, 어떤 리소스가 얼마나 걸리는지 확인할 수 있다.

상세한 설명과 다운로드는 아래 링크에....
http://www.httpwatch.com/

Posted by tuning-java
가끔 이 툴을 아는 분들이 써보고는,
JDK 5.0인데 안돌아간다는 분들이 계셔서요...

JDK 5.0 완전 초기 버젼으로 재컴파일 한 버젼을 올려봅니다.


이것도 안된다면, 그냥 JDK 6.0으로 사용하세요.
잘 될겁니다. ^^;

사용법은 이전 글 참조 하세요.
http://www.tuning-java.com/127


Posted by tuning-java
http://code.google.com/p/gwt-ext/

요즘 뭔가 삘 받아서 GWT 사용한 시스템을 하나 맹글고 있는데,
GWT이용해서 뭔가 개발할 때 열나 노가다성 작업이 많기는 하다.

그러한 노가다를 없애주기 위한 GWT-Ext라는 것이 있다.

아래의 링크를 눌러서 어떤 것들이 있는지 구경해보자. http://www.gwt-ext.com/demo/

아마 대부분의 개발자 분들은 이 화면들을 보면, 한번 사용해 보고 싶어지지 않을까 ???

사용법이 정리되어 있는 위키는 아래에 있다.
http://www.gwt-ext.com/wiki/index.php/Main_Page

'UI > GWT ext' 카테고리의 다른 글

[GWT-Ext] GWT 개발을 훨씬 쉽게 도와주는 GWT-Ext  (0) 2008.09.12
Posted by tuning-java