목록2024/05/05 (2)
쌓고 쌓다
보통 애플리케이션 구조는 다음과 같이 3가지 계층으로 나눈다.서비스 계층에서는 비즈니스 로직을 담당하며 특정 기술에 의존하지 않고 순수 자바 코드로 작성한다.데이터 접근 계층에서는 JDBC, JPA와 같은 기술로 DB에 접근하는 코드를 작성한다. 서비스 계층에서 JDBC 트랜잭션을 사용하기위한 코드는 다음과 같다.public void somethingWork() { Connection connection = dataSource.getConnection(); try { connection.setAutoCommit(false); // 트랜잭션 시작 bizLogic(); // 비즈니스 로직 connection.commit(); } catch (Excepti..
우리가 DB 커넥션을 획득할때 어떤 과정을 거칠까?애플리케이션은 DB 드라이버를 통해 커넥션을 조회.DB 드라이버는 DB와 TCP/IP 커넥션 연결을하며 이때 3-way-handshake 같은 동작들이 발생.DB 드라이버는 TCP/IP 커넥션 연결되면 ID/PW 같은 부가 정보들을 DB에 전달.DB에서 ID/PW를 통해 내부 인증을 거치며 내부에 DB 세션을 생성한다.DB는 DB 드라이버에게 커넥션 생성 완료를 응답.DB 드라이버는 커넥션 객체를 생성해서 애플리케이션(클라이언트)에 반환. DB가 필요할때 마다 커넥션을 맺고 끊음의 반복은 시간이 많이 드는 일이다.그래서 커넥션을 미리 생성해서 두고두고 사용하는 방법이 커넥션 풀이다.커넥션 풀에 커넥션들은 DB와 TCP/IP 커넥션이 맺어진 상태로 보관되어..