โญ Personal_Study/Spring10 Singleton Container Singleton Container ์น ์ ํ๋ฆฌ์ผ์ด์ & ์ฑ๊ธํค ์ผ๋ฐ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ณ ๊ฐ์ด ๋์์ ์์ฒญ์ ํ๋ค! ์คํ๋ง ์๋ ์์ํ DI์ปจํ ์ด๋ public class SingletonTest { @Test @DisplayName("์คํ๋ง ์๋ ์์ํ DI์ปจํ ์ด๋") void pureContainer() { AppConfig appConfig = new AppConfig(); // 1. ์กฐํ: ํธ์ถ ํ ๋๋ง๋ค ๊ฐ์ฒด ์์ฑ MemberService memberService1 = appConfig.memberService(); // 2. ์กฐํ: ํธ์ถ ํ ๋๋ง๋ค ๊ฐ์ฒด ์์ฑ MemberService memberService2 = appConfig.memberService(); // ์ฐธ์กฐ๊ฐ์ด ๋ค๋ฅด๋ค //.. 2023. 1. 6. ์คํ๋ง ์ปจํ ์ด๋ & Bean ์กฐํ ์คํ๋ง ์ปจํ ์ด๋ & ๋น ์กฐํํ๊ธฐ ์คํ๋ง ์ปจํ ์ด๋ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext ๋ฅผ ์คํ๋ง ์ปจํ ์ด๋๋ผ ํ๋ค. ApplicationContext๋ ์ธํฐํ์ด์ค์ด๋ค. ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ๊ณผ์ 1. ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ์คํ๋ง ์ปจํ ์ด๋๋ฅผ ์์ฑํ ๋๋ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.(AppConfig) 2. ์คํ๋ง ๋น ๋ฑ๋ก ๋น ์ด๋ฆ์ ๋ฉ์๋ ์ด๋ฆ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฑฐ๋ ์ง์ ๋ถ์ฌํ ์ ์๋ค. ์ฃผ์: ๋น ์ด๋ฆ์ ํญ์ ๋ค๋ฅธ ์ด๋ฆ์ ๋ถ์ฌ ํด์ผ ํ๋ค. 3. ์คํ๋ง ๋น ์์กด๊ด๊ณ ์ค์ - ์ค๋น 4. ์คํ๋ง ๋น ์์กด๊ด๊ณ ์ค์ - ์๋ฃ ์คํ๋ง ์ปจํ ์ด๋๋ ์ค์ .. 2023. 1. 5. ์ ์ด์ ์ญ์ (IoC) & ์์กด์ฑ ์ฃผ์ (DI) ์ ์ด์ ์ญ์ (IoC) & ์์กด์ฑ ์ฃผ์ (DI) ์ ์ด์ ์ญ์ ์ ์ด์ ์ญ์ (IoC): ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ ์ง์ ์ ์ดํ๋ ๊ฒ์ด ์๋๋ผ ์ธ๋ถ์์ ๊ด๋ฆฌํ๋ ๊ฒ public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } ๊ธฐ์กด์๋ ํด๋ผ์ด์ธํธ ๊ตฌํ ๊ฐ์ฒด๊ฐ ์ค์ค๋ก ํ์ํ ์๋ฒ ๊ตฌํ ๊ฐ์ฒด๋ฅผ ์์ฑ, ์ฐ๊ฒฐ ์คํํ๋ค. -> ๊ตฌํ ๊ฐ์ฒด๊ฐ ์ค์ค๋ก ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ ์กฐ์ ํจ ํ๋ ์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ 1. ํ ์ธ ์ ์ฑ ์ ๋ณ๊ฒฝํ ๋ ํด.. 2023. 1. 1. SOLID (์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น) SOLID ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น SRP: ๋จ์ผ ์ฑ ์ ์์น (single responsibility principle) OCP: ๊ฐ๋ฐฉ-ํ์ ์์น (Open/closed principle) LSP: ๋ฆฌ์ค์ฝํ ์นํ ์์น (Liskov substitution principle) ISP: ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น (Interface segregation principle) DIP: ์์กด๊ด๊ณ ์ญ์ ์์น (Dependency inversion principle) 1. SRP: ๋จ์ผ ์ฑ ์ ์์น ํ ํด๋์ค๋ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค ํ๋์ ์ฑ ์์ด๋ผ๋ ๊ฒ์ ๋ชจํธํ๋ค. ํด ์ ์๊ณ , ์์ ์ ์๋ค. ๋ฌธ๋งฅ๊ณผ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์ค์ํ ๊ธฐ์ค์ ๋ณ๊ฒฝ์ด๋ค. ๋ณ๊ฒฝ์ด ์์ ๋ ํ๊ธ ํจ๊ณผ๊ฐ ์ ์ผ๋ฉด ๋จ์ผ ์ฑ ์ ์์น์ ์ ๋ฐ.. 2022. 12. 31. ์ด์ 1 2 ๋ค์