반응형
Java SE 6 릴리스에서는 AWT(Abstract Window Toolkit)에 새로운 기능 몇 가지를 추가했다. 사용자는 GUI 구성 요소를 향상시킬 때 더 이상 Swing에만 의존하지 않아도 된다. Java SE 6 덕분에 이전 팁, JDIC를 사용하여 네이티브 애플리케이션과 통신하기에서 JDIC(JDesktop Integration Components)라고 불렀던 것을 통해 데스크탑 애플리케이션 등에 새로운 방식으로 액세스할 수 있다. 그 패키지가 java.awt로 바뀌었지만 API의 상당 부분은 그 팁에서 설명한 그대로이다. 또한 Microsoft Windows 작업 표시줄, Gnome 알림 영역 또는 KDE 시스템 트레이에 애플리케이션을 추가할 수도 있다. 이 팁에서도 바로 그 내용에 대해 알아보기로 한다.

시스템 트레이 액세스에는 단지 두 개의 새 클래스만 있으면 된다. 데스크탑의 시스템 트레이를 나타내는 SystemTray와 그 아이콘을 나타내는 TrayIcon이다. ImageIcon을 쓰지 않는 이유는? TrayIconPopupMenu와 툴 팁 텍스트가 연결되어 있기 때문이다. 자, 모든 조각이 어떻게 들어맞는지 살펴보자.

SystemTray 클래스는 플랫폼이 하나의 트레이 인스턴스를 갖는다는 개념에서 출발한다. SystemTraygetSystemTray() 메소드를 호출하면 그 인스턴스가 반환된다. 그러나 일부 플랫폼에서는 시스템 트레이를 지원하지 않을 수도 있으므로, 먼저 isSupported() 메소드를 통해 확인하는 것이 가장 좋다. 그렇지 않으면 플랫폼에서 시스템 트레이를 지원하지 않을 경우 UnsupportedOperationException이 발생한다. 시스템 트레이 인스턴스를 얻는 데 필요한 일반적인 패턴은 다음과 같다.

  if (SystemTray.isSupported()) {
    SystemTray tray = SystemTray.getSystemTray();
  }

Microsoft Windows, Solaris Operating System, Linux 등 일반적인 플랫폼 대부분은 시스템 트레이를 지원하지만, 그렇지 않은 플랫폼도 있을 것이다.

SystemTray를 얻었다면 TrayIcon이 제 역할을 하기 시작한다. 추가할 메뉴와 툴팁별로 하나씩, 물론 Image와 함께 트레이에 추가한다.

SystemTray를 사용하는 기본적인 프레임워크로 시작하면 다음 프로그램을 얻게 된다. 이 프로그램은 단일 TrayIconSystemTray에 두는데, 그 PopupMenu에는 하나의 MenuItem이 있다. 설치된 JDK 디렉토리에 데모 하위 디렉토리 하나가 있다. 그 하위 디렉토리의 아이콘을 얻을 수 있다. 지원되는 형식이면 뭐든지 가능하다.

import javax.swing.*;
import java.awt.*;

public class BasicTray {
  public static void main(String args[]) {
    Runnable runner = new Runnable() {
      public void run() {
        if (SystemTray.isSupported()) {
          SystemTray tray = SystemTray.getSystemTray();
          Image image = Toolkit.getDefaultToolkit().getImage("gifIcon.gif");
          PopupMenu popup = new PopupMenu();
          MenuItem item = new MenuItem("A MenuItem");
          popup.add(item);
          TrayIcon trayIcon = new TrayIcon(image, "The Tip Text", popup);
          try {
 tray.add(trayIcon);
          } catch (AWTException e) {
            System.err.println("Can't add to tray");
          }
        } else {
          System.err.println("Tray unavailable");
        }
      }
    };
    EventQueue.invokeLater(runner);
  }
}

마우스를 아이콘 위에 두면 툴팁 텍스트가 표시된다. 아이콘을 클릭하면 팝업 메뉴가 나타나 메뉴 항목을 표시한다. Action/ActionListenerMenuItem에 추가되었기 때문에 선택 시 활성화되었을 것이다.

메뉴 항목 선택 시 애플리케이션의 큰 프레임을 작성하는 기능 외에도 TrayIcon의 또 다른 중요한 메소드에 대해 알아볼 필요가 있다. 바로 displayMessage()이다. 이 메소드를 호출하면 시스템 트레이에서 그 아이콘 근처에 팝업 메시지가 나타난다. 이 메소드는 3개의 인수, 즉 팝업 창 제목(null이 될 수 있음), 메시지 자체 그리고 메시지 형식을 나타내는 MessageType이 필요하다. ERROR, WARNING, INFO 또는 NONE 형식을 사용할 수 있다. NONE을 제외한 모든 형식은 팝업 창에 자체 아이콘을 추가한다. 이 아이콘은 JOptionPane에 나타나는 것보다 더 작은 버전이다.

다음 프로그램에서는 앞의 예에 메뉴 항목을 몇 개 더 추가하여 displayMessage() 메소드와 그 모든 메시지 형식을 보여 준다. 최종 메뉴 항목 Close에서는 SystemTrayremove() 메소드를 사용하여 TrayIconSystemTray에서 제거하고 종료한다.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class FullTray {
  static class ShowMessageListener implements ActionListener {
    TrayIcon trayIcon;
    String title;
    String message;
    TrayIcon.MessageType messageType;
    ShowMessageListener(
        TrayIcon trayIcon,
        String title,
        String message,
        TrayIcon.MessageType messageType) {
      this.trayIcon = trayIcon;
      this.title = title;
      this.message = message;
      this.messageType = messageType;
    }
    public void actionPerformed(ActionEvent e) {
      trayIcon.displayMessage(title, message, messageType);
    }
  }


public static void main(String args[]) {
    Runnable runner = new Runnable() {
      public void run() {
        if (SystemTray.isSupported()) {
          final SystemTray tray = SystemTray.getSystemTray();
          Image image = Toolkit.getDefaultToolkit().getImage("gifIcon.gif");
          PopupMenu popup = new PopupMenu();
          final TrayIcon trayIcon = new TrayIcon(image, "The Tip Text", popup);

          MenuItem item = new MenuItem("Error");
  item.addActionListener(new ShowMessageListener(trayIcon,
            "Error Title", "Error", TrayIcon.MessageType.ERROR));
          popup.add(item);
          item = new MenuItem("Warning");
  item.addActionListener(new ShowMessageListener(trayIcon,
            "Warning Title", "Warning", TrayIcon.MessageType.WARNING));
          popup.add(item);
          item = new MenuItem("Info");
  item.addActionListener(new ShowMessageListener(trayIcon,
            "Info Title", "Info", TrayIcon.MessageType.INFO));
          popup.add(item);
          item = new MenuItem("None");
  item.addActionListener(new ShowMessageListener(trayIcon,
            "None Title", "None", TrayIcon.MessageType.NONE));
          popup.add(item);
          item = new MenuItem("Close");
  item.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
     tray.remove(trayIcon);
            }
  });
          popup.add(item);
          try {
            tray.add(trayIcon);
          } catch (AWTException e) {
            System.err.println("Can't add to tray");
          }
        } else {
          System.err.println("Tray unavailable");
        }
      }
    };
    EventQueue.invokeLater(runner);
  }
}


프로그램을 컴파일하고 실행하여 트레이 아이콘이 시스템 트레이에 추가되게 한다. Microsoft Windows 시스템에서는 아이콘에서 마우스 오른쪽 버튼을 클릭해야 팝업 메뉴가 나타난다. 각 아이콘을 선택하면 각 메시지가 표시되며, 마칠 때에는 Close를 선택하면 된다. 트레이 아이콘을 제거하면 실제로 이벤트 디스패치 스레드가 종료하므로 프로그램이 종료된다.

*******

jMaki는 Ajax 기반 웹 애플리케이션을 손쉽게 빌드할 수 있는 경량급 프레임워크이다. Deep Dive에서 jMaki 프로젝트 리더인 Greg Murray와 함께 더 자세히 알아볼 수 있다.

*******

이 아티클의 영문 원본은
http://blogs.sun.com/CoreJavaTechTips/entry/getting_to_know_system_tray
에서 볼 수 있습니다

반응형
이곳은 50001.COM 주인장의 강좌와 주옥같은 JAVA고수님들의 강좌를 모아 놓은 곳입니다.
질문은 Q&A 게시판에 주세요.

들어가는 글 :: "시작하는 JAVA프로그래머를 위해" (특히 비 전공자분들께)
 
 
김상욱의 awt 멀티채팅강좌 ::
방개설, 귓말/쪽지, 방장기능, 캐릭터 및 글자색 기능, 이미지넣기, 관리자모드, 그림 및 음악 보내기 등 기술분석적 강의 (진행중)
김상욱의 db 이용한 awt 그래프 출력강좌 ::
db와 socket을 이용 3-Tier, 스크롤가능 그래프출력 강좌 (1차완료)
김상욱의 LIVECONNECTION :: 애플릿과 자바스크립트와의 통신강좌 (완료)
김상욱의 자바툴 강좌 :: Editplus, UltraEditor, Kawa, JCreator 등의 다운로드와 설정 (완료)
김상욱의 웹스타트(webstart) 강좌 (기본 완료, 응용 진행중)
김상욱의 Vector, Hashtable 클래스 성능 실험 외 (완료)
진은영 (50001.com javaside 시삽) 강사님의 자바 기초강좌 (진행중)
자바Side(50001.com) 온라인 자바 스터디 1기 채팅 소스 분석 스터디 정리(완료)
Java Basic처음 입문하신 분들은 이리로
J2SE(Core/Desktop)Java2 Standard Edition.
애플릿/애플리케이션 등 일반적인 자바
프로그램을 만들 수 있는 기본 패키지
J2EE(Enterprise/Server)Java2 Enterprise Edition
엔터프라이즈급 프로그램을 만들 때
사용하는 패키지.
웹프로그래밍 JSP :: servlet :: taglibrary/customtag
웹서비스
웹서비스
JAXP/JAXR/JAX-RPC

SOAP
Component
Enterprise JavaBeans(EJB)
Java Message Service(JMS)
기타

application server
Java Data Objects(JDO)
JavaMail
Transaction(JTA/JTS)
J2EE 기타

J2ME(Mobile/Wireless)Java2 Micro Edition.
휴대폰 등에 들어있는 소형 시스템에서
사용할 프로그램을 만들 수 있는 패키지.

모바일(J2ME)

(강사님별 / 기기별 강좌)

XML XML
IDE IDE
Other Java Technologies 준비중...
ETC 매뉴얼 :: 디자인패턴 :: 객체지향 UML ::
자바스크립트 :: XP(Extreame Programming) :: 기타

자바기본 (영문튜토리얼)

 
박용우님의 자바강좌 :: 자바 전반에 대한 문법 및 도움말 (강추!)
윤경구의 자바튜토리얼 :: '지나'시리즈로 유명한 저자의 기초~고급
최종명의 몽땅강좌 :: 기초부터 고수까지
최희창님의 자바클래스 소개
Java 전문 용어 이해하기 :: Sun사 문서 (오광신 님 번역)
원돈희님의 SCJP에 맞춘 자바강좌 :: 시험 유형에 맞춰 헷갈리기 쉬운 부분을 알기쉽게 강의
Sun의 자바기초강좌 SL275(한글문서) :: 김동학님 제공
자바 초보자를 위한 강좌 :: javanuri
corejava [1권] [2권] :: 번역판
Think In Java 2nd Ed (MS WORD버전)
자바기초에서 애플릿(바둑,채팅)까지 :: JSTORM
자바기초(당연히 알아야함에도 불구하고 그냥 지나치기 쉬운) :: JSTORM
JVM의기본 원리 및 클래스로더의 기초 :: JSTORM
제네럴 프로그래밍 애플릿에서 웹 서비스까지 [첨부파일] :: 박용우
GarbageCollection :: 오광신
JVM의 가비지 컬렉션 (영문) :: IBM
가비지 컬렉션과 퍼포먼스 (영문) :: IBM
이것은 무엇의 객체인가 (영문) :: IBM
추상클래스 :: 자바스터디
정적 유형 (Static type) (영문) :: IBM
final 사용 가이드라인 (영문) :: IBM
자바 속성 [1] [2] [3] [4] :: IBM
클래스와 클래스 로딩 (영문) :: IBM
Java Web Start 1.0 개발자 가이드 (번역) :: JSTORM
자바 네트워크 구동 프로토콜(JNLP)과 참조 구현, 자바 웹 스타트 :: 자바스터디
JAVA WEBSTART문서 [소스] :: 오광신
EMPOWER YOUR APPLICATIONS WITH JAVA™ WEB START - Sun사 문서 (오광신 님 번역)
자바프린팅모델 [1] [2] :: JSTORM
JDK 1_4의 프린팅 (printing), Part 1_새로운 Java Print Service API :: IBM
JDK 1_4의 프린팅 (printing), Part 2_프린트 관련 이벤트를 듣고 그래픽을 직접 프린트 :: IBM
표명(assertion) 기능 이용하기 :: IBM
J2SE 1_5_Tiger의 미래와 언어 차원의 변화 :: IBM
숫자와 currency 포맷 (영문) :: IBM
자바 어플리케이션에서 환경에 접근하기 :: 자바스터디
쓰레드 풀과 작업 큐(queue) (영문) :: IBM
쓰레드 보안 (영문) :: IBM
김세곤님의 클래스패스와 환경 변수, 그것이 알고 싶다. :: 패키지 및 클래스패스설정 총정리
classpath에 등록안된 클래스의 dynamic reload :: javapattern.info
Multiprocess JVM Implemetation_1 :: javapattern.info
Multiprocess JVM Implemetation_2 :: javapattern.info
native method 정의 및 구현 :: javapattern.info
StringBuffer class Optimization :: javapattern.info
Using java debugger :: javapattern.info
Java 2 레퍼런스 클래스 사용 가이드라인 (영문) :: IBM

애플릿 (영문튜토리얼)

 
Dubuilder로 Signed Applet 만들기 [소스] / [MakeRayCab.bat ] :: 오광신
Explore에서 Signed Applet만들기 :: 오광신
넷스케이프 브라우저에서의 사인 애플릿 작성 :: 핸디소프트 윤동빈
네트워크 가위바위보게임(+채팅) [소스] :: 박용우

그래픽(awt,JFC/swing,SWT) (영문튜토리얼)

 
AWT와 스윙 [1] [2] :: JSTROM
스윙(SWING)의 안쪽 탐험 :: JSTORM
Swinging audio_사용자 인터페이스 향상을 위한 소리 신호 구현하기 :: IBM
지능형 데이터로 Swing을 간단히!_(iData 기법) :: IBM
SWT: native 크로스플랫폼 GUI 애플리케이션 만들기 (영문) :: IBM
Create native, cross-platform GUI applications(GCJ, 리눅스, SWT) :: IBM
Equipping SWT 애플리케이션에 content assistants 추가하기 (영문) :: IBM
Fullscreen Exclusive Mode 와 draw directly to video RAM(영문) :: IBM
Java Web Start로 SWT 애플리케이션 전개하기 (영문) :: IBM
GUI의 접근성 높이기 (영문) :: IBM

자료구조(Collection) (영문튜토리얼)

 
콜렉션 개요와 Collection 클래스, MAP, Iterator, Comparator, 콜렉션 알고리즘:: 자바스터디

국제화(한글화) (영문튜토리얼)

 

네트웍(IO/NET)
 
파일과 네트웍 [01] [02] :: JSTORM
자바 I/O 성능 향상기법 :: JSTORM
네트웍 코드를 쉽게 테스트 하자 [소스] :: JSTORM
비 블록 소켓으로 가는 길 (영문) :: IBM
Merlin으로 자바 플랫폼에 nonblocking 입출력 가능_새롭게 추가된 기능들 :: IBM
JDK1.4의 New I/O에 대하여 [1] [2] :: 한빛미디어
스트림 완전히 바꾸기, Part 1 (영문) :: IBM
스트림 완전히 바꾸기, Part 2 내부 Java IO 최적화 (영문) :: IBM
자바 네트워킹 강화 (영문) :: IBM
Java NIO (Ron Hitchens 지음) (영문) :: IBM
Merlin의 new IO 버퍼의 모든 것 (영문) :: IBM
NIO Channel :: javapattern.info
NIO Reactor Pattern의 사용 :: javapattern.info
PushbackReader의 사용방법과 예제 :: javapattern.info
Multicast IP address를 이용한 채팅 :: javapattern.info
Extracting zip or jar file :: javapattern.info
Servlet과 Applet간의 HTTP 통신_1 :: javapattern.info
Servlet과 Applet간의 HTTP 통신_2 :: javapattern.info
Servlet과 Applet간의 HTTP 통신_3 :: javapattern.info
Servlet과 Applet간의 HTTP 통신_4 :: javapattern.info
SocketPool Implementation Source code Example_1 :: javapattern.info
SocketPool Implementation Source code Example_2 :: javapattern.info
DatagramSocket의 정의 및 샘플 :: javapattern.info
HttpURLConnection 사용예와 개념 :: javapattern.info
jNetServer Socket Framework :: javapattern.info
Lightweight Web Server Implementation :: javapattern.info

분산객체(RMI) (영문튜토리얼)

 
Java Distributed Computing Technology :: 자바스터디
자바 RMI 사용하기
차승욱님의 RMI강좌 :: 자바스터디
문영진님의 RMI강좌 :: 자바스터디
자바에서의 원격객체통신(RMI와 CORBA) :: 윤경구
RMI의 기초 :: JSTORM 박준용님
기업에서의 RMI-IIOP_IIOP상에 RMI 실행시키기 :: IBM

IDL(CORBA) (영문튜토리얼)

 
JBuilder를 이용한 코바(Corba)프로그래밍 :: Javastudy
코바와 자바 연동 (PDF) :: Javastudy
JAVA와 CORBA연동 (PDF) :: Javastudy
JBuilder에서 코바 프로그래밍 (MS_WORD) :: Javastudy
코바 이것만을 알고 개발하자!!(PDF) :: Javastudy
VisiBroker 설치 방법 (코바사랑) :: Javastudy
비지브로커의 이모저모.. (PDF) :: Javastudy
IDL에 대해서.. (PDF) 코바사랑 제공 :: Javastudy
JAVA에서 IDL 매핑 (PDF) 코바사랑 제공:: Javastudy
콜백 서비스에 대해.. (MS-WORD) 코바사랑 제공 :: Javastudy
CORBA & Next Generation :: Javastudy

보안(Security) (Security in 1.2 영문튜토리얼)

 
Globus Grid Security Infrastructure와 자바 (영문) :: IBM
JAAS와 JSSE를 이용한 자바 보안 (영문) :: IBM
대칭암호화알고리즘 소개 및 DES, Blowfish샘플코드 :: javapattern.info
Java Security Model Evaluation :: javapattern.info
MD5를 이용한 스트링 변환 :: javapattern.info

JDBC(데이터베이스)
 
데이타베이스와 자바(JDBC소개) :: 자바스터디
JDBC 팁 (영문) :: IBM
JDBC 쿼리 로깅을 쉽게_고급 PreparedStatement를 사용하여 JCBC 코드에 로깅 추가 :: IBM
JDBC와 ORACLE :: 자바스터디
JDBC와 MSQL :: 자바스터디
Database접속 Pool관리 :: 자바스터디
JDBC API를 이용한 프로그래밍 강좌 :: http://www.aboutjsp.com/
JDBC 기초 강좌 :: http://cs.sookmyung.ac.kr/
JDBC 다국어 처리법 :: http://www.ejavaschool.com.ne.kr/
JDBC 설정 :: 자바스터디
PostgreSQL JDBC 활용 :: http://www.junghyun.pe.kr/
자바 초보자를 위한 DB강좌 :: javanuri
SQL2000 강의자료 :: 김하나님 자료
Object Pool 패턴을 이용 구현한 JDBC Connection Pool :: JSTORM
oracle8i JDBC(Oracle 8i 와 Java) :: Javastudy
Informix 데이터베이스연결 :: javapattern.info
MySQL JDBC Connection_1 :: javapattern.info
MySQL JDBC Connection_2 :: javapattern.info
MySQL JDBC Connection_3 :: javapattern.info
Java JDBC Performance Tip(1)-Select Speed up! :: javapattern.info
Java JDBC Performance Tip(2)-Insert, Delete Speed up!.htm :: javapattern.info
JDBC DataConversion(Using Metadata) :: javapattern.info

JAR (영문튜토리얼)

 
JAR 파일 (영문) :: IBM

Extention Mechanism (영문튜토리얼)

 

2D Graphics (영문튜토리얼)

 
2D 애니메이션과 이미지 기반 경로 (영문) - IBM
롤오버(rollover) 효과를 위한 Java2D 합성 (영문) - IBM

Sound (영문튜토리얼)

 

JavaBeans (영문튜토리얼)

 
자바 빈으로 테트리스 게임의 구성 요소들을 재사용 가능한 컴포넌트로 :: IBM
JavaBeans 컴포넌트와 JSP 기술의 결합 (영문) :: IBM

JNI (영문튜토리얼)

 
자바와 C/C++ 연동하기 :: 마이크로소프트웨어
Java Native Interface(JNI) :: 윤경구
자바 네이티브 인터페이스로 피어 클래스 사용하기 :: 자바스터디

Reflection (영문튜토리얼)

 
reflection (영문) :: IBM
리플렉션(reflection) 적용하기 (영문) :: IBM

Optional Packages(JMF/JMX/commAPI/3D/JAI/SpeechAPI/Help System etc)

 
자바멀티미디어 JMF [01] [02] [03] :: JSTORM
JavaHelp 소프트웨어로 헬프셋 만들기 :: 자바스터디
JAVAHELP로 애플리케이션에 도움말 추가하기 :: 자바스터디
블랙박스에서 엔터프라이즈 까지, JMX 1.1 style (영문) :: IBM
블랙 박스에서 엔터프라이즈 까지, JMX 1.1 스타일 (영문):: IBM
블랙박스에서 엔터프라이즈 까지, JMX 통합_JMX Agent를 네트워크 관리 시스템에 연결:: IBM
자바 애플리케이션에서 USB 장치에 접근하기 (영문) :: IBM

J2SE 기타

 
클래스 변형하기 (영문) :: IBM
보다 나은 HashMap 구현하기 (영문) :: IBM
변이(mutate)할 것인가 말것인가 (영문) :: IBM
무한정 progress bars (영문) :: IBM
다중 스레드 애플리케이션 프로그래밍을 쉽게 구현. Consumer 클래스 :: IBM
안전한 구조 기술 (영문) :: IBM
자바 애플리케이션에서의 회귀 태스크 스케줄링 (영문) :: IBM
자바 최적화 기술_자바 애플리케이션의 퍼포먼스 향상을 위한 실질 가이드 :: IBM
패턴 매칭 :: 자바스터디
정규식을 위한 추상 자바 API 구현하기_Perl5 regexp 라이브러리를 사용 :: IBM
새로운 regex 라이브러리를 이용한 문자 시퀀스 파싱하기 (영문) :: IBM
패키지 의존성 줄이기 (영문) :: IBM
해시(hash) 해부 (영문) :: IBM
캐릭터 세트(Character set) (영문) :: IBM
내 쓰레드는 어디에_서버 애플리케이션에서 쓰레드 유출 피하기 :: IBM
Preferences API를 사용하여 객체 저장하기 (영문) :: IBM
SpringLayout 매니저 (gridbagLayout으로 부족할 때)(영문) :: IBM
String 클래스의 오타(mistyping) 방지하기 (영문) :: IBM
Shutdown hook클래스 작성방법 및 샘플 :: javapattern.info
Comparator클래스의 객체비교를 통한 sorting :: javapattern.info
Deep Copy, Shallow Copy에 관한 Perfomance Test 및 고려사항 :: javapattern.info
Property Utility Examples_1 :: javapattern.info
Property Utility Examples_2 :: javapattern.info
Reflection을 이용한 Value Object비교 :: javapattern.info
박용우님의 '스노우크래프트'자바강좌 :: 자바스터디

JSP
 

1.JSP 란? MS의 ASP처럼 java로 구현된 서버 스크립트입니다.

2.프로그램? java.sun.com/products/servlet/index.html

3.매뉴얼? java.sun.com/products/jsp/tags/tags.html

4.자세한 정보 java.sun.com/products/jsp

5.JSP FAQ http://www.50001.com/language/javaside/www.esperanto.org.nz/jsp/jspfaq.html

6.JSP Developer's Guide java.sun.com/products/jsp/docs.html

JSP강좌 [01] [02] [03] :: JSTORM
JSP기초JSP이론 [01] [02] [03] [04] [05] [06] [07] :: 자바스터디강좌 by 파란공책
http://www.jabook.org/jbjsp/jbjsp_20000_0_0.html :: jabook의 JSP강좌 링크
JSP기초(Java Server Programming 번역일부) :: JSTORM

INSTALL

Tomcat4 설치하기 Windows NT/2K/XP, 98/ME :: okjsp

Tomcat4 Apache1.3.22연동 (mod_jk이용) (mod_webapp이용) :: okjsp

Tomcat 가상호스트 설정하기 :: okjsp

Apache 가상호스트 설정하기 ::okjsp

win98+apache+tomcat (win98과 winMe Tomcat 3.2.1, apache 1.3.14) :: okjsp

윈98 + 아파치 + 톰켓 설치 :: kimho.pe.kr

Tomcat 4.0 설치 (Windows 2000) :: kimho.pe.kr

apache + Tomcat설치하기 :: 자바스터디

리눅스에서 Tomcat 4.0 + 아파치 설치 :: kimho.pe.kr

Apache와 Tomcat4.0.1의연동(윈도2000) :: 김성박

Tomcat-apache 연동 :: okjsp

linux + apache + Tomcat설치하기 :: 자바스터디

Tomcat 3.2의 루트디렉토리 (Tomcat의 기본디렉토리 변경) :: okjsp

Tomcat 4.1의 루트디렉토리 (+ Context 추가) :: okjsp

win2k server + IIS + tomcat 3.2.3 (이미지 캡쳐) :: okjsp

IIS + tomcat 3.2.3 Context추가 (conf/uriworkermap.properties 변경) :: okjsp

IIS에서 자카르타톰캣 돌리기 :: 최종명

oracle 9i + jdbc + tomcat 4.0.3 연동 :: 하이텔 김현규(pasome)

일반계정으로 JSP 돌리기 :: kimho.pe.kr

Tomcat 서비스 설치하기 (NT, Tomcat 3.2.2 ) :: okjsp

win2000+apache+tomcat :: 자바스터디

win2000+IIS5+Resin (Resin 1.2.1) :: okjsp

resin install :: 자바스터디

Win2000에서 resin설치하기 :: 자바스터디

IIS에서 RESIN설치하기 :: 중앙정보기술 정원희

Resin 루트디렉토리 (Resin 1.2.1 기본디렉토리를 변경) :: okjsp

Apache1.X or 2.X+Resin 2.1.6 installed on Linux or Unix :: javapattern.info

자바 서비스를 위한 리눅스 보안 (영문) :: IBM

응용

Eclipse 시작하기 :: okjsp

Form study #1 :: okjsp

Tomcat 4 Manager 사용하기 :: okjsp

jsp에서 log() 이용하기 :: okjsp

WAR (Web ARchive jsp로 만든 웹 어플리케이션을 쉽게 배포) :: okjsp

한글처리 (일반적인 한글처리) :: okjsp

한글처리 빈 (빈에서의 한글처리) :: okjsp

useBean :: okjsp

톰켓에서 useBean 사용하기 :: kimho.pe.kr

session bean :: okjsp

bean 활용[1] [2] :: okjsp

FileUpload :: okjsp

JspSmartUpload 설치 :: okjsp

JspSmartUpload F&Q :: okjsp

jsp 에러잡기 :: okjsp

include 집중분석 :: okjsp

수학 내용을 포함하는 동적 웹 사이트 구축하기(JSP 기술과 LateX) :: IBM

패킹(Packing) (영문) :: IBM

The expression language_JSP 애플리케이션용 MA 단순화하기 :: IBM

Echo 웹 프레임웍으로 작업하기 [1] [2] :: IBM

include를 이용한 동적 콘텐트 조작 (영문) :: IBM

JSP 코드로 이미지 관리하기_동적 서블릿 이미지 메이킹을 마음대로! :: IBM

JSP best practices 외부 사이트에서 콘텐트를 가져오는 JSTL 태그 :: IBM

JSTL primer 프리젠테이션 (영문) :: IBM

JSTL을 이용한 JSP 페이지 업데이트 (영문) :: IBM

JSTL 기초 핵심에 접근하기_커스텀 태그를 이용한 플로우 제어와 URL 관리 :: IBM

JSTL 기초, Part 4 SQL과 XML 콘텐트에 접근하기 (영문) :: IBM

JSP best practices 타임 스탬프의 힘_JSP 페이지에 타임 스탬프 만들기 :: IBM

JSP best practices JSP 태그용 커스텀 애트리뷰트 만들기 :: IBM

JSP include 메커니즘으로 “look and feel”을 더욱 좋게 (영문) :: IBM

Struts, Tiles, JavaServer Faces 통합하기 :: IBM

Struts와 Tiles, 컴포넌트 기반의 개발 도우미 (영문) :: IBM

JSP Model 1 vs JSP Model 2 Architecture overview :: javapattern.info

URL Rewriting을 이용한 session tracking_1 :: javapattern.info

URL Rewriting을 이용한 session tracking_2 :: javapattern.info

[ JSP 기본 강좌 ] (http://www.ihelpers.co.kr)

“안녕하세요. 00 님!!!” 과 JSP 동작원리에 대하여

JSP Comment

JSP Directive

Scripting Elements

iimplicit object
Implicit Object - Request
Implicit Object - Response,Out
Implicit Object - Session, Application

공지사항 만들기 (1) (2) (3) (4) (5)

게시판 만들기 (1) (2) (3) (4) (5)

메일 발송 (1) (2)


진민님의 JSP 간단 강좌 ( http://myhome.shinbiro.com/~jimmy/ )

1. JSP 강좌1(jsp 기본구성)

2. JSP 강좌2(get,post처리 및 내장 인스턴트사용)

3. JSP 강좌3(외부 클래스 사용하는 방법)

4. JSP 강좌4(JDBC를 사용하는 방법)

5. JSP 강좌5(Cookie를 사용하는 방법)

6. JSP 강좌6(session을 사용하는 방법)

7. JSP 강좌7(session사용시 주의점)

김호님의 게시판 만들기 강좌 (http://www.kimho.pe.kr/)

JSP 게시판(방명록) 만들기 (글 내용보기)

JSP 게시판(방명록) 만들기 (글 삭제하기)

JSP 게시판(방명록) 만들기 (글 수정하기)

JSP 게시판(방명록) 만들기 (글 올리기)

JSP 게시판(방명록) 만들기 (리스트 출력하기)

JSP 게시판(방명록) 만들기 (페이징 기법)

JSP 게시판(방명록) 만들기 (또 다른 페이징 기법 1회)

JSP 게시판(방명록) 만들기 (또 다른 페이징 기법 2회)

JSP 게시판(방명록) 만들기 (글 삭제하기)

JSP 게시판(방명록) 만들기 (글 수정하기)

답변형 게시판 만들기 1회 - 답변형 게시판 로직

답변형 게시판 만들기 2회 - 글 올리기

답변형 게시판 만들기 3회 - 글 리스트 보기

답변형 게시판 만들기 4회 - 글 내용 보기


servlet
 

http://www.jabook.org/jbjsp/jbjsp_10000_0_0.html :: jabook의 서블릿강좌 링크

자바 서블릿 프로그래밍 :: 박용우
자바 서블릿(Java ServletTM) 아키텍처 :: 박용우
Java Servlets 2.4를 이용한 필터링 (영문) :: IBM
Servlet API와 NIO 완벽한 결합 (영문) :: IBM
쿠키에 한글이 들어갈 경우 예제 서블릿 :: javapattern.info
Making the Http WebServer(Java로 web server를 구현하는 방법)_1 :: javapattern.info
Making the Http WebServer(Java로 web server를 구현하는 방법)_2 :: javapattern.info
Making the Http WebServer(Java로 web server를 구현하는 방법)_3 :: javapattern.info
Servlet2.3 API Filter interface Implementation :: javapattern.info
Servlet과 Applet간의 TCP_IP 통신_1 :: javapattern.info
Servlet과 Applet간의 TCP_IP 통신_2 :: javapattern.info
Servlet의 각종 Listener 사용방법 및 샘플 :: javapattern.info
Web Tier Java Techonology :: javapattern.info

INSTALL

 JSPINSTALL 참고

 

taglibrary/customtag
 

JSP Tag Library 기초강좌 :: okjsp

커스텀 태그로 JSP 페이지 제어하기_커스텀 태그 라이브러리 통신의 모든 것 :: IBM

Custom Tag Library (1) (2) (3) (4) (5) (6) :: http://www.ihelpers.co.kr

커스텀 태그에서의 에러 핸들링 (영문) :: IBM

JSP 커스텀 태그를 구현하는 다섯 단계 (영문) :: IBM

InvokeEJB Custom Tag Library implementation_1 :: javapattern.info

InvokeEJB Custom Tag Library implementation_2 :: javapattern.info

InvokeEJB Custom Tag Library implementation_3 :: javapattern.info

Struts 1.1 Tiles-framework에 대한 개요 및 사용방법 :: javapattern.info

taglib (영문) :: IBM

 

웹서비스
 

웹 티어 클러스터링, Part 1 JavaGroups로 웹 서비스와 애플리케이션 설계 :: IBM

 

JAXP/JAXR/JAX-RPC
 

 

SOAP
 

아파치 SOAP 유형 매핑, Part 1 아파치의 직렬화 API 검토하기 :: IBM

아파치 SOAP 유형 매핑, Part 2 정의된 직렬자와 비직렬자를 작성 :: IBM

 

Enterprise JavaBeans(EJB)
 
J2EE 환경 소개 :: 자바스터디
오라이온 서버 설치 및 J2EE 애플리케이션 배치 :: 자바스터디
J2EE 신기술의 해설 :: 자바스터디

[ EJB 기본문서 ]

Java Enterprise edition tutorial :: SUN

썬 사의 EJB 규약

Enterprise Java Beans란 무엇인가? [01] [02] [03] [04] [05] :: JSTORM

EJB 한글자료

EJB 실전프로그래밍 (Persistence PowerTier for EJB) :: 자바스터디

Java Enterprise [PDF] :: 김국현님

EJB 성능향상을 위한 Best Practice [1] [2] :: JSTORM

Writing Enterprise Application [01] [02] [03] [04] [05] [06] [07] :: JSTORM

EJB 디자인 패턴 ↓

[ EJB 응용 ]

EJB의 트랜잭션 :: JSTORM 박지훈님

J2EE 애플리케이션에서의 XML :: JSTORM 한제택님

자바 서버상에서 서블렛의 활용 :: 핸디소프트 윤동빈님

J2EE에서의 작업 스케쥴링 :: JSTORM 윤준호님

J2EE 신기술 해설 :: 한국오라클(주) 안병문님

Component Architecture(CORBA, EJB, COM) :: 김국현님

Grady Report - EJB, Design Pattern, XP 강좌 문서 :: 박현철(hpark@kebi.com)

이런 J2EE프로젝트는 위험하다 :: JSTORM

LDAP 소개 :: database.sarang.net 부산대학교 컴공과 박근오님 (MS WORD)

분산 관리 솔루션 (영문) :: IBM

상태보존형(stateful) 네트워크용 J2EE (영문) :: IBM

싱글사인온 솔루션 구현 (영문) :: IBM

싱글사인온 GSS-API와 Kerberos 티켓을 사용하여 SSO를 구현 :: IBM

EJB 예외 처리 실전 (영문) :: IBM

타당성검사(Validation) 헬퍼(helper) 클래스_데이터-포맷 타당성 검사에서 코드 중복 없애기 :: IBM

데이터 타당성검사(validation) (영문) :: IBM

동적 delegate_Java reflection을 이용하여 보다 일반적인 business delegate 구현하기 :: IBM

보다 나은 예외 처리 프레임웍 구현하기 (영문) :: IBM

엔터티 빈 보호_Session Facade 패턴으로 데이터를 안전하게 관리하기 :: IBM

Business Delegate 패턴_EJB 디자인에서의 추상 비지니스, 구현, 애플리케이션 로직 :: IBM

delegation의 한계_business delegate의 대안 :: IBM

JNDI의 산업용 최적화 (영문) :: IBM

JNDI 미로 통과하기 (영문) :: IBM

value 객체를 사용하여 RMI 트랜잭션 속도 높이기 (영문) :: IBM

EJB State와 SOAP 헤더 (영문) :: IBM

JavaSpaces로 적응력 있고 광범위한 솔루션 구현하기 (영문) :: IBM

J2EE 1.2에 다중 애플리케이션 전개하기 (영문) :: IBM

J2EE 내부 객체 사용 (영문) :: IBM

J2EE 영속적인 데이터 관리, Part 1 (영문) :: IBM

J2EE 영속적인 데이터 관리, Part 2 (영문) :: IBM

J2EE를 이용한 서비스 지향 아키텍쳐 프레임웍 설계 (영문) :: IBM

stateful 웹 애플리케이션의 구현과 관리 (영문) :: IBM

stateless 네트워크용 J2EE 기술 (영문) :: IBM


Java Message Service(JMS)
 

벤더로부터 독립된 JMS 솔루션 구현하기 :: IBM

메시지 큐잉이 기업 애플리케이션의 유연성과 확장성을 향상시키는 방법 :: IBM

JMS를 이용한 엔터프라이즈 메시징 (영문) :: IBM

 

application server
 

JEUS 기반의 J2EE - from TmaxSoft
   JEUS EJB Server의 관리와 이를 이용한 EJB 개발 (PDF)
   JEUS JTS의 구조와 이를 이용한 개발 (PDF)
    JDBC의 개념과 프로그래밍하는 방법 (PDF)
   XML 소개와 XML APPLICATION 개발 (PDF)
   JEUS JMS의 구조와 이를 이용한 개발 (PDF)
   JEUS JNDI의 구조와 이를 이용한 개발 (PDF)
   WebtoB Web Server의 소개 (PDF)

HP Netaction Application Server 기반의 J2EE - from Nicstech
   HP Netaction Application Server 설치 방법(WIN 환경) [MS-Word]
   HP Netaction Application Server 설치 방법(UNIX/LINUX 환경) [MS-Word]
   HP Netaction Application Server 에서 웹서버 세팅 방법 [MS-Word]
   HP Netaction Application Server 기반의 JSP, Servlet 개발 방법 [MS-Word]
   HP Netaction Application Server기반에서 EJB사용을 위한 Tutorial [PDF]
   RADPAK 개발툴 사용방법 [MS-Word]

Ea Server 기반의 J2EE - from Sybase
   EA Server 소개 (PDF)
   EJB-CORBA 개발 (PDF)
   분산어플리케이션 (PDF)
   EAServer & PowerJ Installation Guide (ZIP)

PowerJ 연재 강좌 (PDF)
   Simple Application | 웹 어플리케이션 | EJB 컴포넌트 작성 | 컴포넌트 사용하기
   완벽한 J2EE Application 구축방법 (PDF)


javapattern.info 강좌

IBM Webshpere 5.0 의 서버시작, 중지 및 EJB Deploy ANT Build

Web Application Framework개발방법(1)-Framework의 개요

Web Application Framework개발방법(2)-LifeCycle,Controller

Web Application Framework개발방법(3)-View page Composing

Web Application Framework최종 소스 및 인스톨

Weblogic 7에서 JMS Queue Browser 활용 1

Weblogic 7에서 JMS Queue Browser 활용 2

Weblogic EJB Deploy using ANT build

 

Java Data Objects(JDO)
 

Castor JDO 시작하기(영문) :: IBM

Castor를 이용한 데이터 바인딩 (영문) :: IBM

 

JavaMail
 

JavaMail 설치 :: 자바스터디

JavaMail 기본설치 :: okjsp

JavaMail 폼메일 :: okjsp

JavaMail 파일첨부메일 :: okjsp

JavaMail 메일링리스트 :: okjsp

Apache의 James 엔터프라이즈 이메일 서버 (영문) :: IBM

javapattern의 java WebMail 구현

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

 

Transaction(JTA/JTS)
 

트랜잭션에 대한 소개_트랜잭션은 신뢰성 있는 애플리케이션을 위한 구성 요소 :: IBM

장막 뒤의 마법_J2EE 컨테이너가 트랜잭션 관리의 복잡성을 숨기는 방법 :: IBM

보안과 퍼포먼스 균형맞추기_트랜잭션 경계설정과 고립화 가이드라인 :: IBM

WS-AtomicTransaction과 JTA를 이용한 분산 트랜잭션 (영문) :: IBM

 

J2EE 기타
 

Authenticator클래스를 통한 서버인증 메일전송 :: javapattern.info

Distributed Transaction Introduce :: javapattern.info

JRMP, IIOP type의 RMI분산 객체(RMI over IIOP) :: javapattern.info

MarshalledObject and Deserialization :: javapattern.info

RMI Peering System Construct :: javapattern.info

RMI programming, The Lifecycle of server :: javapattern.info

WebLogic WLSPool Size변경 application :: javapattern.info

 

모바일(J2ME) :

J2ME와 mobile device :: 김종원

핸드폰 단말기용 자바 애플리케이션의 구현 :: 배준현

네덜란드의 무선 기술 (영문) :: IBM

모바일 장치 디텍션(detection) (영문) :: IBM

P2P 네트워크 모바일 디바이스를 JXTA와 Jabber 클라이언트로 전환하기 :: IBM

기존의 네트워크 경계를 넘어 확장되는 P2P 시스템 설계 :: IBM

JXTA 2 고성능 P2P 네트워크 (영문) :: IBM

무선 J2ME 보안 (영문) :: IBM

EPOC에서 자바 애플리케이션 만들기 (영문) :: IBM

J2ME 101, Part 3 Record Management System (영문) :: IBM

J2ME 101, Part 4 Generic Connection Framework (영문) :: IBM

J2ME 기록 관리 저장 (영문) :: IBM

J2ME 애플리케이션과 Kerberos, Part 3 (영문) :: IBM

J2ME를 무선 메시지교환으로 확장하기 (영문) :: IBM

J2MEMIDP 애플리케이션 보안 (영문) :: IBM

MIDlets 클래스_모든 J2ME 프로그램의 기반하에 구축하기 :: IBM

Secrets of the wireless elite Jason Loia (영문) :: IBM

Secrets of the wireless elite Nancy Lehrer(영문) :: IBM

J2ME를 이용한 모바일 결제(m-payments)-모바일 장치에서 결제까지 :: IBM

강사님별 강좌
 

배준현님 마소 강의


무선단말을 위한 자바플랫폼 : CLDC/MIDP
핸드폰에는 나만의 자바 애플리케이션을!
OSGi로 여는 임베디드 자바 세상

이경범님 마소 강의

알라딘 기반의 상용만화 애플리케이션 만들자

김종원님 프세 강의

MIDP를 사용한 휴대폰 프로그래밍
J2MEWTK를 사용한 MIDlet Httpconnection 프로그래밍
SK-Aladdin VM(virtual machine)을 이용한 멀티 플렛폼 채팅 프로그램 작성
&J2ME와 embedded device

유제정님 모바일 DB 강의

1. 모바일데이터베이스를 이용한 MIDP Sample 프로그램 구현

김준동님 모바일 강의

소형기기를 위한 프로그래밍 전략

정성권님 번역 자료

Introduction to Wireless Application Development

권기경님 번역 자료

Using XML in Wireless Applications
Connected Limited Device Configuration (CLDC) (CLDC API) (KJAVA API)

권기경님 자료

컴파일에서 사전 검증, 실행까지
이미지 사용 예제 분석
[번역] Connection Framework


기기별 강좌
 

Mobile Information Device Profile (MIDP) (MIDP-FCS API)
권기경님 자료

컴파일에서 사전 검증, 실행까지
웹서버에 midp 응용프로그램을 올려 놓고 실행하기

[번역]
MIDP Inter-Communication with CGI and Servlets
HTTP를 사용하는 MIDP Network Programming과 Connection Framework (정창수님번역)
MIDP GUI Programming Programming the Phone Interface (오용석님번역)
Quick Start Guide: JavaTM 2 Platform Micro Edition, Wireless Toolkit (오광신님 번역)
MIDP Database Programming using RMS: a Persistent Storage for MIDlets (번역)

PALM Pilot PDA (Palm OS) (PALM API)

권기경님 자료 :: 컴파일에서 사전 검증, 실행까지

WABA (WabaSoft) (WABA API)

권기경님 자료 :: 컴파일에서 사전 검증, 실행까지

n.TOP 마법사 (SK Telecom, XCE) (n.TOP 마법사 API) (XCE Tutorial)

박재범님 강의 :: 컴파일에서 실행까지
마소자료 :: MIDP 소개 | SKT-P 소개 | 게임작성 소개

EZ-JAVA 핸드폰 (LG Telecom) (EZ-JAVA 영문 API) (EZ-JAVA 한글 API)

권기경님 자료
  컴파일에서 사전 검증, 실행까지
  실제 폼에서 ez-java 응용프로그램 실행하기

박재범님 자료 :: 이미지 사용 예제 분석

-MODE 핸드폰 (Nttdocomo) (I-MODE API)

권기경님 자료
  컴파일에서 사전 검증, 실행까지
i모드 Java 확장 API 클래스 라이브러리가 아닌 i-jade를 사용하여 컴파일과 실행까지

wizardee님 자료 :: iAppli 개발환경 만들기

iDEN 핸드폰 (Motorola) (CLDC API) (MIDP API)

권기경님 자료 :: 컴파일에서 사전 검증, 실행까지

Personal Java 강좌

황제헌님 자료
  Personal Java Programming
  Personal Java 한글 encoding 문제 해결

CessHan for Palm-sized PC & PocketPC 설치 방법

KVM에 대한 기본 설명
어플리케이션 사이즈를 줄여주는 Obfuscator
SUN의 Monty 프로젝트 관련 자료
MIDP NG (New Generation) 버젼에 관한 자료 [UI, Games, and Sound] [Security and Networking]
Parsing XML in J2ME MIDP
Introducing Wireless JMS (PDF)

XML
 
XML의 기본개요 :: javapattern.info
XML 정리 (pdf파일)
XML korean spec :: http://user.chollian.net/%7E7Eclevekim
자바와 XML :: JSTROM
Using XML in Oracle
XML 게시판 [소스] :: 김미영 님
XML 과 데이타베이스 :: 박용우
XSL, XSLT, XPATH [1] [2] [3] [4]:: 전윤경(ygchon@penta.co.kr)
DOM으로 프로그래밍하자 [1] [2] :: 전윤경(ygchon@penta.co.kr)
About DOM & DOM Programming with Java :: javapattern.info
DOM Level 3 Core의 핵심 기능 [1] [2] (영문) :: IBM
About SAX & SAX programming with Java :: javapattern.info
SAX 파서 설치하기 (영문) :: IBM
자바 프로그래밍으로 온라인 XML 데이터 검색하기_XML 파싱 :: IBM
자바 프로그래밍의 XML-RPC (영문) :: IBM
자바가 본 XML :: 자바스터디
Digester와 Lucene을 이용한 XML 파싱, 인덱싱, 검색 (영문) :: IBM
XML 로 홈페이지 만들기 :: 전윤경(ygchon@penta.co.kr)
IBM developerWorks XML 아티클 템플릿 (영문) :: IBM
자바 문서 모델 사용법_상이한 자바 XML 문서 모델들이 작동하는 방식 :: IBM
Schema Infoset Model로 스키마에 대한 복잡한 쿼리를 간단히! :: IBM
Working XML 경로 컴파일과 테스트 자동화_알고리즘과 JUnit 자세히 살펴보기 :: IBM
XML 데이터 바인딩, 성능 (영문) :: IBM
XML 데이터 바인딩, JiBX architecture (영문) :: IBM
XML 데이터 바인딩, JiBX 사용하기 (영문):: IBM
About JDOM & JDOM Programming with Java.htm :: javapattern.info
FOP를 이용한 PDF생성시 한글변환방법 :: javapattern.info
XML을 이용한 Database Query Manager 구현하기 :: javapattern.info
XMLBeans를 이용한 xml binding.htm :: javapattern.info

IDE

 
JBuilder 5 한글 매뉴얼 (pdf)
JBuilder 6 한글 매뉴얼
JBuilder 7 [인스톨] [환경설정](ppt)
JBuilder 에서 휠마우스 사용
제이빌더에서 라인넘버 표시
제이빌더에서 Ant 실행
제이빌더에서 자바코드 뷰티파이어
한국 인프라이즈 제공 J 빌더 특강 [ZIP로 내려받기] :: javastudy.co.kr
Eclipse Platform 시작하기 :: IBM
Eclipse 플러그인 개발하기_플러그인 구현, 디버그, 설치 :: IBM
Eclipse 플러그인 서비스 (영문) :: IBM
Eclipse Workbench 밖에서 Eclipse GUI 사용하기, 간단한 파일 탐색 애플리케이션 :: IBM
Eclipse Workbench 밖에서 Eclipse GUI 사용하기, 메뉴, 툴바 추가(영문) :: IBM
Eclipse와 HSQLDB 관계형 데이터베이스를 Eclipse에 임베딩하기, Part 1 (영문) :: IBM
Eclipse의 자바 개발 툴 확장하기 (영문) :: IBM
Graphical Editing Framework을 사용하여 Eclipse 기반 애플리케이션 만들기 (영문) :: IBM

매뉴얼
 
VisualAgeForJava 3.0 한글 매뉴얼 (pdf)
WSCP 매뉴얼 (doc) :: 윤성민

디자인패턴
 
디자인패턴 실전체험 [1] [2] [3] [4] :: 자바스터디
기본패턴 Overview :: javapattern.info
인터페이스! 다시 생각하기 :: 오광신
Good Java Style :: JSTORM
Command패턴의 기초 :: JSTORM
동적으로 자바 어플리케이션 확장하기 :: JSTORM
DesignPattern for Java [소스] :: JSTORM
리팩토링(Refactoring)_Eclipse의 자동화 리팩토링 기능 :: IBM
Double-checked locking과 Singleton 패턴_double-checked locking 이디엄 :: IBM
반 패턴으로 프로그래밍을 향상시키는 방법 :: IBM

EBJ 디자인패턴

Session Facade :: JSTORM

EJB Home Factory :: JSTORM

Business Interface :: JSTORM

Dual Persistent Entity Bean :: JSTORM

JDBC for Reading :: JSTORM

Business Delegate :: JSTORM

Data Transfer HashMap :: JSTORM

Data Transfer RowSet :: JSTORM

EJB Command Pattern :: JSTORM

Version Number :: JSTORM

"Dependent Value Object" 와 큰 단위의 BMP 엔티 :: JSTORM

EJB 전략, 팁 그리고 관례 :: JSTORM

Message Facade :: JSTORM

Value Object Factory :: JSTORM

Data Access Command Beans :: JSTORM

Blueprint(J2EE Petstore) client tier pattern overview :: javapattern.info

EJB design performance tips :: javapattern.info


객체지향 UML
 
박용우님의 객체지향형 프로그래밍 :: 자바스터디
심원도님의 UML강좌 :: 자바스터디
이준규님의 객체지향형 강좌 :: 자바스터디
Rational Rose에서 UML을 이용한 모델링 [1] [2] [3] [4] :: 자바스터디
http://www.jabook.org/jbjava2/jbjava2_10000_0_0.html :: jabook의 객체지향강좌링크

자바스크립트
 
자바스크립트 레퍼런스(win help용)
자바 초보자를 위한 JavaScript 강좌 :: javanuri
애플릿과의 통신(LIVE CONNECTION)을 위한 netscape.jar

XP(Extreame Programming)
 
Extreme Programming 돌아온 XP distilled, Part 1_XP의 진실
Extreme Programming을 밝힌다 돌아온 XP distilled, Part 2 (영문)
Extreme Programming을 밝힌다 돌아온 XP distilled, Part 3 (영문)
Extreme Programming을 밝힌다 진정한 XP 고객_소프트웨어 프로젝트를 운영하는 방법 배우기
Extreme Programming을 밝힌다 페어 프로그래밍(Pair programming) (영문)
Extreme Programming Just-in-time 디자인 (영문)
Extreme Programming Test-driven 프로그래밍_코드를 작성하기 전에 테스트 먼저 작성하기
Extreme Programming 작업에 맞는 (XP) 툴
Extreme Programming Just-in-time 디자인 (영문)

기타
 
ANT 매뉴얼 [] [] :: http://www.hanbitbook.co.kr/
Apache ANT Guide :: 최지웅
자바 마이그레이션 :: 하동욱(handan@hitel.net)
JINI기술과 실제 :: 자바스터디
고급 객체 직렬화 :: JSTORM
COM과 자바의 연결 :: 핸디소프트 윤동빈
PDF와 자바 :: JSTORM 윤준호
JavaCC를 이용하여 당신만의 언어를 만들자 [소스]:: JSTORM 윤준호
JavaCC, 파스 트리, XQuery 문법, Part 1 (영문) :: IBM
JavaCC, 파스 트리, XQuery 문법, Part 2 (영문) :: IBM
인스턴트 로깅(Instant logging) log4j 활용하기 (영문) :: IBM
Log4j를 위한 여러가지 환경설정(xml property)_1 :: javapattern.info
Log4j를 위한 여러가지 환경설정(xml property)_2 :: javapattern.info
Log4j의 출력방향 전환하기 :: javapattern.info
Extract unicode from ASCII format text :: javapattern.info
MP3 File Footer ID3V2 Spec Navigator :: javapattern.info
객체 보유 (object prevalence) 소개 (영문) :: IBM
동적 이벤트 리스너 프록시 (영문) :: IBM
리눅스에 LSID 권한 구현하기 (영문) :: IBM
매력적인 Jython (영문) :: IBM
소프트웨어 개발의 미래 (영문) :: IBM
접근가능성을 위한 코딩 (영문) :: IBM
쉬운 코드 관리를 위한 디자인 (영문) :: IBM
영속적인 트레이스 시스템으로 디버깅을 쉽게! (영문) :: IBM
영역 지향 프로그래밍(Aspect -oriented programming)으로 모듈화 향상시키기(AspectJ) :: IBM
강결합의 약점을 없앤 AOP (영문) :: IBM
자바 native 컴파일의 무게 재기_자바 소스에서 native 코드를 생성할 때의 장단점 :: IBM
자바 프로그래밍에서의 Assertion과 temporal logic (영문) :: IBM
버그 패턴에 Temporal logic 사용하기 (영문) :: IBM
콘텐트를 배치하는 새로운 방법 (영문) :: IBM
플랫폼 의존 gotchas: platform-dependent bug patterns (영문) :: IBM
AspectJ와 mock 객체를 이용한 유연한 테스팅 :: IBM
Concurrency made simple util.concurrent package :: IBM
Concurrent 컬렉션 클래스 (영문) :: IBM
ContentHandler의 애트리뷰트 (영문) :: IBM
ContentHandler의 엘리먼트와 텍스트 (영문) :: IBM
'스팩(specification)'이라는 줄타기를 하다_잘 정의된 스팩의 중요성 :: IBM
깊이 우선 Visitor와 broken dispatches_Visitor 패턴 변종으로 코드 간결성 향상 :: IBM
대화식 검사 기능을 제공하는 Repls_소프트웨어를 효과적으로 진단하는 기법 :: IBM
Run-on Initializer 버그 패턴_인자를 가진 생성자를 피함 :: IBM
e-business on demand 개발자의 로드맵 (영문) :: IBM
Eye on performance 객체 레퍼런싱 (영문) :: IBM
Eye on performance 마이크로 퍼포먼스 벤치마킹 (영문) :: IBM
Eye on performance 스트레스의 하중 (영문) :: IBM
Eye on performance 예외에 대한 예외 (영문) :: IBM
Eye on performance 향상된 개발 프로세스 (영문) :: IBM
Javassist를 이용한 클래스 변형 (영문) :: IBM
JML 시작하기_JML 주석으로 자바 프로그램 향상시키기 :: IBM
peer-to-peer 컴퓨팅의 실제 IP 멀티캐스트 기반의 검색 :: IBM
1vs순차N구조의 name-value pair DataSet 정의 :: javapattern.info
코딩지침 :: javapattern.info
Proxy하에서의 Client IP얻기.htm :: javapattern.info

※ 자료는 서로 공유되어야 합니다. ^_^ 각 강의자료의 저작권은 저작권자에게 있습니다.


Java Internet Programming

[서언(緖言)]
예제 소스 exam.zip

제 1 장 자바 시작하기

1. 자바란?
가. 자바란?
나. 자바의 장정 및 이익
다. 자바의 단점과 해결책
라. 자바관련 사이트 및 뉴스그룹
2. 자바 프로그램과 자바 개발 키트
가. 자바 프로그램의 종류
나. 자바 애플리케이션의 구조및 실행
다. 자바 애플릿의 구조 및 실행
라. 자바 개발 키트(Java Development Kit: JDK)
3. 자바 개발도구 사용예
가. 자바 작업 디렉토리 생성하기
나. 자바 개발도구 사용

제 2 장 자바 기본 문법

1. 기본 자료형과 수식
가. 기본 자료형
나. 정수 및 문자 자료형과 수식
다. 부동소수 자료형과 수식
라. 진리 자료형과 수식
2. 연산자와 우선순위
가. 산술(Arithmetic) 연산자와 부호(Sign) 연산자
나. 증감(Increment/Decrement) 연산자
다. 관계(Relational) 연산자
라. 논리(Logical) 연산자
마. 비트(Bitwise) 연산자
바. 대입(Assignment) 연산자
사. 조건(Conditional) 연산자
아. 연산자 우선순위와 결합성
자. 기본 자료형과 형변환
3. 자바 프로그램의 구성문
가. 자바 프로그램 구성문
1) 주석문
2) 지역변수 선언문, 수식문, 그리고 블록문
3) 선택문
4) 반복문
5) 분기문
나. 자바 가상머신의 메모리 모델과 배열 객체
1) 자바 가상머신의 메모리 모델
2) 클래스의 구성요소와 메모리 모델
3) 배열
4) 다차원 배열
5) 문자배열 및 String 클래스
6) 자바 애플리케이션에 매개변수 값 넘겨주기

제 3 장 자바객체지향프로그래밍

1. 객체지향 개념과 자바
가. 객체지향 개념
나. 클래스 정의 및 인스턴스(객체) 생성
다. 변수 및 메소드의 접근제어
라. 메소드의 다중 정의(Overloading)
2. 객체 생성자와 객체 생성 과정
가. 객체 생성자
나. this
다. 클래스 맴버와 인스턴스 맴버
라. 클래스 초기화 및 객체의 생성 과정
3. 상속
가. 상속
나. 상위클래스와 하위클래스
다. 상속과 생성자 및 생성 과정
라. 상속과 인스턴스 메소드의 재정의(Overrriding)
마. 상속과 변수 및 메소드의 접근제어
4. ABSTRACT/FINAL/INTERFACE
가. 추상클래스와 추상메소드
나. final변수(상수)와 상수 객체
다. final 클래스와 final 메소드
라. 인터페이스
마. 인터페이스의 구현 및 다중 상속
5. 선언 지역에 따른 클래스의 구분
가. 중첩클래스(nested class)
나. 내부클래스(inner class)
다. 지역클래스(local class)
라. 익명클래스(anonymous class)

제 4 장 예외처리

1. 예외와 예외처리
가. 예외와 예외처리방법
나. 예외처리 기본 구문 - try/catch 문
다. 예외처리 추가 구분 - finally 문
라. 예외의 분류
마. 예외 발생시키기 및 처리하기 -throw, throws

제 5 장 자바패키지

1. 패키지
가. 패키지란?
나. 패키지의 사용법 -import
다. 자바표준 패키지 -자바 API
라. 새로운 패키지를 만드는 방법
마. 패키지 내의 클래스 접근 제어
바. 패키지 찾는 방법 - 클래스 파일 탐색
2. java.lang 패키지의 Object클래스
가. 최상위 클래스 Object 클래스
나. instanceof연산자
다. Object 클래스의 equals 매소드와 '==' 연산자
3. java.lang 패키지의 System클래스
가. 시스템 클래스 - System 클래스
나. 배열 객체 복사하기
다. 시스템 속성(System Property)얻기 및 설정하기
라. 프로그램의 종료 상태를 시스템에 전달하기
4. Wrapper 클래스
가. Wapper 클래스
나. Wapper 클래스와 기본형간의 변화
다. Integer 클래스와 Lang 클래스
라. Character 클래스
마. String 클래스
바. StringBuffer 클래스
5. java.util 패키지
가. StringTokenizer 클래스
나. Emumeration 인트페이스와 Iterator 인터페이스
다. 벡터(Vector) 클래스
라. 스택(Stack) 클래스
마. 링크드 리스트(Linkedlist) 클래스
바. 해시테이블(Hashtale) 클래스

제 6 장 스레드

1. 프로세서와 스레드의 생성 및 종료
가. 프로세스 생성 및 종료
나. 상호작용 명령어의 실행
2. 스레드
가. 스레드
나. Thread클래스를 상속하는 스레드의 생성 및 시작
다. Runnable 인터페이스를 구현하는 스레드의 생성 및 시작
라. 스레드의 종료 및 대기
마. 스레드의 상태
바. 스레드의 우선순위와 자바 스케줄링
사. 스레드 그룹(ThreadGroup)
아. 데몬 스레드와 데몬 그레드 그룹
3. 멀티스레딩(Multi-Threading)
가. 멀티 스레드 프로그래밍
나. 생성자/요청자 문제(Generator/Requester Problem)
다. 스레드의 동기화
라. 모니터
마. 효율적인 동기화 기법 -wait 및 notify메소드

제 7 장 자바입출력

1. 파일과 디렉토리 관리
가. 추상 경로명(abstract pathname)
나. File클래스
다. 현재 작업 디렉토리 얻기와 변경
라. 임시파일의 생성
2. 자바 입출력 스트림 모델
가. 입출력 스트림 모델
나. 문자 스트림의 장점
다. 문자 스트림과 바이트 스트림
3. 기본 입출력 스트림
가. 기본 입출력 스트림
나. 파일 입출력 스트림
4. 연결 입출력 스트림
가. 연속 입력 스트림
나. 파이프 입출력 스트림
5. 메모리 입출력 스트림
가. 메모리 입출력 스트림
나. 배열 입출력 스트림
다. 문자열 입출력 스트림
6. 필터 입출력 스트림
가. 필터 입출력 스트림
나. 필터 입출력 스트림
다. 버퍼 입출력 스트림
라. 데이터 입출력 스트림
마. 라인 번호 입력 스트림
바. 되돌림 입력 스트림
사. 프린트 출력 스트림
아. 스트림 토크나이져
7. 객체 직렬화와 무작위 접근 파일
가. 객체 직렬화
나. 직렬화 인터페이스
다. 자료압출, 자료 손상 검사, 파일 묶기
라. RandomAccessFile 클래스(무작위접근 파일)

제 8 장 AWT

1. AWT(Abstract Window Toolkit) 컴포넌트(Component)
가. AWT 컴포넌트모델
나. Component 클래스
다. 레이블(Lable) 컴포넌트
라. 버튼(Button) 컴포넌트
마. 체크박스(Checkbox) 컴포넌트
바. 선택(Choise) 컴포넌트
사. 리스트(List) 컴포넌트
아. 스크롤바(Scrollbar) 컴포넌트
자. 캔버스(Canvas) 컴포넌트
2. 컨테이너(Container) 컴포넌트
가. Container 클래스와 Inset 클래스
나. 패널(Panel) 컴포넌트
다. 윈도우(Window) 컴포넌트
라. 프레임(Frame) 컴포넌트
마. 대화상자(Dialog) 컴포넌트
바. 파일 대화상자(FileDialog) 컴포넌트
3. 텍스트(Text) 컴포넌트
가. 텍스트 필드 컴포넌트와 텍스트 영영 컴포넌트
나. TextComponent 클래스
다. 텍스트 필드(TextField) 컴포넌트
라. 텍스트 영역(TextArea) 컴포넌트
4. 컨테이너와 레이아웃 관리자
가. 컨테이너 내에서의 컴포넌트 레이아웃
나. 플로우 레이아웃 관리자(FlowLayout)
다. 그리드 레이아웃 관리자(GridLayout)
라. 보더 레이아웃 관리자(BorderLayout)
마. 카드 레이아웃 관리자(CardLayout)
바. 그리드백 레이아웃 관리자(GridBagLayout)
사. 레이아웃 관리자를 사용하지 않는 레이아웃(Absolute Positioning)
5. 메뉴(MENU)
가. 메뉴
나. MenuComponent 클래스
다. 메뉴바(MenuBar) 컴포넌트
라. 메뉴 아이템(MenuItem) 컴포넌트
마. 체크박스 메뉴 아이템(CheckboxMenuItem) 컴포넌트
바. 메뉴(Menu) 컴포넌트
사. 팝업메뉴(PopupMenu) 컴포넌트
아. 메뉴 단축키(MenuShortcut) 컴포넌트
6. 그래픽스
가. 그래픽스(Graphics) 클래스
나. 컴포넌트의 그리기 메소드
다. 컬러(Color)
라. 팔레트 제작
마. 폰트(Font)
바. 커서(Cursor)
사. 이미지(Image)
아. 미디어 트렉커(Media Tracker)
자. 프린트(Print)
7. 자바이벤트모델
가. 자바 이벤트 처리 모델
나. 이벤트의 종류
다. 액션 이벤트(Action Event)
라. 조정 이벤트(Adjustment Event)
마. 컴포넌트 이벤트(Component Event)
바. 컨테이너 이벤트(Container Event)
사. 포커스 이벤트(Focus Event)
아. 입력 이벤트(Input Event)
자. 키 이벤트(Key Event)
차. 마우스 이벤트(Mouse Event)
카. 아이템 이벤트(Item Event)
타. 텍스트 이벤트(TextComponent Event)
파. 윈도우 이벤트(Window Event)
하. 이벤트 큐(Event Queue)
가. 메뉴단축키와 이벤트 처리

제 9 장 애플릿

1. 자바 애플릿(Applet)
가. 자바 애플릿
나. 자바 애플릿의 실행
다. >APPLET<태그와 >PARAM<태그
라. 애플릿에서이미지와 사운드 출력
마. 애니메이션 애플릿의 작성
바. 애플릿과 브라우저 사이의 통신
사. 같은 HTML 페이지 내에 포함된 애플릿 사이의 통신
아. 브라우저 알아내기 및 기본 브라우저 실행하기
자. 실제 스크린 사이즈를 고려하여 애플릿을 작성
차. 애플릿과 JAR 파일

제 10 장 네트워크

1. 자바 네트워크 프로그래밍
가. IP주소(Internet Protocol Address)
나. URL(Uniform Resorce Location)
다. TCP 소켓(Transmission Control Protocol Socket)
라. UDP(User Datagram Protocol
마. 클라이언트/서버 프로그래밍

제 11 장 서블릿

1. 자바 서블릿 개발 환경
가. JSDK1.2 디렉토리구조
나. default.cfg
다. 자바 서버 루트 디렉토리 및 가상 디렉토리의 구조
2. 자바 서블릿
가. 일반 서블릿(GenericServlet)
나. HTTP 서블릿(HttpServlret)
다. 쿠키와 세션
라. 자바 서블릿 예제 프로그램

제 12 장 부록 A. 자바개발환경설정

1. 자바 개발 키드 설치
2. 자바 실행을 위한 환경변수 설정
3. 자바 도큐먼트 설치
4. 자바 튜토리얼 설치
5. 자바 예제 프로그램 실행하기



     getJava 사이트 방문하기 http://my.dreamwiz.com/conbox/
     아래 문서의 소유권은 getJava에 있으며, 리포스팅에 대한 문의는 getJava로 하시기 바랍니다.


For Beginner :::::


Basic Lecture :::::

  1. 데이터 형과 연산자
  2. 제어문과 배열
  3. 클래스의 기본
  4. 클래스의 고급
  5. 주요 키워드와 클래스 종류
  6. 중요 클래스
  7. AWT와 배치
  8. 이벤트 처리
  9. 애플릿
  10. 쓰레드
  11. 예외처리
  12. 입출력(java.io)
  13. 네트워크
  14. JDBC
  15. 객체직렬화

Deep Lecture :::::

  1. Swing
  2. 분산 네트워킹(java.rmi)
  3. New I/O(java.nio)

사이트 1

사이트 2

플래시 사이트

자바

데이타베이스

ORACLE

http--www.netp.pe.kr-db-oracle-server.805-a66585-toc.htm

mysql

리눅스 시스템 관리자를 위한 홈페이지

오라클

DB

JSP 강좌 - MySQL 설치
낙서판
DATABASE.SARANG.NET 홈페이지
http--www.dbakorea.pe.kr-
http--www.dbakorea.pe.kr-misc-


http://nzeo.com/webcasting.html

자바스크립트

홈페이지 만들기
------------
moyamoya's work
JavaScript Guide
JavaScript 강좌
Cyber Web Shool에 오신것을 환영합니다.
Voodoo's Intro to JavaScript

JSP

Beans를 사용하여 회원제 사이트를 만들자!
WebDox
http://okjsp.pe.kr
http://www.4offline.org/
http://www.jspmaster.com/
http://www.javanuri.net/DirServ?sId=JN&cmd=homePage
http://www.doubleiq.pe.kr/

http://www.javaservice.net/

자바스터디 네트워크
Welcome to Yongwoo's Park
Jimmy(진민)의 홈페이지
JAVA 묻고 답하기
JAVA 관련 사이트
Web Engine Sample Servlets

Resin Download
http--javastudy.co.kr-docs-lec_javaweb-
JSP Master에 오신것을 환영합니다.
JSP School
jspSmart
Java Servlet Technology
JavaServer Pagessupfont size=-2TM-font-sup Technology
JSP 강좌
Java(TM) 2 Platform, Enterprise Edition - Documentation
java Server Page API

포럼

Java Developer Connection Forums
Java Network Programming, Second Edition
JAVA 관련 사이트
Java(TM) 2 SDK Documentation


자바 웹 서버/JSP/서블릿

GNUJSP

자바 튜토리얼

자바 빈번한 질문과 답(FAQ)

자바 공개 소스

  • Some Character Encoders in Java(BASE64, UUENCODE, ...)
  • Tim Macinta's Java Swapware
  • Metrochat
  • LazloFont
  • How to access a RS-232 port from Java?
  • JavaChat 1.0, a distributed Java applet
  • Jim Buzbee's Hershey Font Page
  • The Java Cup International Contest Winners Circle
  • Simple Java Servers
  • Java Distributed TCP/IP Message Handling System written by Radu Sion
  • Radu Sion의 소스
  • Rich Burridge Home Page
  • http://www.dd.transnet.de/~meissner/site/java/CreditRoll.html
  • Typewriter Applet 
  • 자바 뉴스그룹/Java Community

    국내 자바 사이트

  • yoonforh의 자바 묻고 답하기 게시판
  • 김덕태 님의 자바 1.1 한글 관련 내용
  • 한국 자바 개발자 컨퍼런스
  • MobileJava Developer Community
  • 자바 문서 한글화 사이트(자바 문서 한글화에 참여할 뜻있는 분들을 기다리고 있습니다.)
  • 김필호 님의 자바와 한글 게시판
    유료 자바 게시판이며 답변이 신속, 성실하게 올라옵니다.
  • 김필호 님의 자바 Q&A 게시판
  • 강신동 님의 Korea Java Developer Connection
  • Whang's Java List Version 2.0
  • Java FAQ - Korean Version
  • 광운대 자바랜드(JavaLand:자바네 동네)
  • 이경하 님의 자바 페이지


  • 자바 온라인 매거진




    자바 리소스 디렉토리

    자바 기술

  • Pointers for Research on Java Implementation

    Threads/Concurrency

  • The Java Memory Model
  • package util.concurrent (by Doug Lea)
  • (Book) Concurrent Programming in Java - Design principles and patterns 2nd ed.(by Doug Lea)
  • JINI

  • The JINI COMMUNITY
  • Jan Newmarch's Guide to JINI Technologies(A tutorial)
  • 지니에 흥미를 가지고 있는 그룹(Jini Korea Interesting Group)
  • JNDI

  • Java(TM) Naming & Directory Interface (JNDI(TM))
  • Internationalization

  • Writing Global Programs
  • RMI

  • rmi-users.logfile by thread
  • java.rmi Properties
  • sun.rmi Properties
  • JNI

  • Frequently Asked Questions - JavaTM 2 SDK v1.2 and JNI
  • JDBC

  • JDBC Frequently Asked Questions
  • http://splash.javasoft.com/jdbc/jdbc.drivers.html
  • George Reese's Java Pages(JDBC-mSQL 홈페이지)
  • The JDBC(tm) database access API.
  • MsqlJava(mSQL.class) Home Page
  • 오러클 JDBC 드라이버 다운로드
  • 자바 빈즈

    Java Imaging

    Java Card

    자바 컴파일러

    자바 역컴파일러

    자바 Obfuscator(decompile 방지 툴)

    자바 C 번역기

    오피스 웨어

    메일 프로그램

  • 큐빅 메일


  • 자바 파운데이션 클래스 - Swing

  • Java Foundation Classes
  • Swing by Matthew Robinson and Pavel Vorobiev - an online avaialbe swing book
  • Netscape IFC: Overview
  • Netscape DevEdge - IFC
  • 마이크로소프트의 자바 사이트(AFC)
  • 자바 Plugins

  • Java Plug-in Product Homepage
  • Java Plug-in 1.2 Software FAQ
  • JAVA PLUG-IN SCRIPTING (자바 플러그인을 스크립트와 연동하기)
  • 자바 Collections API

  • Download JDK 1.1 Collections Package (to use JDK 1.2 Collections package in JDK 1.1)
  • reference objects

  • a Javaworld article : Interact with garbage collector to avoid memory leaks
  • Reference Objects and Garbage Collection
  • Package summary of java.lang.ref
  • Chapter 9 of Inside the Java 2 Virtual Machine Garbage Collection by Bill Venners
  • 자바 개발 환경

  • 시맨텍 까페
  • 비주얼 까페 팁 페이지
  • 시맨텍 비주얼 까페 
  • JBuilder Home page
  • 썬 자바 워크숍
  • 넷빈즈
  • JDE - Java Development Environment for Emacs
  • 마이크로소프트 (비주얼 J++/C++)
  • Visual J++ Web site
  • Using MSVC for Java
  • Using JDK1.1 in Visual J++
  • Microsoft SDK for Java Download
  • J2EE

  • Enhydra Enterprise - Open Source J2EE Application Server for the Enterprise
  • 자바 CGI

    Security

  • The Scoop on RMI and SSL
  • Securing Java RMI with the SSLava Toolkit
  • Creating a Custom RMI Socket Factory
  • JavaTM Secure Socket Extension (JSSE)
  • Frequently Asked Questions - Applet Security
  • Signed Applet Example (JDK 1.1.x)

    아래의 빈번한 질문과 답 사이트에 좀더 많은 정보가 있습니다.

  • Performance / Benchmark

  • Java Performance Tuning
  • Jack Shirazi's Java Performance Tuning website
  • The Java Performance Report
  • Java Benchmark
  • Volano Report
  • Java Versus C/C++ Benchmarks
  • Java Memory Management Performance
  • Improving Swing Performance
  • 자바 버그

    XML 관련

    UML

    자바 포팅 이슈

  • Java-Linux
  • jGuru Java on Linux FAQ
  • Platforms Supporting Java
  • IBM 자바 개발 센터
  • IBM's Java-related Technology
  • KAFFE - A virtual machine to run Java(tm)* code
  • alphaWorks
  • OSF Java Program Page
  • 넷스케이프의 JDK 1.1.x 지원
  • 썬의 자바 공식 페이지

  • 자바 홈페이지
  • Documentation Index
  • White Papers
  • Using HotJava(tm)
  • Java(tm) IDL
  • Java API Overview
  • Java: The Inside story
  • Java Coding Conventions(자바 코딩 관례)
  • Examples of Using the JDK 1.1 AWT
  • Java Platform Debugger Architecture
  • JIMI Software Development Kit - a class library for managing images
  • 자바 스크립트

  • JavaScript Developer Central(DevEdge Online)
  • JavaScript Documentation
  • Microsoft Scripting Technologies(JScript and VBScript)
  • WEBFX Javascript Examples
  • JavaScript Library
  • The JavaScript Index v2.0
  • Squatt Java/JavaScript Net-Zine
  • About Kyle's JavaScript Navigator Window
  • Microsoft Internet Explorer 관련

  • Microsoft Windows Script Technologies
  • 기타

  • James Gosling 홈페이지





    인터넷사업

    검색도구 사업
    iBizHelper

    웹기술

    ASP

    VB&SQL Technique Forum Site
    [웹매니아] 매니아포럼

    CGI

    HappyCGI
    unix 강좌

    PHP

    Home
    김성박의 PHP & MySQL & ORACLE 사이트
    PHP3 Manual File upload support
    풋내기의 myphp
    PHP Hypertext Preprocessor
    투덜이 PHP

    ssl

    ssl

    cgis

    남천이네 홈페이지
    ===================================================================
    자바 강좌 (기초부터 고급까지 몽땅!!)
    1. 자바 초보를 위하여 I - 자바입문
    2. 자바 초보를 위해 II - 초보자가 하기 쉬운 실수
    3. 자바 애플릿의 기초 I
    4. 자바 애플릿의 기초 II
    5. 자바 제어구조
    6. 자바 AWT
    7. 자바 이벤트
    8. 자바 네트워크
    9. 자바 데이타베이스 프로그래밍 - JDBC 와 Postgres
    10. 자바 데이타베이스 프로그래밍 - JDBC 와 mSql
    11. 자바 분산 프로그래밍 - RMI
    12. 자바 분산 프로그래밍 - CORBA
    13. 자바 분산 프로그래밍 - CORBA CALLBACK
    14. 자바 OS
    15. 자바 프로그래밍 - 자바 쓰레드
    16. 자바 프로그래밍 - 라운드 로빈 스케쥴러
    17. 자바 IO (입출력)
    18. 자바 그래픽 프로그래밍 - 폰트를 이용하자.
    19. 자바 웹 프로그래밍 - CGI 1편 (인터넷 검색엔진의 원리)
    20. 자바 웹 프로그래밍 - CGI 2편
    21. 자바 문서화 프로그램 - JAVADOC
    22. JACL 소개
    23. 자바 프로그래밍 - 다형성(폴리모피즘)
    24. 자바 Cut & Paste
    25. 자바스크립트를 이용한 자바 애플릿 제어
    26. 자바 그래픽 프로그래밍 - 스윙 1편
    27. 자바 그래픽 프로그래밍 - 스윙 2편
    자바 웹 프로그래밍 (Servlet/JSP)
    1.JSWDK 사용법과 간단한 JSP
    2.자카르타 프로젝트 소개
    프로그래밍 예제
    1.JPEG 프로그래밍 예제
    2.더블 버퍼링 예제
    3.이미지 스케일링
    4.텍스트 필드에서 글자를 오른쪽으로
    5.AWT에서 메뉴 숏컷
  •  

    출처 : Tong - kkj2188님의 Java통

    반응형

    채팅프로그램을 짜는데 자동으로 스크롤이 되지 않는것을 발견

    자바스터디에 있는 Q & A 게시판 보고 해결했습니다.


    원래 스크롤페인은 자동스크롤이 되게 구현되어 있는데

    채팅프로그램과 같이 쓰레드를 사용하는 곳에선

    스크롤내의 컴퍼넌트 값은 변화하나 스크롤은 변화되지 않는다고

    합니다.


    이를 구현하기 위해선


    변수로

    JScrollPane txtScroll;

    JTextArea txtArea; 선언되었다고 치면.


    txtArea.append("내용"); //내용이 추가될때마다 아래문장을 호출

    txtScroll.getVerticalScrollBar().setValue(txtScroll.getVerticalScrollBar().getMaximum());

    반응형

    자바 뉴스그룹/Java Community

      comp.lang.java.programmer

      국내

      han.comp.lang.java

      Java Lobby (A Java Developers' community)


    국내 자바 사이트

      JavaCafe.or.kr 사이트

      yoonforh의 자바 묻고 답하기 게시판

      김덕태 님의 자바 1.1 한글 관련 내용

      한국 자바 개발자 컨퍼런스

      자바 문서 한글화 사이트(자바 문서 한글화에 참여할 뜻있는 분들을

                                        기다리고 있습니다.)

      김필호 님의 자바와 한글 게시판 (유료 자바 게시판이며 유료인만큼

      답변이 신속, 성실하게 올라옵니다.)

      김필호 님의 자바 Q&A 게시판

      강신동 님의 Korea Java Developer Connection

      지니에 흥미를 가지고 있는 그룹

      Whang's Java List Version 2.0

      Java FAQ - Korean Version

      광운대 자바랜드(JavaLand:자바네 동네)

      홍종진 님의    자바의 한글 처리 문제에 관한 리소스

      이경하 님의    자바 페이지

     

    자바 온라인 매거진

      JavaWorld - IDG's magazine for the Java community

      Java Developer's Journal

      Javology: Contents

     

    자바 리소스 디렉토리

       The Community Resource for Jini™ Technology

       Dr.Dobb's Java

       Java Directory of dmoz-open directory project  

       JavaShareWare.Com

       KPCB: Keiretsu

       Gamelan: Earthweb's Java Directory

       JARS Java Resource Listings

       artima.com - a resource for Java and Jini developers

       Jini Links

     

    자바 기술

      Threads/Concurrency

          package util.concurrent (by Doug Lea)

          (Book) Concurrent Programming in Java

       JINI

          The JINI COMMUNITY

          Jan Newmarch's Guide to JINI Technologies(A tutorial)

          지니에 흥미를 가지고 있는 그룹(Jini Korea Interesting Group)

        JNDI

          Java(TM) Naming & Directory Interface (JNDI(TM))

        Internationalization

          Writing Global Programs

        RMI

          rmi-users.logfile by thread

        JNI

          Frequently Asked Questions - JavaTM 2 SDK v1.2 and JNI

        JDBC

         JDBC Frequently Asked Questions

         http://splash.javasoft.com/jdbc/jdbc.drivers.html

         George Reese's Java Pages(JDBC-mSQL 홈페이지)

         The JDBC(tm) database access API.

         MsqlJava(mSQL.class) Home Page

         오러클 JDBC 드라이버 다운로드

        자바 빈즈

          JavaBeans - Component APIs for Java

          Java Beans White Paper자바 빈즈 개발자를 위한 Coffee Grinder

          BeanContext Examples

          BeanContext Development Kit (BcDK) Homepage

          Java 1.2 Unleashed chapter 29 - Glasgow Developments

        자바 컴파일러

          IBM 사의 Jikes 컴파일러

          GCJ, The GNU Compiler fo Java Programming Language

        자바 역컴파일러

          Jad - the fast JAva Decompiler

          IceBreaker : A "Visual" Java decompiler/disassembler

          Mocha, the Java Decompiler

        자바 C 번역기

          Toba: A Java-to-C Translator

        오피스 웨어

           ThinkFree Office(trying to be MS Office compatible)

           로터스 e_Suite

           Download Marimba Software

           Unixoid Shell of Java(자바 셸)

         메일 프로그램

           피카소 메일

         자바 파운데이션 클래스 - Swing

           Java Foundation Classes

           Swing by Matthew Robinson and Pavel Vorobiev -

           Netscape IFC: Overview

           Netscape DevEdge - IFC

           마이크로소프트의 자바 사이트(AFC)

         자바 Plugins

           Java Plug-in Product Homepage

           Java Plug-in 1.2 Software FAQ

           JAVA PLUG-IN SCRIPTING (자바 플러그인을 스크립트와 연동)

         자바 Collections API

           Download JDK 1.1 Collections Package

         Reference objects

           a Javaworld article

           Reference Objects and Garbage Collection

           Package summary of java.lang.ref

           Chapter 9 of Inside the Java 2 VM Garbage Collection

        자바 개발 환경

            시맨텍 까페

            비주얼 까페 팁 페이지

            시맨텍 비주얼 까페

            JBuilder Home page

            썬 자바 워크숍

            넷빈즈

            JDE - Java Development Environment for Emacs

           

            마이크로소프트 (비주얼 J++/C++)

            Visual J++ Web site

            Using MSVC for Java

            Using JDK1.1 in Visual J++

            Microsoft SDK for Java Download

        자바 CGI

           Java CGI HOWTO: Executing a Java CGI Program

           Java CGI HOWTO

        자바 웹 서버/JSP/서블릿

           Jeeves Home Page

           The JSDK-Apache Project

           The JavaServer Pages

           The Jakarta Project(tomcat)
           
    Tomcat을 Apache 서버에 연결시키는 HOWTO

           GNUJSP

           allaire 사의 JRun

           Java Servlet API(Sun)

           Hrl's Servlet Express

           New Atalanta Comm.'s ServletExec

           The X- Jeeves Server and Servlets FAQ

        Security

           Frequently Asked Questions - Applet Security

           Signed Applet Example (JDK 1.1.x)

           아래의 빈번한 질문과 답 사이트에 좀더 많은 정보가 있습니다.

        Performance / Benchmark

           Java Performance Tuning

           Jack Shirazi's Java Performance Tuning website

           Java Benchmark

           Volano Report

           Java Versus C/C++ Benchmarks

           Java Memory Management Performance

        자바 버그

           The Unofficial Java Spec Report

        XML 관련

            REC-DOM-Level-1-19981001 Java Language Binding

            Working with XML - The JavaTM Api for XML Parsing (JAXP)

        UML

            OMG UML 1.3 specification

            UML 툴

            플라스틱 소프트웨어(국산)

            Together/J(free whiteboard version avail.)

            Rational Rose

            Argo/UML(free and open source)


     자바 튜토리얼

       JDC Training and Tutorials

       Server-side computing with XML, , JDBC, Swing and Servlets

       JRE Usage Example

       Programming in Java - A Tutorial by David Mitchell

       자바 1.1 이벤트 모델 요약 설명

       Java Documentation in Windows Help Format

      ->추천:윈도우 help 형식으로 된 자바 도큐먼트

       yoonforh의 자바 튜토리얼

       Trail Map: The Java Tutorial     추천:자바 공식 튜토리얼

       자바 클라이언트/서버 강의

       Be a Java Master with Examples

       The Java Developer: How Do I?

       Java Table of Contents by Richard G Baldwin

       넷스케이프의 ViewSource

       Enterprise JavaBeans Tutorial

     

    자바 빈번한 질문과 답(FAQ)

      SUNSITE's JAVA Frequently Asked Questions

                                    (FAQ list of newsgroup comp.lang.java)

       The Java(TM) FAQ  (a good FAQ also published as a book)

       자바 프로그램을 윈도우 NT의 서비스로 만드는 방법

       (1) 링크 모음

       (2) JNI 사용하여 구현한 예

        애플릿 서명 예제 - 자바 홈페이지의 보안 문제 페이지 참고

       (1) JDK 1.1.x의 경우

       (2) JDK 1.2.x의 경우

       넷스케이프 사의 서명 도구 페이지

       VeriSign 사의 객체 서명 FAQ

       익스플로러의 자바 서명(Trust-Based Security for Java)

       익스플로러의 자바 서명 FAQ

       Microsoft Java VM version check

     

    자바 공개 소스

       Tim Macinta's Java Swapware

       Metrochat

       LazloFont

       How to access a RS-232 port from Java?

       JavaChat 1.0, a distributed Java applet

       Jim Buzbee's Hershey Font Page

       The Java Cup International Contest Winners Circle

       Simple Java Servers

       Java Distributed TCP/IP Message Handling System

       Radu Sion의 소스

       Rich Burridge Home Page

       Joerg Meissner - priv@te szene - JAVA(CreditRoll.java)

       Typewriter Applet

     

    자바 포팅 이슈

       Java-Linux

       jGuru Java on Linux FAQ

       Platforms Supporting Java

       IBM 자바 개발 센터

       IBM's Java-related Technology

       KAFFE - A virtual machine to run Java(tm)* code

       alphaWorks

       OSF Java Program Page

       넷스케이프의 JDK 1.1.x 지원

     

    썬의 자바 공식 페이지

       자바 홈페이지

       Documentation Index

       White Papers

       Using HotJava(tm)

       Java(tm) IDL

       Java API Overview

       Java: The Inside story

       Java Coding Conventions(자바 코딩 관례)

       Examples of Using the JDK 1.1 AWT

       Java Platform Debugger Architecture

       JIMI Software Development Kit - a class library for managing

     

    자바 스크립트

       JavaScript Developer Central(DevEdge Online)

       JavaScript Documentation

       Microsoft Scripting Technologies(JScript and VBScript)

       WEBFX Javascript Examples

       JavaScript Library

       The JavaScript Index v2.0

       Squatt Java/JavaScript Net-Zine

       About Kyle's JavaScript Navigator Window

    오픈지엘 - 오픈지엘 공식 사이트, 생각외로 뉴스가 잘 올라온다.
    NeHe Tutorial - OpenGL Tutorial. 내용도 좋지만, 각 플랫폼, 언어별로 구현된 소스가 유용.
    OpenGL man page - OpenGL MAN 페이지. 일종의 매뉴얼.
    OpenGL Manual - SGI 의 OpenGL 1.2 매뉴얼
    GL4Java - 자바를 위한 OpenGL
    OpenGL Win32 Tutorial - OpenGL Win32 Toturial
    GLUT3 - glut3 소스 및 다운로드.
    glut for win32 - Glut for Win32 DLL Download
    OpenGL Gamedev - OpenGL Gamedev FAQ & Mailing list
    cannon_smash - OpenGL 로 만든 오픈소스 탁구게임
    OpenGL FAQ - OpenGL FAQ
    OpenGL Reference Manual - 온라인북
    OpenGL Programming Guide - 온라인북
    OpenGL 수퍼 바이블 - 온라인북
    OpenGL 튜토리얼 링크 - OpenGL 튜토리얼 링크
    OpenGL 게임개발 FAQ - OpenGL 게임개발 FAQ
    GLVelocity - OpenGL 관련 소스 및 뉴스, 토론 등등
    DelphiGL - Delphi 로 하는 OpenGL
    Yindo - 차세대 웹 애플리케이션
    Dip2K's OpenGL - 여러 GL 관련 예제가 있는 국내 OpenGL 관련 사이트
    GLScene - OpenGL Solution for Delphi
    FLTK - OpenGL 그래픽 유저인터페이스 라이브러리(LGPL)
    Quesa - Apple Quick Draw 3D Open-source Implementation
    GLdomain - 파티클, 그라비티 등에 관한 튜토리얼
    게임튜토리얼 - 오픈지엘 튜토리얼 및 MP3 라이브러리, 쓰레드 예제 등등이 있다.
    Delphi3D - 델파이와 OpenGL를 사용한 최신 그래픽 기술에 관한 정보
    DirectX Dev - Developer-only Forum
    DirectX8 FAQ - Microsoft DirectX 8 개발자 FAQ
    DirectX 개발 - DirectX Developer Center (MSDN)
    XBOX - Microsoft XBOX
    Mr.Snow's column - DirectX8 튜토리얼
    Gamedev DirectX - Gamedev.net's DirectX resources
    DrunkenHyena - Direct3D 8.0 Tutorial
    Meltdown2001 - DirectX Meltdown2001 presentation
    ShaderStudio - Vertex/Pixel Shader 를 쉽게 쓸 수 있는 툴.
    Pixel/Vertex Shader - 톰스하드웨어의 픽셀/버텍스 쉐이더에 대한 간단한 정리
    GDC2002-DirectX - Game Developer's Conference 2002 - MS DirectX Tutorial
    STEEL 프로그래밍 리소스 - 200여개의 그래픽 관련 문서 및 튜토리얼 모음
    그래픽스문서찾기 - 다운로드는 안되고 문서명만 검색되네.
    파일포맷 - 모든 파일 포맷에 대해서.
    게임프로그래밍뉴스그룹 - comp.games.development.progrmming.algorithms
    GPGStudy.com - Game Programming Gems 스터디 사이트
    KGDA - 한국 게임 개발자 협의회
    FlipCode - 게임개발관련 뉴스와 자료들
    GameDev.Net - game developer network
    가마수트라 - game developer webzine.
    nVidia Developer - nVidia 사의 개발자 네트워크
    ATI Developer - ATI 사의 개발자 네트워크
    Matrox Developer - 매트록스 사의 개발자 네트워크
    게임-디벨로퍼 - 게임 개발 관련 자료 검색 전용
    쿼터니온 - 가마수트라의 쿼터니온 설명
    문서들 - 가마수트라의 프로그래밍 관련 문서
    gdconf - 게임 디벨로퍼 컨퍼런스
    디벨로퍼 코너 - 개발자들이 떠드는 곳
    인텔 - 개발자 네트워크 게임부문
    게임도큐먼트 - 심형근님의 게임개발 관련 각종 문서들
    게임튜토리얼 - 게임관련 튜토리얼, 문서, 토론 등등
    씽크존 - 가상 온라인 월드 개발자 네트워크
    Genesis3D - 소스가 공개된 게임엔진. 유명.
    Jet3D - Genesis3D를 기반으로 하는 차기 버전(소스공개)
    타이탄프로젝트 - 퀘이크3의 맵을 읽는 엔진(소스공개)
    AfterShock - GPL 퀘이크 렌더러
    PolyCount - 퀘이크3/2, 언리얼, 하프라이프 등의 모델데이타.
    소스포지의 3D 파운드리 - 소스포지의 공개된 여러 3D 관련 프로젝트 및 컨텐츠
    3D Engine List - 3D Engine List - 우와 많다.
    DDG Toolkit - Digital Dawn Graphics Toolkit (C++ OpenGL Terrain Toolkit)
    OpenFX - 오픈소스 공개 모델러, 렌더러, 애니메이터(게임엔진아님)
    FLY3D - FLY3D 게임 엔진. 책도 있음.
    Crystal Space - 크리스탈 스페이스-멀티플랫폼 3D 게임 엔진
    매직소프트웨어 - 3D Game Engine Design 이라는 책 소스 및 유용한 공개코드
    Nevrax - GPL 게임 엔진(AI, 3D, 네트웍 포함. 베이어패치 및 아웃도어용)
    OGRE - 객체지향 그래픽 렌더링 엔진(베지어패치 및 퀘이크 렌더러 등)
    RadonLabs - Nebula Device 라는 공개엔진. Nomads 라는 게임에 사용.
    NeoEngine - 네오엔진. 멀티 플랫폼 LGPL 게임엔진
    크리스 헤커 - 크리스 헤커의 게임물리학 및 텍스쳐매핑관련 PDF 문서가 있다.
    피터 린드스트롬 - 꽤 읽어봄직한 논문들
    UNC GEOM - UNC 의 물리시뮬레이션, 기하학관련 리서치 그룹
    casManG's 3D 게임 아트 - 3D 게임관련 모델링 튜토리얼 자료 많다.
    ingava - Q3A Prgramming/Modeling Tutorial
    Motion - 캐릭터 애니메이션에 관한 자료 및 문서
    MathEngine - 실시간 물리엔진, 데모
    Art Of Assembly - Art Of Assembly : 어셈블리 책 - 웹에 책 내용 다 있음.
    게임인공지능 - 게임관련 인공지능
    블랙북 - 마이클 애브래쉬의 블랙북 PDF
    게임 모델링 툴 링크 - 모델링 툴, 스키닝 툴, 튜토리얼 및 리소스 링크
    Creative - 크리에이티브사의 게임 개발 관련 자료
    Amit's Link - Amit's Game Programming Information
    리스텍 - 리스텍(lithtech) 게임엔진
    NetImmerse - NDL사의 NetImmerse 엔진
    Audiere - 오디에르. ogg, wav, mod, s3m 등을 지원하는 오디오 라이브러리(LGPL)
    GDZine - 게임 개발자를 위한 웹진
    Torque엔진 - Tribes 2 에 쓰였다는 Torque 게임 엔진. 개발자 당 $100 이란다.
    HighEnd3D - 하이엔드 쓰리디. 마야, XSI, Shake 커뮤니티
    씨쥐링크 - 컴퓨터 그래픽 관련
    3D Links - 3D 관련 링크 및 뉴스
    디지탈 프로듀서 - 디지털 영상 편집 및 3D 관련 웹진. 공짜 3D 모델도 있음.
    아발론.뷰포인트 - 뷰포인트사의 공개 모델링 데이타들이 있는 곳.아발론
    디지탈에이젼트 - 실사와 비슷한 3D 캐릭터가 말을 한다.(국내)
    모델뱅크 - 뷰포인트사의 모델뱅크-상용
    Steven Stahlberg 갤러리 - 여자 3D 캐릭터 죽~인다
    3D Artisan - 국내 3D 관련 잡지
    드림모션 - 국내 모션캡쳐 장비 회사
    OpenEYE - 3DS MAX 사용자 그룹
    3D 캐릭터 - 나잘난박사의 이상호님 홈
    더-포즈 - Poser 애니메이션을 판다.
    포져 - 3D 인체 포즈 및 애니메이션 툴. 훌륭...짝짝짝.
    3D필름메이커 - 3D 영상 및 컨텐츠 개발 관련
    밀크쉐이프3D - 쉐어웨어 로우 메쉬 에디터, 애니메이터(하프-라이프모델 지원빵빵)
    안드로이드월드 - 안드로이드 관련 정보
    소다플레이 - 마치 애완동물을 괴롭히는 것 같은...
    메타모션 - 실시간 모션캡쳐 시스템
    제니류님의 홈 - 마야 3D 케릭터 모델링과 애니메이션
    CGLand - 다수의 CG 갤러리 및 링크
    Digital Art Zone - Poser Map & Model 파는 곳
    Motion Analysis - Motion Analysis : Motion Capture System/Software
    Zygote - 상용 3D 모델 데이타
    Famous3D - Facial motion-capture 솔루션
    3D Artists - 세계적인 3D Artists 들의 작품 감상 및 포럼
    소아나라 - 3D 아티스트. 실사와 거의 흡사한 이미지. 국산.
    Kludge3D - 3D Modeling Tool (LGPL)
    니트정보통신 - FilmBox, Toonz, Vicon 등의 디스트리뷰터
    GMAX - 게임 MOD 개발용 gmax (공짜)
    HCIKorea - 인간과 컴퓨터 상호작용 연구회
    JoyCG - 여러 아티스트들의 3D 작품을 구경하고 싶을 때
    KBS 기술연구소 - 방송에 관계된 여러 기술 정보
    모캡코리아 - 모션캡쳐관련 서비스
    Terragen - 공개용 지형 생성 툴
    두모션 - 국산 기계식 모션캡쳐 시스템
    Quest3D - 실시간 3D 멀티미디어 툴
    소프트 쉐도우 - Michael Herf & Paul Heckbert 의 소프트쉐도우에 관한 페이지
    쉐도우 - 쉐도우에 관한 여러가지 자료
    Jeff Lander - Jeff Lander의 게임개발관련 문서
    리얼타임렌더링 - 리얼타임렌더링책선전 및 각종 링크
    Math3D - The 3D Computer Graphics Math Library Homepage
    New York Univ. - New York Univ. Media Research Lab
    Red3D - Non-photorealistic Rendering Links
    쿼터니온 - 쿼터니온링크
    SIGGRAPH PROCEEDINGS - ACM Digital Library(SIGGRAPH Proceedings Listing)
    WhyQuat - Do you really need quaternion?
    Nurbs++ - C++ Nurbs Library
    매직소프트웨어링크 - 매직소프트웨어의 그래픽관련 링크
    gdconf 2000 - Game Devel. Conf. 2000 procedings
    gdconf 2001 - Game Devel. Conf. 2001 procedings
    CFXWEB - 데모와 게임 개발에 관한 문서, 소스 및 갤러리
    I_COLLIDE - 인터액티브하며 정확한 충돌 감지 라이브러리
    ACM JGT - Journal of Graphics Tools
    RTRT - RealTime RayTracer
    피에르의 링크 - 3D, 수학, 물리관련 각종 링크
    GeometricModeling - On-Line Geometric Modeling Notes. 맘에드는 주제들.
    Heriot-Watt - Heriot-Watt University Graphics Notes. 설명양호.
    미시간주립대 - 미시간주립대 그래픽스 노트. 프레젠테이션
    Don Lancaster's Guru's Lair - Cubic Spline Library (PDF 서비스)
    Paul Bourke - Curve 및 그래픽스 관련 노트 및 C 소스코드
    Journal of Graphics Tools - 실제 현장에 바로 응용할 수 있는 그래픽스 연구
    RayTracing - RayTracing Tutorial
    TomasMöller - Real Time Rendering 의 저자
    CassEveritt - nVidia 사 개발자, Per-Pixel Lighting 관련 연구
    DavidBarraff - 현 Pixar (전 CMU). 강체시뮬레이션관련
    Jos Stam - Alias|Wavefrot 사 근무. FFT 에 기반한 간단한 Fluid Solver
    efg's 링크 - 시뮬레이션과 모델링에 관한 링크모음
    그래픽스젬스 - 차례 및 소스 다운로드
    BOID - BOID(새들의 무리?) 관련 정보(인공지능)
    NatureWizard - 그래픽으로 자연을 표현하기 위한 정보들
    오픈넙스 - 공개용 넙스(NURBS) 파일 포맷
    Jan Kautz - BRDF, Shadow Bumpmap, Realtime Bumpmap 등등
    ColDet - 공개 충돌 검사 라이브러리
    University of Leeds - 여러가지 그래픽스 관련 기본적인 튜토리얼.
    스탠포드대학 - 컴퓨터 그래픽스를 위한 수학적 방법(웨이블릿, 몬테카를로...)
    Water - Rendering and Animation of Liquid
    인텔3D 문서 - 인텔의 3D 소프트웨어 개발 관련 문서들
    GTS - GNU Triangulated Surface Library
    LargeModels - 공짜로 다운받는 무지 큰 3D 모델 파일들.
    GDAlgorithm - Game Development Algorithm 메일링 리스트
    PocketMovies - PocketMovies
    Projectmessiah - Projectmessiah
    Anzovin Studio - Anzovin Studio
    AtomFilims - AtomFilims
    4CSCG - 컴퓨터 그래픽 아트 관련
    PepeLand - Daniel Martinez Lara
    M. Gleicher 의 홈페이지 - 캐릭터 애니메이션 수업 및 모션 에디팅 논문 자료
    캐릭터 애니메이션 강의자료 - 위스콘신
    Thalmann - Thalmann's Home
    CG KAIST - KAIST COMPUTER GRAPHICS LAB
    Motion Editing Lecture - KAIST Motion Editing & Manipulation Class
    서울대 그래픽스 랩 - 서울대 대학원 그래픽스 & 미디어 랩
    Postech VR lab - 포항공대 VR 랩
    H-Anim - Humanoid Animation Working Group
    Virtual Humans - ben's Virtual Humans Page
    Bio Virtual - 3차원 얼굴 뷰어
    모션캡쳐 - 모션캡쳐 리서치
    한국생산기술연구원 - 메카트로닉스 연구실(로봇관련정보)
    Robotics - Mathematical Methods for Robotics and Vision
    Linear Algebra - Computation Methods in Linear Algebra
    MotionEditing Web - M.Gleicher 의 모션에디팅 메일링리스트
    애니큐브 - 자신의 아바타를 만든다.
    Heloli.com - 멋진 일본 캐릭터 애니. 카툰렌더링. 치마펄럭. 머리약간 펄럭.
    경사면 걷기 - 경사면에서 걷기동작 생성에 관한 논문
    스프링인간 - 플래쉬로 만든 고무줄 꼭두각시
    DX8스키닝 - DX8 버텍스 쉐이더에 대한 간단설명 및 스키닝 등에 대한 상세한 설명
    게임데브넷 - Character Animation with DirectX 8.0
    캐릭터애니관련책 - Programming Dynamic Character Animation
    CoderCorner - Pierre Terdiman의 Realtime Cloth, Flexporter, Z-Collide 등등 구경
    Advanced Character Physics - Thomas Jakobsen의 GDC 2001 강연자료
    ESC - 가상 나이트클럽.
    메타휴먼 - 메타휴먼? 재미있는 프로젝트들을 연구하는 그룹.
    Cal3D - 공개 캐릭터 엔진
    Watt - 3D게임, 실시간렌더링 및 캐릭터 애니 강연자료
    Expression - 공개 페이셜 애니메이션 툴킷(TTS, 맥스익스포터, 스크립팅)
    LinuxGames - 리눅스게임에 관한 뉴스
    리눅스 게임 톰 - 리눅스 게임에 관한 많은 뉴우스들.
    OpenAL - Loki 사의 오디오 라이브러리
    SDL - 쓸만한 멀티플랫폼 멀티미디어 라이브러리
    인드리마 오픈소스 프로젝트 - 인드리마 콘솔을 위한 오픈소스 프로젝트 네트워크
    Broodcast2000 - 리눅스시스템을 위한 실시간, 비선형 오디오 비디오 편집기 (소스공개)
    Inovation3D - 오픈소스 3D 모델링 툴, 키프레임 애니메이션과 본도 지원(간단하게...)
    Linux Game Dev. in GDC2001 - Linux Game Dev. in GDC2001
    리눅스3D - 리눅스 3D 게임 뉴스
    리눅스 3D (org) - 리눅스 3D 뉴스
    LinuxVideo - Linux Video and DVD Project
    인드리마 개발자 네트워크 - 리눅스 게임 콘솔 인드리마 개발자 네트워크
    g-Matrix - kaswan 님의 게임 프로그래머를 위한 3차원 엔진 만들기
    울트라 감자 - 뜨거운 감자 김성수님의 개인 홈 - 3D 의 몇몇 강좌와 게시판이 있슴당.
    ALTOZ - 인공생명을 연구하는 (주)오즈 인터미디어의 인공생명팀
    허영준씨개인홈 - 캐릭터 애니메이션에 관한 자료
    GTC - 성균관대학교 게임 기술 개발 지원 센터
    RedPixel - ACE, STL, Lua, OpenGL 등에 대한 정보.
    Kano - 실시간그래픽스에 관심있는 일본개발자. GPG 일본판 번역자
    Ádám Moravánszky - ShaderX 에 Bump Mapped BRDF Rendering 파트집필
    Thomas Jakobsen - Game Engine, Physics, Character Animation, Denmark
    Pion - 파연님 개인홈. 게임 개발 및 번역.
    Cass Everitte - nVidia 사에서 일하는 카스 에버릿. 몇몇 오픈지엘 예제
    Hoppe - 메쉬 최적화 및 기타 유용한 자료들. MS 사 댕김.
    Newtype - MaxScript, D3D 등등의 여러 개발관련 정보.
    Kaliver - 이주형님 개인홈. ASE Viewer 및 Qu Engine
    쥐그라운드 - 게임 그라운드. 게임에 관련된 여러가지 정보들.
    브렌더 - 최고의 공개 3D 모델러/애니메이터
    demonews - 3D 게임 데모 정보
    DPlayer - 댄스 플레이어. 무지 보기 좋다..
    게임스팟 - 게임스팝 - 게임관련웹진
    게임디벨로퍼코리아 - 게임디벨로퍼지 한국판
    뷰포인트 - 뷰포인트사의 웹3D (메타스트림)
    iWorld3D - 국내 Web3D 개발업체
    와일드 탄젠트 - Web3D, Web Streaming, ....
    sumea - 환상적인 자바 3D 영상
    WEB3D 콘소시움 - 웹3D 콘소시움
    Blaxxun3D - X3D 포맷을 지원하는 자바로 만든 3D 클라이언트
    펄스3D - 꽤 괜찮은 캐릭터 애니메이션
    슈퍼스케이프 - 워크맨 등의 가전제품에 써먹을만한...질은 별루...
    샤우트3D - 자바 기반으로 만들어짐. 툴킷도 제공
    사이코어 - Cult3D, CultEffect, PuppetTime 등의 프로덕트
    드림스케이프 - 국내 웹3D 관련
    GIBLE3D - 국내 웹 3D 뷰어 개발 업체
    QEDSoft - 3D 웹 에이전트
    오락닷컴 - 실시간 스트리밍 3D 춤 강좌 서비스
    디지털에이전트 - 3D 캐릭터가 채팅 내용을 따라 읽어주는 등...
    리눅스사랑넷 - 리눅스사용자라면 꼭 가봐야 할 사이트
    KLDP - 리눅스사용자라면 꼭 가봐야 할 사이트
    리눅스시스템관리 - 리눅스 시스템 관리자를 위한 홈페이지
    Debian-KR 메일링 리스트 - 데비안-KR 메일링 리스트 아카이브
    Trinux - 디스켓 3장에 들어가는 리눅스
    linux-firewall - linux-firewall
    certcc.or.kr - 한국정보보호센터
    쉘프로그래밍 - 쉘프로그래밍매뉴얼
    SAINT - 보안분석툴
    securityfocus.com - 보안관련정보
    정규표현식설명 - 정규표현식에 대한 설명
    Thinkpad Tool - Thinkpad Notebook Linux Configuration Tool
    네트워크프로그래밍 - BeeJ's Guide to Network Programming
    webalizer - 웹 로그 분석툴
    MRTG - 서버 네트워크 통계 프로그램
    VirtualPC - 윈도우에서 리눅스를 깔 수 있다는
    IBM Linux - 한국 IBM의 리눅스 기술문서 번역 및 자료
    Linux C - Linux C 프로그래밍에 관한
    헤커되기 - 헤커가 되는 법(에릭.S.레이몬드)
    데비안사용자 - 국내 데비안 사용자 그룹
    리눅스 가제트 - 리눅스관련 웹진
    프렉 - 헤킹관련 웹진
    CygWin - GNU + Cygnus + Windows
    GNU GPL FAQ - GPL 에 관련된 빈번한 질문과 답
    phpBB - PHP, MySQL 로 만드는 커뮤니티. 디자인이 깔끔.
    KTUG - Korea TeX Users Group
    KLDP 닷넷 - 소스포지와 같은 국내의 오픈소스 프로젝트 서비스 제공
    Emacs-KR 홈페이지 - 최고의 에디터인 Emacs 의 사용자 모임
    Emacs 설치 - 이맥스 윈도우즈용/유닉스용 설치에 관한...
    정재목씨의 Emacs - 정재목씨의 Emacs 관련 페이지
    NT Emacs - Windows 95/98/NT 용 Emacs 설명
    Elisp Manual - Emacs Lisp Programming
    Elisp intro page - Elisp Introduction & link
    Elisp Reference - Elisp Reference Manual
    VisEmacs - Visual Studio 내장 에디터로 Emacs 를 사용하게 해 줌
    Doxygen - C++ 개발 문서화 도구
    HeaderDoc - C/C++ 헤더파일을 HTML 로 문서화(펄)
    CVS Home - 버젼 컨트롤 시스템
    RCS - GNU Revision Control System
    CS-RCS - 윈도우용 RCS. 1인용은 공짜
    ViewCVS - CVS 레파지터리를 웹상에서 보기
    ActiveState - ActivePerl, ActiveTCL 등등
    Cetus링크 - 프로그래밍관련 방대한 링크
    ZipArchive - C++ Zip 압축 라이브러리(소스동봉, zlib 사용)
    zlib - zip 라이브러리
    Data Compression Lib - 데이터 압축 관련 정보(인덱스, 링크, 소스)
    GNU Win32 - Win32 용 각종 GNU 라이브러리 소스(libjpeg, crypt, freetype, zlib 등등)
    루아 - 엘레강트하고, 심플하며, 빠르고, 가벼우며, 확장성이 용이한 스크립트 언어
    공개 컴파일러들 - 각종 언어에 대한 공개 컴파일러 목록
    CGShaders - C for Graphics. 사용자그룹을 가장한 공식홈
    UPX - 실행 프로그램 압축 유틸리티. 여러분의 프로그램이 작아집니다.
    oggvorbis - 오그 보비스 플러그인, SDK 및 소스 다운로드
    ACM - The ABCs of Writing C++ Classes
    Guru of the Week - Guru of the Week
    STL - Standard C++ Library Tutorial 한글
    STL - Standard C++ Library (SGI)
    STL - Visual C++ 의 STL Sample
    C++ FAQ - C++ FAQ
    MSJ - Microsoft Systems Journal
    VC++ STL Reference - VC++ STL Reference
    Thinking in C++ - Thinking in C++ 온라인 북
    코드 구루 - 코드 샘플이 많은 개발관련 사이트
    OpenIL - Open Image Library
    Win32ASM - Iczelion's Win32 Assembly Homepage
    Priority Que & STL - by Mark Nelson (Dr. Dobb's Journal)
    STLPort - 범용, 공개, 오픈소스 STL
    데이타 압축 - 데이타 압축 관련 링크 모음
    C++ Optimize - C++ 최적화 방법에 대한 내용
    STL newbie - STL 초보자를 위한 문서
    코드프로젝트 - 다양한 장르의 프로그래밍 강좌
    MTL - Matrix Template Library
    몇몇책들 - Effective C++, More Effective C++, Design Patterns
    CPlusPlus - C++ Tutorial
    AssemRef - Assembler Programmer's Reference
    공짜 C/C++ 컴파일러들 - 공개 C/C++ 컴파일러들에 대한 상세한 목록
    어셈러브 - 국내 어셈블리 관련 홈페이지
    C++ Online Books - C++ 관련 공짜 온라인 북 링크
    STL Document - RogueWave Software 의 STL 튜토리얼 및 레퍼런스
    Blitz++ - 객체지향 공학용 수치계산 라이브러리(C++)
    행렬 라이브러리 비교 - C/C++ 용 행렬 라이브러리 비교평가
    Math Fun Facts - 수학의 재미있는 사실들
    AKROWNE's Home - 수학관련 유용한 정보(책 미러 많다)
    Math of DFD - Mathematics of DFD(Discrete Fourier Transform)
    그리스문자 읽는법 - 그리스 문자를 읽는 방법
    Numerican Recipes in C - Numerican Recipes in C 온라인 북
    Mech-World - 기계공학관련(동역학,수치해석) 강의노트 및 관련정보
    Forgodot - 미적분학 원격 강의
    NetLib - 수학관련 문서 및 소프트웨어 모음집
    MathBook - Online Books and Lecture Notes in Mathematics
    물리의 이해 - 경상대학교의 물리학 노트. 플래쉬 및 자바애플릿.
    수학사랑 - 수학교사들의 연구단체
    대한 수학회 - 대한민국 수학 학회.
    PlanetMath - Wikipedia+MathWorld+Slashdot
    MathWorld - 수학 백과 사전. 방대한 자료 상세한 설명.
    GIF math - 각종 수학 식에 대한 GIF 이미지 모음
    Physically Based Modeling - (Online Siggraph Course notes)
    Rigid-Body Link - Rigid-Body Link
    RigidTutorial - Rigid Body Simulation Tutorial
    ODE - Open Dynamics Engine, 공개 다관절 강체 동역학 엔진
    Gene's RealtyRoad - ODE 로 만든 사람 계단에서 굴러 떨어지기
    Dynamo - Dynamic Motion library
    3DPhysics - 3D Physics 관련 설명
    옥스포드다이나믹스 - 자동차 시뮬레이션 라이브러리. (상용)
    BuggyDemo - ODE 를 사용한 3D 자동차 시뮬레이션 데모. 소스 제공
    TJ의 리소스 - Thomas Jakobsen의 인터액티브 물리 시뮬레이션 관련 리소스들
    하복 - 하복(havok) 물리 엔진(상용)
    Math 엔진 - 물리 엔진 까르마(Karma) (상용)
    GamePhysics Book - David H. Eberly 의 게임 피직스 북. 아직 출간 안됨.
    SOLID - 상용 3D 충돌 라이브러리. 개인사용은 공짜.
    OpCode - 삐에르 테디맨의 공개 충돌 라이브러리. RAPID나 SOLID와 비슷한.
    반응형
    자바에서는 Timer 와 TimerTask 를 이용한 주기적인 작업이 가능합니다.
    예를 들어 1분에 한번씩 특정 디렉토리를 감시한다던지.
    매일 밤 12시에 백업을 실시한다던지...
    이런 기능이 필요하다면 Timer 와 TimerTask 를 사용해보세요.
    아래 예제는 1초에 한번씩 카운트 라벨이 바뀌는 스윙 프로그램입니다.

    import java.util.TimerTask;
    import javax.swing.*;
    import java.awt.*;
    import java.util.Timer;

    public class LabelChange {

    public static void main(String[] args) {
    MyFrame frame = new MyFrame();

    Timer timer = new Timer();
    //TimerTask, Delay시간, 동작주기
    timer.schedule(new LabelChangeTimerTask(frame), 0, (1 * 1000));
    }
    }

    class MyFrame
    extends JFrame {

    private JLabel label = null;

    public MyFrame() {
    this.getContentPane().setLayout(new BorderLayout());
    label = new JLabel();
    this.getContentPane().add(label, BorderLayout.CENTER);
    this.setSize(200, 200);
    this.setVisible(true);
    }

    public void setLabelValue(String msg) {
    label.setText(msg);
    }
    }

    class LabelChangeTimerTask
    extends TimerTask {

    private MyFrame frame = null;
    private static int cnt = 0;

    public LabelChangeTimerTask(MyFrame frame) {
    this.frame = frame;
    }

    public void run() {
    cnt++;
    frame.setLabelValue(cnt + "");
    }
    }
    <출처:ibm.com/developerworks/kr>
    반응형

    import java.awt.*;
    import javax.swing.*;

    public class JImagePanel extends JPanel {
    Image image;

    public JImagePanel(Image image) {
    this.image = image;
    }

    public void paintComponent(Graphics g) {
    g.drawImage(this.image, 0, 0, this);
    }

    public static void main(String[] args) {
    JFrame frame = new JFrame();
    ImageIcon icon = new ImageIcon("d:\\java.gif");
    JImagePanel panel = new JImagePanel(icon.getImage());
    frame.getContentPane().add(panel);
    frame.setSize(300,300);
    frame.setVisible(true);
    }
    }
    <출처:ibm.com/developerworks/kr>

    반응형
    자바 API에서 제공하는 것은 가상머신 관련된 것 뿐이라서 실제 메모리하고는 상관이 없습니다.

    JNI를 사용해도 되겠지만 C 프로그램과는 친하고 싶지 않아서리... ^^ 꽁수를 부려봤습니다.



    윈도우 플랫폼의 메모리 사용량은 systeminfo 라는
    윈도우 명령을 사용해서 가능하기는 합니다만...
    윈도 XP 이상에서만 지원되죠. 98 같은데서는 안됩니다 =.=

    import java.io.*;

    public class MemoryInfo {
    public MemoryInfo() {
    }
    public static void main(String[] args) {
    try {
    String output, err;
    String[] cmd = {"systeminfo.exe"};
    Process proc = Runtime.getRuntime().exec(cmd);

    BufferedReader stdout = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    BufferedReader stderr = new BufferedReader(new InputStreamReader(proc.getErrorStream()));

    try {
    while ( (output = stdout.readLine()) != null) {
    if (output.indexOf("메모리") > 0) {
    System.out.println(output);
    }
    }
    while ( (err = stderr.readLine()) != null) {
    System.out.println(err);
    }
    }
    catch (IOException e) {
    System.exit(0);
    }
    }
    catch (IOException e1) {
    System.err.println(e1);
    System.exit(1);
    }
    }
    }

    ============== 실행 결과 =============

    총 실제 메모리: 511MB
    사용 가능한 실제 메모리: 158MB
    가상 메모리: 최대 크기: 2,048MB
    가상 메모리: 사용 가능: 2,004MB
    가상 메모리: 사용 중: 44MB
    <출처:ibm.com/developerworks/kr>
    반응형

    레지스트리는 운영체제와 프로그램에서 필요한 정보를 담고 있는 데이터베이스와 비슷하다고 할 수 있다. 일반적인 윈도우 프로그램들은 레지스트리에 접근 할 수 있지만 자바 프로그램에서는 접근 할 수 없었다. 그 이유는 "자바의 철학"에 위배 되기 때문일 것이다. 자바 프로그램은 모든 운영체제에서 실행 가능 해야 하는데 '윈도우에만 존재하는 레지스트리'라는 것을 지원하지 않는 것은 당연한 일이었다. 게다가 레지스트리는 잘못 건드리면 윈도우 자체가 폭탄처럼 변할 수 도 있기 때문에 상당히 조심스러울 수 밖에 없다.

    하지만 JDK 1.4 버전부터는 일부 제한적으로 레지스트리에 접근 할 수 있도록 그 기능이 추가되었다. 보통 자바 프로그램에서는 프로그램 실행에 필요한 정보들을 파일로 저장해 두었다가 프로그램이 종료된 후 다시 실행하더라도 필요한 정보를 얻도록 하는 방법을 사용했다. 이때 파일을 사용하게 되면 이런 저런 이유로 코딩도 복잡하고 귀찮기 짝이 없다. 특별히 복잡한 정보도 아닌데 여러 모로 프로그래머가 고생을 하는 것이다. 바로 이런 경우에 레지스트리를 사용하면 간단히 해결된다. 아마도 많은 자바 개발자들의 요구 사항으로 인하여 JDK 1.4부터 추가 된 것이 아닌가 싶다.

    그렇다면 과연 자바 프로그램에서 레지스트리를 어떻게 사용할 것인가? 아무리 좋은 기능이 있어도 그 기능을 적절한 곳에 사용하지 못한다면 소용이 없게 된다. 레지스트리에 스트링 값을 입력하고 읽어오는 간단한 예제를 하나 만들어 보도록 하자. (참고로 예제 작성과 실행은 윈도우 XP에서 이루어졌다. 윈도우 계열 운영체제에서는 대부분 작동하겠지만 윈도우를 제외한 다른 운영체제에서는 예측 할 수 없음을 밝혀두는 바이다.)

    레지스트리를 이용한 사용자 인증 프로그램

    우리가 주로 사용하는 윈도우 운영체제에서는 사용자 계정을 제공한다. 따라서 인증된 사용자가 아니면 사용할 수 없다. 우리가 작성할 예제는 이와 비슷하지만 훨씬 간단한 프로그램이다. 프로그램이 제공하게 될 간단한 기능은 다음과 같다.
    프로그램을 처음 사용하는 경우, 이름을 입력 받아 레지스트리에 등록한다.
    사용자로부터 이름을 입력 받아서 등록된 이름과 같다면 원하는 작업을 계속 수행한다.
    등록된 이름이 아닌 경우라면 그냥 종료된다.

    프로그램에 대한 설명은 따로 필요 없이 주석을 참고하면 된다. 그리고 컴파일이나 실행에 대해서 잘 모른다면 다른 자바 기초 서적을 참고하기 바란다.

    소스 코드는 다음과 같다.

    import java.util.prefs.*;
    import java.io.*;

    public class RegistryTest {

    // 키와 값을 출력한다.
    public static void printKeyValue(String key, String value) {
    System.out.println("Key = [" + key + "] , Value = [" + value + "]");
    }

    // 해당 노드에 키를 포함하고 있는지 검사한다.
    public static boolean contains(Preferences node, String key) {
    return node.get(key, null) != null;
    }

    // 키보드로부터 이름을 입력받는다.
    public static String readName() {
    System.out.println("Input your name.");
    String value = null;
    try {
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader in = new BufferedReader(isr);
    value = in.readLine();
    } catch (IOException e) {
    // 예외 처리...
    }
    return value;
    }

    public static void main(String args[]) throws BackingStoreException {
    Preferences userRootPrefs = Preferences.userRoot();

    String key = "name"; // 등록할 키 이름
    String value = "";
    String newName = null;
    if (contains(userRootPrefs, key)) { // 이미 키가 존재한다.
    System.out.println("Key already exists !");
    value = userRootPrefs.get(key, "");
    newName = readName(); // 키보드로부터 입력 받은 이름
    if (newName.equals(value)) {
    // 입력된 이름과 레지스트리에 등록된 이름 같다.
    printKeyValue(key, value);
    // 결과 출력 후, 다른 원하는 작업 수행...
    }
    else {
    // 이름이 다르다, 당신은 누구얏 ?
    System.out.println("Invalid user name !");
    }
    }
    else { // 키가 없으므로 처음 레지스트리에 등록
    value = readName();
    userRootPrefs.put(key, value);
    printKeyValue(key, value);
    }
    }
    }

    <출처:ibm.com/developerworks/kr>

    반응형
    '자바 프로그래머'라면 한번쯤 고민하게 되는 부분이 있다. 그 중 하나가 자바 API가 지원하지 못하는 부분에 대한 것이다. 예를 들어 자바 API로는 네트워크 인터페이스 카드(NIC, 흔히 랜 카드라고 부른다)의 맥 어드레스(MAC Address)를 알아 낼 방법이 없다. 결국 JNI(Java Native Interface)를 사용하거나 다른 꽁수(?)를 찾아내곤 한다. 본인이 생각하기에는 두 방법 모두 시원스런 방법은 아니라서 상당히 거시기한 느낌이다. JNI를 사용하자니 C/C++ 코드를 사용하여 플랫폼에 제한적이 되어버리고… 꽁수를 사용하자니 안 먹히는 경우가 너무 많고…

    어쨌거나 다른 해결 방법이 없다면 둘 중 하나를 사용해야 한다. 두 가지 중에서 본인이 많이 사용하는 방법은 꽁수를 사용하는 방법이다. 여기서 말하는 꽁수란 원하는 결과를 얻을 수 있는 외부 프로세스를 실행시키고 그 결과를 받아내어 필요한 부분만 얻어내는 방법을 사용하는 것이다. 이번 기사에서는 윈도우 XP 운영체제의 시스템 비밀스런(?) 정보를 얻어내는 자바 프로그램을 만들어 보도록 하자.

    ※ 주의: 본 소스의 모든 내용은 윈도우 XP 프로페셔널에서만 동작한다. 윈도우 XP 홈에디션에는 시스템 정보를 얻어내는 프로그램(systeminfo.exe)이 지원되지 않는다.

    일단 화면에 도스창을 하나 띄워보자. 그런 후, "systeminfo"라고 입력하면 자신이 사용하는 윈도우 시스템에 대한 여러 정보가 나타난다. 윈도우 XP 프로페셔널에 이런 프로그램이 있다는 사실은 본인도 이 프로그램을 작성하면서 처음 알게 된 것이다. 자세한 세부 사항은 "systeminfo /?"라고 입력하여 도움말을 참고하도록 하자.

    화면에 보이는 결과를 살펴보면 의외로 많은 사실들을 알 수 있다. 운영체제의 자세한 버전이나 사용자 정보, 실제 메모리 정보, 운영체제에 적용된 패치 등등… 이제부터는 이 정보들을 이용하여 자신이 원하는 몇 가지만을 보여주는 간단한 프로그램을 만들어보자.

    이 프로그램의 핵심은 자바 프로그램 내에서 외부 프로그램을 실행시키고 그 결과를 받아내는 것이다. 이미 알고 있는 사람들에게는 아주 쉬운 일이지만 한번도 사용해보지 않았다면 이번 기회에 익혀두도록 하자. 나중에 두고 두고 써먹을 수 있는 프로그램 기법이 될 것이다(실제로 필자도 위기가 닥칠 때마다 이용해서 아주 유용하게 사용하고 있다). 아래 자바 메소드는 실행할 외부 프로그램의 이름을 스트링으로 지정하고 그 프로그램을 실행 후에 표준 출력과 표준 에러를 받아 내는 것이 전부이다.

    public void run() {
    Runtime runtime = Runtime.getRuntime();
    Process process = null;

    try {
    // this.command = "systeminfo.exe";
    process = runtime.exec(this.command); // 외부 프로그램 실행
    } catch (IOException ioe) {
    ioe.printStackTrace();
    }

    // 표준 출력
    InputStream standardOutput = process.getInputStream();
    // 표준 에러
    InputStream standardError = process.getErrorStream();

    InputStreamReader ir = new InputStreamReader(standardOutput);
    InputStreamReader ow = new InputStreamReader(standardError);

    BufferedReader outReader = new BufferedReader(ir);
    BufferedReader errorReader = new BufferedReader(ow);

    StringBuffer stdout = new StringBuffer();
    StringBuffer stderr = new StringBuffer();
    String line = null;
    try {
    // 루프를 돌면서 퓨준 출력과 표준 에러를 계속 받아낸다
    while ( (line = outReader.readLine()) != null) {
    stdout.append(line).append("\n");
    }
    while ( (line = errorReader.readLine()) != null) {
    stderr.append(line).append("\n");
    }
    standardOutput.close();
    standardError.close();
    } catch (IOException ioe) {
    ioe.printStackTrace();
    }
    result.setStdout(stdout.toString()); // 이 결과를 나중에 사용한다
    result.setStderr(stderr.toString());
    }

    위의 코드 마지막 부분에 나중에 사용할 결과를 지정하는 부분이 있다. 그 결과를 이용해서 원하는 정보만 가려내는 코드는 다음과 같다.

    String result = pRunner.result.getStdout();
    StringTokenizer st = new StringTokenizer(result, "\n");
    while (st.hasMoreElements()) {
    String line = (String)st.nextElement();
    if (line.startsWith("호스트 이름")) {
    addSysInfo(line);
    }
    if (line.startsWith("OS 이름")) {
    addSysInfo(line);
    }
    if (line.startsWith("등록된 소유자")) {
    addSysInfo(line);
    }
    if (line.startsWith("Product ID")) {
    addSysInfo(line);
    }
    if (line.startsWith("System Up Time")) {
    addSysInfo(line);
    }
    }

    원하는 정보를 모두 얻었다면 이제 GUI로 아름답게 보여주는 일만 남았다. 이 부분에서는 여러 분들이 직접 원하는 형태대로 만들어보기 바란다.
    <출처:ibm.com/developerworks/kr>
    반응형

    자바 프로그래머라면 당연히 AWT나 Swing 컴포넌트에 대해서 알고 있고 GUI를 위해서 여러 형태의 컴포넌트들을 조합해서 원하는 화면을 만들어 보았을 것이다. 그러나 때로는 JDK 에서 지원하는 표준 컴포넌트들만으로는 무엇인가 부족함을 느껴 본적은 없는가? 자신의 입맛에 딱 맞는 컴포넌트가 없어서 오랜 시간을 허비하거나 고생해본 경험이 있을 수도 있다. 이번 기사에서는 자신만의 간단한 컴포넌트를 작성해보기로 하자.

    이번 소스에서 만들것은 CPU의 사용양을 윈도우의 작업 관리자에서 보이는 형태처럼 만드는 것이다. JProgressBar를 사용하면 비슷한 형태가 나오기는 하지만 아무래도 많이 다르다는 느낌이 들어서 직접 만들어서 사용하자.

    import javax.swing.*;
    import java.awt.*;
    import javax.swing.border.*;
    import java.awt.event.*;

    public class PmTickChartPanel extends JPanel {
    BorderLayout borderLayout1 = new BorderLayout();
    JPanel centerPanel = new JPanel();
    JPanel southPanel = new JPanel();
    JPanel northPanel = new JPanel();
    JLabel dataLabel = new JLabel();
    GridLayout gridLayout1 = new GridLayout();
    BorderLayout borderLayout2 = new BorderLayout();
    JLabel titleLabel = new JLabel();
    BorderLayout borderLayout3 = new BorderLayout();
    JPanel westPanel = new JPanel();
    JPanel eastPanel = new JPanel();

    // 편의상 눈금은 10개만 보이고 색상 변경도 10 단위로만
    int tickCount = 10;

    Border centerPanelBorder;
    private Border border1;

    public PmTickChartPanel() {
    try {
    jbInit();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    private void jbInit() throws Exception {
    centerPanelBorder = BorderFactory.createLineBorder(Color.green, 1);
    border1 = BorderFactory.createBevelBorder(BevelBorder.LOWERED, new Color(4, 4, 4), new Color(3, 3, 3), Color.black, Color.black);
    this.setBackground(Color.black);
    this.setForeground(Color.green);
    this.setBorder(border1);
    this.setLayout(borderLayout1);
    centerPanel.setBackground(Color.black);
    centerPanel.setFont(new java.awt.Font("Dialog", 0, 12));
    centerPanel.setForeground(Color.green);
    centerPanel.setBorder(centerPanelBorder);
    centerPanel.setLayout(gridLayout1);
    southPanel.setBackground(Color.black);
    southPanel.setForeground(Color.green);
    southPanel.setLayout(borderLayout2);
    northPanel.setBackground(Color.black);
    northPanel.setForeground(Color.green);
    northPanel.setLayout(borderLayout3);
    dataLabel.setBackground(Color.black);
    dataLabel.setFont(new java.awt.Font("Dialog", 1, 12));
    dataLabel.setForeground(Color.green);
    dataLabel.setHorizontalAlignment(SwingConstants.CENTER);
    dataLabel.setHorizontalTextPosition(SwingConstants.CENTER);
    dataLabel.setText("");
    titleLabel.setBackground(Color.black);
    titleLabel.setFont(new java.awt.Font("Dialog", 1, 12));
    titleLabel.setForeground(Color.green);
    titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
    titleLabel.setHorizontalTextPosition(SwingConstants.CENTER);
    this.titleLabel.setText("CPU");
    gridLayout1.setColumns(1);
    gridLayout1.setRows(tickCount);
    gridLayout1.setHgap(1);
    gridLayout1.setVgap(1);
    eastPanel.setBackground(Color.black);
    eastPanel.setForeground(Color.green);
    westPanel.setBackground(Color.black);
    westPanel.setForeground(Color.green);
    this.add(centerPanel, BorderLayout.CENTER);
    this.add(southPanel, BorderLayout.SOUTH);
    southPanel.add(dataLabel, BorderLayout.CENTER);
    this.add(northPanel, BorderLayout.NORTH);
    northPanel.add(titleLabel, BorderLayout.CENTER);
    this.add(westPanel, BorderLayout.WEST);
    this.add(eastPanel, BorderLayout.EAST);
    setPreferredSize(new Dimension(90, 180));

    for (int i = 0; i < tickCount; i++) {
    Tick tick = new Tick(); // 눈금(tick)을 10개 생성하여 추가
    this.centerPanel.add(tick);
    }
    }

    /* 실제 컴포넌트에 값을 설정하면 눈금에 색상을 변경한다
    * 값의 범위는 0~100 으로 하자
    */
    public void setValue(int value) {
    if (value > 100) { // 100을 넘어가면 100으로
    value = 100;
    }
    else if (value < 0) { // 0보다 작으면 0으로
    value = 0;
    }

    // 일단 전체 tick 을 검정색으로 칠하고
    for (int j = 0; j < tickCount; j++) {
    Tick tick = (Tick)this.centerPanel.getComponent(j);
    tick.setBackground(Color.black);
    tick.repaint();
    }

    // 입력된 value 값에 해당하는 tick들만 다시 녹색으로 칠한다
    for (int i = 0; i < tickCount; i++) {
    Tick tick = (Tick)this.centerPanel.getComponent(i);
    if (tickCount - i > value / 10) {
    // nothing to do
    } else {
    tick.setColor(Color.green);
    tick.repaint();
    }
    }

    // 하단에 숫자로 값을 표시
    this.dataLabel.setText(value + " %");
    }

    public static void main(String args[]) {
    JFrame frame = new JFrame(); // 테스트용 프레임을 생성하자
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    PmTickChartPanel tickPanel = new PmTickChartPanel();
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(tickPanel, BorderLayout.CENTER);

    frame.setSize(300, 300);
    frame.setVisible(true);

    for (int i = 0 ; i < 100 ; i++) { // 테스트를 위해 값을 설정하는 부분
    try {
    Thread.sleep(100); // 잠시 쉬었다가
    tickPanel.setValue(i); // 1씩 증가되는 값을 설정, 10 단위로 눈금 색상 변경
    }
    catch (InterruptedException ie) {
    ie.printStackTrace();
    }
    }
    }
    }

    /* 10 단위의 눈금 하나에 해당하는 컴포넌트
    * 같은 값을 갖는 것이 좌우 하나씩 쌍으로 구성된다
    */
    class Tick extends JPanel {
    JPanel lPanel = new JPanel();
    JPanel rPanel = new JPanel();
    GridLayout layout = new GridLayout(1, 2);

    public Tick() {
    this.setBackground(Color.black);
    this.setForeground(Color.black);
    lPanel.setBackground(Color.black);
    lPanel.setForeground(Color.green);
    rPanel.setBackground(Color.black);
    rPanel.setForeground(Color.green);
    layout.setHgap(1);
    setLayout(layout);
    add(lPanel);
    add(rPanel);
    }

    protected void setColor(Color color) {
    lPanel.setBackground(color);
    rPanel.setBackground(color);
    }
    }
    <출처:ibm.com/developerworks/kr>

    + Recent posts