분류 전체보기

Spring/스프링 핵심 원리 - 고급편

[스프링 핵심 원리 - 고급편] 빈 후처리기

본문은 인프런의 [스프링 핵심 원리 - 고급편]를 수강하고 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 스프링 핵심 원리 - 고급편 1. 쓰레드 로컬 2. 템플릿 메서드 패턴과 콜백 패턴 3. 프록시 패턴과 데코레이터 패턴 4. 동적 프록시 기술 5. 스프링이 지원하는 프록시 6. 빈 후처리기 7. @Aspect AOP 8. 스프링 AOP 개념 9. 스프링 AOP 구현 10. 포인트컷 11. 실무 주의사항 전 챕터를 통해 스프링이 제공하는 프록시 전반에 대해 살펴봤다. 프록시 팩토리를 사용함으로써 더욱 편리하게 생성할 수 있게 되었고, 어드바이저/어드바이스/포인트컷 개념 덕에 어떤 부가 기능 로직과 그 대상에 대해 명확하게 이해할 수 있었다. 그러..

Spring/스프링 핵심 원리 - 고급편

[스프링 핵심 원리 - 고급편] 스프링이 지원하는 프록시

본문은 인프런의 [스프링 핵심 원리 - 고급편]를 수강하고 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 스프링 핵심 원리 - 고급편 1. 쓰레드 로컬 2. 템플릿 메서드 패턴과 콜백 패턴 3. 프록시 패턴과 데코레이터 패턴 4. 동적 프록시 기술 5. 스프링이 지원하는 프록시 6. 빈 후처리기 7. @Aspect AOP 8. 스프링 AOP 개념 9. 스프링 AOP 구현 10. 포인트컷 11. 실무 주의사항 전 챕터를 통해 동적 프록시를 제공하는 두 가지 기술인 JDK 동적 프록시와 CGLIB를 살펴봤다. 이 기술들을 바탕으로 바로 동적 프록시를 사용하기엔 한계가 남아있다. 1) JDK 동적 프록시와 CGLIB를 동시에 사용하기 어렵다 인터페이스가 ..

테스트코드/ATDD, 클린 코드 with Spring

[ATDD, 클린 코드 with Spring 6기] 3주차 정리

1. 개요 1) 통합 테스트 통합 테스트의 다양한 정의 단위테스트의 조건에 하나라도 부합하지 않으면 통합테스트다 자신이 혼자 만든 것을 확인하는 것은 단위테스트며, 다른 이들과 같이 만든 것을 확인하는 것은 통합테스트다 개별 단위 간의 유기적인 연결을 확인하는 것 → 본 강의에선 이를 통합 테스트로 규정했다 통합 테스트의 넓은 의미와 좁은 의미 넓은 의미: 전체적인 모듈들이 잘 동작하는 지를 검증하는 것 좁은 의미: 각각의 요소들만 잘 동작하는 지를 검증하는 것 (=서로 다른 모듈 간의 통합이 잘 이루어지는지 검증) 2) 관리 의존성 vs 비관리 의존성 관리 의존성 내 애플리케이션을 통해서만 상태를 바꿀 수 있는 것 ex) 내 애플리케이션에만 연결된 DB 실제 환경을 구축해서 통합 테스트를 하는 편이 좋..

Spring/스프링 핵심 원리 - 고급편

[스프링 핵심 원리 - 고급편] 동적 프록시 기술

본문은 인프런의 [스프링 핵심 원리 - 고급편]를 수강하고 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 스프링 핵심 원리 - 고급편 1. 쓰레드 로컬 2. 템플릿 메서드 패턴과 콜백 패턴 3. 프록시 패턴과 데코레이터 패턴 4. 동적 프록시 기술 5. 스프링이 지원하는 프록시 6. 빈 후처리기 7. @Aspect AOP 8. 스프링 AOP 개념 9. 스프링 AOP 구현 10. 포인트컷 11. 실무 주의사항 전 챕터에서는 프록시 패턴과 데코레이터 패턴을 학습했고, 프록시를 사용해서 기존 코드를 변경하지 않고 부가 기능(로그 추적)을 적용했다. 그러나 프록시를 이용하기 위해 부가 기능을 위한 프록시 클래스를 계속해서 만들어내야 한다는 점은 여전히 문제..

테스트코드/ATDD, 클린 코드 with Spring

[ATDD, 클린 코드 with Spring 6기] 2주차 정리

1. 개요 1) 단위테스트와 협력객체 단위테스트의 특징 작은 코드 조각(단위)를 검증한다 빠르게 수행 가능하다 격리된 방식으로 처리한다 통합과 고립(Sociable and Solitary) 협력 객체를 실제 객체로 사용하는지(통합) 또는 Mock 객체로 사용하는지(격리)에 따라 테스트 구현이 달라진다 협력 객체가 없는 단위테스트는 작성하기가 쉽다. 2) 테스트 대역 (Test Double) 실제 객체 대신 사용되는 모든 종류의 객체에 대한 일반 용어 즉, 실제를 가짜로 대체한 것 대역 종류 (참고링크) 1) Stub: 지정한 응답을 주는 객체 (간접 입력) 2) Fake: 의존성 계약을 준수하는 가벼운 구현체 (테스트용 가짜 객체) 3) Mock: 테스트 대상 내부의 행위(상호작용)을 검증 4) Spy:..