소프트웨어 개발 165

자바 API를 이용한 쓰레드풀 생성 샘플소스. Executors.newFixedThreadPool() 이용 [출처] 자바 API를 이용한 쓰레드풀 생성 샘플소스. Executors.newFixedThreadPool()

http://blog.naver.com/lover4908/110039084541 바 1.5 버전 부터 쓰래드를 지원하기 위한 API가 강력해진거 같다. 모, 일단 라이브러리가 많이 늘어난거 같다. 래치, 배리어, 쓰레드풀 , 퓨처패턴 등등등...... 나중에 필요할때 써 먹을라고, 관련되는 녀석 공부하던중에 자바 1.5부터 지원되는 쓰레드풀 생성하는 아주작은 샘플을 만들어 보았습니당~ /** * */ package test;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;/** * @author 이준성 * */ public class ThreadPoolTest { final static int THREAD..

Exception을 이용한 트랜잭션 익셉션 처리

//TransactionException클래스를 하나 만든후 public class TransactionManager { //private static Connection conn; //static은 오직 메모리에 하나만 있기 때문에 여러쓰레드에서 사용할경우 문제발생 //밑에것처럼 만들면, 하나의 흐름에서 하나의 쓰레드를 만들수 있다. private static ThreadLocal tlocal = new ThreadLocal(); public static void begin() throws TransactionException{ try{ Connection conn = DBUtil.getConnection(); conn.setAutoCommit(false); tlocal.set(conn); //이렇게 ..

사용자의 입력을 받아 클래스 만들기

Class.forName()을 사용하면 된다 String userNumber = "1";String className = "Child01" + userNumber;Class clazz = Class.forName(className); PERM에 올라간다그리고 난후 Object obj = clazz.newInstance();를 이용해 객체를 만들면 된다.그리고 다운캐스팅해서 쓰면된다. 이게 ClassLoader를 이용한 객체생성이다 안드로이드에서도 Activity를 상속한 놈들이 클래스로 돌아가게 되는데, 그 클래스이름은 사용자별로 제각각인데, 이 프레임워크들은 이러한 개념으로 만들어주는것이다. 따라서 나중에 프레임워크를 만들게 되면, 보통 이러한 동작원리로 작동한다.

layer별로 Exception다르게 하기

어디서 오류가 났는지 솔직히 힘들기 때문에, Exception을 차라리 BizException, DAOException이렇게 표시하기도 한다. 비즈니스 로직이 있는 곳에서 에러가 나면 해당하는 에러가 나기때문에 어디서 났는지 알수있다. 어떠한 Exception이 발생하든간에, catch(Exception e){ throw new DAOException(e)}이러한 형식으로 던져버리면, 해당하는 DAOException으로 던져지기 때문에, DAO에서 예외가 났다고 할수있다. 받아서 가공해서 다시 넘긴다고 할수있을듯다만 Exception 클래스에서는 public class DAOException extends RuntimeException{public DAOException(Exception ex){supe..

⑪ 디자인 패턴(Design Pattern) - Single Ton

싱글톤 패턴. 보통의 클래스는 new를 이용해서 새로운 객체를 생성하고 그것을 이용하게 된다. 다만, 단순한 프로그램의 경우에는 굳이 패턴들에대해 고민하지 않고 main에서 new를 한번 해준다음에 필요한 작업을 한다. 하지만 여러 클래스와 산재해 있는 함수에서 같은 객체에 접근해야할 필요가 있을 수 있다. 그 예로, 안드로이드 프로그램같은 경우, 대부분 VIEW하나에 public 클래스가 하나씩 존재한다. 하지만, 프로그램을 개발하다 보면 객체를 공유해서 써야하는 경우가 있다. 파일시스템이나 데이터베이스에서 가져온 데이터를 메모리에 올려서 쓰게 되는데, public class가 달라져버려 new로는 공유 데이터를 접근하지 못한다. 따라서 사용자의 객체 생성을 생성자에 pricava예약어로 막고, 프로그..