일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- spring 쇼핑몰
- 스프링 게시판 구현
- 삭제 구현
- oracle 설치방법
- 스프링 프로젝트 기본 설정
- 로그인 기능
- 스프링 이미지
- 스프링 파일 삭제
- 스프링 업로드
- Bcrypt
- 스프링 HikariCP
- 쇼핑몰 포트폴리오
- 정규표현식
- 스프링 메일 전송
- 스프링 쇼핑몰 프로젝트
- 쇼핑몰 프로젝트
- 스프링 프로젝트 설정
- arraylist
- 이미지 출력
- ResponseEntity
- 스프링 프로젝트
- 인증번호 전송
- 스프링 포트폴리오
- 회원가입 기능
- 로그아웃 기능 구현
- BCrypt 적용
- spring 프로젝트
- 스프링 쇼핑몰
- 파일 업로드
- 스프링 게시판
Archives
- Today
- Total
Kim VamPa
[Spring] JDBC란? Connection pool이란? 본문
728x90
반응형
개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- JDBC란 무엇인지 이해하고 작동과정에 대해 공부한다.
- 커넥션 풀(connection pool)이 무엇인지 공부한다.
- 스프링 JDBC 란 무엇이고 그에 대한 장점에 대해 공부한다.
목차
1. JDBC
2. Connection Pool
1. JDBC
"Java DataBase Connectivity의 약자로서 자바에서 데이터베이스와 관련된 작업을 처리할때 사용하는 API다"
- DBMS 종류(MySql, MsSql, Oracle...)에 상관 없이 하나의 JDBC API를 사용해서 데이터베이스 작업을 처리할수 있다.
- JDBC API를 사용하는 어플리케이션의 개략적인 구조는 [그림 1-1]과 같습니다.
- 자바(웹)어플리케이션 에서 데이터베이스 에 접근하기위해선 JDBC API를 이용해서 데이터베이스에 접근합니다.
- JDBCAPI는 JDBC 다라이버를 거쳐 데이터베이스와 통신을 합니다.
- JDBC 드라이버
- 자바 프로그램의 요청을 DBMS가 이해할 수 있는 프로토콜로 변환해주는 클라이언트 사이드 어댑터입니다.
- 각각의 DBMS는 자신에게 알맞은 JDBC드라이버를 제공하고 있습니다.
JDBC 실행 과정
- JDBC 는 다음의 실행 순서를 가집니다.
1. JDBC 드라이버 LOAD
↓
2. Connection 객체 생성
↓
3. Statement 객체 생성
↓
4. Query 실행
↓
5. Result 객체로부터 데이터 추출
(쿼리 실행 결과 사용)
↓
6. Result 객체 Close
↓
7. Statement 객체 Close
↓
8. Connection 객체 Close
- 해당 과정에서 다음의 객체들을 사용하였습니다
- Connection : DB 연결 객체
- Statement 또는 PreparedStatment 객체 : SQL 문 실행 객체
- ResultSet 객체 : select 문 결과를 가지는 객체 - 위의 객체들은 DB관련 처리작업이 완료된 다음에는 반드시 사용했던 객체들을 메모리에서 해제(close())를 해주어야 합니다.
2. 커넥션 풀(Connection Pool)
- 커넥션 풀(Connection Pool)은 일정량의 Connection객체(DB 연결 객체)를 미리 만들어어서 pool에 저장해둡니다. 프로그램에서 요청이 오면 Connection객체를 빌려주고, 해당 객체의 임무가 완료되었으면 다시 반납 받아서 pool에 저장을 하는 프로그래밍 기법입니다.
- 장점 : 불필요한 작업(커넥션 생성,삭제)이 사라지므로 성능향상을 기대할 수 있습니다.
- 보통의 DB접근(JDBC과정)경우 객체를 생성 후 일일이 다시 삭제를 해주어야 합니다.
- 커넥션 풀을 사용할 경우 커넥션(Connection)객체를 미리 만들어 놓고 사용하기때문에 불필요한 생성과 삭제하는데 드는 비용(메모리 차지)을 줄일수 있습니다. - 커넥션(Connection)객체는 적정량만 생성해두어야만합니다.
- 너무 많은 DB접근이 발생할 경우에는 커넥션(Connection)은 한정되었기 때문에 쓸수 있는 커넥션이 반납될때 까지 기다려야 합니다.
- 너무 많은 커넥션(Connection)을 생성할시엔 커넥션 또한 객체이므로 많은 메모리를 차지합니다. 그렇게 되면 프로그램의 성능을 저하시키는 원인이 될 수 있습니다.
- 따라서 사용량에 따라 적정량의 커넥션(Connection)객체를 생성해두어야 합니다.
요약
- JDBC는 자바 어플리케이션이 데이터베이스에 접근할수 있도록 만든 JAVA에서 제공하는 API입니다.
- 하나의 JDBC로 어떤 DBMS든 각회삭 제공하는 JDBC드라이버를 통해 연결 할 수 있습니다.
- 커넥션 풀이란 JDBC 실행과정중에서 생성되어야할 Connection 객체를 미리만들어서 pool 이란 곳에서 저장을 해두는 기법입니다.
- 장점은 불필요한 과정(Connection객체를 생성,삭제)을 줄여서 성능을 향상시킬수 있습니다.
Reference
- "JSP2.3 웹프로그래밍"(가메출판사)
- https://opentutorials.org/module/3569/21222
- https://hyeonstorage.tistory.com/110
- https://gmlwjd9405.github.io/2018/05/15/setting-for-db-programming.html
Date
- 2020.04.03 작성
728x90
반응형
'공부 > 자바' 카테고리의 다른 글
[Java]컬렉션 프레임웍(Collection Framework)란? (0) | 2020.05.05 |
---|---|
[Java]다형성(polymorphism)이란? (0) | 2020.04.24 |
JDK(Java Development Kit) 설치방법[자바 개발자버전 설치] (0) | 2020.03.19 |
컴파일(Compile), 링크(Link), 빌드(Build) 정리 (0) | 2020.03.18 |
고급언어, 저급언어란? (0) | 2020.03.17 |
Comments