728x90

프로그래머의 삶 Programmer's Life 179

enum 타입으로 싱글톤 패턴(ibatis)

아직 널리 적용되지 않았지만 싱글톤을 구현하는 가장 좋은 방법이라고 하는 enum 타입으로 생성하는 방법을 ibatis instance 를 가져오는 곳에 적용해 보았다.... enum 타입으로 생성할 경우 상당히 간결해지며 복잡한 직렬화나 리플렉션 상황에서도 직렬화가 자동으로 지원되고, 인스턴스가 여러개 생기지 않도록 확실하게 보장해 준다고 한다. /** * @author lvsin - 13thAngel * */ public enum EnumSqlMapConfig { INSTANCE; private static SqlMapClient sqlMapper = null; private static Log log = LogFactory.getLog(SqlMapConfig.class); private SqlMap..

Static 클래스를 유연하게 사용하기~ ( Builder 패턴 사용 )

public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int carbohydrate; public NutritionFacts (){} ... ... .. public NutritionFacts (int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate){ this. 어쩌고 = 저쩌고; this. 어쩌고 = 저쩌고; ... ... .. } 위의 방법은 ..

Collection 객체 default 및 for performance

Vector - 10 (내부적으로 배열로 생성되어 있다....즉 중간에 값 삽입한다면 엄청난 퍼포먼스 OTL ) Hasgtable - 11/0.75(부하율) => a 갯수의 버킷이 필요할 시에는 a * 4/3 개를 생성해야 한다. => default 로 생성했을 때 rehash 가 되는 경계선은 11*0.75 이다. StringBuffer - 16 Map - HashMap - 가장 빠른 매핑( 동기화 x ) Hashtable - HashMap 보다 늘지미나 동기화한 hashMap 보다 빠르다.( 동기화 o ) TreeMap - Key 로 정렬되어 있음, 트리로된 맵 , (동기화 x) List - ArrayList - 가장 빠른 리스트 ( 동기화 x ) Vector - ArrayList 보다 느리지만 동기..

Characters to Bytes ( getBytes )

String 클래스에서 getBytes() 메소드는 계산량이 가장 많은 메소드이다. (사용해 보면 알겠지만 캐릭터셋 비교하고...encode....후덜덜이다.-_-;) 이 메소드는 char배열을 byte 배열로 바꿔주는 메소드인데 각각 유니코드 캐릭터는 하나나 둘 또는 심지어 3개의 바이트로 변환이 되며 이를 위한 판단 작업도 뒤따라야 한다. 단, ASCII 문자의 경우는 간단해진다. 각각의 ASCII 문자는 2byte 유니코드에서 한 byte 를 잘라버리고 남은 1byte 만을 변환하면 된다. 다양한 문자 인코딩 형식에 맞춰 변환시키기위해서는 좀 더 복잡하고 계산량이 많은 작업을 할 수밖에 없다. 그러나 ASCII는 인코딩 방식에 상관없이 1byte만 변환하면 되므로 계산량이 확인히 줄게 된다. pub..

이클립스 자동정렬 커스터마이징~

이클립스 자동정렬은 컨트롤 + 쉬프트 + F 이다. 하지만 넓디 넓은 화면에서 고작 width 가 80 인 것에 간간히 좌절을 한다. 코드가 약간이라도 길면...자동정렬할 경우 쭉쭉 아래로 내려가 버린다. 이를 위하여- -;;;사방의 클릭 결과로서 저쪽의 라인을 커스터마이징하면 된다.... .....ㄱ-;자동정렬할때마다...width 가 80이라는건...은근 부애나는 일인것이다- -;;; 아...그리고 built-in 을 커스터마이징해야한다...마음에 드는 이름을 붙여서~ ㅎㅎ

iBATIS + JNDI ( tomcat 5.5.28 )

아이바티스 데이타소스 설정에 JNDI 를 설정해 주고.. tomcat/conf/server.xml 에 어느 경로에 jndi 를 사용할지를 아래와 같이 설정 하면 끝난다... 간단하지만.... 단지..... CATALINA_HOME/common/lib 에 classes14.jar 또는 ojbbc14.jar 를 갖다 놔야 한다... 프로젝트에서 lib 로 설정을 해 놓았지만 톰캣에서 jndi 세팅을 하기 위해서 클래스를 불러들이려면 톰캣에 jdbc 드라이버가 있어야 하기 때문이다.... 너무 간단하군-_-;;; aaa.war 로 디플로이해서~ jndi 룩업을!...해도 별로다..-_-;

ANT build 오류 - eclipse

ant 1.6.2버전부터 ftp를 이용하여 서버의 데이터를 로컬로 받을수 있는기능을 제공한다. 필수 라이브러리 1. Commons Net 2. ORO 1. Commons Net (commons-net.jar) http://jakarta.apache.org/commons/net/index.html http://apache.cdnetworks.co.kr/commons/net/binaries/commons-net-1.4.1.zip 2. ORO (jakarta-oro-2.0.8.jar) http://jakarta.apache.org/oro/index.html http://apache.cdnetworks.co.kr/jakarta/oro/binaries/jakarta-oro-2.0.8.zip // 없는 경우 Ant..

자바 정규 표현식

java.util.regex패키지의 Match클래스와 Pattern 클래스를 사용하여 문자열 정규 표현식으로 검증 할 수 있다...의외로 편리하다 사용 방법은 boolean ret=Pattern.matches("^[0-9]*$", str); 정규 표현식 ^ - 문자열의 시작 $ - 문자열의 종료 . - 임의의 한 문자 | - or 를 나타냄 ? - 앞 문자가 없거나 하나 있음 + - 앞 문자가 하나 이상임 * - 앞 문자가 없을수도 무한정 많을수도 있음 [] - 문자 클래스를 지정할 때 사용합니다. 문자의 집합이나 범위를 나타내면 두 문자 사이는 '-' 기호로 범위를 나타낸다. [] 내에서 ^ 가 선행하여 나타나면 not 을 나타냄 {} - 선행문자가 나타나는 횟수 또는 범위를 나타낸다. a{3} - a..

레드핫 리눅스 telnet 이 안될때 ㄱ-;

vi /etc/xinetd.d/telnet 코드: service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = NO } 하고 재기동 한다-_-; service xinet.d restart 혹시 telnet-server 가 설치가 안되어 있을수도 잇으니 rpm -qa | grep telnet 으로 프로세스가 2개가 제대로 띄워져 있는지도 확인 필~ 단... 회사라면 방화벽에 걸릴수도......ㅡ_-;

SOAP 에서 첨부파일 전송하기

간단하게 getFile 과 setFile 이다. public class fileDownloader { FileOutputStream fos; public DataHandler getFile() { System.out.println("Server send File"); File file = new File("c:/test.txt"); if (!file.exists()) { System.out.println("file not found!"); System.exit(0); } FileDataSource filDataSource = new FileDataSource(file); DataHandler dh = new DataHandler(filDataSource); return dh; } public void s..

728x90