-JDBC를 통해 DB를 사용하려면, Connection 타입의 DB 연결 객체가 필요하다.
-엔터프라이즈 환경에서는 각 요청마다 Connection을 새롭게 만들고 종료시킨다.
-애플리케이션과 DB사이의 실제 커넥션을 매번 새롭게 만드는 것은 비효율적이고 성능저하
-풀링(pooling) 기법 사용
정해진 개수의 DB Connection Pool에 준비하고 애플리케이션 요청때 마다 꺼내서 할당하고 돌려받아 pool에 저장.
-Spring에서는 DataSource를 하나의 독립된 빈으로 등록하도록 강력하게 권장.
-엔터프라이즈 시스템에서는 반드시 DB 연결 풀 기능을 지원하는 DataSource를 사용해야 한다.
요약
쿼리를 보내는것보다 연결하는데 더 많은 자원이 사용된다. 그래서 사용한는것이 Connection Pool이다. 이는 커넥션을 만들어 놓고 요청이 있을 때 마다 하나 빼서 쓰고 반납하고 쓰고 반납하고 하는 방식이다. 이를 통해 성능이 좋아진다.
여기서 Connection Pool을 Datasource라 한다.
JREBEL의 활용
소스코드가 변경되면 서버를 다시시작해야되는 번거로움이 존재하지만 JREBEL로 극복 가능하다
https://my.jrebel.com/ 에 접속하여 가입하고 라이센스키를 받아서 활용하자
Window-Preferences-JRebel에 접속해서 설정하자!
인터셉터
스피링에서 서블릿 디스패처와 컨트롤러 사이에 존재하여 가로채는 역할을 한다. Servlet의 앞과 뒤에서 HTTP Request와 HTTP Response를 가로채는 필터와 유사하며 Interceptor를 구현하기 위해서는 HandlerInterceptor 인터페이스를 구현하여야 한다.