Category Archives: JAVA

Map 에 들어있는 모든 데이타 출력하기

By | 7월 28, 2009

1. Iterator 사용     Set set = testMap.entrySet();     Iterator it = set.iterator();     while(it.hasNext()) {         Map.Entry me = (Map.Entry)it.next();         System.out.print(“### testMap : “+me.getKey()+” – “+  me.getValue() +”\n”);     } 2. 개선된 for문 사용 (enhanced for loop)     Map<String, Integer> map =… Read More »

[펌글] JAVA Calendar, Date, GregorianCalendar

By | 3월 17, 2009

[출처] GregorianCalendar|작성자 아호 자바개발을 하면서 난 날짜연산이 필요할때. 예를 들면 어제날짜가 필요한다던가 입력받은 날짜에 얼마만큼의 기간을 더하고 빼고 할때 말이다. java.util.Date객체의 메소드들은 대부분 Deprecated되어서(API문서) setDate같은 메소드를 쓰기도 찜찜하다. 그럴땐 Calendar 객체가 아주 유용하다. 생성자도 참 다양하다. 오늘 날짜를 예로들면, GregorianCalendar cal = new GregorianCalendar(); //현재시간 GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25); //년, 월-1, 일… Read More »

NumberFormatException 이 날 때

By | 3월 7, 2009

NumberFormatException이 나면, 보통 데이터타입에만 신경을 쓰게 되는데, 이번에 났던 NumberFormatException 의 경우에는 ‘데이터의 길이’  와 관계가 있었다.

[펌글] 자바 문자열 객체(String,StringBuffer,StringBuilder) 정규표현식…

By | 3월 2, 2009

– 출처 : http://hongsgo.egloos.com/2033998 – 내가 만든 코드를 튜닝(?)해 나가면서 가장 신경쓰이는 부분이 자주 쓰는 문자열과 관련된 객체의 자원이다. 문자열에 대해서 변경이 잦다면 String이 아니라 StringBuffer나 StringBuilder를 써야 할 것이다. 보통 StringBuffer는 알지만 StringBuilder는 .NET에만 있는 객체라고 잘못 알고 있는 사람이 많다. 하지만, 엄연히 자바에도 StringBuilder 객체가 있으며 문자열을 다루는 이 세가지 객체의 차이는 크게 연산속도와 메모리 공간으로 볼… Read More »

부적합한 열 인덱스 에러

By | 2월 18, 2009

1. Ibatis의 경우 Ibatis 는 동적쿼리를 생성할 때 #value# 를 사용한다. 그러나 #value#  가 오라클주석 안에 있다면, 주석이라 할 지라도 쿼리에 영향을 주어 에러를 낸다. 주석 안에 #value#  같은 것이 남아있는지 확인하자. 2. JDBC PreparedStatement 의 경우 LIKE 문을 사용할 때 다음과 같이 하지 않았는지 살펴보자 sb.append(“select * from zipcode_20070704_7 where dong like ‘%?%’ “);  ==> 오류… Read More »

[펌글] POJO란?

By | 1월 15, 2009

– 출처 : http://blog.naver.com/thtlsgkrtod/40055742326 – POJO (Plain Old java Object) 를 해석하면 평범 자바 오브젝트라고 한다. POJO를 이해 하기 전  POJO라는 단어가 만들어진 역사적 배경을 살펴볼 필요가 잇다. POJO는 마틴 파울러가  2000년 가을에 열렸던 어느 컨퍼런스의 발표를 준비하면서 처음 만들어낸 말이다. 마틴 파울러는 EJB(Enterprise JavaBean)보다는 단순한 자바 오브젝트에 도메인 로직을 넣어 사용하는 것이 여러가지 장점이 있는데도… Read More »

[펌글/링크] log4j 설정 및 사용방법

By | 1월 15, 2009

– 정리된 문서 출처 : http://globalhost.interdol.com/355 –  LOG4J     I. 들어가면서.. 그리고 log4j   log4j는 자바 어플리케이션에서 빠르고 효과적으로 로깅 할 수 있도록 도와주는 오픈 소스 프로젝트입니다.   로깅(logging)은 코드의 가독성을 떨어뜨리는 단점이 있지만 애플리케이션에 문제가 있을 때 개발자가 자세한 상황을 파악할 수 있도록 해 주며 테스팅시 빠질 수 없는 요소입니다. 아마도 여러분들은 여러 어플리케이션이 추가되면서… Read More »

[책펌] 스레드(쓰레드, Thread) 개념 잡기

By | 11월 6, 2008

* 스레드의 실행제어 – join() : 지정된 시간동안 스레드가 실행되도록 한다.(인자로 long millis를 넣었을때). 지정된 시간이 지나거나 작업이 종료되면 join()을 실행한 스레드로 다시 돌아와 실행을 계속한다. – sleep() : 지정된 시간(long millis) 동안 스레드를 일시정지시킨다. 지정된 시간이 지나고 나면, 자동적으로 다시 실행대기상태가 된다. sleep()은 항상 현재 실행중인 스레드에 적용되기 때문에, t1.sleep(3000) 과 같은 코드가 있다고 해도,… Read More »

[책펌] finalize 메소드와 가비지 컬렉션(Garbage Collection)

By | 10월 31, 2008

– JVM(자바가상기계)은 효율적인 시스템 운영을 위해 더 이상 필요없는 객체들을 대상으로 쓰레기 수집 기능을 자동으로 수행 – JVM은 쓰레기 수집 전에 그 객체의 finalize() 메소드를 호출한다. – 사용자는 클래스 생성시 finalize() 메소드를 이용하여 객체에서 사용된 파일이나 소켓 같은 자원들을 반납하는 과정을 기술 할 수 있다. (클래스 내에서 finalize() 오버라이딩) (예) protected void finalize() throws Throwable{… Read More »

[책펌] Protocol 설계를 이용한 로그인 인증예제 (소켓, 프로토콜, 바이트스트림)

By | 10월 22, 2008

1. 개요 – 서버, 클라이언트가 공유하는 ‘요청의 종류와 내용에 관한 프로토콜’을 만들어 로그인예제에 적용한다. 2. 로그인 예제 프로그램의 흐름 (1) 서버가 클라이언트에 로그인 요청을 한다. (2) 클라이언트는 아이디와 패스워드를 서버에게 전송한다. (3) 아이디와 패스워드가 정확히 맞았다는 메시지를 전송한다. (3) 패스워드가 틀린 경우의 메시지를 전송한다. (3) 아이디가 틀린 경우의 메시지를 전송한다. (4) 클라이언트는 서버에게 종료 메시지를 전송한다.… Read More »

[책펌] Multicast(1:N 소켓스레드)프로그램 예제

By | 10월 22, 2008

* 개요 – Multicast 란? : 하나의 서버에서 모든 클라이언트에 동시 전송하는 개념, 서버를 통하여 모든 클라이언트가 실시간으로 상호 전송가능 (이 예제에서는 클라이언트를 선별하여 메세지를 날릴 수 없다. 그러기 위해서는 적당한 프로토콜을 만들어서 적용해야 한다.) * 구성 - MultiServer.java : 모든 클라이언트의 TCP요청을 받아 소켓 객체를 생성한다. 소켓을 유지하기 위한 스레드를 생성하고, 이 스레드를 저장할 Collection(ArrayList)을 생성하는 클래스다. – MultiServerThread.java : 각각의… Read More »

[책펌] Unicast (1:1 소켓 스레드) 프로그램 예제

By | 10월 21, 2008

* 개요 – Unicast 란? : 클라이언트와 서버간에 지속적으로 일대일로 통신하는 개념 * 구성 – UnicastServer.java – UnicastServerThread.java – UnicastClient.java * Unicast 프로그램 예제 흐름  (1) 서버를 실행시키면 TCP서버소켓을 생성하게 된다. (2) TCP서버소켓으로 accept()를 통해서 클라이언트의 통신을 기다린다. (3) 클라이언트가 TCP소켓을 생성한다. (4) 클라이언트의 TCP소켓이 생성되면 TCP서버소켓과 연결을 시도한다. (5) TCP서버소켓이 클라이언트와 TCP연결이 이루어졌다면… Read More »

[책펌] UDP 소켓 프로그램 예제

By | 10월 21, 2008

* 참고 – DatagramPacket : 애플리케이션에서 주고받을 데이터와 관련된 클래스 (생성자로 송신/수신기능 구분) – DatagramSocket : 실제 데이터의 전송을 책임지는 클래스 UDPEchoServer.java package socket.echo.udp; import java.net.*; import java.io.*; public class UDPEchoServer { //생성자  public UDPEchoServer(int port){      try{ //port를 소스로 해서 DatagramSocket 객체를 생성한다.     DatagramSocket ds = new DatagramSocket(port);        while(true){      //UDP의 실제 데이터는… Read More »

[책펌] TCP 소켓프로그램 예제

By | 10월 21, 2008

1. TCP 소켓 프로그램 예제의 흐름 (1) 서버 소켓 생성 (2) 서버 소켓으로 청취 (3) 클라이언트 소켓 생성 (4) (서버, 클라이언트) 소켓을 이용하여 스트림 생성 (5) 클라이언트 메시지 전송 (6) 서버 메시지 읽음 (7) 서버 메시지 전송 (8) 클라이언트 메시지 읽음 (9) (서버, 클라이언트) 소켓 종료 * 본 예제에서는 클라이언트가 메시지를 한 번만 전송할 수… Read More »