Skip to content

Latest commit

ย 

History

History
50 lines (40 loc) ยท 4.09 KB

2021-11-27-why-failed-mybatis.md

File metadata and controls

50 lines (40 loc) ยท 4.09 KB

์™œ ๋‚˜๋Š” Mybatis๋ฅผ ์–ด๋ ค์›Œ ํ• ๊นŒ

์ด ๊ธ€์€ ๋‹ค์–‘ํ•œ Mybatis์„ค์ • ํ•ด๋ณด๋ ค๊ณ  ์ด๊ฒƒ์ €๊ฒƒ ํ•ด๋ณด๋‹ค๊ฐ€ ๋ฉ˜ํƒˆ๋„ ๋‚˜๊ฐ€๊ณ  ์™œ ๋ชปํ–ˆ๋Š”์ง€ ๋ณ€๋ช…ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ใ…œใ…œ

ํ˜„์—…

์ด๋ฒˆ์— ๊ฐœ๋ฐœ์ž๋กœ ์ผ์„ ํ•˜๊ฒŒ ๋˜๋ฉด Mybatis๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ํŠน์ดํ•œ ์ ์„ ๋ดค๋Š”๋ฐ 1. ์œ ์‚ฌํ•œ ์ด๋ฆ„์˜ Table์ด๊ธฐ๋„ ํ–ˆ๊ณ , column์˜ ์ฐจ์ด๋งŒ ์žˆ๋Š” Table์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์—ˆ๋‹ค. 2. Sql์— ๋กœ์ง์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

์ด ๋‘๊ฐ€์ง€์˜€๋‹ค.
๊ตฌ์กฐ๊ฐ€ ์ž˜๋ชป๋๋‹ค ์ข‹์€๊ฒƒ๊ฐ™๋‹ค ๋ผ๊ณ  ํŒ๋‹จ ํ•˜๊ธด ํž˜๋“ค์—ˆ์ง€๋งŒ, ์ง€๊ธˆ๊นŒ์ง€ ์งง์€ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์—์„  ๋ณด์ง€ ๋ชปํ•œ ๊ตฌ์กฐ ์˜€๋‹ค.
์ข‹์€๊ฒƒ ์•ˆ์ข‹์€๊ฒƒ์„ ๋– ๋‚˜ ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ผ ๊ฐ™์€ ๋กœ์ง์ด๋”๋ผ๋„ ํ…Œ์ด๋ธ” ์„ค๊ณ„๋Š” ์ฒœ์ฐจ๋งŒ๋ณ„๋กœ ์ž‘์„ฑ๋ ๊ฑฐ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ๊ทธ๋Ÿผ ์ดํ•ดํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ๊ณ ํ†ต์Šค๋Ÿฝ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Sql์— ๋กœ์ง์ด ๋“ค์–ด๊ฐ€์žˆ์—ˆ๋Š”๋ฐ, Test Code๋Š” ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” DataBase์˜ ์—ญํ• ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ˆ˜ํ•œ ์กฐํšŒ, ์‚ญ์ œ, ์ˆ˜์ •, ์‚ฝ์ž…ํ•˜๋Š” ์ •๋„๋กœ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์กฐ๊ฑด์— ๋”ฐ๋ผ CRUD์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์กฐ๊ฑด์— ๋”ฐ๋ผ Test Code๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๊ดœ์ฐฎ๊ฒ ์ง€ ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๋กœ์ง์ด ๋ณ€๊ฒฝ๋˜๋Š” ์ˆœ๊ฐ„ Service Logic๋ฟ๋งŒ ์•„๋‹ˆ๋ผ .xml์—์„œ query๊นŒ์ง€ ํ™•์ธ ํ•ด์•ผ ํ•˜๋‹ˆ ์ด์Šˆ์˜ ๊ณต์ˆ˜๊ฐ€ ๋” ๋“ค์–ด๊ฐ€๊ณ  ๋”๋ถˆ์–ด ์‹ค์ˆ˜๋ฅผ ํ•  ์š”์†Œ๊ฐ€ ๋งŽ์•„ ์งˆ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์„ค์ •

Mybatis์— ๋Œ€ํ•œ ๊ธ€ ํ•ด๋‹น ๊ธ€ ์„๋ณด๋ฉด์„œ xml์—์„œ ์„ค์ •ํ•˜๋Š” ๊ฒƒ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ .properties, Configuration์—์„œ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํŒŒ์ƒํ•˜์—ฌ ๊ธ€์„ ์‹œ๋ฆฌ์ฆˆ ๋ณ„๋กœ ์ž‘์„ฑํ•˜๊ณ ์‹ถ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„์ด ๋‚  ๋•Œ ๋งˆ๋‹ค ์—ฌ๋Ÿฌ ์„ค์ •์— ๊ด€๋ จ๋œ ๊ธ€์„ ์ฐพ์•„๋ดค๋Š”๋ฐ, SpringBoot, Spring, SpringMVC ๋“ฑ๋“ฑ ๊ฐ๊ฐ ์„ค์ •ํ•˜๋Š” ํ™˜๊ฒฝ์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ž๋‹ค.
์–ด์ฐŒ์ €์ฐŒ ์„ค์ •์„ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ํด๋ž˜์Šค์—์„œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋„ ์ธ์‹์„ ๋ชปํ–ˆ๋‹ค๋Š” ์—๋Ÿฌ๋งŒ ๋ฌด์„ฑํ•  ๋ฟ ์›์ธ์ด ๋ญ”์ง€ ์ฐพ๊ธฐ ํž˜๋“ค์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ํ• ๊ฑด๊ฐ€

๊ฒฐ๊ตญ ์›ํ•˜๋Š” ๊ธ€์„ ์™„์„ฑ ํ•˜๋Š” ๊ฒƒ์„ ๋‹ฌ์„ฑํ•˜์ง„ ๋ชปํ–ˆ์ง€๋งŒ, ์–ป์€ ๊ฒƒ์€ ์žˆ์—ˆ๋‹ค.
๋‚ด๊ฐ€ ์ด๊ฑธ ์ดํ•ดํ•œ๋‹ค๋ฉด, ๊ธฐ์กด์—๋Š” yml, properties์—์„œ ์„ค์ • ํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ์ข€๋” ์ƒ์„ธํ•˜๊ฒŒ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์„๊ฒƒ์ด๊ณ , ์ด๊ฑธ ๊ธฐ๋ฐ˜์œผ๋กœ code์™€ DB๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ,
์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  SpringBoot ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Spring, SpringMVC์—์„œ ์„ค์ •์„ ์ฒด๊ฐ ํ•ด๋ณธ๋‹ค๋ฉด ๊ทธ๋ƒฅ ๊ธ€์„ ์ฝ์—ˆ์„ ๋•Œ ๋ณด๋‹ค ๋” ๋งŽ์€ ๊ฒฝํ—˜์น˜๊ฐ€ ๋ ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ… ์ดํ›„ ํ•œ๋ฒˆ์˜ ํฌ์ŠคํŒ…์ด ๋‚จ์•„ ์žˆ๋Š”๋ฐ, ๊ทธ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์ œ๋กœ ์ž‘์„ฑ ํ• ๊ฒƒ์ด๋‹ค.
"Mybatis ์„ค์ • 1ํŽธ : xml๋กœ ์„ค์ •ํ•ด๋ณด๋Š” Mybatis"

์ด๋ฒˆ ๊ธฐ์ˆ˜์˜ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” Mybatis์˜ ๋‹ค์–‘ํ•œ ์„ค์ •์— ๋Œ€ํ•œ ๊ธ€์˜ ์‹œ์ž‘์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜ ์žˆ์—ˆ์Œ ์ข‹๊ฒ ๋‹ค.

ps : JDBC, JPA์ตœ๊ณ  !

๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ์œ„ํ•ด ์ฐพ์•„ ๋ดค๋˜ ๊ธ€๋“ค

Spring-Boot-MyBatis-์„ค์ •-๋ฐฉ๋ฒ•
mybatis-The content of element type "configuration" must match ... ์—๋Ÿฌ
Spring boot + Mybatis ์—ฐ๊ฒฐํ•˜๊ธฐ
Java Resource ์‚ฌ์šฉ(getResource(),getResourceAsStream())
๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ(1) - ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๊ณผ ์„ค์ •.
MyBatis์™€ ์Šคํ”„๋ง ์—ฐ๋™
JAVA ์ž๋ฐ” ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค mybatis ์‚ฌ์šฉํ•˜๊ธฐ
Spring Boot + MyBatis ์„ค์ • ๋ฐฉ๋ฒ•(HikariCP, H2)
myBatis ์„ค์ •(Properties ํŒŒ์ผ ์„ค์ • ๋ฐฉ์‹)
Spring Boot ์—์„œ Context Path ์„ค์ •ํ•˜๊ธฐ