ย ์ ๋ฒ ํฌ์คํ ์์ JDBC Driver๋ฅผ ์ฌ์ฉํ์ฌ PostgreSQL๊ณผ Eclipse๋ฅผ ์ฐ๊ฒฐํด ๋ณด์์ต๋๋ค.
ย ์ด๋ฒ์๋ Connection Pool์ ์ฌ์ฉํด Connection๊ฐ์ฒด๋ฅผ ์ป์ด์ค๋ ๋ฐฉ๋ฒ์ ํฌ์คํ ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ย ์ ๋ฒ ํฌ์คํ ์์๋ JDBC์์ ์ฐ๋์ ๋ค๋ฃจ์ด๋ณด์์ต๋๋ค. JDBC๋ฅผ ์ฐ๋ํ๊ธฐ ์ํด์๋ ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ํ๊ณ JDBC URL๋ก ์ ์ํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด์ค๋ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผํฉ๋๋ค.
ย ์ฌ๊ธฐ์ ์์๋ณผ ์ปค๋ฅ์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋ Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ ํ(Pool) ์์ ์ ์ฅํด๋๊ณ ํ์ํ ๋๋ง๋ค ์ด ํ์ ์ ๊ทผํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ , ์์ ์ด ๋๋๋ฉด ๋ค์ ๋ฐํํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
ย ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์์ฒญ์ ํ๋๋ฐ ์ด ๋๋ง๋ค ๋งค๋ฒ Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฐ๊ฒฐํ๋ค๋ฉด ๋งค์ฐ ๋นํจ์จ์ ์ผ ๊ฒ์ ๋๋ค. ์ฆ ๋ฉ๋ชจ๋ฆฌ์ Connection ๊ฐ์ฒด๊ฐ ๋๋ฌด ๋ง์ด ์์ฑ๋๊ฒ ๋ฉ๋๋ค.
ย ๋ฐ๋ฉด ์ปค๋ฅ์ ํ์ ์ฌ์ฉํ๋ฉด ํ ์์ ๋ฏธ๋ฆฌ ์ปค๋ฅ์ ์ด ์์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ปค๋ฅ์ ์ ์์ฑํ๋๋ฐ ๋๋ ์ฐ๊ฒฐ ์๊ฐ์ด ์๋น๋์ง ์์ต๋๋ค.
ย ๋ํ ํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ์ง ์๋ ์ปค๋ฅ์ ์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ ์ํ ๋๋ง๋ค ๊ณ์ํด์ ์ปค๋ฅ์ ์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค. ์ฆ, ์ปค๋ฅ์ ํ์ ์ฌ์ฉํ๋ค๋ฉด ํ๋ก๊ทธ๋จ ํจ์จ๊ณผ ์ฑ๋ฅ์ด ์ ์ฒด์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค.
ย ์ ๊ทธ๋ฆผ์ ์ปค๋ฅ์ ํ์ด ์ฌ์ฉ๋๋ ๊ตฌ์กฐ์ ๋๋ค.
ย ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ์ํ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์ ์ ์์ฒญํ๋ฉด ์๋ฒ๋ ์ปค๋ฅ์ ํ์์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ป์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ํํฉ๋๋ค.
ย ์ํ์ ์๋ฃํ์๋ค๋ฉด ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ค์ ์ปค๋ฅ์ ํ๋ก ๋ฐํํ๋ ์์ ์ ํฉ๋๋ค. ์ด๋ ๋ฐํ๋ ์ปค๋ฅ์ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์์ฒญํ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ํด ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
ย ์ปค๋ฅ์ ํ์ ์ด ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ์๊ธฐ ๋๋ฌธ์ ์น ์ฌ์ดํธ ์ ์ ์ ๋งค๋ฒ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์จ์ ์ ๋๋ค.
ย CP(Connection Pool)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋๋ ํ์์ ์ ๋๋ค.
ย ์ดํ๋ฆฌ์ผ์ด์ ์์ CP(Connection Pool)๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ํฐ ๋ถ๋ด์ด ๋ฐ์ํ๋ฏ๋ก ์๋ฒ๋ ์ผ๋ง ๋ฒํฐ์ง ๋ชปํ๊ณ ์๋น์ค๊ฐ ์ค์ง๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ๊ฐ ํฐ์ก๋ค๊ณ ๋ ํํํฉ๋๋ค.
ย JNDI(Java Naming and Directory Interface)๋ ๋ช ๋ช ์๋น์ค ๋ฐ ๋๋ ํ ๋ฆฌ ์๋น์ค์ ์ ๊ทผํ๊ธฐ ์ํ API๋ฅผ ๋งํฉ๋๋ค.
ย ์ฆ ํน์ ์์์ ์ ๊ทผํ๊ธฐ ์ํ ์ด๋ฆ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
ย Tomcat์์๋ ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด Tomcat ์ค์น ๊ฒฝ๋ก์ lib ๋๋ ํ ๋ฆฌ์ CP(Connection Pool) ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด DBCP API
๋ฅผ ์ ๊ณตํฉ๋๋ค.
ย postgreSQLconnect/src/main/webapp/META-INF
๋๋ ํ ๋ฆฌ ๋ฐ์ context.xml ํ์ผ์ ์์ฑํด์ ์๋ฒ์ ๊ณต์ ํ ๋ฆฌ์์ค๋ฅผ ์ ์ํฉ๋๋ค.
META-INF ํ์ผ์์ ์ค๋ฅธ์ชฝ ๋ง์ฐ์ค ํด๋ฆญ ํ NEW > Other...
๋ฅผ ์ ํํด ์ค๋๋ค.
Wizards:
์นธ์ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ xml ์ ๊ฒ์ํ ํ XML File
์ ์ ํํ๊ณ Next๋ฅผ ๋๋ฌ์ค๋๋ค.
File name:
์ context ๋ฅผ ์
๋ ฅ ํ Finish๋ฅผ ๋๋ฌ xmlํ์ผ ์์ฑ์ ๋ง๋ฌด๋ฆฌ ํด ์ค๋๋ค.
์ด๋ ๊ฒ ์์ฑ์ด ๋ context.xml
ํ์ผ์ด ๋ณด์ธ๋ค๋ฉด ์ฑ๊ณต์
๋๋ค.
context.xml ํ์ผ
<Context>
<Resource name="jdbc/postgres"
auth="Container"
type="javax.sql.DataSource"
username="postgres"
password="1234"
driverClassName="org.postgresql.Driver"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
url="jdbc:postgresql://localhost/postgres"
maxActive="500"
maxIdle="100"/>
</Context>
<Context>
: context.xml ํ์ผ์ ์ต์์ ์๋ฆฌ๋จผํธ๋ <Context>๋ก ์ ํด์ ธ ์์ต๋๋ค.
<Resource>
: ๊ณต์ ํ๋ ๋ฆฌ์์ค์ ์ด๋ฆ์ ์ง์ ํ๋ ๋ถ๋ถ์
๋๋ค.
ํด๋ผ์ด์ธํธ์์ ์ ์ํ๋ ๋ฆฌ์์ค๋ฅผ ์ป์ด๊ฐ ๋๋ ์ฌ๊ธฐ์ name ์์ฑ์ผ๋ก ์ ์ํ ๋ฆฌ์์ค๋ช
์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
auth="Container"
: ํด๋ผ์ด์ธํธ์์ ๋ฆฌ์์ค๋ฅผ ์ป์ด๊ฐ ๋ ์ธ์ฆ์ ํฐ์บฃ ์ปจํ
์ด๋์์ ํ๊ฒ ๋ค๋ ์๋ฏธ์
๋๋ค.
type="javax.sql.DataSource"
: ๊ณต์ ํ ๋ฆฌ์์ค์ ํ์
์ DataSource๋ก ์ง์ ํ๋ ๋ถ๋ถ์
๋๋ค. ํด๋ผ์ด์ธํธ์์๋
๊ณต์ ๋ DataSource์ getConnection() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด๊ฐ ์ ์์ต๋๋ค.
username="postgres"
password="1234"
: ์ฐ๋ํ PostgreSQL ์ ๊ณ์ ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ํ๋ ๋ถ๋ถ์
๋๋ค.
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
: DBCP API๋ฅผ ์ฌ์ฉํด์ ํด๋ผ์ด์ธํธ์ ๊ณต์ ํ DataSource๋ฅผ ์์ฑํ๋๋ก ์ง์ ํ๋ ๋ถ๋ถ์
๋๋ค. ์๋ฐ API ํด๋์ค ์ค
์ด๋ฆ์ด Factory๋ก ๋๋๋ ํด๋์ค๋ค์ ํน์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฐํํ๋ ์ญํ ์ ํ๋ ํด๋์ค๋ค์
๋๋ค.
url="jdbc:postgresql://localhost/postgres"
: ์ฐ๋ํ PostgreSQL url์ ์ง์ ํ๋ ๋ถ๋ถ์
๋๋ค.
maxActive="500"
: ๋์์ ์ ๊ณตํ ์ ์๋ ์ต๋ Connection ๊ฐ์๋ฅผ ์ง์ ํ๋ ๋ถ๋ถ์
๋๋ค.
maxIdle="100"
: ํ์ฌ ์๋น์ค๋๊ณ ์๋ Connection ๊ฐ์ฒด๋ฅผ ์ ์ธํ CP(Connection Pool)์ ์ฌ์ ๋ก ๋จ๊ธธ ์ ์๋
์ต๋ Connection ๊ฐ์๋ฅผ ์ง์ ํ ๋ถ๋ถ์
๋๋ค.
ย ์๋์ ๊ฐ์ด webapp์๋ ๊ฒฝ๋ก์ dbcpAPITest.jsp
ํ์ผ์ ์์ฑ ํ ์ฝ๋๋ฅผ ์์ฑํด ์ค๋๋ค.
WEB-INF
ํ์ผ ๋ฐ์ ์์ฑํ์ง ์๋๋ก ์กฐ์ฌ!
dbcpAPITest.jsp ํ์ผ
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
try {
Context init = new InitialContext();
//dpcpAPITest.jsp ํ์ด์ง๊ฐ ์คํ๋๋ Tomcat ์์ฒด์ Context๋ฅผ ์ป์ด์ค๋ ๋ถ๋ถ
//Context๋ ๊ฐ์ข
ํ๊ฒฝ ์ค์ ์ ๋ณด๋ฅผ ์๋ฏธํจ
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/postgres");
//Tomcat ์๋ฒ์ ๊ณต์ ๋์ด ์๋ DataSource ๊ฐ์ฒด ๋ฆฌ์์ค๋ฅผ ์ป์ด์ค๋ ๋ถ๋ถ
//java:comp/env JNDI๋ ์ ํด์ ธ์๋ ์ด๋ฆ์ด๋ฉฐ Resource ์ ์ Context๊น์ง ์ ๊ทผํ๋ JNDI์
//์ฆ, context.xml์ ์ ์๋ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ค๋ฉด java.comp/env๋ผ๋ ์ด๋ฆ์ Context๊น์ง๋
//๋ฐ๋์ ์ ๊ทผํด์ผ ํจ
//jdbc/postgres JNDI ์ด๋ฆ์ context.xml์์ ๋ฆฌ์์ค๋ช
์ผ๋ก ์ ์ํ ์ด๋ฆ
conn = ds.getConnection();
//DataSource์์ ์ ๊ณตํ๋ getConnection() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด
//Tomcat ์๋ฒ์ CP(Connection Pool)์์ ์ ๊ณตํ๋ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด์ฌ ์ ์์
out.println("<h3>์ฐ๊ฒฐ๋์์ต๋๋ค.</h3>");
}catch(Exception e){
out.println("<h3>์ฐ๊ฒฐ์ ์คํจํ์์ต๋๋ค.</h3>");
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
ย ์๋์ ๊ฐ์ด ์ฐ๊ฒฐ๋์์ต๋๋ค.
๋ผ๋ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค๋ฉด PostgreSQL๊ฐ ์ ๋๋ก ์ฐ๋๋ ๊ฒ์
๋๋ค. ๋ง์ฝ ์ฐ๊ฒฐ์คํจ
๋ฉ์์ง๊ฐ ๋์จ๋ค๋ฉด, ์ฝ๋๋ฅผ ๋ค์ ํ ๋ฒ ํ์ธํ๋๋ก ํฉ์๋ค.
ย context.xml ํ์ผ์ ์
๋ ฅํ PostgreSQL ๋๋ผ์ด๋ฒ
์ด๋ฆ๊ณผ ์ ์ ํธ์คํธ
๋ฐ ํฌํธ ๋ฒํธ
, SID๋ช
์ ํ์ธํ๋๋ก ํฉ์๋ค.
ย context.xml ํ์ผ์ ๋ฌธ์ ์์ด ์์ฑํ์๋ค๋ฉด JSP ํ์ผ์์๋ ๋ฆฌ์์ค ์ด๋ฆ์ด ์ ๋๋ก ์ ๋ ฅ๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
ย ๋ํ, ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ฉํ์ง ๋ชปํ๋ฉด PostgreSQL ๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(postgresql-42.5.0.jar) ํ์ผ์ด ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ WEB-INF
์์ ์๋ lib ๋๋ ํ ๋ฆฌ์ ์ ๋๋ก ๋ณต์ฌ๋์ด ์๋ ์ง๋ฅผ ํ์ธํฉ๋๋ค.
ย CP(Connection Pool) ๊ธฐ๋ฅ์ ํฐ์บฃ ์์ฒด์์ ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(postgresql-42.5.0.jar) ํ์ผ์ด ํ๋ก์ ํธ์ lib ๋๋ ํ ๋ฆฌ์ ์กด์ฌํด์ผ ํฉ๋๋ค.
ย Transaction์ด๋ ์ผ ์ฒ๋ฆฌ์ ์ต์ ๋จ์๋ฅผ ์๋ฏธํฉ๋๋ค. Transaction์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ์ผ๊ด๋๊ฒ ํ๊ธฐ ์ํด ์กด์ฌํฉ๋๋ค.
ย ๋ง์ฝ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 2๊ฐ์ง์ ๋ช ๋ น์ ์ฃผ์์ ๋ ์ฒซ ๋ฒ์งธ ๋ช ๋ น์ ์ฒ๋ฆฌ๋ ์ฌ๋ฐ๋ฅด๊ฒ ๋์์ง๋ง ๋ ๋ฒ์งธ ๋ช ๋ น์ ์ฒ๋ฆฌ๊ฐ ์ฌ๋ฐ๋ฅด์ง ๋ชปํ๋ค๋ฉด ์ด๊ฒ์ ์ผ๊ด๋์ง ์์ ๊ฒ์ ๋๋ค.
ย 2๊ฐ์ง ๋ช ๋ น ์ค ํ๋๋ผ๋ ์คํจํ๋ฉด ์์ ์ผ๋ก ๋๋๋ฆด ์ ์์ด์ผ ํ๋ฉฐ, ์ด๋ฌํ ๊ฐ๋ ์ ๊ฐ์ง๊ฒ์ด Transaction์ ๋๋ค.
ย ํ ์ด๋ธ์ 10000๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๊ณ , 10000๊ฐ์ ๋ฐ์ดํฐ์ ๋ํด์ ์์ ์์ ์ ํ๋๋ฐ 5000๊ฐ์ ๋ฐ์ดํฐ์ ์์ ์์ ์ด ์๋ฃ๋ ํ ์์คํ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ 5000๊ฐ๋ง ์์ ๋ ์ํ์์ ์์ ์ด ์๋ฃ๋๋ฉด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๊นจ์ง๊ธฐ ๋๋ฌธ์ ์์ ์ด ์๋ฃ๋ 5000๊ฐ์ ๋ฐ์ดํฐ ์์ ๋ ์ทจ์์์ผ์ ์๋ ๋ฐ์ดํฐ๋ก ๋๋๋ ค์ผ ํฉ๋๋ค.
ย ๋ํ, ๊ณ์ข์ด์ฒด ์์ฒญ ์ ์ธ์ถ ๊ณ์ข์์ ๊ธ์ก์ ์ฐจ๊ฐํ๋ ์์ ์ ์ฑ๊ณตํ๊ณ , ์ด์ฒด๋์ ๊ณ์ข์ ๊ธ์ก์ ์ฆ๊ฐํ๋ ์์ ์ ์คํจํ ์ํฉ์์ ๊ณ์ข์ด์ฒด๊ฐ ๋ง๋ฌด๋ฆฌ๋๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ ์์ ์ด ๋ชจ๋ ์ฑ๊ณตํ์ ๋๋ง ๊ณ์ข์ด์ฒด ์์ ์ ๋ง๋ฌด๋ฆฌํด ์ฃผ์ด์ผ ํฉ๋๋ค.
ย ์์ ๊ทธ๋ฆผ์ Transaction์ ๊ธฐ๋ณธ ํ๋ฆ๋์ ๋๋ค.
ย ์ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์์ํ๊ธฐ ์ ์๋ Begin
์ผ๋ก ์์
์ด ์์๋ฉ๋๋ค.
ย Process
๋จ๊ณ์์ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
๋ค์ ์ฒ๋ฆฌํ๊ฒ ๋๋ฉฐ, ์ด ์์
๋ค์ด ์ค๋ฅ ์์ด ๋ชจ๋ ์ ์๋ํ๋ค๋ฉด Commit
์ ์ํํ๊ฒ ๋ฉ๋๋ค.
ย ์ด๋ก์จ Transaction ์ฒ๋ฆฌ๊ฐ ๋ง๋ฌด๋ฆฌ๋ ๊ฒ์ ๋๋ค.
ย ํ์ง๋ง ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
๋ค ์ค ํ๋์ ์์
์ด๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฉด Rollback
์ ์คํํ์ฌ Begin
์ดํ์ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ๋ชจ๋ ๋ฌดํจ ์ฒ๋ฆฌ๋ฉ๋๋ค.
ย Process
๋จ๊ณ์์ ์ฒ๋ฆฌ๋๋ ์์
๋ค์ Commit
์ด ์คํ๋์ง ์๋ ํ, ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ์
๋ฐ์ดํธ ์์
์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์ต๋๋ค.
ย ์ด์ฒ๋ผ Transaction์ ์ด์ฉํ๋ฉด ํ๋์ Transaction์ผ๋ก ๋ฌถ์ธ ์์ ๋ค์ ์ ๋ถ ์คํ๋๋ ์ง ์ ๋ถ ์ทจ์๋๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
ย Transaction ๋ด์ฉ์ ์ถํ ํฌ์คํ ์์ Transaction ๊ด๋ฆฌ ๋ถ๋ถ์์ ์กฐ๊ธ ๋ ์์ธํ ๋ค๋ฃจ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ย ์ฌ๊ธฐ๊น์ง CP๋ฅผ ์ฌ์ฉํ์ฌ Connection ๊ฐ์ฒด๋ฅผ ์ป์ด์ ๋ณด๋ ํฌ์คํ ์ด์์ต๋๋ค.
ย ๋ค์์๋ JDBC๋ฅผ ์ฌ์ฉํ์ฌ Eclipse์์ DB์์ ์ ํด ๋ณด๋ ํฌ์คํ ์ ํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.