Spring/TobySpring6
-
개방 폐쇄 원칙(OCP)클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. 변화의 특성이 다른 부분을 구분하고 각각 다른 목적과 이유에 의해 다른 시점에 독립적으로 변경될 수 있는 효율적인 구조를 만들어야 한다. 템플릿코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분(템플릿)을 자유롭게 변경되는 성질을 가진 부분(콜백)으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법 템플릿 메서드 패턴도 템플릿을 사용한다.다만, 템플릿 메서드 패턴은 상속을 이용템플릿은 전략 패턴이 적용되었다 콜백(Callback)콜백은 실행되는 것을 목적으로 다른 오브젝트의 메서드에 전달되는 오브젝트파라미터로 전달되지만 값을 참조하기 위한 것이 아니라 특정 로직을 담은 메..
토비의 스프링 6 - 템플릿개방 폐쇄 원칙(OCP)클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. 변화의 특성이 다른 부분을 구분하고 각각 다른 목적과 이유에 의해 다른 시점에 독립적으로 변경될 수 있는 효율적인 구조를 만들어야 한다. 템플릿코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분(템플릿)을 자유롭게 변경되는 성질을 가진 부분(콜백)으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법 템플릿 메서드 패턴도 템플릿을 사용한다.다만, 템플릿 메서드 패턴은 상속을 이용템플릿은 전략 패턴이 적용되었다 콜백(Callback)콜백은 실행되는 것을 목적으로 다른 오브젝트의 메서드에 전달되는 오브젝트파라미터로 전달되지만 값을 참조하기 위한 것이 아니라 특정 로직을 담은 메..
2024.11.29 -
테스트를 만들지 않을 거면 스프링을 도대체 뭐하러 쓰는 거죠? 테스트를 작성할때 Service Layer에 대한 테스트를 하고 싶다고 하면 해당 Layer에서 사용하는 외부 시스템을 제어해야 한다.이러한 역할을 해주는 것이 "Mock", "Stub", "Double".. 등이 있다. 테스트와 DI수동 DI를 이용한 테스트 : 테스트용 협력자(Collborator)/의존 오브젝트를 테스트 대상에 직접 주입 스프링 DI를 이용한 테스트 : 테스트용 협력자(Collborator)/의존 오브젝트를 스프링의 구성 정보를 이용해서 지정하고 컨테이너로 부터 가져와 테스트 @ContextConfiguration, @Autowired 도메인 오브젝트 테스트 테스트의 꽃도메인 모델 아키텍처 패턴 : 도메인 로직, 비즈니..
토비의 스프링 6 - 테스트테스트를 만들지 않을 거면 스프링을 도대체 뭐하러 쓰는 거죠? 테스트를 작성할때 Service Layer에 대한 테스트를 하고 싶다고 하면 해당 Layer에서 사용하는 외부 시스템을 제어해야 한다.이러한 역할을 해주는 것이 "Mock", "Stub", "Double".. 등이 있다. 테스트와 DI수동 DI를 이용한 테스트 : 테스트용 협력자(Collborator)/의존 오브젝트를 테스트 대상에 직접 주입 스프링 DI를 이용한 테스트 : 테스트용 협력자(Collborator)/의존 오브젝트를 스프링의 구성 정보를 이용해서 지정하고 컨테이너로 부터 가져와 테스트 @ContextConfiguration, @Autowired 도메인 오브젝트 테스트 테스트의 꽃도메인 모델 아키텍처 패턴 : 도메인 로직, 비즈니..
2024.11.26 -
디자인 패턴을 구분하는 두 가지 방식 -> Purpose, Scope그중에 중점으로 살펴볼 방식은 scope에 의한 구분 방식이다. scope는 두 가지로 나뉠 수 있다 -> 클래스, 오브젝트 클래스는 상속(inheritance)을 통한 확장성을 가진 패턴오브젝트는 합성(composition)을 이용한 패턴 대부분의 디자인 패턴은 오브젝트 패턴이다. 가능하면 오브젝트 합성을 상속보다 더 선호하라는 디자인 패턴의 기본 객체지향 원리를 따른 것이다. 오브젝트 합성을 이용하는 디자인 패턴을 적용할 때 스프링의 의존관계 주입을 사용 - 앞에 설명한 전략 패턴 또한 이에 해당 데코레이터(Decorator) 디자인 패턴오브젝트에 부가적인 기능/책임을 동적으로 부여하는 디자인 패턴- 기존의 코드는 건드리지 않고,..
토비의 스프링 6 - DI와 디자인 패턴, 의존성 역전 원칙디자인 패턴을 구분하는 두 가지 방식 -> Purpose, Scope그중에 중점으로 살펴볼 방식은 scope에 의한 구분 방식이다. scope는 두 가지로 나뉠 수 있다 -> 클래스, 오브젝트 클래스는 상속(inheritance)을 통한 확장성을 가진 패턴오브젝트는 합성(composition)을 이용한 패턴 대부분의 디자인 패턴은 오브젝트 패턴이다. 가능하면 오브젝트 합성을 상속보다 더 선호하라는 디자인 패턴의 기본 객체지향 원리를 따른 것이다. 오브젝트 합성을 이용하는 디자인 패턴을 적용할 때 스프링의 의존관계 주입을 사용 - 앞에 설명한 전략 패턴 또한 이에 해당 데코레이터(Decorator) 디자인 패턴오브젝트에 부가적인 기능/책임을 동적으로 부여하는 디자인 패턴- 기존의 코드는 건드리지 않고,..
2024.11.10 -
앞에서 관계 설정 책임의 분리를 위해서 도입된 ObjectFactory의 기능을 스프링의 BeanFactory가 대체한다.(https://kkang-joo.tistory.com/142) 의존관계 주입(Dependency Injection)원칙과 패턴에서 설명한 제어의 역전(IoC)은 스프링의 동작원리를 정확하게 설명하기에는 너무 일반적인 프레임워크 동작원리를 설명하는 용어이다. 오프젝트의 의존관계에 대한 책임을 외부 오브젝트가 담당하게 하는 것을 의존관계 주입(DI)이라는 새로운 용어가 제안되었다. 스프링 컨테이너애플리케이션을 구성하는 오브젝트를 만들어서 담아두고 필요할 때 사용하도록 기능을 제공 - 컨테이너 스프링 컨테이너는 Bean이라고 불리는 애플리케이션을 구성하는 오브젝트를 관리하는 기능을 담당..
토비의 스프링 6 - 스프링 컨테이너와 의존관계 주입앞에서 관계 설정 책임의 분리를 위해서 도입된 ObjectFactory의 기능을 스프링의 BeanFactory가 대체한다.(https://kkang-joo.tistory.com/142) 의존관계 주입(Dependency Injection)원칙과 패턴에서 설명한 제어의 역전(IoC)은 스프링의 동작원리를 정확하게 설명하기에는 너무 일반적인 프레임워크 동작원리를 설명하는 용어이다. 오프젝트의 의존관계에 대한 책임을 외부 오브젝트가 담당하게 하는 것을 의존관계 주입(DI)이라는 새로운 용어가 제안되었다. 스프링 컨테이너애플리케이션을 구성하는 오브젝트를 만들어서 담아두고 필요할 때 사용하도록 기능을 제공 - 컨테이너 스프링 컨테이너는 Bean이라고 불리는 애플리케이션을 구성하는 오브젝트를 관리하는 기능을 담당..
2024.11.06