๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 86

[SpringBoot] @RequestParam๊ณผ @PathVariable ์ฐจ์ด

์˜จ๋ณด๋”ฉ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋‹ค๋ณด๋ฉด์„œ ๋Š๋‚€์ ์€ ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์—์„œ ์‹ค์ˆ˜ํ•˜๋Š” ์ผ์ด ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์‹œ๊ธˆ CS ๊ณต๋ถ€์˜ ์†Œ์ค‘ํ•จ์„ ๊นจ๋‹ซ๊ณ .. ์˜ค๋ฅ˜ํ•ด๊ฒฐ ๊ณผ์ •์„ ํฌ์ŠคํŒ…ํ•œ๋‹ค. Resolved org.springframework.web.bind.MissingServletRequestParamterException ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  API๋ฅผ ์‹คํ–‰ํ•˜๋‹ˆ ๋ฐ”๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š”.. PUT์œผ๋กœ mappingํ•œ๋‹ค๊ณ  ์ ์–ด๋†“๊ณ , @RequestParam์„ ๋‹น๋‹นํ•˜๊ฒŒ ์ ์€ ํƒ“์ด๋‹ค^^...@PutMapping์€ @PathVariable๋กœ ๋ฆฌ์†Œ์Šค id๋ฅผ ๋ฐ›์•„์•ผํ•œ๋‹ค. controller์—์„œ parameter๋ฅผ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€๋ฅผ ํ˜ผ๋ˆํ•  ์ค„์€ ๋ชฐ๋ž๋Š”๋ฐ... ๋‹ค์‹œ๋Š” ์ด๋Ÿฐ์‹ค์ˆ˜ ํ•˜์ง€์•Š๊ธฐ..

๋ฐฑ์—”๋“œ, ์ข‹์€ ์ฝ”๋“œ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ํด๋ฆฐ์ฝ”๋“œ?

์ข‹์€ ์ฝ”๋“œ๊ฐ€ ๋„๋Œ€์ฒด ๋ญ์ง€? ‘์ข‹์€ ์ฝ”๋“œ๋ž€?‘์ด๋ผ๊ณ  ๊ตฌ๊ธ€๋งํ•ด๋ณด๋ฉด ๋งŽ์€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋‚˜๋„ ๊ทธ๋ ‡๊ณ  ๋‹ค๋“ค ๊ถ๊ธˆํ–ˆ๋˜๋“ฏํ•˜๋‹ค. ‘์ข‹์€ ์ฝ”๋“œ’๋ž€ ๋…€์„์€ ์ •์ฒด๋„, ์‹ค์ฒด๋„ ์—†์ด ์ด ์„ธ์ƒ์— ๋– ๋Œ๊ณ  ์žˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ‘์ข‹์€ ์ฝ”๋“œ’์˜ ๊ธฐ์ค€์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๊ณ  ๊ฐ๊ฐ์˜ ๊ฒฝํ—˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. ์„ธ๊ฐ„์— ์ข‹์€ ์ฝ”๋“œ์˜ ์ •์˜๋Š” ์ •๋ง ๋งŽ๋‹ค. ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ ์ค‘๋ณต์ด ์—†๋Š” ์ฝ”๋“œ ํ…Œ์ŠคํŠธ๊ฐ€ ์šฉ์ดํ•œ ์ฝ”๋“œ ๋“ฑ๋“ฑ… ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ์ข‹์€ ์ฝ”๋“œ? ์ด ์ œ๋ชฉ์˜ ์ฑ…๋„ ์žˆ๋‹ค. ์ œ๋ชฉ ๊ทธ๋Œ€๋กœ์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ง€์ผœ์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ œ์•ˆํ•˜๊ณ  ์žˆ๋‹ค. ์ฝ๊ธฐ ์‰ฌ์šฐ๋ ค๋ฉด ์ฃผ์„์„ ์“ฐ๋ฉด ๋˜์ง€ ์•Š๋‚˜? ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ์ฝ๊ธฐ ์‰ฝ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ์ž‘์„ฑ์ž์—๊ฒŒ ์ต์ˆ™ํ•œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ํ•œ๊ตญ์ธ์ด๋ผ๋ฉด ์˜์–ด๋กœ ๋ณต์žกํ•˜๊ฒŒ ์ž‘์„ฑ๋œ..

์ธํ„ฐํŽ˜์ด์Šค ๋„ค์ด๋ฐ์€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด, service๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  implementsํ•ด์„œ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์–ด๋Š์ƒŒ๊ฐ€๋ถ€ํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹จ์ผ ๊ตฌํ˜„์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๊ธฐ๊ณ„์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์™”๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค๋ฉฐ ํฌ์ŠคํŒ…์„ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์ฒด Impl ์ ‘๋ฏธ์‚ฌ๋Š” ์ง€์–‘ํ•ด์•ผํ•œ๋‹ค ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ๋ฒ•์˜ ์ž”์žฌ ํ•™๊ต๋‚˜ ๋‹จ์ˆœํ•œ ์ฝ”๋“œ ๊ฐœ๋ฐœ ๋“ฑ ์ƒ๊ฐ๋ณด๋‹ค ๊ฝค ๋งŽ์€ ๊ณณ์—์„œ ์•„์ง๊นŒ์ง€ ์ด๋Ÿฐ layout์„ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ตฌํ˜„์ฒด์—๋Š” Impl ์ ‘๋ฏธ์‚ฌ๊ฐ€ ๋ถ™์€ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ๋ฒ•์˜ ์ž”์žฌ๋กœ, ์ง€์–‘ํ•ด์•ผ ํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๋„ค์ด๋ฐ ๋ฐฉ๋ฒ• ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋„ค์ด๋ฐํ•  ๋•Œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ด๋ฆ„์„ ๊ทธ ์˜๋ฏธ ์ž์ฒด์— ๋”ฐ๋ผ ์ง€์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ „์ง„go()), ํ›„์ง„(back()), ํ˜„์žฌ ์œ„์น˜ ๋ฐ˜ํ™˜(ge..

๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ ๋ธŒ๋ผ์šฐ์ € ๋•๋•๊ณ (DuckDuckGo)

์š”์ฆ˜ IT ํŠธ๋ Œ๋“œ ํŒŒ์•…์„ ์œ„ํ•œ ์ผ์ผ๊ณผ์ œ๋กœ Tech ์นผ๋Ÿผ์ด๋‚˜ ๊ธฐ์‚ฌ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ๋‹ค. ์˜ค๋Š˜์˜ ๋‚ด์šฉ ์ค‘ ๋•๋•๊ณ (DuckDuckGo)๋ผ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋˜์–ด ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ตฌ๊ธ€๋ง์ด๋ž€ ๋—„ ์ˆ˜ ์—†๋Š” ์กด์žฌ๋ผ๋Š” ๊ฑด ๋ชจ๋‘๊ฐ€ ๊ณต๊ฐํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๋•๋•๊ณ (DuckDuckGo) 2008๋…„์— ๊ฐœ๋ฐœ๋œ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ๋ฌด๋ฃŒ ๋ธŒ๋ผ์šฐ์ €. ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ๋งค์šฐ๋งค์šฐ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒ€์ƒ‰์–ด๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. 2014๋…„์—๋Š” “๊ตฌ๊ธ€ ๋“ฑ ๋‹ค๋ฅธ ๊ฒ€์ƒ‰์—”์ง„์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŽ์€ ์ •๋ณด๋ฅผ ํƒ๋‚ธ๋‹ค"๋ผ๋ฉฐ, ๊ณต๊ฐœ์ ์œผ๋กœ ๊ตฌ๊ธ€์„ ๊นŒ๋ฉฐ ์Šค์Šค๋กœ๋ฅผ ‘๋ฐ˜(ๅ) ๊ตฌ๊ธ€’์ด๋ผ๊ณ  ํ•˜๋Š” ์‹ ๋ฐ•ํ•œ ๋ธŒ๋ผ์šฐ์ €๋‹ค. ๐Ÿฆ†DuckDuckGo = https://duckduckgo.com DuckDuckGo — ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ, ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. The ..

[Lombok]@ToString ๋ถ€๋ชจ์˜ toString() ํ•จ๊ป˜ ์ถœ๋ ฅํ•˜๊ธฐ

์ž๋ฐ” ์ซŒ ์จ๋ดค์œผ๋ฉด extends ์ƒ์†์€ ๋‹น์—ฐํžˆ ํ–ˆ๊ฒ ์ง€? ํ‰์†Œ์™€ ๋‹ค๋ฆ„์—†์ด.. extend๋กœ DTO๋ฅผ ๊ณต์žฅ์ฒ˜๋Ÿผ ์ฐ์–ด๋‚ผ ๋•Œ, ๊ฐ‘์ž๊ธฐ ์ด์ƒํ•œ ํ˜„์ƒ์ด ๋‚˜์™”๋‹ค. Super() ํ‚ค์›Œ๋“œ๋กœ ๋ถ„๋ช…, ๋ถ€๋ชจํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ–ˆ๋Š”๋ฐ ์ž์‹ํด๋ž˜์Šค์—์„œ logging์„ ํ•ด๋ณด๋‹ˆ๊นŒ ๋ถ€๋ชจ๊ฐ€ ์—†๋Š”๊ฒƒ..!? ๊ทผ๋ฐ ๋˜ ๋””๋ฒ„๊น…๋ชจ๋“œ๋กœ ์ง์ ‘ ๊ฐ์ฒด ์•ˆ์„ ์‚ดํŽด๋ณด๋ฉด ์ž˜ ๋“ค์–ด๊ฐ€์žˆ๋‹ค..? ๋Œ€ํ™˜์žฅ - ์ด๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ํƒœ๊ทธ๊ฐ€ ๋ฐ”๋กœ @ToString(callSuper = true) callSuper()์˜ default๊ฐ€ false์ด๋‹ˆ @ToString(callSuper = true)๋กœ ์„ค์ •ํ•ด ์ค๋‹ˆ๋‹ค. false์ผ ๊ฒฝ์šฐ ๋ถ€๋ชจ์˜ toString์„ ์ถœ๋ ฅํ•ด์ฃผ์ง€ ์•Š๊ฒ ๋‹ค๋Š” ์„ค์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ True๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค. @Data @EqualsAndHashCode(callSu..

[SpringBoot]Multiple @RequestBody values in one controller method/@RequestBody ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉ/HttpMessageNotReadableException ํ•ด๊ฒฐ

๋ฌด์ง€์„ฑ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋‹ˆ,, ์ ์  ๊ธฐ๋ณธ์ ์ธ CS ์ง€์‹๋“ค์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ธฐ๋ถ„์ด ๋“ค์—ˆ๋‹ค. ๋‹น์—ฐํ•˜๊ฒŒ @RequestBody๋ฅผ ์“ฐ๋˜ ์ค‘ ์ถ”๊ฐ€๋˜๋Š” ์š”๊ฑด์œผ๋กœ ์ ์  DTO๋Š” ๋Š˜์–ด๋‚˜๊ณ ,, @RequestBody๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค. ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜๋Š” ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋‹ค๋ฅธ ์ด์Šˆ๊ฐ€ ์—†์—ˆ๊ณ  API๋ฅผ ์‹คํ–‰ํ•˜๋‹ˆ ํ„ฐ์กŒ๋‹คใ…‹ใ…‹ใ…‹ใ…‹ org.springframework.http.converter.HttpMessageNotReadableExcept ion: Required request body is missing ํ•œ๋งˆ๋””๋กœ.. RequestBody๋ฅผ JSONํ˜•์‹์œผ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ ์ธ์‹ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ƒ์ „ ์ฒ˜์Œ ๋ณด๋Š” ์ด์Šˆ์— ์ด๊ฒŒ ๋ญ์ง€.. ์‹ถ์—ˆ์ง€๋งŒ ์ž์„ธํžˆ ๋ณด๋‹ˆ @RequestBody๊ฐ€ ๋‘ ๊ฐœ ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ๋‚˜์˜ controller๋ฅผ ๋งˆ์ฃผํ–ˆ๋‹ค..

[Mybatis][Mysql] <[![CDATA[…]]> ์‚ฌ์šฉ๋ฒ•/CDATA ๊ผญ ์จ์•ผํ•˜๋‚˜?/XML Parser ๋ฌธ์ž์—ด์ธ์‹

๋ฐฑ์—”๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Back logic์„ ์ž‘์„ฑํ•  ์ผ์ด ๋งŽ์•„์ง€๋Š”๋ฐ ๊ทธ๋•Œ, SQL Mapper๋กœ MyBatis๋ฅผ ์“ฐ๋ฉด์„œ mapper.xml ํŒŒ์ผ์— ๋ผ๊ณ  ์“ฐ์ธ ๊ฒƒ์„ ์ž์ฃผ ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. [๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋œฌ๊ธˆ์—†๋Š” ํ˜ธ๊ธฐ์‹ฌ 1ํƒ„] Mybatis ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฌธ์— ๊ผญ CDATA๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ? CDATA ๋ž€? ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ '', '&'๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ xml์—์„œ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด mapper์— ์ž‘์„ฑ๋œ , ์™€ ๊ฐ™์€ ํƒœ๊ทธ๋กœ ์ธ์‹ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด mapper.xml์— ์ž‘์„ฑ๋œ ํƒœ๊ทธ ๊ด„ํ˜ธ์™€ ๋‹ฌ๋ฆฌ ์ด ๋“ฑํ˜ธ๋Š” '์ฟผ๋ฆฌ์— ํ•„์š”ํ•œ ์ฝ”๋“œ'๋ผ๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ด๋‹ค. ์‚ฌ์šฉ๋ฒ• XML์—์„œ ํŒŒ์‹ฑ ํ•  ๋Œ€์ƒ์œผ๋กœ ์ธ์‹ํ•˜์ง€ ํ•˜์ง€ ์•Š๋„๋ก ๊ทธ ๊ตฌ์—ญ์„ ์ง€์ •ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด CDATA์ด๋‹ค. XML๋กœ ํŒŒ์‹ฑ์„ ์›ํ•˜์ง€..

[Mysql][MariaDB] ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ๋™์‹œ์— UPDATE ํ•˜๋Š” ๋ฒ•/๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ UPDATE ํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ•˜๋‚˜์˜ Model DTO์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ๋กœ ๋‘ ๊ฐœ์˜ UPDATE ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค๋ฉด? ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ •์„๋Œ€๋กœ 2๊ฐœ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด์™”๋‹ค. ํ•˜์ง€๋งŒ, ๋ญ”๊ฐ€ ๊ท€์ฐฎ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค... ๊ทธ๋ฆฌ๊ณ  DTO๋ฅผ ์ค‘๋ณตํ•ด์„œ ๋„˜๊ฒจ์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋ญ”๊ฐ€ ๋ถˆํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค... ํ•œ๋ฒˆ ์ž‘์„ฑํ•œ DTO parameter ์ฝ”๋“œ๋ฅผ ์ค‘๋ณตํ•˜์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ์— ์ฟผ๋ฆฌ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์“ฐ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ• ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. Oracle, MS-SQL, Maria DB, Mysql DBMS๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฌธ๋ฒ•์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋ฐฉ๋ฒ•๋„ ๊ฐ์ž ๋‹ค๋ฅด๋‹ˆ ๋ณธ์ธ ์ƒํ™ฉ์— ๋งž๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•œ๋‹ค MySQL and MariaDB UPDATE SR0001 a, SR0002 b SET a.dstba = #{dstba} b.t..

[Mybatis][iBatis] org.apache.ibatis.binding.BindingException ์—๋Ÿฌํ•ด๊ฒฐ - ๋‹ค์ค‘ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ์ฒด(DTO, String)๋„˜๊ธฐ๊ธฐ

org.mybatis.spring.MyBatisSystemException : nested exception is ... ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋ถ„๋ช… mybatis parameter Binding ์˜ค๋ฅ˜๊ฐ€ ๋‚œ ์ ์ด ์—†์—ˆ๋Š”๋ฐ;;; ์˜ค๋žœ๋งŒ์— ๊ตฌ๊ธ€๋งํ•˜์—ฌ ๊ณต๋ฐฑ์ด ์žˆ๋Š”์ง€.. ๋งˆ๊ฐํƒœ๊ทธ๋Š” ์ž˜ ๋‹ซํ˜€์žˆ๋Š”์ง€,, ์ผ๋ฐ˜์ ์œผ๋กœ ํ™•์ธํ•  ๋ถ€๋ถ„๋“ค์„ ํ•œ์ฐธ ํ™•์ธํ•˜๊ณ  ๋‚˜์„œ๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค... ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์•„๋ž˜ ์‚ฌ์‹ค์„ ๊ฐ„๊ณผํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ , ๊ฒธํ—ˆํ•œ ๋งˆ์Œ์œผ๋กœ ๋‹ค์‹œ ๋ฐฐ์šฐ๊ณ ์ž ํ•œ๋‹ค. MyBatis์™€ iBatis๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋™์ž‘ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ๊ทœ์น™ ๋ฐ ๊ธฐ๋ณธ ์„ค์ •๋„ ์ด ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ„์— ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ 3.0.0 ๊ธฐ์ค€์—์„œ๋Š” ๋ณ„๋„์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ์„ค์ •ํ•˜์ง€..

[์„œํ‰] DO it! ์ ํ”„ ํˆฌ ์ž๋ฐ” - ๋น„์ „๊ณต์ž๋„ ์ฒซ๋‚ ๋ถ€ํ„ฐ ์‹ค์Šตํ•˜๋Š” ์ดˆ๊ณ ์† ์ž…๋ฌธ์„œ

ํ˜„์ง ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ต์‹ฌ๋งŒ ๊ณจ๋ž๋‹ค!ํ‚ค๋ณด๋“œ ์žก๊ณ  15์ผ์ด๋ฉด์ž๋ฐ” ๊ธฐ์ดˆ๋ฅผ ๋๋‚ธ๋‹ค!   SI ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ฐ€์žฅ ํ•„์š”ํ•œ ๊ฑด. ๋ฐ”๋กœ ๋น ๋ฅด๊ฒŒ ์Šต๋“ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ์ด๋‹ค. ํ•˜์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ๋ฐ ์Šคํ‚ฌ ํŠน์„ฑ์ƒ ๋‹จ์‹œ๊ฐ„์— ๋ชจ๋“  ๊ฒƒ์„ ํŒŒ์•…ํ•˜๊ธฐ๋ž€ ์‰ฝ์ง€ ์•Š์œผ๋ฉฐ ๋„“์€ ๋ฒ”์œ„๋กœ ์ธํ•ด ์ง€์‹์˜ ๊ฒฝ์ค‘์„ ์‰ฝ๊ฒŒ ๋”ฐ์งˆ ์ˆ˜ ์—†๋Š” ์ฑ…์ด ๋งŽ๋‹ค. ํ•˜๋‚˜๋ผ๋„ ๋” ์•Œ๋ ค์ฃผ๊ณ  ์‹ถ์–ด ๊ฝ‰๊ฝ‰ ์ •๋ณด๋ฅผ ๋ˆŒ๋Ÿฌ ๋‹ด์€ ์ฑ…์€ ์ผ๋ถ€ ๋…์ž์—๊ฒŒ๋Š” ํ™˜์˜๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋‹น์žฅ ์˜ค๋Š˜๋ถ€ํ„ฐ ์ ์šฉํ•ด๋ด์•ผ ํ•˜๋Š” ์‹ค๋ฌด์ž์—๊ฒŒ๋Š” ๋‚œ๊ฐํ•˜๊ณ  ๋ถ€๋‹ด์Šค๋Ÿฝ๊ธฐ ๊ทธ์ง€์—†๋‹ค. Do it! ์‹œ๋ฆฌ์ฆˆ์—์„œ๋„ ๋‹ค์–‘ํ•œ ์ž๋ฐ”๋ฅผ ๋‹ค๋ฃฌ ์ฑ…์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ๋„ ์—ฌ๋Š ์ž๋ฐ” ์„œ์ ๊ณผ ๋‹ค๋ฅผ ๋ฐ”๊ฐ€ ์—†์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜, ์ฑ… ๋‘๊ป˜๋ถ€ํ„ฐ ๋‹ฌ๋ž๋‹ค. ์ž๋ฐ” ์ฑ…์„ ํ•œ ๋ฒˆ์ด๋ผ๋„ ๊ตฌ๋งคํ•œ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋†€๋ž„๋งŒํ•œ ๋‘๊ป˜์˜€๋‹ค. ๋˜ํ•œ ๋งค์šฐ ์–‡๊ณ , ์ž๊ฐ„ ๋˜ํ•œ ..