Spring
-
테스트를 만들지 않을 거면 스프링을 도대체 뭐하러 쓰는 거죠? 테스트를 작성할때 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 -
Spring을 통해 WebApplication을 작성할 때 Redis를 크게 두 가지 방향으로 쓸 수 있을 것 같다. @Cacheable, @CacheEvict 등의 애너테이션을 활용한 Cache 용도 RedisTemplate를 활용한 다양한 자료구조에 데이터 관리(CRUD)먼저 Cache로 사용하는 방법을 알아보자. 의존성 implementation 'org.springframework.boot:spring-boot-starter-data-redis' Spring에서 @Cacheable, @CacheEvict, @CachePut과 같은 애너테이션을 만들어 두었고 해당 애너테이션이 어떻게 동작할지는 자신이 원하는 Cache Framework의 구현체만 주입해 주면 된다. -> CacheManage..
[Spring] Cache Abstraction 사용 (Redis)Spring을 통해 WebApplication을 작성할 때 Redis를 크게 두 가지 방향으로 쓸 수 있을 것 같다. @Cacheable, @CacheEvict 등의 애너테이션을 활용한 Cache 용도 RedisTemplate를 활용한 다양한 자료구조에 데이터 관리(CRUD)먼저 Cache로 사용하는 방법을 알아보자. 의존성 implementation 'org.springframework.boot:spring-boot-starter-data-redis' Spring에서 @Cacheable, @CacheEvict, @CachePut과 같은 애너테이션을 만들어 두었고 해당 애너테이션이 어떻게 동작할지는 자신이 원하는 Cache Framework의 구현체만 주입해 주면 된다. -> CacheManage..
2024.11.18 -
디자인 패턴을 구분하는 두 가지 방식 -> 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