์ฑ๊ธํค ์ฑ๊ธํค ํจํด์ ์ด๋ค ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์ค์ง ํ๋๋ง ์์ฑ๋๋ ๊ฒ์ ๋ณด์ฅํ๋ฉฐ, ์ด ์ธ์คํด์ค์ ์ ๊ทผํ ์ ์๋ ์ ์ญ์ ์ธ ์ ์ด์ ์ ์ ๊ณตํ๋ ํจํด์
๋๋ค. ์ฑ๊ธํค์ ๊ตฌํํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ํ๋ํ๋ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. 1. Eager Initialization (์ด๋ฅธ ์ด๊ธฐํ, Thread - safe) Eager Initialization์ ๊ฐ์ฅ ๊ฐ๋จํ ํํ์ ์ฑ๊ธํค ๊ตฌํ ๋ฐฉ๋ฒ์
๋๋ค. public class Singleton { private static final Singleton instance = new Singleton();//ํด๋์ค ๋ก๋ฉ ์์ ์ ์์ฑ private Singleton(){} //private ์์ฑ์๋ก ์ธ๋ถ ํด๋์ค๋ก๋ถํฐ ์ธ์คํด์ค๊ฐ ์์ฑ๋๋๊ฒ์ ์ฐจ๋จํ๋ค. public sta..
๐๏ธ Spring
์คํ๋ง ์ปจํ
์ด๋ ์คํ๋ง ์ปจํ
์ด๋๋ ๋น์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ์ํํฉ๋๋ค. ์ข
๋ฅ๋ก๋ 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์ด๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ..