본문 바로가기

Java Programming

(51)
Java 로 하는 LDAP 라이브러리 그전이 Java 로 하는 LDAP 라이브러리의 심화 버전으로.. 직접 라이브러리를 개발해봤다. 결과적으로는 Spring LDAP 라이브러리를 보면서 굳이 이 이상할 필요가 없다는 것을 느꼈지만.. Java 를 통한 LDAP 가 어떻게 동작하는지에 대한 원리를 습득하는데는 많은 도움이 되었다. 패키지 구성은 다소 단순하지만 필요한 몇가지 기능들을 구현하는데는 별 무리가 없었음을 밝힌다! 하나는 소스 파일이고.. 하나는 문서 파일이다. 나름 성실하게 주석을 달았으니 궁금하신 사항이 있으면 질문 하셔도 좋고.. 관계 없다. 단! 라이브러리중 changePassword 라는 항목은 동작하지 않는다. Microsoft Active Directory 에서는 기본적으로 SSL 로 접근하지 않으면 패스워드 변경이 불가..
Java 로 하는 LDAP 프로그래밍 현재의 개발 환경에서는 LDAP 를 통한 Directory 정보들을 수집해야할 일이 상당히 많다.여지껏 .NET 으로의 개발은 여러번 있어서 어렵지 않게 했지만.. Java 로 해야할 일이 생겨서 이리저리 API들을 확인하면서 작업해 보았다. 일단 핵심이 되는 API는 javax.naming 이라는 패키지, 이부분이 모든 LDAP 통신을 위한 API들이 있는 패키지 이므로 기억해 두는 것이 좋다. 핵심이 되는 몇몇 Class 들이 있는데, 그 중 4개 정도가 주된 것이니 이 또한 기억해두도록 하자. javax.naming.directory.InitialDirContextjavax.naming.directory.SearchControlsjavax.naming.directory.SearchResultjava..
Springframework 3.0 환경 설정 사전 개발 환경 세팅 JDK 1.7 : http://www.java.com/ko/download/chrome.jsp?locale=ko STS (SpringSource Tool Suite) v2.9.1 : http://www.springsource.org/downloads/sts-ggts 웹 컨테이너 Apache Tomcat v7.0 설치 : http://tomcat.apache.org/download-70.cgi Mybatis v3.1.1 : http://code.google.com/p/mybatis/wiki/Downloads?tm=2 MySQL Community Server v5.5.27 : http://www.mysql.com/downloads/mysql/ MySQL Connector / J v5.1..
잊고 지내던 Recursive 다시 해보다. 최근 모 회사의 필기시험을 보다보니까 Recursive (재귀호출) 을 이용해서 과제를 해결하라는 식의 문제가 나왔다. 정확히 문제가 기억은 나지 않지만 개략적으로 이러했다. 랜덤한 숫자를 임의의 갯수만큼 뽑는데 뽑는 숫자가 겹치지 않아야 한다. 라는게 문제였다. 연필과 종이 위에 써내려갈려니 도무지 답이 잘 써지지 않아서 뭐라고 썼는지 기억도 잘 안난다. 근데 이클립스를 켜고 코딩을 해보니 생각보다 술술 됐다. import java.util.Random; public class DataUtil { public static int[] getRandomArray(int size) { return createArray(new int[size], size, 0); } public static void disp..
오랜만에 만든 ConnectionReport 라는 프로그램.. 완전하게 동작까지 하는 프로그램을 만들어 본게 있었던가? 싶을 정도로 가물가물한.. 그런 때에 어쨌거나 저쨌거나 프로그램을 하나 만들어 봤다. 먼저 ConnectionReport 라는 프로그램이 나오게 된 계기는 이렇다. 사내에서 방화벽에서 차단하는 사이트가 있고 임의적으로 몇가지의 도메인을 차단하는 사이트가 있는데.. 저마다 사이트 마다 반응하는 IP 주소가 다르고 매번 갱신이 되다보니 정확하게 찾아내서 원천 차단하고자 하는것이었다. 그럴려면 첫째로 어떤 도메인으로 요청을 보냈을때 몇개의 IP가 반응하는지에 대한 정보를 파악해야하고, 그 파악된 IP 정보들을 하나하나 검사 하여 방화벽을 통과 하는지 안하는지의 결과값을 데이터베이스화 시키는 것이다. 도메인에 대한 대응 IP를 찾아내는데에는 InetAdd..
Object Stream 파일 입출력 테스트 package inputOutput; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class IOManager { public static void main(String[] args) { ObjectInputStream in; ObjectOutputStream out; String name[] = { new String("현재은"), new String("이재영"), new Strin..
거꾸로 해도 같은지 검사하는 프로그램 (Java 버전) public class Test { public static void checkReservedString(String string) { System.out.format("입력하신 문자열은 [%s] 입니다.\n", string); String temp = ""; for (int i = string.length() - 1; i >= 0; i--) temp += string.charAt(i); if (string.equals(temp)) System.out.println(true); else System.out.println(false); } public static void main(String[] args) { checkReservedString("123212"); } } 헉.. 자바로 하니까 왠지 엄청 ..
후크 메소드 (Hook Method) 디자인 패턴 공부하는데.. 하나 빼먹은게 있었다. 템플릿 메소드 패턴을 배울때 나온 내용이었는데 제대로 안 짚고 넘어가서 과제할때 많은 애로사항을 주는 넘이 되었다... 그래서 -_- 공부도 잘 안하는데 후크 메소드가 뭔지 한번 알아 봤다. Head first, Design Patterns (오라일리) 책에는 후크에 대해서 이렇게 말하고 있다. 후크(Hook) 는 추상 클래스에 들어있는, 아무 일도 하지 않거나 기본 행동을 정의하는 메소드로, 서브 클래스에서 오버라이드 할 수 있습니다. 몬 개소리야 -_-;; 전혀 알아 먹을 수가 없다. 저중에 모르는 단어가 있는것도 아닌데 이 구절만 보면 무슨소린지 전혀 모르겠다. 오버라이드하는 메소드가 다 후크야?? 그럼 추상 메소드는 다 후크 메소드 인가?? 하는 ..