๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring/[์ธํ”„๋Ÿฐ] ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ

(3)
์ปดํฌ๋„ŒํŠธ ์Šค์บ” ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๊น€์˜ํ•œ๋‹˜์˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜(์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ)๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. @ComponentScan ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•  ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด @Bean(๋˜๋Š” XML์˜ )์„ ํ†ตํ•ด์„œ ์„ค์ • ์ •๋ณด๋ฅผ ์ง์ ‘ ๋“ฑ๋กํ•  ์Šคํ”„๋ง ๋นˆ์„ ๋‚˜์—ดํ•ด์•ผํ–ˆ๋‹ค. // ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š” Configuration @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServi..
์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ์ดํ•ด ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๊น€์˜ํ•œ๋‹˜์˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜(์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ)๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ "์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ ๊ณต์—ฐ์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ์Šคํ”„๋ง์€ ๊ณต์—ฐ์˜ ๋ฐฐ์—ญ(์—ญํ• )์— ๋งž๋Š” ๋ฐฐ์šฐ(๊ตฌํ˜„์ฒด)๋ฅผ ์„ญ์™ธํ•˜๋Š” ๊ณต์—ฐ ๊ธฐํš์ž๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค." ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘ OCP์™€ DIP๋ฅผ ์œ„๋ฐ˜ํ•˜๊ณ  ์žˆ๋‹ค. public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); ... } OCP ์œ„๋ฐ˜ OCP :..
๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์™€ ์Šคํ”„๋ง ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๊น€์˜ํ•œ๋‹˜์˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜(์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ - ๊ธฐ๋ณธํŽธ)๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง์˜ ํƒ„์ƒ EJB (Enterprise Java Beans) 2000๋…„๋Œ€ ์ดˆ๋ฐ˜, ์ž๋ฐ” ์ง„์˜์˜ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๋˜ ๊ธฐ์ˆ  ํŠธ๋žœ์žญ์…˜ ์„ค์ •, ๋ถ„์‚ฐ๊ธฐ์ˆ  ๋“ฑ ์ด๋ก  ์ƒ์œผ๋กœ ์ข‹์€ ์ ๋“ค์ด ์žˆ์—ˆ์ง€๋งŒ, ๋ณต์žกํ•˜๊ณ  EJB์— ์˜์กด์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ๋“ฑ ์žฅ์ ์„ ๋„˜์–ด์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์ ์ด ์žˆ์—ˆ์Œ 2002๋…„ ๋กœ๋“œ ์กด์Šจ ์ฑ… ์ถœ๊ฐ„ EJB์˜ ๋ฌธ์ œ์ ์„ ์ง€์ ํ•˜๋ฉฐ, EJB ์—†์ด๋„ ์ถฉ๋ถ„ํžˆ ๊ณ ํ’ˆ์งˆ์˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ์ฃผ๊ณ , 30,000๋ผ์ธ ์ด์ƒ์˜ ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ์„ ์˜ˆ์ œ ์ฝ”๋“œ๋กœ ์„ ๋ณด์ž„ ์ฑ… ์ถœ๊ฐ„ ์งํ›„ ์œ ๊ฒ ํœ ๋Ÿฌ์™€ ์–€ ์นด๋กœํ”„๊ฐ€ ๋กœ๋“œ ์กด์Šจ์—๊ฒŒ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ์•ˆ ์ „ํ†ต์ ์ธ J2EE(EJB)๋ผ๋Š” ๊ฒจ์šธ์„ ๋„˜์–ด ์ƒˆ๋กœ์šด ์‹œ์ž‘์ด๋ผ๋Š” ๋œป์œผ..