ConnectionPool, FrontController Pattern

채종윤·2023년 8월 18일
0

1. ConnectionPool이란?

자바에서 DB에 직접 연결해서 처리하는 경우(JDBC) 드라이버(Driver)를 로드하고 커넥션(connection) 객체를 받아와야 한다. 그러면 매번 사용자가 요청을 할 때마다 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 매우 비효율적이다. 이런 문제를 해결하기 위해서 커넥션풀(DBCP)를 사용한다.

2. ConnectionPool연결

public class JdbcUtil {

	public static Connection connect() throws NamingException, SQLException {
		
		//1 . Connection Pool 로딩
		Context init = new InitialContext();
        DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/oraxe");
        Connection con = ds.getConnection();

		// 2. DBMS연결
		return con;
	}
	public static void close(PreparedStatement pstmt, Connection con) {
		
			try {
				if(pstmt != null) pstmt.close();
			} catch (SQLException e) {}
			try {
				if(con != null) con.close();
			} catch (SQLException e) {}
	}

}

Controller : 입력처리(파라미터), 작업분기
Model : 데이터 처리(Dao) 결과로 엔티티가 생길경우 View에게 전달(SetAttribute())
View: 결과로 표시(HTML, model에서 전달받은 엔터티를 이용)

Command Pattern - 요청마다 서블릿이 따로 처리
-단점 서블릿이 많이 필요
등록폼 /web0816/board/insert_form

FrontController Pattern - 모든 (업무별) 요청을 하나의 서블릿이 수신
등록폼/web0816/board?command=insert_form

profile
안녕하세요. 백앤드 개발자를 목표로 하고 있습니다!

0개의 댓글