본문 바로가기

java

Simple usage of javadoc (javadoc 로 문서 만들기) Java 프로그래머라면 누구나 알고 있어야 할 사실이 있다. 바로 문서!!! JDK 에서는 문서 생성 프로그램을 제공하며, 프로그램의 이름은 javadoc 이다. 이 프로그램을 이용하면 Java 소스에 작성된 javadoc 를 이용하여 문서를 만들 수 있다. 문서를 만드는 방법은 매우 간단하다. 필요에 따라 여러가지 옵션을 이용할 수 있으나, 너무나도 다양한 옵션들이 존재하기 때문에, 더 자세한 정보를 얻기 원한다면 javadoc help 를 이용하면 되겠다. 내가 작성한 소스의 디렉토리구조가 아래와 같다고 하면, /src/com/Common.java /src/com/*.java 더보기
Java File encoding 설정 Java 프로그램으로 파일을 쓸때, encoding 을 설정하기 위해서는 java.io.OutputStreamWriter 클래스를 사용하여 할 수 있다. 아래의 코드는 encoding을 UTF-8 으로 설정하는 방법이다. try { String path = "c:\temp.txt"; OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path),"UTF-8"); out.write("Hello Java program.\n"); out.close(); } catch (IOException e) { e.printlnStackTrace(); } catch (Exception e) { e.printlnStackTrace(); } 이렇게 하게 .. 더보기
Java simple logger using apache log4j (Java Simple Logger 만들기) Logger 를 사용하고 싶을때, 보통 아파치에서 제공하는 log4j 라는 것을 사용하는데, 이것은 몇몇 설정을 해주어야 하기 때문에, 간단하게 자바에서 제공하는 logging 기능을 사용하여 Logger 를 만들 수 있다. 아래의 예제는 간단한 로그 기능만을 구현한 클래스 이므로, encoding 이라든지, 기타 여러가지 설정을 바꾸고 싶을때는, 좀더 customize 해야 한다. // JRE 1.5 이상에서만 실행가능, JDK 1.5 이상에서 컴파일 가능 // Generic Programming을 사용하였음. import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.logging.FileHand.. 더보기
XML parser using Java SAX library (Java SAX 이용하여 XML Parser 만들기) 자바에서 XML 파일을 파싱하는 Parser 를 만들기 위해서, 사용할 수 있는 라이브러리들은 다양하다. 그중에서 유명한 것이, DOM 과 SAX 이다. DOM Parser 는 xml text 의 string들과 stream 들을 parsing 할 때 사용되는 것으로서, XML 을 parsing 하면서, 트리구조를 만들고 이 트리구조 전체를 메모리 상에 로드 시킨다. 장점은: 사용법이 간단하고, 트리구조 전체를 볼 수 있다는 것. 단점은: 메모리를 많이 먹고, 조금 느리다는 점 이 있다. 더 자세한 정보를 얻고 싶으면 아래의 링크로 가서 살펴보면 도움이 된다. http://www.w3schools.com/DOM/dom_intro.asp SAX Parser 는 Simple API for XML Parser.. 더보기
Difference between StringBuilder and StringBuffer (StringBuilder 와 StringBuffer의 차이점) StringBuilder is not synchronized but StringBuffer is. So if you are considering using codes in multi-threaded environment, you should use StringBuffer. If not use StringBuilder. It's much more faster. 1. Use String class if text is not changed. 2. Use StringBuffer if the text is continuously changing and you are planning to program muti-threaded. 3. Use StringBuilder if the text is continuously.. 더보기
Java Remove all white spaces in String (문자열에서 모든 white space 제거하기) Java 에서 white space를 제거 하기 위해 보통 아래와 같은 방법을 쓸 수 있지만, String str = "some string"; String result = str.replaceAll("\\W", ""); 위의 구문은 정확하게 동작하지 않는다. String str = " *dev = delay[j]; // some comment: welcome to C Programming world"; System.out.println(str); String result = str.replaceAll("\\W", ""); System.out.println(result); 위와 같은 예제 소스를 수행하면 아래와 같은 결과를 얻을 수 있다. *dev = delay[j]; // some comment: we.. 더보기
Java 로 구현한 DFS (Depth First Search) 알고리즘 Tree traversal - DFS(Depth First Search) Tree 를 탐색하고자 할때, 사용되는 알고리즘 중에서 DFS 라는 알고리즘이 존재한다. DFS는 깊이우선 탐색으로서, Tree의 가장 깊숙한 곳까지 탐색하고 나서, 다시 Backtracking이라는 과정을 거치고, 다시 다른 노드들을 탐색하는 방식이다. 이 알고리즘은 미로찾기나 어떤 Grammar의 AST(Abstract Syntax Tree) 를 이용하여 Syntactic Analyzer를 만드는데 활용이 되는 중요한 알고리즘이다. DFS에 대한 자세한 설명은 아래 링크에서 확인하면 된다. http://en.wikipedia.org/wiki/Depth-first_search DFS의 기본적인 Traverse는 아래 그림과 같이 .. 더보기
Java 로 구현한 SHA-1 hash 암호화 알고리즘 Java 프로그램에서 SHA-1 hash 암호화 알고리즘을 사용하는 모듈이 필요하여 작성하였다. import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /* * SHA is a cryptographic message digest algorithm similar to MD5. * SHA-1 hash considered to be one of the most secure hashing functions, * producing a 160-bit digest (40 hex numbers) from any data with a maximum .. 더보기
Java Singleton Pattern 오늘은 Singleton Pattern 에 대해서 글을 적으려고 해요. 한국어로는 싱글턴 패턴이라고 하는데, 저는 원문을 살려서 의미가 명확하게 드러나도록 할게요. Singleton pattern 은 유일무이한 객체를 만들어 내는 패턴 이라고 보면 됩니다. 객체를 반드시 한개만 생성 해야만 하는 곳에서 사용이 됩니다. 예를 들어, Device Driver, Thread Pool 같은 것들에서 사용이 됩니다. 내용은 쉽지만, Singleton 을 재대로 구현 하려면 상당한 지식이 필요하다고 생각합니다. Singleton 을 생성하는 방법은 대표적으로 4가지 방법이 있습니다. 1. Lazy Instantiation 2. synchronize 를 하는 방법 3. DCL(Double Checking Lock) .. 더보기
Eclipse 에서 JVM(Java Virtual Machine) Heap Size 조정해서 실행하기 아마 자바 프로그래머 중에서 프로그램을 오랬동안 짜다 보면, Eclipse에서 메모리를 많이 사용하는 덩치 큰 프로그램을 돌렸던 경험이 있을 것이다. 이때 아래와 같은 Java Heap Space가 부족하다는 경고메시지가 뜨면서 프로그램이 실행 되지 않는 경우가 있다. Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 이럴 경우에는 어떻게 문제를 해결 해야 할까? 고민하다가 다음과 같은 기사를 발견 할 수 있었다. Java programs executes in JVM uses Heap of memory to manage the data. If your Java program requires a large amount of mem.. 더보기