'Root'에 해당되는 글 472건

  1. 2009.02.05 [리눅스 설치] Centos 설치시 관련 세팅
  2. 2009.02.03 [자바 커뮤니티] 삼성 SDS에서 이번달에 세미나가 있습니다.
  3. 2009.02.02 [GWT와 연계 가능한 그래프] AJAX 기반의 GWT에서 사용할수 있는 그래프
  4. 2009.01.28 [성능 튜닝 가이드] 기본적인 자바 성능 튜닝 가이드
  5. 2009.01.28 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-03 자바 개발 툴
  6. 2009.01.26 [Java Graph] JFreeChart를 쉽게 사용할 수 있는 예제 사이트 1
  7. 2009.01.25 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-02 JVM과 HotSpot
  8. 2009.01.23 [Glassfish] Glassfish 설치하기 - 3. 서버 시작하기
  9. 2009.01.21 [Glassfish] Glassfish 설치하기 - 2. 빌드하기
  10. 2009.01.21 [JavaFX] JavaFX과연 뜰까? 1
  11. 2009.01.20 [FileDistributor] File Distributor 파일 전송 UI
  12. 2009.01.19 [Glassfish] Glassfish 설치하기 - 1. 파일 압축 풀기
  13. 2009.01.19 [JVM Option] 자바 성능 튜닝에 대한 좋은 글- JVM Option 위주의 튜닝 방법
  14. 2009.01.19 [File Distributor] 파일 전송 프로그램.
  15. 2009.01.17 [MacBook 사용팁] 나같은 초보를 위한 맥북 사용 팁-27 맥에서 vi를 쉽게 배우기 위한 vimtutor(vi 쉽게 배우기)
  16. 2009.01.11 [J2EE Cache] ehcache를 사용한 페이지 캐시
  17. 2009.01.10 [macworld 09년 1월] 맥월드 '09년 1월에서 발표한 것들...
  18. 2009.01.09 [nginx] 성능이 좋다고 하는 웹서버인 nginx 홈페이지와 위키... 그리고 Tomcat과의 연동
  19. 2009.01.08 [자바 기본 강좌] 자바라는 단어만 들어도 스트레스를 받는 분들을 위한 초보 강좌-01 JDK와 JRE
  20. 2009.01.06 [keyboard setting] 키보드 세팅- USB 키보드의 한영전환키가 alt로 먹고, 한자키가 ctrl으로 먹을때...
  21. 2009.01.01 [2009] 2009년 목표 2
  22. 2008.12.31 [안녕 2008년] 2008년이여 안녕~~~
  23. 2008.12.24 [이벤트] Jennifer 4.0 출시기념 이벤트중...
  24. 2008.12.23 [이직의 조건] 돈, 사람, 시간 그리고 일 1
  25. 2008.12.21 [Blog2Book] 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기 1쇄 오타 모음 2
  26. 2008.12.19 [MacBook 사용팁] 나같은 초보를 위한 맥북 사용 팁-26 Quartz Composer 사용법 링크
  27. 2008.12.16 [Tomcat Apache 연동] 톰캣과 아파치 연동(JDK 1.6 + Apache 2.2 + Tomcat 6.0) 2
  28. 2008.12.12 [pe.kr] 네이버에선 지금 pe.kr 도메인 무료 등록 이벤트중...
  29. 2008.12.10 [Thread Checker] Thread Check 소개 - Thread 정보를 파악하자.
  30. 2008.12.10 [Jennifer] 제니퍼 사용시 쿼리(DB Query)들의 목록이 나오지 않을때
centos 4를 맥북의 vmware에 깔았었다.

뭔가 개발하면서 확인하기 위해서 개발환경을 구축해 놨는데,
Flash 10 player를 설치하니 gblic 버젼이 낮다고 설치가 안된다.
이론 - -;
그래서 glibc 업그레이드를 하려고 했으나,
그작업은 리눅스를 모르면 절대 하지 말라는 글들이 많아서리... centos 5 를 설치했다.

centos를 그냥 깔면 gcc 나 개발용 환경이 구축되지 않으니,
아래 그림과 같이 추가 설치를 하는 것이 좋을 듯 하다.

<<개발용 도구 세팅 >>

<<시스템 도구 세팅>>

자바는 따로 선택 안해도 상호 연관성 체크후 깔리는 듯 하나,
버젼이 1.4 라는거~~~
자바는 되도록이면 직접 추가로 설치하는 것을 추천한다.


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/

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

[Java Graph] JFreeChart를 쉽게 사용할 수 있는 예제 사이트  (1) 2009.01.26
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도 여러 샘플이 존재한다.

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



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

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

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

사용자 삽입 이미지

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

[File Distributor] 파일 전송 프로그램.  (0) 2009.01.19
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 버젼이 뭔지 모르니...

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


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

[FileDistributor] File Distributor 파일 전송 UI  (0) 2009.01.20
Posted by tuning-java
,
IT 회사에 몇년간 있는 내가,
터미널에서 작업 할 일이 별로 없었기 때문에 별로 배울 필요가 없었던 vi

지금 회사에선 vi를 쓸수 밖에 없는 상황이라서...(모든 서버에 접속하려면 개발 서버를 거쳐서 들어가야 한다는 - -)

그래서 man vi로 메뉴얼을 보던중 vimtutor를 발견했다.
리눅스에서 될지는 모르겠지만, 맥에서는 된다. ^^;

맥에서 터미널을 수행하고,
vimtutor 를 입력하고 엔터를 치면 아래와 같은 화면이 나타난다.


그런데 이 튜토리얼은 그냥 읽어보는 튜토리얼이 아닌 따라하기 튜토리얼이라서 30분 정도에,
어느정도 기억력이 좋다면 금방 vi에 적응할수 있다. ^^;
나도 열공중~~~
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
,
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=74223864

아이튠즈를 통해서 이번주에 발표된 맥월드의 내용을 확인할 수 있다.
(참고로 위의 링크는 itune이 설치되어 있어야 제대로 볼 수 있을 듯 하다.)

내가 관심있는 부분만 자세히 봤는데...

- 사진을 관리하는 프로그램인 iPhoto에는 얼굴 인식 및 분류, 새로운 형태의 슬라이드쇼.
특히나 슬라이드쇼는 아이팟 터치로 전송이 가능하다.
- 동엽상을 편집하는 iMovie는 지도 기능, 테마 기능, 스테빌라이져 기능등 여러 좋은 기능들이 포함되었다.

- KeyNote는 차트를 동적으로 보여주는 기능과 몇몇 액션이 추가되었다.
그리고 가장 좋아 보이는 것은 iPod Touch나 iPhone과 연계되는 프리젠터 기능이다.
두 기기를 프리젠테이션 용 프리젠터로 사용할 수 있고, 프리젠테이션 참조 화면을
아이팟 터치에게 전송하여 발표자가 볼 수 있도록 되어있다.
iTune Store에서 keynote 로 검색하면 그 리모트를 다운로드 받을 수 있으며,
가격은 .99 불이다.


아이팟 터치가 점점 갖고 싶어진다.
Posted by tuning-java
,

nginx라는 웹서버가 있다.
- apache보다 성능이 월등히 좋고,
- POP3, IMAP 등의 서버 기능도 제공하고,
- 부하 분산 proxy 서버로도 사용 가능한
서버라고 한다.

nginx의 단순하고도 허접해 보이는 홈페이지는 아래 링크를 따라가면 된다.
http://www.nginx.net/

위키 주소는 아래와 같다.
http://wiki.codemongers.com/Main

컴파일된 윈도우용 nginx를 다운로드 받으려면 아래 링크를 따라가면 된다.
http://www.kevinworthington.com/tag/nginx/

설정하는 것도 굉장히 간단한 것으로 보인다.
그렇다면 Tomcat과 연동하려면?
nginx가 설치된 디렉토리(여기서는 C:\nginx) 의 conf 디렉토리로 이동한다.
C:\nginx\conf 의 nginx.conf 파일을 연다.
그 파일의 location 부분을 # 주석으로 막는다.

#        location / {
#            root   html;
#            index  index.html index.htm;
#        }

그리고 나서 tomcat으로 다음과 같이 연결하면 작업 끝~~(tomcat의 port가 8080인 경우)
        location / {
            proxy_pass         http://localhost:8080/;
        }
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
,
회사에서 PC를 받았는데,
지금까지 사용한 IBM Travel 키보드의 한영 및 한자키가 먹질 않아서, 엄청난 시간을 허비했다. - -;

KeyTweak 이라는 툴이 있는데, 이 툴을 이용하면 한영키를 지정할 수 있다.
레지스트리를 직접 다루기 때문에, 항상 어떤 어플리케이션이 메모리에 올라가서 점유하는 것도 아니기 때문에 걱정할 필요는 없다.

단, 레지스트리를 어떻게 다루는지 알고 있는 분이 사용해야만 하며,
그 방법을 모르실 경우에는 다른 방법을 찾아보셔야 한다.
(로그인이 안될 수도 있다.)

자세한 설명은 아래의 링크를 참조하기 바란다.

참조 설명


Posted by tuning-java
,
2009년 나의 목표
- 2세 맹글기

- Blog2book Test 책 집필  완료
- 새로운 책 추가 계약 안하기

- 새로운 직장에 적응 잘하기
- 착하게 살기
- 세미나 3회 이상 하기

- 하루에 10분이상 영어 공부하기
- 운동 꾸준히 하기

- 술 많이 안먹고, 담배는 일단 끊기
- 뽐뿌 받지 말기(연내에 전자제품 및 렌즈 합쳐서 5개 이하 구입하기.)

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


2008년은 저에게 많은 일이 일어났던 해입니다.

내년에도 좋은일만 계속되길~~~~





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

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

난 구찮아서 패스~~~.
(상황봐서 시간되면 한번 해볼까도 생각중임...)
Posted by tuning-java
,
아는 분은 알겠지만,
다음달부터 지난 9년간 다니던 회사를 이직하고 다른 회사로 옮길 예정이다.

지난 11월에 입사가 확정된 이후부터 지금까지,
많은 지인들을 만나 이직에 대해 이야기를 했고, 정말 많은 것을 느꼈다.

어떤 교육을 받을때 강사가 이런 이야기를 했다.
"이 교육이 끝나면 퇴직원을 내 보아라. 그러면 당신이 얼마나 조직에서 필요한 사람인지를 알 수 있을 것이다."
그런데, 내 생각엔 그 말은 맞는 말이 아닌 것 같다.
만약 상사가 자기만을 생각하고, 자신의 조직만을 생각하는 그런 분이라면 이 말이 맞겠지만,
자기 팀원의 미래에 대해서 생각하는 그런 상사라면 이 말은 틀린것이라고 생각된다.
그렇다고, 내가 퇴사한다고 했을때 팀장님이 안잡았다는 이야기는 아니다. ^^;

평소에 알고 지내던 지인들에게 퇴사한다고 이야기했을때,
사람들의 반응은 각양각색이었다.
"잘됐네~~~"
"아쉽네~~~"
"왜 가냐?"
"돈은 많이 준대?"
"회사 위치는 어딘데?"
"뭐 이젠 그런말 들어도 아무렇지도 않네~~~"
등등...
이야기를 들은 사람들이 평소에 나에 대해서 어떻게 생각하고 있는지를 알수 있는 가장 좋은 대목이다.


어제 어찌보면 현재하는 일과 별로 상관 없이 그냥 친하게 가끔 술마시는 사람들과 한잔 했다.
그 중 내가 신입때 협력 외국계 업체에 있다가, 우리회사에 경력으로 오신 분이 한 이야기가 바로 "돈, 시간, 사람"이다.
그 분은 현재 회사에 올 때 돈, 시간, 사람 중 사람을 보고 왔다고 이야기했다.
개인적으론 여기에 일과 회사를 추가해야 한다고 생각하지만.... 여하튼...
아마 이해가 안되는 분들이 많을 꺼라고 생각한다.
"사회생활을 돈을 벌려고 하는거지, 사람 보려고 하는건가?"
근데, 여기서 사람은 이쁜 여직원, 잘생긴 직원을 이야기하는 것이 아니다.
자신의 멘토가 될만한, 자신의 롤 모델이 될만한 사람이 있는 경우를 이야기 하는 것이다.

그런데, 나의 경우는 어떤가 생각해 보았다.
돈, 시간, 사람중 난 뭘 보고 가는 것인가?
돈?
내가 받는 현재 연봉과 제시받은 연봉이 얼마나 차이나는지 아는 분들은 내가 돈보고 가는 것이 아니라는 것을 알고 있을 것이다. (현재 팀장님이 가장 반대한 부분도 이 부분이었다.)

시간?
시간은 약간 애매한데, 시간은 오히려 지금 다니는 회사가 어떻게 보면 나에게 더 많다고 생각된다. 가려는 회사에서 퇴근해서 우리집에 빨리와봤자 8시 반 정도 될테니...
오히려 와이프는 내가 집에서 보내는 시간이 더 줄어들까봐 걱정을 많이 하고 있다.

사람?
어찌보면, 지금 회사에서 지금까지 쌓아온 인맥(?)중 반 이상은 놓칠 수 있다. 다르게 생각하면, 새로 옮기는 회사에서 더 많은 사람을 만날 수 있는 기회가 될 수도 있고...

내가 옮기는 가장 큰 이유는 앞의 3가지가 아닌 일이다.
지금일이 싫다는 이야기는 아니지만, 지금 하는 일중 성능 테스트가 70%이상, 나머지가 튜닝 및 진단이다.
IT에서 성능 테스트만큼 보람되고 많은 것을 배울 수 있는 일은 그리 많지 않다고 본다.
시스템을 전반적으로 크게, 광범위하게 볼 수 있는 일 중 가장 쉬운 방법이 성능테스트라고 생각한다.
그런데 그만큼 성능테스트는 많은 스트레스를 동반한다.(뭐 스트레스 받지 않는 일이 없겠냐만은...)

여하튼, 내년부터는 튜닝일을 징하게 할 것 같다. 튜닝 말고 해야하는 일도 있겠지만...

퇴사가 1주일 앞으로 다가온 현 시점에,
"내가 정말 잘 하고 있는 짓인지?"
라는 질문에는 아직까지도 답이 안나온다.
6개월, 1년, 3년, 5년, 아니면 20년후에 지금 내가한 선택이 제대로 된 선택인지 결정이 나겠지?
Posted by tuning-java
,
이제서야 좀 여유가 생겨서 1쇄에 있던 오타를 정리한다.

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

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






Posted by tuning-java
,
맥에서 사용하는 Quartz Component라는 것이 있다.

확장자는 .qtz 인 파일이 그것이다.

이 파일을 만들기 위해서는 XCode라는 맥용 개발툴에 있는  Quartz Composer를 사용해야 하는데,
사용법이 일반 툴과 너무 달라 매우 난감하다.

아래 링크는 그런 qtz 파일을 쉽게 만드는  방법을 쉽게 설명해 놓은 문서다.
(영어지만....)
http://www.macdevcenter.com/pub/a/mac/2006/03/23/quartz-composer.html?page=1


이 파일을 왜 만드냐면....
만들어 놓은 파일을 KeyNote에서 import 하게되면,
프리젠테이션시에 움직이는 배경을 청중에게 보여줄 수 있다.

다음에 어디서 세미나 할 일 있으면, 한번 써 먹어봐야겠다.
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
,
아침에 황책임님과 메신져를 하던중 한가지 이벤트 소식을 접했다.

http://section.blog.naver.com/event/DomainPromotionEventForm.nhn


pe.kr 도메인을 2년간 무료로 사용할 수 있도록 하는 이벤트를 네이버에서 진행한다.

그래서 나도 오늘 www.tuning-java.pe.kr 도메인 등록을 완료했다. ^^;

선착순 5만명이라고 하니, 빨랑 하세요.

나같은 경우, 나중에 어떻게 계속 유지할지는 2년 뒤에 생각해 보기로 했음.

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
,