ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA Spring์˜ ๋ชฉ์ 
    ๐Ÿ’ป IT Study/Spring 2020. 5. 4. 14:51

    ์Šคํ”„๋ง์˜ ๋ชฉ์ ์€ ์•ž์—์„œ ๋‹ค๋ค˜๋˜ ๋Œ€๋กœ 

    '๊ฒฝ๋Ÿ‰๊ธ‰ ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์Šคํ”„๋ง์„ ํ™œ์šฉํ•ด์„œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ํŽธํ•˜๊ฒŒ' ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

    ์›๋ž˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์ด ํŽธ๋ฆฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•œ๋‹ค. 

     

    1. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์˜ ๋ณต์žกํ•จ 

    2. ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋…ธ๋ ฅ 

    3. ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์Šคํ”„๋ง ์ „๋žต 

    4. ๊ธฐ์ˆ ์ ์œผ๋กœ ์Šคํ”„๋ง์ด ์ง€ํ–ฅํ•˜๋Š” ๋ชฉ์  ์ •์˜ : POJO ํ”„๋กœ๊ทธ๋ž˜๋ฐ 

     

    * ๋งจ ๋ฐ‘์— ๊ฒŒ์‹œ๋ฌผ ๊ฐ„๋‹จ ์ •๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ์ „์ฒด์  ๊ณผ์ •์€ ๊ทธ๊ฑธ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.


    1. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์˜ ๋ณต์žกํ•จ 

     2000๋…„๋Œ€ ์ดˆ๋ฐ˜ ์ž๋ฐ” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์ด ์‹คํŒจํ•˜๋Š” ์ด์œ ์—์„œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์›์ธ์ด ์žˆ์—ˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ฒŒ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ด ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ด ์™œ ๋ณต์žกํ•œ์ง€๋ฅผ ๋ณด๋ฉด ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์›์ธ์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

     

    1)  ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ ; ๊ธฐ์ˆ ์  ์ œ์•ฝ์กฐ๊ฑด๊ณผ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋Š˜์–ด๋‚จ. 

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

      ๋˜ ์›น์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฟ๋งŒ์•„๋‹ˆ๋ผ, ํƒ€ ์‹œ์Šคํ…œ๊ณผ์˜ ์ž๋™ํ™”๋œ ์—ฐ๊ณ„์™€ ์›น ์ด์™ธ์˜ ํด๋ผ์ด์–ธํŠธ์™€์˜ ์ ‘์†์„ ์œ„ํ•œ ๋ฆฌ๋ชจํŒ… ๊ธฐ์ˆ ๋„ ์š”๊ตฌ๋œ๋‹ค. ๊ธฐ์—…์˜ ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•จ์— ๋”ฐ๋ผ ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋‚˜์˜ ํŠธ๋žœ์ ์…˜์œผ๋กœ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์˜ ์ง€์›๋„ ํ•„์š”ํ•˜๋‹ค. ๋ฌธ์ œ๋Š” ์ด๋Ÿฌํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์˜ ๊ธฐ์ˆ ์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹จ์ˆœํžˆ ๊ณ ๊ฐ€์˜ ์• ํ”Œ๋ฆฌ์บ์ด์…˜ ์„œ๋ฒ„(WAS)๋‚˜ ํˆด์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ถฉ์กฑ๋  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋Š” ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•˜๋ฉด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋‹ด์„ ์•ˆ๊ฒŒ๋œ๋‹ค. 

     ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์ด ๊ธฐ์—… ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์  ์—ญํ• ๋กœ ๋“ฑ์žฅํ•˜๊ณ  ์ค‘์š”ํ•ด์ง€๋ฉด์„œ ์ ์  ๋” ๊ธฐ์ˆ ์  ์š”๊ตฌ๋Š” ์‹ฌํ™”๋˜๊ณ  ๊ทธ์— ๋”ฐ๋ฅธ ๋ณต์žก๋„๋Š” ์ฆ๊ฐ€ํ•œ๋‹ค

     

    2) ๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žกํ•จ ; ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌํ˜„ํ•ด์•ผํ•  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ณต์žกํ•จ ์ฆ๊ฐ€ 

     ๊ฐˆ์ˆ˜๋ก ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•ด ๊ธฐ์—…์˜ ํ•ต์‹ฌ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์œจ์ด ๋Š˜์–ด๊ฐ€๊ณ  ์žˆ๋‹ค. ์ ์ฐจ ๋Œ€๋ถ€๋ถ„์˜ ์—…๋ฌด ์ฒ˜๋ฆฌ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ ๋Š” ์•„์˜ˆ ์ง„ํ–‰ํ•˜๊ธฐ ํž˜๋“ค ๋งŒํผ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์—…๋ฌด ์˜์กด๋„๊ฐ€ ๋†’์•„์กŒ๋‹ค. ๊ทธ๋งŒํผ ๋‹ค์–‘ํ•˜๊ณ  ๋ณต์žกํ•œ ์—…๋ฌด์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์ด ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์ด ๊ด€์—ฌํ•˜๋Š” ์—…๋ฌด์˜ ๋น„์œจ์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ปค์ง€๊ณ  ์žˆ์œผ๋‹ˆ, ๋‹น์—ฐํžˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๋„ ํž˜๋“ค๊ณ  ๋ณต์žกํ•ด์ ธ ๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. 

     

     

     

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

     

     ์ „ํ†ต์ ์ธ ์ž๋ฐ” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์€ ๋Œ€๋ถ€๋ถ„ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ณต์žกํ•œ ๊ตฌํ˜„ ์ฝ”๋“œ์™€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š”๊ธฐ์ˆ ์  ์ฝ”๋“œ๊ฐ€ ์ž๊พธ ํ˜ผ์žฌ๋  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค. ๊ฒฐ๊ตญ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์— ๊ทธ ๋‘๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์‹ ๊ฒฝ์จ์„œ ๊ฐœ๋ฐœํ•ด์•ผํ•˜๋Š” ๊ณผ๋„ํ•œ ๋ถ€๋‹ด์„ ์คฌ๊ณ , ๊ทธ์— ๋”ฐ๋ผ ์ „์ฒด์  ๋ณต์žกํ•จ์€ ๋ช‡ ๋ฐฐ๋กœ ๊ฐ€์ค‘๋๋‹ค.


    2. ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋„์ „ 

     ๊ทผ๋ณธ์ ์œผ๋กœ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ณต์žกํ•จ์˜ ์›์ธ์€ ์ œ๊ฑฐ ๋Œ€์ƒ์ด ์•„๋‹ˆ๋‹ค. ๊ทธ ๋ณต์žกํ•จ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ƒ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ „๋žต๊ณผ ๊ธฐ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ๋ฌธ์ œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ณต์žกํ•จ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๊ณผ ๊ธฐ์ˆ ์ ์ธ ๋ณต์žกํ•จ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์ ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค๋Š” ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๊ฐ€์ง€ ๋ณต์žกํ•จ์ด ์ฝ”๋“œ์— ํ•œ๋ฐ ์–ด์šฐ๋Ÿฌ์ ธ ๋‚˜ํƒ€๋‚˜๋Š” ์ „ํ†ต์ ์ธ ๊ฐœ๋ฐœ๋ฐฉ์‹์—์„œ๋Š” ํšจ๊ณผ์ ์œผ๋กœ ๋ณต์žกํ•จ์„ ๋‹ค๋ฃจ๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค. 

     

     ๊ธฐ์ˆ ์ ์ธ ๋ณต์žกํ•จ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•ต์‹ฌ ๋กœ์ง์˜ ๋ณต์žกํ•จ์—์„œ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋ชฉํ‘œ๋ฅผ ๋‘์—ˆ๋‹ค. ์Šคํ”„๋ง์€ ๋น„์นจํˆฌ์  ๊ธฐ์ˆ  ์ „๋žต์œผ๋กœ ์ด๋ฅผ ์‹คํ˜„ํ–ˆ๋‹ค. ๋น„์นจํˆฌ์  ๊ธฐ์ˆ ์€ ๊ธฐ์ˆ ์˜ ์ ์šฉ ์‚ฌ์‹ค์ด ์ฝ”๋“œ์— ์ง์ ‘ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ์–ด๋”˜๊ฐ€์—๋Š” ๊ธฐ์ˆ ์˜ ์ ์šฉ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์ž‘์—…์„ ํ•ด์ค˜์•ผ ํ•˜๊ฒ ์ง€๋งŒ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ ์—ฌ๊ธฐ์ €๊ธฐ์— ๋ถˆ์‘ฅ ๋“ฑ์žฅํ•˜๊ฑฐ๋‚˜, ์ฝ”๋“œ์˜ ์„ค๊ณ„์™€ ๊ตฌํ˜„๋ฐฉ์‹์„ ์ œํ•œํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒŒ ๋น„์นจํˆฌ์  ๊ธฐ์ˆ ์˜ ํŠน์ง•์ด๋‹ค. 

     

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


    3. ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์Šคํ”„๋ง ์ „๋žต 

    ์Šคํ”„๋ง์˜ ๊ธฐ๋ณธ์  ์ „๋žต์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ์ˆ  ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ๋‘ ๊ฐ€์ง€ ๋ณต์žกํ•จ์˜ ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ณต๋žต ๊ฐ€๋Šฅํ•˜๋‹ค 

     

    • ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์ „๋žต
    • ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์˜ ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์ „๋žต 
    • ํ•ต์‹ฌ๋„๊ตฌ : ๊ฐ์ฒด์ง€ํ–ฅ๊ณผ DI

    • ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์ „๋žต 

    ๋ฌธ์ œ 1) ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์ผ๊ด€์„ฑ ์—†๊ณ , ํŠน์ •ํ™˜๊ฒฝ์— ์ข…์†์ ์ด๋‹ค. 
    ํ•ด๊ฒฐ 1) ์„œ๋น„์Šค ์ถ”์ƒํ™” 

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

     

    ๋ฌธ์ œ 2) ๊ธฐ์ˆ ์ ์ธ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์„ฑ๊ฒฉ์ด ๋‹ค๋ฅธ ์ฝ”๋“œ์— ์„ž์—ฌ์„œ ๋“ฑ์žฅํ•œ๋‹ค. 
    ํ•ด๊ฒฐ 2) AOP(Aspect-Oriented Programming, ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

     ์ฑ…์ž„์— ๋”ฐ๋ผ ๊ณ„์ธต์„ ๊ตฌ๋ถ„ํ•˜๊ณ  ๊ทธ ์‚ฌ์ด์— ์„œ๋กœ์˜ ๊ธฐ์ˆ ๊ณผ ํŠน์„ฑ์— ์˜์กด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋“ฑ์„ ์ตœ๋Œ€ํ•œ ์ œ๊ฑฐํ•œ๋‹ค๊ณ  ํ• ์ง€๋ผ๊ณ  ๊ทผ๋ณธ์ ์œผ๋กœ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค๋ฅผ ์ ์šฉํ•˜๋Š” ํ•œ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Ÿฐ ๊ธฐ์ˆ ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ํ˜ผ์žฌ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์Šคํ”„๋ง์˜ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์€ ๋ฐ”๋กœ AOP์ด๋‹ค.

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

     


    • ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์˜ ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์ „๋žต 

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

     

     ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ์žฅ์ ์„ ์ž˜ ์‚ด๋ ค์„œ ์„ค๊ณ„๋œ ์–ธ์–ด์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•๊ณผ ์–ธ์–ด๊ฐ€ ์ฃผ๋Š” ์žฅ์ ์ธ ์œ ์—ฐํ•œ ์„ค๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ์žฌ์ƒ์šฉ์„ฑ์ด ๋†’๋‹ค๋Š” ์ ์„ ํ™œ์šฉํ•ด์„œ ์ž์ฃผ ๋ฐ”๋€Œ๊ณ  ์กฐ๊ฑด์ด ๊นŒ๋‹ค๋กœ์šด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌํ˜„ํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„๊ณผ ์„ค๊ณ„(OOAD)๋ฅผ ํ†ตํ•ด์„œ ์ž‘์„ฑ๋œ ๋ชจ๋ธ์„ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

     

     ๋น„์นจํˆฌ์  ๊ธฐ์ˆ ์ธ ์Šคํ”„๋ง์€ ํ•ต์‹ฌ ๋กœ์ง์„ ๋‹ค๋ฃจ๋Š” ์ฝ”๋“œ์—๋Š” ์Šคํ”„๋ง์˜ ํ”์ ์กฐ์ฐจ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋งŒํผ ์ž์‹ ์„ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋งŒ ๋’ค์—๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋“ค์—๊ฒŒ ์ ์ ˆํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ์ˆ  ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋˜๋„๋ก ์€๋ฐ€ํžˆ ๋„์™€์ค€๋‹ค. 

     

     ๊ฒฐ๊ตญ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ณต์žกํ•ฉ์„ ์ƒ๋Œ€ํ•˜๋Š” ์ „๋žต์€ '์ž๋ฐ”'๋ผ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ์ˆ  ๊ทธ ์ž์ฒด์ด๋‹ค. ์Šคํ”„๋ง์€ ๋‹จ์ง€ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ์žฅ์ ์„ ์ œ๋Œ€๋กœ ์‚ด๋ฆฌ์ง€ ๋ชปํ•˜๊ฒŒ ๋ฐฉํ•ดํ–ˆ๋˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋„๋ก ๋„์™€์ค€๋‹ค. 


    • ํ•ต์‹ฌ๋„๊ตฌ : ๊ฐ์ฒด์ง€ํ–ฅ๊ณผ DI

     ๊ธฐ์ˆ ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ๊ฐ์ฒด์ง€ํ–ฅ(OO, Object Orientation)์ด๋‹ค. ์ž๋ฐ”์˜ ๊ธฐ๋ณธ์ธ ๊ฐ์ฒด์ง€ํ–ฅ์— ์ถฉ์‹คํ•œ ์„ค๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋‹จ์ˆœํ•œ ์˜ค๋ธŒ์ ํŠธ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•์„ ์ž˜ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” DI๊ฐ™์€ ์œ ์šฉํ•œ ๊ธฐ์ˆ ์„ ํŽธํ•˜๊ฒŒ ์ ์šฉํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด ์Šคํ”„๋ง์˜ ๊ธฐ๋ณธ์ „๋žต์ด๋‹ค. 

     

     ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋ฒ•์€ ๋ชจ๋‘ DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๊ณ  ์žˆ๋‹ค. DI๋Š” ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ค„์ด๊ณ  ์ฝ”๋“œ์˜ ์žฌํ™œ์šฉ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๊ธฐ์ˆ  ์—†์ด๋Š” ๊ทธ ์กด์žฌ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. DI๋ž€ ํŠน๋ณ„ํ•œ ๊ธฐ์ˆ ์ด๋ผ๊ธฐ ๋ณด๋‹ค๋Š” ์œ ์—ฐํ•˜๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ ์„ค๊ณ„๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ผ ๋ฟ์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋ฅผ ์“ด๋‹ค๊ณ  ํ•ด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๊ฐ€ ๋˜๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฉด์—์„œ DI๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์„ค๊ณ„์™€ ๊ฐœ๋ฐœ๋กœ ์ด๋Œ์–ด์ฃผ๋Š” ๋™๋ฐ˜์ž์ด๋‹ค. 


    4. ๊ธฐ์ˆ ์ ์œผ๋กœ ์Šคํ”„๋ง์ด ์ง€ํ–ฅํ•˜๋Š” ๋ชฉ์  ์ •์˜ : POJO ํ”„๋กœ๊ทธ๋ž˜๋ฐ 

    "์Šคํ”„๋ง์˜ ์ •์ˆ˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค ๊ธฐ๋Šฅ์„ POJO์— ์ œ๊ณตํ•˜๋Š” ๊ฒƒ"
    - Professional Spring Framework -

     ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค๋Š” ๋ณด์•ˆ, ํŠธ๋žœ์žญ์…˜๊ณผ ๊ฐ™์€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์—์„œ ์š”๊ตฌ๋˜๋Š” ๊ธฐ์ˆ ์„ ๋งํ•œ๋‹ค. ์ด๋Ÿฐ ๊ธฐ์ˆ ์„ POJO์— ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค ๊ธฐ์ˆ ๊ณผ POJO๋ผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๋‹ด์€ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ–ˆ๋‹ค๋Š” ๋œป์ด๊ธฐ๋„ ํ•˜๋‹ค. ์Šคํ”„๋ง์˜ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ํŠน์žฅ๊ณผ ๋ชฉํ‘œ๋Š” "๋ถ„๋ฆฌ๋์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์„œ๋น„์Šค ๊ธฐ์ˆ ์„ POJO ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•ต์‹ฌ ๋กœ์ง์„ ๋‹ด์€ ์ฝ”๋“œ์— ์ œ๊ณตํ•œ๋‹ค"๋Š” ๊ฒƒ์ด๋‹ค.

     

    ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ฐœ๋… : POJO 

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

     

    POJO ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์†์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์„ธ๊ฐ€์ง€ ๊ฐ€๋Šฅ๊ธฐ์ˆ  (Enable Technology)

    IoC(Inversion of Control) / DI(Dependency Injection)

     IoC/DI๋Š” ์Šคํ”„๋ง์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ธฐ์ˆ ์ด์ž ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ฐœ๋ฐœ ์›์น™์ด๋‹ค. ๋‚˜๋จธ์ง€ ๋‘๊ฐ€์ง€ ๊ธฐ์ˆ ์ธ AOP, PSA๋„ IoC/DI์— ๋ฐ”ํƒ•์„ ๋‘๊ณ  ์žˆ๋‹ค.  ๋‘ ๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๋งŒ๋“ค๊ณ , ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘๊ณ  ๋Š์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•œ ๋’ค ์‹ค์ œ ์‚ฌ์šฉํ•  ๋Œ€์ƒ์€ DI๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ์ง€์ •ํ•œ๋‹ค.

    - IoC(Inversion of Control) : ํ”„๋กœ๊ทธ๋žจ์˜ ์ œ์–ด๊ถŒ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์™ธ๋ถ€๋กœ ์—ญ์ „๋œ ๊ฒƒ

    - DI(Dependency Injection) : ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…ํ•ด์ฃผ๋Š” ๊ฒƒ 

    AOP(Aspect Oriented Programming) 

     ํ•ต์‹ฌ ๊ด€๋ฆฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋“ˆํ™”๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์ด๋‹ค. 

    ๊ณตํ†ต ๊ด€์‹ฌ ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ํ•ต์‹ฌ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ ์•ˆ์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

    PSA (Portable Service Abstraction)

    ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ ๊ตฌํ˜„์„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์ค‘๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค ์–ด๋Œ‘ํ„ฐ ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๋ ˆ์ด์–ด๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

     Spring์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ POJO ์›์น™์„ ์ง€ํ‚ค๊ฒŒ๋” PSA ํ˜•ํƒœ์˜ ์ถ”์ƒํ™”๊ฐ€ ๋˜์–ด์žˆ๋‹ค. ํ™˜๊ฒฝ๊ณผ ์„ธ๋ถ€๊ธฐ์ˆ ์˜ ๋ณ€ํ™”์— ๊ด€๊ณ„์—†์ด ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ์ˆ ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ Spring ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ๋‚ด๋ถ€ ๊ตฌํ˜„์ด ๋‹ฌ๋ผ์ง€๋”๋ผ๋„ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋™์ผํ•œ ๊ตฌ๋™์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ์„ค๊ณ„๋˜์–ด ์žˆ์œผ๋ฉฐ ์˜์กด์„ฑ์„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์Šคํ”„๋ง์€ ํŠน์ • ๊ธฐ์ˆ ์— ์ง์ ‘์  ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ฒŒ๋” ๊ฐ์ฒด๋ฅผ POJO ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฒˆ์”ฉ ๋” ์ถ”์ƒํ™”ํ•œ Layer๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ผ๊ด€์„ฑ ์žˆ๋Š” ์„œ๋น„์Šค ์ถ”์ƒํ™”๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค. 

     

    POJO์— ๋Œ€ํ•œ ๊ฒƒ

     POJO(Plain Old Java Object)๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๊ฐ„๋‹จํ•œ ์ž๋ฐ” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. 

    ์„ธ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•ด์•ผ๋งŒ POJO๊ฐ€ ์„ฑ๋ฆฝ๋  ์ˆ˜ ์žˆ๋‹ค. ์กฐ๊ฑด๋“ค๋กœ ์ธํ•œ ์žฅ์ ๋“ค์„ ์‚ดํŽด๋ณธ๋‹ค. 

    ์กฐ๊ฑด 1) ํŠน์ •๊ทœ์•ฝ(Contract)์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค.  ์žฅ์  1) ๊น”๋”ํ•œ ์ฝ”๋“œ ์žฅ์  & ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ๋งค์šฐ ์œ ๋ฆฌ 
    ์กฐ๊ฑด 2) ํŠน์ •ํ™˜๊ฒฝ์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค. 
    ์กฐ๊ฑด 3) ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ์— ์ถฉ์‹คํ•ด์•ผ ํ•œ๋‹ค.  ์žฅ์  2) ๊ฐ์ฒด ์ง€ํ–ฅ์  ์„ค๊ณ„ ์ž์œ ๋กญ๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅ 

     

    ์กฐ๊ฑด 1) ํŠน์ •๊ทœ์•ฝ(Contract)์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค. 

    ์กฐ๊ฑด 2) ํŠน์ •ํ™˜๊ฒฝ์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค. 

     

     POJO๋Š” ์ž๋ฐ” ์–ธ์–ด์™€ ๊ผญ ํ•„์š”ํ•œ API ์™ธ์—๋Š” ์ข…์†๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ํŠน์ • ๊ทœ์•ฝ์„ ๋”ฐ๋ผ ๋งŒ๋“ค๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋Œ€๋ถ€๋ถ„ ๊ทœ์•ฝ์—์„œ ์ œ์‹œํ•˜๋Š” ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋„๋ก ์š”๊ตฌํ•œ๋‹ค. ๊ทธ๋Ÿด ๊ฒฝ์šฐ ์ž๋ฐ”์˜ ๋‹จ์ผ ์ƒ์† ์ œํ•œ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ํ•ด๋‹น ํด๋ž˜์Šค์— ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ์„ค๊ณ„ ์‹œ๋ฒ•์„ ์ ์šฉํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ๋˜ํ•œ ๊ทœ์•ฝ์ด ์ ์šฉ๋œ ํ™˜๊ฒฝ์— ์ข…์†์ ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํ™˜๊ฒฝ์œผ๋กœ ์ด์ „์ด ํž˜๋“ค์–ด์ง„๋‹ค. ํŠน์ •ํ™˜๊ฒฝ์— ์ข…์†์ ์ด์–ด์•ผ๋งŒ ๋™์ž‘ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋Š” POJO๋ผ๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค. 

     ํŠน์ •๊ธฐ์ˆ ๊ณผ ํ™˜๊ฒฝ์— ์ข…์†๋˜์ง€ ์•Š์„ ๋•Œ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊น”๋”ํ•ด์ง„๋‹ค.  ํ™˜๊ฒฝ์˜ ์ œ์•ฝ์€ ์ฝ”๋“œ์˜ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋ ต๊ฒŒ ํ•œ๋‹ค.  ์–ด๋–ค ํ™˜๊ฒฝ์—๋„ ์ข…์†๋˜์ง€ ์•Š์€ POJO ์ฝ”๋“œ๋Š” ๋งค์šฐ ์œ ์—ฐํ•œ ๋ฐฉ์‹์œผ๋กœ ์›ํ•˜๋Š” ๋ ˆ๋ฒจ์—์„œ ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. 

     

     

    ์กฐ๊ฑด 3) ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ์— ์ถฉ์‹คํ•ด์•ผ ํ•œ๋‹ค. 

     

     ์ฑ…์ž„๊ณผ ์—ญํ• ์ด ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ํ•œ ํด๋ž˜์Šค์— ๋ชฐ์•„ ๋„ฃ์–ด ๋ฉ์น˜ ํฐ ๋งŒ๋Šฅ ํด๋ž˜์Šค๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ, ์žฌ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ •๋„๋กœ ๋‹ค๋ฅธ ๋ ˆ์ด์–ด์™€ ์˜์—ญ์˜ ์ฝ”๋“œ์™€ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์„ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒฝ์šฐ, ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ์˜ ์ ์šฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๊น”๋”ํ•œ ๊ฒƒ์„ if/swithch ๋ฌธ์ด ๊ฐ€๋“์ฐฌ ๊ธธ๊ณ  ๊ธด ๋ฉ”์†Œ๋“œ๋กœ ์ž‘์„ฑํ•ด๋†“์€ ๊ฒฝ์šฐ๋ผ๋ฉด ๊ณผ์—ฐ ๊ทธ๊ฒƒ์ด ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ์ž๋ฐ” ์˜ค๋ธŒ์ ํŠธ๋ผ๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค.  ๊ทธ๋Ÿฐ์‹์œผ๋กœ ์„ค๊ณ„๋˜๊ณ  ๊ฐœ๋ฐœ๋œ ์˜ค๋ธŒ์ ํŠธ๋ผ๋ฉด ๋‹จ์ง€ ํŠน์ • ๊ธฐ์ˆ ๊ณผ ํ™˜๊ฒฝ์— ์ข…์†์ ์ด์ง€ ์•Š๋‹ค๊ณ  ํ•ด์„œ POJO๋ผ๊ณ  ๋ถˆ๋ฆด ์ˆ˜ ์—†๋‹ค. 

     ์ด๋ฅผ ํ†ตํ•ด์„œ ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ”์™€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ชจ๋ธ๋ง๊ณผ ์„ค๊ณ„์— ๋Œ€ํ•ด ๋ฐฐ์šธ ๋•Œ ๊ทธ๋ ค๋ดค๋˜ ๋„๋ฉ”์ธ ๋ชจ๋ธ๊ณผ ์˜ค๋žœ ๊ฒฝํ—˜์„ ํ†ตํ•ด ์Œ“์—ฌ์˜จ ์žฌํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ์„ค๊ณ„ ๋ชจ๋ธ์ธ ๋””์ž์ธ ํŒจํ„ด ๋“ฑ์€ POJO๊ฐ€ ์•„๋‹ˆ๊ณ ๋Š” ์ ์šฉํ•˜๊ธฐ ํž˜๋“ค๋‹ค. 

     

     

    ์ง„์ •ํ•œ POJO๋ž€ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ์›๋ฆฌ์— ์ถฉ์‹คํ•˜๋ฉด์„œ, ํ™˜๊ฒฝ๊ณผ ๊ธฐ์ˆ ์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์žฌํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„๋œ ์˜ค๋ธŒํ…ํŠธ๋ฅผ ๋งํ•œ๋‹ค. ๊ทธ๋Ÿฐ POJO์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋กœ์ง๊ณผ ๊ธฐ๋Šฅ์„ ๋‹ด์•„ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ POJO ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.


    ๊ฐ„๋‹จ์ •๋ฆฌ 

    - ์ž๋ฐ” ์Šคํ”„๋ง ๋ชฉ์  : ๊ฒฝ๋Ÿ‰๊ธ‰ ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์Šคํ”„๋ง์„ ํ™œ์šฉํ•ด์„œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ํŽธํ•˜๊ฒŒ

    4. ๊ธฐ์ˆ ์ ์œผ๋กœ ์Šคํ”„๋ง์ด ์ง€ํ–ฅํ•˜๋Š” ๋ชฉ์  ์ •์˜ : POJO ํ”„๋กœ๊ทธ๋ž˜๋ฐ  - ๋ชฉ์  ๋‹ฌ์„ฑ๊ณผ์ •์„ ๊ธฐ์ˆ ์ ์œผ๋กœ ์„ค๋ช… 

     

    * ๋ชฉ์  ๋‹ฌ์„ฑ ๊ณผ์ •  ________________________________________________________________

    [ ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ + ๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žกํ•จ ] => ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ ๋ณต์žก  - 1. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ฐœ๋ฐœ์˜ ๋ณต์žกํ•จ 

     

    ์ด๋ฅผ Spring์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜์˜€๋Š”๊ฐ€? 

    2. ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋…ธ๋ ฅ 

    ์Šคํ”„๋ง์€ ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ•ต์‹ฌ ๋กœ์ง์˜ ๋ณต์žกํ•จ(๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žกํ•จ)์—์„œ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋ชฉํ‘œ๋ฅผ ๋‘  

    ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žกํ•จ์„ ๋จผ์ € ๋ถ„๋ฆฌ์‹œ์ผœ์คŒ  -> HOW? ๋น„์นจํˆฌ์  ๊ธฐ์ˆ ์ „๋žต 

     

    3. ๋ณต์žกํ•จ์„ ์ƒ๋Œ€ํ•˜๋Š” ์Šคํ”„๋ง ์ „๋žต 

    ๊ฐ๊ฐ์˜ ๋ณต์žกํ•จ์„ ๋‘๊ฐ€์ง€ ํ•ต์‹ฌ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋”ฐ๋กœ ํ•ด๊ฒฐํ•จ 

    1) ๊ธฐ์ˆ ์  ๋ณต์žกํ•จ ํ•ด๊ฒฐ -> HOW? DI๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ์„œ๋น„์Šค ์ถ”์ƒํ™”์™€ AOP

    2) ๋น„์ฆˆ๋‹ˆ์Šค ๋ณต์žกํ•จ ํ•ด๊ฒฐ -> ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ์ˆ 

     

     


    โ€ป ์ถœ์ € 

    - ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ ์ฐธ๊ณ  :  https://12bme.tistory.com/157

     

    [์Šคํ”„๋ง] ์Šคํ”„๋ง์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

    ์Šคํ”„๋ง์€ ๊ธฐ๋ณธ์ ์œผ๋กœ IoC์™€ DI๋ฅผ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ๋กœ์„œ ๋™์ž‘ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๋‹ค๊ณ  "์Šคํ”„๋ง์€ ๋‹จ์ง€ IoC/DI ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค"๋ผ๊ณ ๋Š” ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง์€ ๋‹จ์ˆœํžˆ IoC/DI๋ฅผ ํŽธํ•˜๊ฒŒ ์ ์šฉํ•˜๋„๋ก ๋•๋Š” ๋‹จ๊ณ„๋ฅผ ๋„˜์–ด์„œ ์—”ํ„ฐํ”„..

    12bme.tistory.com

    - POJO ์„ธ๊ฐ€์ง€ ๊ฐ€๋Šฅ๊ธฐ์ˆ  ์ •๋ฆฌ 1 : https://peter0307.tistory.com/8

     

    [์šฉ์–ด์š”์•ฝ์ •๋ฆฌ] POJO, IoC, Container, DI, AOP

    1. POJO(Plain Old Java Object) (ํŠน์ • ๊ทœ์•ฝ์ด๋‚˜ ํ™˜๊ฒฝ์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ์›๋ฆฌ์— ์ถฉ์‹คํ•œ) ํ‰๋ฒ”ํ•œ ๊ตฌ์‹ ์ž๋ฐ” ๊ฐ์ฒด Spring์ด POJO ๊ธฐ๋ฐ˜์ด๋ผ๋Š” ๋ง์€, ํŠน์ •ํ•œ API(์˜ˆ๋ฅผ ๋“ค์–ด Servlet)๋ฅผ ์ƒ์†ํ•˜๊ฑฐ๋‚˜ ๊ตฌํ˜„ํ•˜์ง€ ์•Š..

    peter0307.tistory.com

    - POJO ์„ธ๊ฐ€์ง€ ๊ฐ€๋Šฅ๊ธฐ์ˆ  ์ •๋ฆฌ 2 : https://jinpyo900.tistory.com/55

     

    Spring ์ฃผ์š” ๊ฐœ๋… ์ •๋ฆฌ

    1. Spring ์‚ผ๊ฐํ˜•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค POJO์™€ IoC/DI + AOP + PSA ์Šคํ”„๋ง ์ฃผ์š” ๊ธฐ์ˆ ์ธ IoC/DI, AOP, PSA์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ POJO๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ๊ธฐ์ˆ (enable technology) POJO POJO ๋ž€? Plain Old Ja..

    jinpyo900.tistory.com

    - AOP : https://jojoldu.tistory.com/71

     

    AOP ์ •๋ฆฌ (3)

    AOP๋ž€? Spring์˜ ํ•ต์‹ฌ ๊ฐœ๋…์ค‘ ํ•˜๋‚˜์ธ DI๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋“ˆ๋“ค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถฐ์ค€๋‹ค๋ฉด, AOP๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์— ๊ฑธ์ณ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. AOP (Aspect-Oriented Programming)..

    jojoldu.tistory.com

    - PSA : https://jins-dev.tistory.com/entry/Spring-PSAPortable-Service-Abstraction%EC%9D%98-%EA%B0%9C%EB%85%90

     

    Spring PSA(Portable Service Abstraction)์˜ ๊ฐœ๋…

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

    jins-dev.tistory.com

     

    '๐Ÿ’ป IT Study > Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    ์Šคํ”„๋ง ๋™์ž‘ ์›๋ฆฌ ์ดํ•ด  (0) 2021.11.06
    JAVA Spring ์ •์˜ ์‚ดํŽด๋ณด๊ธฐ  (2) 2020.05.02

    ๋Œ“๊ธ€

Designed by Tistory.