| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- spring
- node.js
- 데이터베이스
- 프론트엔드
- 서버
- 정리
- 코드 테스트
- SQL
- jpa
- BACK-END
- java
- 프런트엔드
- 스프링부트
- 디자인 패턴
- 미니정리
- JavaScript
- 프로그래머스
- 알고리즘
- 쿼리
- oracle
- 오라클
- MySQL
- 자바스크립트
- 백엔드
- 스프링
- jsp
- Next.js
- 자바
- 코드테스트
- web
- Today
- Total
참치코더의 꿈 메모장
JSP - 커넥션 풀 , JNDI (데이터 베이스 연동법) 본문
데이터베이스 연동하는 방법이 서적에서 나온 방법과 달라 정리해 보았다.
커넥션 풀
기본적으로 JDBC를 이용하여 DB를 연동시킬수 있는데, 이러한 방법을 이용하면 연결은 쉬울지 모르나
DB를 이용할때 마다 프로그램을 연결과 해제를 시도하므로 버퍼링이 걸릴 수 밖에 없다.
(많은 사용자가 이용하는 쇼핑몰의 경우 병목현상이 발생할 수 있다.)
따라서 이러한 방법을 해소시키기 위해서 커넥션 풀이라는 기술이 등장했는데
애플리케이션이 실행될때 미리 톰켓 WAS가 ConnectionPool 객체를 생성해서 DB를 연결 시켜 놓는다
미리 연결 시켜 놓았기 때문에 사용자는 ConnectionPool 객체에 메서드를 이용해서 연결하기만 하면 언제든지
DB를 손쉽게 연결할수 있기 때문에 실전에서는 커넥션 풀을 이용한 DB 연결을 많이 사용한다.
JNDI
Connection pool 객체를 이용하는 방법이 JNDI라고 생각하면 되는데,
JNDI는 필요한 DB 연결 방식을 미리 key 형식으로 저장을 해서 연결한 후 사용하는데
JNDI를 사용하기 위해서는 연결할 DB의 jdbc 드라이버와 톰캣 같은 경우 DBCP 라이브러리를 따로 내려 받아야 한다.
http://www.java2s.com -> 여기서 받도록 하자
그리고 WEB-INF/lib 폴더에 위의 파일 2개를 저장한 후에 톰캣 서버의 context.xml에 가서 연결할 커넥션풀 키를
생성해야 한다.
키 설정 코드는
<Resource
name="jdbc/mariadb" // 마리아 db를 사용하였다. db에 따라 다름
auth="container"
type="javax.sql.DataSource"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://localhost:3306/데이터베이스이름"
username="DB유저이름"
password="DB비밀번호"
maxActive="동시에 최대로 데이터베이스에 연결할 수 있는 Connection 수"
maxWait="새로운 연결이 생길 때까지 기다릴 수 있는 최대 시간" />
이렇게 하면 커넥션 풀로 DB 연동이 가능하다.
그냥 개인적인 감이긴 한데 큐넷 기사 시험 신청할때 사람이 많이 몰려서 대기인원 뜨는데
아마 JNDI로 인원수 조절하지 않나 싶다. 아님 말고 ㅎㅎ
'JSP' 카테고리의 다른 글
| JSP - 표현언어 , 표현언어 내장 객체 (0) | 2020.12.28 |
|---|---|
| JSP - 액션태그(setProperty/ getProperty) (0) | 2020.12.28 |
| JSP - 액션태그 (<jsp:include>, <jsp:forward>) (0) | 2020.12.24 |
| JSP- 내장 객체 기능 , 예외처리 , 처음 페이지 설정 (0) | 2020.12.22 |
| JSP - 스크립트 요소 (가장 기본적인 요소 3가지 + 주석방법) (0) | 2020.12.22 |