๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring๐Ÿ€

JDBC,SQLMAPPER ์ •๋ฆฌ

by @ENFJ 2022. 10. 22.

JDBC, SQLMAPPER, ORM ์ด 3๊ฐ€์ง€์˜ ๊ณตํ†ต์ ์ด ๋ญ˜๊นŒ? 

=> Persistance (์˜์†์„ฑ) 

 

๊ทธ๋ ‡๋‹ค๋ฉด Persistance (์˜์†์„ฑ) ์ด๋ž€ ๋ญ˜๊นŒ?

=> ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜๋”๋ผ๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ ์„ ๋งํ•œ๋‹ค.

 

+๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์šฐ๋ฆฌ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ํ”„๋กœ์„ธ์Šค ๊ณผ์ •์—์„œ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

๊ทธ ๋ฐ์ดํ„ฐ๋Š” RAM์— ์žˆ์œผ๋ฉฐ, RAM์˜ ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š”๋ฐ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ง์ ์œผ๋กœ ๋งŒ๋“ค์–ด

์–˜๋„ค๋“ค์„ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋Š”๊ฒƒ์ด๋‹ค. 

๊ทธ๋ž˜์„œ ์˜๊ตฌํžˆ ์ €์žฅ๋˜๋Š” ๊ทธ ์–ด๋–ค๊ฒƒ์„ ๋‘๊ณ  '์˜์†์„ฑ' ์ด๋‹ค ๋ผ๊ณ  ํ•œ๋‹ค.

 

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ• ๋•Œ ์•„๋ž˜ '๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜' ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

๋„๋ฉ”์ธ ๋ชจ๋ธ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑฐ์ณ DB์— ๋„ฃ์–ด์•ผ ๋˜๋Š”๋ฐ ๊ทธ ์‚ฌ์ด์— ์–ด๋– ํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ์˜์†์„ฑ(Persistence)์ด๋‹ค.

 

 

 


์•„๋ž˜ ์‚ฌ์ง„์„ ์ผ๋‹จ ๊ธฐ์–ตํ•ด๋‘์ž. 

์•„์ฃผ ์งง๊ฒŒ ์—ญ์‚ฌ์— ๋Œ€ํ•ด ์„ค๋ช…..

1990๋…„๋Œ€ ์ค‘๋ฐ˜ 

์ธํ„ฐ๋„ท ๋ณด๊ธ‰, DB์‚ฐ์—… ์„ฑ์žฅ

์˜จ๋ผ์ธ ๋น„์ฆˆ๋‹ˆ์Šค์˜ ํˆฌ์ž ์ฆ๊ฐ€,

DB Connector์— ๋Œ€ํ•œ ๋‹ˆ์ฆˆ

 

=> ๊ทธ๋ž˜์„œ JDBC๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋จ.

 

 

์•„๋ž˜ ๊ตฌ์กฐ๋„๋ฅผ ๋ณด๋ฉด JDBC API ๊ฐ€ ์žˆ๊ณ , ๊ทธ ๋ฐ‘์— ๋“œ๋ผ์ด๋ฒ„ ๋งค๋‹ˆ์ €๊ฐ€ ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ DB์ œํ’ˆ๊ตฐ๋“ค์„ ๋”ฐ๋ผ์„œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ทธ๋ž˜์„œ JDBC API์— ๋งž๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋”

์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” API๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ๋“œ๋ผ์ด๋ฒ„ ๋งค๋‹ˆ์ €๋งŒ ๊ฐˆ์•„ ๋ผ์›Œ ์ฃผ๋ฉด ์–ด๋–ค ์ œํ’ˆ์ด๋“  ์ ‘๊ทผํ• ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š”๊ฒŒ

JDBC API๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

 

์Šคํ”„๋ง JDBC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” "์–ด๋–ค ์—ฐ๊ฒฐ์„ ํ•  ๊ฒƒ์ด๋‹ค" ์ด๋Ÿฐ ๋ถ€๋ถ„์€ ๋„ฃ์–ด์ค˜์•ผ ๋˜๊ฒ ์ง€๋งŒ 

์—ฐ๊ฒฐ์„ ์•Œ์•„์„œ ์˜คํ”ˆ ํ•ด์ฃผ๊ณ , SQL, ํŒŒ๋ผ๋ฏธํ„ฐ, Statement ๋“ฑ ์ด๋Ÿฐ๊ฑธ ์•Œ์•„์„œ ๋‹ค ํ•ด์คŒ.

 

SQLMapper ์— Mybatis ๋Š” JDBC์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ๋“ค์„ ์ข€ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„์„ ํ•จ.

Mybatis์˜ ์ฃผ ๊ด€์‹ฌ์‚ฌ๋Š” SQL์„ ๋ถ„๋ฆฌ ํ•˜์ž ์ž…๋‹ˆ๋‹ค.

์ž๋ฐ”์ฝ”๋“œ์—์„œ SQL ์“ฐ๋Š”๊ฑฐ ๊ต‰์žฅํžˆ ๋ถˆํŽธํ•˜๋‹ค ์™œ๋ƒํ•˜๋ฉด String์œผ๋กœ ๋„ฃ์–ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ

๋„์–ด์“ฐ๊ธฐ ํ•˜๋‚˜๋ผ๋„ ์ž˜๋ชปํ•œ๋‹ค๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚จ.

 

๊ทธ๋ž˜์„œ Mybatis๋Š” ์ฟผ๋ฆฌ๋ฅผ JAVA์—์„œ XML๋กœ ์˜ฎ๊น€.

๊ทธ๋ž˜์„œ ๋ณต์žกํ•œ JDBC ์ฝ”๋“œ์ธ ์ปค๋„ฅ์…˜,์Šคํ…Œ์ดํŠธ๋จผํŠธ, ResultSet ๋“ฑ์„ ํ•˜๋‚˜๋„ ์•ˆ ์“ฐ๊ณ  ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ XML๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒ ๋‹ค!

 

์ฆ‰ SQL์„ ์ž๋ฐ”์˜ ๋ฉ”์†Œ๋“œ์— ๋งคํ•‘์„ ํ•ด์ฃผ๊ฒŒ ๋จ.