본문 바로가기

Backend3

스프링 싱글톤 패턴 싱클톤 패턴 package singleton; import com.changddao.fall_in_spring.AppConfig; import com.changddao.fall_in_spring.member.MemberService; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { //given AppConfig appConfig = new AppConfig(); //when //1.. 2023. 12. 2.
Spring IoC, DI, 그리고 컨테이너 출처 : 인프런 김영한님 Spring 강의 의존관계 주입 DI(Dependency Injection) OrderServiceImpl는 DiscountPolicy 인터페이스에 의존한다 실제 어떤 구현 객체가 사용될지는 모른다. 의존관계는 정적인 클래스 의존 관계와, 실행 시점에 결정되는 동적인 객체의 의존관계 둘을 분리해서 생각해야 한다. 정적인 클래스 의존관계 클래스가 사용하는 import코드만 보고 의존관계를 쉽게 판단할 수 있다. 정적인 의존관계는 애플리케이션을 실행하지 않아도 분석할 수 있다. 'OrderServiceImpl' 는 'MemberRepository', 'DiscountPolicy'에 의존한다는 것을 알 수 있다. 하지만 이러한 클래스의 의존관.. 2023. 12. 2.
좋은 객체지향 설계 원칙 SOLID SOLID🐦 SRP : 단일 책임 원칙(single responsibility principle) OCP : 개방-폐쇄 원칙(Open/closed principle) LSP : 리스코프 치환 원칙(Liskov substitution principle) ISP : 인터페이스 분리 원칙(Interface segregation principle) DIP: 의존관계 역전 원칙 (Dependency inversion principle) SRP 단일 책임 원칙🐳 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 ex) UI 변경, 객체의 생성.. 2023. 12. 2.