๐Ÿ’พ DB_

๐Ÿ“„ MyBatis ๊ฐœ๋… ์ •๋ฆฌ – SQL ์ค‘์‹ฌ์˜ ORM ๋Œ€์•ˆ

CodeLoge 2025. 7. 1. 23:35

โ“ ๋ฌธ์ œ ์„ค๋ช…

 

Spring์—์„œ DB ์—ฐ๋™ ์‹œ, SQL์„ ์ง์ ‘ ์ œ์–ดํ•˜๊ณ  ๋ณต์žกํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ JPA๋ณด๋‹ค MyBatis๊ฐ€ ๋” ์ ํ•ฉํ•œ ์ƒํ™ฉ์ด ๋งŽ์Œ
MyBatis๋Š” ๊ฐ์ฒด ๋งคํ•‘์„ ์ง€์›ํ•˜์ง€๋งŒ, ORM์ด ์•„๋‹Œ SQL ๋งคํผ ํ”„๋ ˆ์ž„์›Œํฌ์ž„


๐Ÿ“Œ ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ

 

โœ… MyBatis๋ž€?

 

· SQL์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ , ๊ฒฐ๊ณผ๋งŒ ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” SQL ๋งคํผ ํ”„๋ ˆ์ž„์›Œํฌ

· ORM(Object-Relational Mapping)์€ ์•„๋‹ˆ๋ฉฐ, SQL ์ค‘์‹ฌ์˜ ์„ค๊ณ„ ๊ตฌ์กฐ


โœ… ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ

์š”์†Œ ์„ค๋ช…
Mapper Interface ์ž๋ฐ”์—์„œ ํ˜ธ์ถœํ•  ๋ฉ”์„œ๋“œ ์ •์˜
Mapper XML ์‹ค์ œ SQL ์ •์˜. ์ฟผ๋ฆฌ ์ž‘์„ฑ ์œ„์น˜
DTO/VO SQL ๊ฒฐ๊ณผ๋ฅผ ๋งคํ•‘ํ•  ์ž๋ฐ” ๊ฐ์ฒด
SqlSession Mapper๋ฅผ ๊ฐ€์ ธ์™€ SQL ์‹คํ–‰

โœ… ํŠน์ง•

 

· SQL์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ œ์–ด ๊ฐ€๋Šฅ

· ๋ณต์žกํ•œ ์ฟผ๋ฆฌ, ์กฐ๊ฑด ๋ถ„๊ธฐ, ๋™์  SQL ์ž‘์„ฑ์— ๊ฐ•๋ ฅ

· XML ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ์„ ํƒ ๊ฐ€๋Šฅ

· Entity ↔ DB ์ปฌ๋Ÿผ ๊ฐ„ ์ž๋™ ๋งคํ•‘ ์—†์Œ (์ง์ ‘ ์ง€์ • ํ•„์š”)

· Spring๊ณผ ํ†ตํ•ฉ ์‹œ SqlSessionTemplate ๋˜๋Š” @MapperScan ์‚ฌ์šฉ


โœ… ์žฅ์ 

 

· ๋ณต์žกํ•œ JOIN, ์„œ๋ธŒ์ฟผ๋ฆฌ, ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”

· SQL ํŠœ๋‹ ๋ฐ DB ๊ตฌ์กฐ ํŒŒ์•…์ด ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ

· ์ฟผ๋ฆฌ ๋ช…ํ™•์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ™•๋ณด


โœ… ๋‹จ์ 

 

· ๋ฐ˜๋ณต์ ์ธ ๋งคํ•‘ ์ฝ”๋“œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

· XML ๊ด€๋ฆฌ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๋ถ„๋ฆฌ ๊ตฌ์กฐ ๋ณต์žกํ•ด์ง

· JPA์ฒ˜๋Ÿผ ์ž๋™ํ™”๋œ ์˜์†์„ฑ ๊ด€๋ฆฌ, ๋ณ€๊ฒฝ ๊ฐ์ง€๋Š” ์—†์Œ