Mybatis์™€ Apache POI ๋ฅผ ์ด์šฉํ•œ ๋Œ€์šฉ๋Ÿ‰ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ฐœ์„ 

Mybatis์™€ Apache POI ๋ฅผ ์ด์šฉํ•œ ๋Œ€์šฉ๋Ÿ‰ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ฐœ์„ 

๊ฐœ์š” ์‚ฌ๋‚ด์˜ ๋ ˆ๊ฑฐ์‹œ ์–ด๋“œ๋ฏผ ์‹œ์Šคํ…œ์—์„œ ์ž๊พธ ํŠน์ • ์‹œ๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ ์ ์œ ์œจ์ด ์น˜์†Ÿ๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ๋ฉˆ์ถ”๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์›์ธ์„ ๋ถ„์„ํ•ด๋ณธ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ๊ฑด์ˆ˜๊ฐ€ ๋งŽ์€ ๋ฉ”๋‰ด์—์„œ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ์š”์ฒญ์‹œ ์ „์ฒด ์กฐํšŒ -> List ํ˜•ํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ -> ์—‘์…€ ์ƒ์„ฑ -> ๋‹ค์šด๋กœ๋“œ ๊ณต์ •์œผ๋กœ ํŒŒ์ผ์„ ๋‚ด๋ ค์คฌ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์—ˆ๋‹ค๋ฉด ์ƒ๊ด€์—†์ง€๋งŒ ํ•ด๋‹น ๋ฉ”๋‰ด๋Š” ๊ธฐ๊ฐ„์„ ์กฐ๊ธˆ๋งŒ ๋Š˜๋ ค๋„ ์ˆ˜์‹ญ๋งŒ ๊ฑด์—์„œ 100๋งŒ๊ฑด ๊นŒ์ง€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋‰ด์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋‹ค. ๊ฒฐ๊ตญ ๋Œ€์šฉ๋Ÿ‰ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์œ„ํ•œ ๊ณต์ •์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ด์กŒ๋Š”๋ฐ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋ฉฐ ์žˆ์—ˆ๋˜ ๊ณผ์ •๋“ค์„ ๋ช‡๊ฐ€์ง€ ๊ธฐ๋กํ•ด๋ณผ๊นŒ ํ•œ๋‹ค. ์›์ธ ์ฐพ๊ธฐ ๊ฐœ์š”์— ์ž‘์„ฑํ–ˆ์ง€๋งŒ, ๊ธฐ์กด์˜ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฐ์ดํ„ฐ ์ „์ฒด ์กฐํšŒ ์š”์ฒญ JDBC ๋กœ ๋ถ€ํ„ฐ ์‘๋‹ต๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ List ์— ์ผ๊ด„ ์ €์žฅ..

  • textsms
TransactionRequiredException ํ•ด๊ฒฐ - ์ดˆ๊ธฐํ™” ์‹œ์ ์— Transaction ํš๋“

TransactionRequiredException ํ•ด๊ฒฐ - ์ดˆ๊ธฐํ™” ์‹œ์ ์— Transaction ํš๋“

1. ๊ฐœ์š” JPA ๋ฅผ ์ด์šฉํ•œ ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜ ์ค‘ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€๋Ÿ‰์œผ๋กœ INSERT ํ•ด์ฃผ๋Š” ๋นˆ์„ ์ƒ์„ฑํ•˜๋ ค ํ•˜์˜€๋‹ค. @PostConstruct ๋ฅผ ํ†ตํ•ด Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๋™๋˜๋Š” ์‹œ์ ์— ์ž‘์„ฑํ•ด๋‘” ๋กœ์ง์— ์˜ํ•ด ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋“ค์ด persist ๋˜๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ JPA ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ Insert ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋žœ์žญ์…˜์ด ํ•„์š”ํ•˜๊ณ , ๋ญ”๊ฐ€ ์ฐ์ฐํ•œ ๋Š๋‚Œ์€ ๋“ค์—ˆ์ง€๋งŒ ๋Œ€์ถฉ @Transactional ์• ๋…ธํ…Œ์ด์…˜๋งŒ ๋ถ™์ด๊ณ  ์ž‘๋™์„ ์‹œ์ผœ๋ณด์•˜๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. @Component @Transactional public class TestDataInit { @PersistenceContext private EntityManager em; @PostConstruct public v..

  • textsms
์Šคํ”„๋ง ๊ธฐ๋ณธ ๋ณต์Šต 3 - ๋นˆ ์Šค์ฝ”ํ”„์™€ ์ƒ๋ช…์ฃผ๊ธฐ

์Šคํ”„๋ง ๊ธฐ๋ณธ ๋ณต์Šต 3 - ๋นˆ ์Šค์ฝ”ํ”„์™€ ์ƒ๋ช…์ฃผ๊ธฐ

1. ๊ฐœ์š” ์•ž์„œ ์Šคํ”„๋ง์ด ๋งŽ์€ ๊ฐ์ฒด๋“ค์„ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ๋“ฑ๋กํ•˜์—ฌ ํ•„์š”ํ•œ ์‹œ์ ์— ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•™์Šตํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๋นˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์€, ๋ฆฌ์†Œ์Šค๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๊ธฐ๋„ ํ•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์†Œ๋ฉธ๋˜๋Š” ์ˆœ๊ฐ„์— ํ•„์š”ํ•œ ๋™์ž‘๋“ค(์˜ˆ: ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ ๋“ฑ)์€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃจ์–ด์•ผ ํ• ๊นŒ? ๋งŒ์•ฝ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋˜ ๋„์ค‘, ์„œ๋ฒ„๋กœ ์˜ค๋Š” ํŠน์ • API์— ๋Œ€ํ•ด UUID์™€ ์š”์ฒญ URL์„ ๋กœ๊น…ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์•ž์„  ๋‚ด์šฉ์„ ๊ณต๋ถ€ํ•ด๋ณด๋„๋ก ํ•˜์ž. 2. ๋นˆ ์Šค์ฝ”ํ”„ Hello ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ€์ƒ์˜ ์•„์ฃผ์•„์ฃผ ์ค‘์š”ํ•œ(…!) API ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ํ•ด๋‹น API ์˜ ์š”์ฒญ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. @RestController..

  • textsms

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•œ ์ „๋žตํŒจํ„ด

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

  • textsms

[์ˆ˜๊ฐ• ํ›„๊ธฐ/๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™] ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ 2022๋…„ 1ํ•™๊ธฐ

์‹œ์ž‘ํ•˜๋ฉฐ ์ด๋ฒˆ ํ•™๊ธฐ๋Š” ์ตœ๋Œ€ํ•œ ๊พธ์ค€ํ•œ ์ˆ˜๊ฐ•์— ์ฃผ์•ˆ์ ์„ ๋‘๊ณ  ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™ ์ปค๋ฆฌํ˜๋Ÿผ์ด ์ด๋ก ์ƒ์œผ๋กœ๋Š” ํ•˜๋ฃจ์— ํ•œ ๊ณผ๋ชฉ์”ฉ ํ•ด์„œ 1์ฃผ์ผ์— ํ•œ ๊ฐ•์˜์”ฉ ์ง„๋„๋ฅผ ๋‚˜๊ฐ€๋ฉด ์†Œํ™”ํ•˜๊ธฐ ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†๋Š” ์ˆ˜์ค€์ด๋‹ค. ํ•˜์ง€๋งŒ ์ €๋ฒˆ ํ•™๊ธฐ๋Š” ๊ทธ๊ฑธ ๋ชปํ•ด์„œ ๊ฐ•์˜๊ฐ€ ๋ฐ€๋ฆฌ๊ณ , ๋ฒผ๋ฝ์น˜๊ธฐ๋ฅผ ํ•˜๊ฒŒ ๋˜์–ด์„œ ๊ธฐ๋ง๊ณ ์‚ฌ ๋•Œ ํฐ ๊ณ ์ถฉ์„ ๊ฒช์—ˆ๋‹ค. ์ด๋ฒˆ ํ•™๊ธฐ๋„ ์ดˆ๋ฐ˜์— ์กฐ๊ธˆ ์ง„๋„๊ฐ€ ๋ฐ€๋ฆฌ๊ธด ํ–ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๊ธฐ๋ง๊ณ ์‚ฌ ์ „ ์•ฝ 2์ฃผ ์ •๋„์˜ ์—ฌ์œ ๋ฅผ ๋‘๊ณ  ์ˆ˜๊ฐ•์„ ๋งˆ์ณค๊ณ  ๋•๋ถ„์— ์ €๋ฒˆ ํ•™๊ธฐ๋ณด๋‹ค๋Š” ์—ฌ์œ ๋กญ๊ฒŒ ์ค€๋น„๋ฅผ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ „๊ณต์„ ๋‹ค์„ฏ ๊ณผ๋ชฉ์ด๋‚˜ ์ฑ„์šฐ๊ธด ํ–ˆ์ง€๋งŒ, ๋น„๊ต์  ์ต์ˆ™ํ•œ ๋‚ด์šฉ์˜ ๊ฐ•์˜๋ฅผ ๋‘ ๊ณผ๋ชฉ ์ •๋„ ์„ž์Œ์œผ๋กœ์จ ์‰ฌ์–ด๊ฐ€๋Š” ๊ณผ๋ชฉ๋„ ๊ฐ€์ ธ๊ฐ”๋‹ค. ๊ทธ๋Ÿผ ์ด๋ฒˆ ํ•™๊ธฐ์— ์ˆ˜๊ฐ•ํ•œ ๋‹ค์Œ ์—ฌ์„ฏ ๊ณผ๋ชฉ์— ๋Œ€ํ•œ ์ˆ˜๊ฐ•ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ๋ณด๊ณ ์ž ํ•œ๋‹ค. ์ธํ„ฐ๋„ท๊ณผ ์ •๋ณด์‚ฌํšŒ ์ด์‚ฐ์ˆ˜ํ•™ JAVA ํ”„๋กœ๊ทธ๋ž˜..

  • textsms
[์šด์˜์ฒด์ œ] 11. ์šด์˜์ฒด์ œ ๋ณด์•ˆ

[์šด์˜์ฒด์ œ] 11. ์šด์˜์ฒด์ œ ๋ณด์•ˆ

1. ๋ณด์•ˆ์˜ ๊ฐœ์š” 1. ๋ณดํ˜ธ์™€ ๋ณด์•ˆ ๋ณดํ˜ธ๋ž€ ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ”„๋กœ์„ธ์„œ๋ฅผ ์ ์œ ํ•˜๋Š” ์‹œ๊ฐ„, ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ, ์ž๋ฃŒ๊ฐ€ ๊ด€๋ฆฌ๋˜๋Š” ์ž‘์—…, ์ ์œ ํ•˜๋Š” ์žฅ์น˜ ๋“ฑ์„ ๋Œ€์ƒ์œผ๋กœ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๋‚ด๋ถ€ ์ž์› ๊ฐ๊ฐ์˜ ์˜์—ญ์„ ๋ณด์žฅํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณด์•ˆ์ด๋ž€ ์›๊ฑฐ๋ฆฌ์—์„œ ์ ‘๊ทผํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์— ๋Œ€ํ•ด ์ธ์ฆ ๋ฐ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ํ•ฉ๋ฒ•์ ์ธ ์ฒ˜๋ฆฌ๋งŒ์ด ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•˜์—ฌ, ์‹œ์Šคํ…œ ๋‚ด์˜ ์ž๋ฃŒ๊ฐ€ ๊ฒฐํ•จ์ด ์—†๋„๋ก ์œ ์ง€์‹œํ‚ค๊ณ  ์‹ ๋ขฐ๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. 2. ๋ณดํ˜ธ ์˜์—ญ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ์ฒด๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ ‘๊ทผ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋˜์–ด ์žˆ๋Š” ์ž์›์— ๋Œ€ํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๊ณ , ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘์—… ์ˆ˜ํ–‰์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ž์›์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ณดํ˜ธ์˜์—ญ(protection domain)์˜ ๊ฐœ๋…์„ ์ด์šฉํ•œ๋‹ค. ..

  • textsms