๐Ÿ๏ธ Spring

์‹ฑ๊ธ€ํ†ค ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ์–ด๋–ค ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์˜ค์ง ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๋ฉฐ, ์ด ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ „์—ญ์ ์ธ ์ ‘์ด‰์ ์„ ์ œ๊ณตํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์‹ฑ๊ธ€ํ†ค์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. Eager Initialization (์ด๋ฅธ ์ดˆ๊ธฐํ™”, Thread - safe) Eager Initialization์€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ์‹ฑ๊ธ€ํ†ค ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. public class Singleton { private static final Singleton instance = new Singleton();//ํด๋ž˜์Šค ๋กœ๋”ฉ ์‹œ์ ์— ์ƒ์„ฑ private Singleton(){} //private ์ƒ์„ฑ์ž๋กœ ์™ธ๋ถ€ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๊ฒƒ์„ ์ฐจ๋‹จํ•œ๋‹ค. public sta..
์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ๋นˆ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฅ˜๋กœ๋Š” BeanFactory, ApplicationContext๋“ฑ์ด ์žˆ์œผ๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ApplicationContext๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. BeanFactory ์Šคํ”„๋ง ๋นˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. getBean()๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ApplicationContext ์ผ๋ฐฉ์ ์œผ๋กœ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ApplicationContext๋Š” BeanFactory์˜ ํ•˜์œ„ ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ, ์—ฌ๋Ÿฌ ๊ตฌํ˜„์ฒด๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์†Œ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ตญ์ œํ™” ๊ธฐ๋Šฅ - ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ•œ๊ตญ์—์„œ ๋“ค์–ด์˜ค๋ฉด ํ•œ๊ตญ์–ด๋กœ, ์˜์–ด๊ถŒ์—์„œ ๋“ค์–ด์˜ค๋ฉด ์˜์–ด๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ๋ณ€์ˆ˜ - ๋กœ์ปฌ, ๊ฐœ๋ฐœ, ์šด์˜๋“ฑ์„ ๊ตฌ๋ถ„ํ•ด์„œ ์ฒ˜๋ฆฌ..
์˜์กด๊ด€๊ณ„ "A๊ฐ€ B๋ฅผ ์˜์กดํ•œ๋‹ค" ์œ„์˜ ๋œป์€ ์˜์กด์˜ ๋Œ€์ƒ์ธ B๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด, ํ•ด๋‹น ๋ณ€๊ฒฝ์˜ ์˜ํ–ฅ์ด A์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉฐ ์ž์„ธํžˆ ์ดํ•ดํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. public class Barista { private IceVanillaLatteRecipe iceVanillaLatteRecipe; public Barista() { iceVanillaLatteRecipe = new IceVanillaLatteRecipe(); } } ์œ„์˜ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "๋ฐ”๋ฆฌ์Šคํƒ€๋Š” ์•„์ด์Šค ๋ฐ”๋‹๋ผ ๋ผ๋–ผ ๋ ˆ์‹œํ”ผ์˜ ์˜์กดํ•œ๋‹ค." ์˜์กด๊ด€๊ณ„๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ A๊ฐ€ B๋ฅผ ์˜์กดํ•˜๋Š” ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. B๊ฐ€ A์˜ ํ•„๋“œ B๊ฐ€ A ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ B๊ฐ€ A์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜ B๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ„ ์˜์กด๊ด€๊ณ„..
์šฐ์„  ์Šคํ”„๋ง์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. EJB(Enterprise Java Bean) EJB๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ž๋ฐ”๋นˆ์ฆˆ(Enterprise JavaBeans; EJB)๋Š” ๊ธฐ์—…ํ™˜๊ฒฝ์˜ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„์ธก ์ปดํฌ๋„ŒํŠธ ๋ชจ๋ธ์ด๋‹ค. ์ฆ‰, EJB๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—…๋ฌด ๋กœ์ง์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ž๋ฐ”๋นˆ์ฆˆ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ž๋ฐ”๋นˆ์ฆˆ(Enterprise JavaBeans; EJB)๋Š” ๊ธฐ์—…ํ™˜๊ฒฝ์˜ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„์ธก ์ปดํฌ๋„ŒํŠธ ๋ชจ๋ธ์ด๋‹ค. ์ฆ‰, EJB๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—…๋ฌด ๋กœ์ง์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค. EJB ์‚ฌ ko.wikipedia.org EJB์—์„œ JB์— ํ•ด๋‹นํ•˜๋Š” Java Bean์ด๋ž€ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ..
๋ง ๋ž‘
'๐Ÿ๏ธ Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (23 Page)