분류 전체보기
-
개방 폐쇄 원칙(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 -
우리들의 뒤죽박죽 기억 체계컴퓨터의 기억 체계와 인간의 기억 체계컴퓨터의 데이터 뱅크에 있는 모든 항목은 고유한 위치 또는 주소를 가지고 있다.가히 우편번호 기억이라고 부를 만하다. 이런 체계에는 특정 기억을 인출하려면 그냥 해당 주소를 찾아가면 된다. 그러나 슬프게도 인간의 기억은 그렇지 못하다우리는 일종의 맥락 기억을 지니고 있다. 우리는 어떤 것을 기억 속에서 끄집어내기 위해서 맥락이나 단서를 사용한다. 맥락 기억의 장점과 단점우리의 맥락 기억에는 우선순위가 존재한다. 유용하다고 판단되는 정보는 빠르게 탐색된다. 하지만, 신뢰성이 떨어지는 경우도 존재한다. 똑똑한 일상을 방해하는 기억의 법칙들 예비효과 - 우울한 기분이 드는 경우 계속 이와 관련된 일들을 연쇄적으로 떠올리며 더욱더 우울해진다법정..
[클루지] 1장 맥락과 기억우리들의 뒤죽박죽 기억 체계컴퓨터의 기억 체계와 인간의 기억 체계컴퓨터의 데이터 뱅크에 있는 모든 항목은 고유한 위치 또는 주소를 가지고 있다.가히 우편번호 기억이라고 부를 만하다. 이런 체계에는 특정 기억을 인출하려면 그냥 해당 주소를 찾아가면 된다. 그러나 슬프게도 인간의 기억은 그렇지 못하다우리는 일종의 맥락 기억을 지니고 있다. 우리는 어떤 것을 기억 속에서 끄집어내기 위해서 맥락이나 단서를 사용한다. 맥락 기억의 장점과 단점우리의 맥락 기억에는 우선순위가 존재한다. 유용하다고 판단되는 정보는 빠르게 탐색된다. 하지만, 신뢰성이 떨어지는 경우도 존재한다. 똑똑한 일상을 방해하는 기억의 법칙들 예비효과 - 우울한 기분이 드는 경우 계속 이와 관련된 일들을 연쇄적으로 떠올리며 더욱더 우울해진다법정..
2024.11.22 -
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