스프링/스프링 기본이론
-
스프링을 이용한 싱글톤 패턴스프링/스프링 기본이론 2023. 1. 30. 18:15
스프링에서의 싱글톤 컨테이너 @Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService1 = ac.getBean("memberService", MemberService.class); MemberService memberService2 = ac.getBean("memberService", MemberService.class); // 참조값이 같은 것을 확인 System.out.println("memberService1 = " + memberService1); Sys..
-
싱글톤 패턴의 개념스프링/스프링 기본이론 2023. 1. 28. 14:04
간단한 웹 사이트를 제작하고 고객에게 웹 사이트를 보낸다고 가정해보자. 만약 웹 사이트를 설계할 때 스프링 없는 DI 컨테이너를 요청할 때마다 객체를 계속 실행한다면 실행할 때마다 그만큼의 객체가 계속해서 생성된다. 즉, 100명의 고객이 웹 사이트를 들어오면 100개의 객체가 생성되어서 효율적이지 않다. public class SingletonTest { @Test @DisplayName("스프링을 사용하지 않는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); // 1. 조회 : 호출할 때 마다 객체 생성 MemberService memberService1 = appConfig.memberService(); // 2..
-
의존관계 주입과 스프링 컨테이너스프링/스프링 기본이론 2023. 1. 24. 20:05
객체지향 설계시 고려해야할 사항들 1. SRP 단일 책임 원칙 - 한 클래스는 하나의 책임만 가져야한다. 구현 객체를 생성하고 연결하는 책임은 구성만 관리하는 다른 Configuration 클래스를 생성해서 담당 클라이언트 객체는 실행 logic만 담당할 수 있게 함 2. DIP 의존관계 역전 원칙 - 프로그래머는 추상화에 의존하고 구체화에 의존 x 의존성 주입 원칙을 따르는 방법 생성자 주입 등을 통해서 새로운 객체를 주입하기 위해서는 구체화에 의존하지말고 추상화에 의존해야만 한다. 1번에서 말했던 Configuration 클래스에서 의존관계 주입을 통해 DIP 원칙을 따르면 된다. 3. OCP 원칙 - 소프트웨어 요소는 확장에는 열려 있으나 닫혀 있어야 한다. 애플리케이션을 사용 영역과 구성 영역으로..