분류 전체보기405 [Spring] AOP 전체 정리 개요 Spring AOP 핵심 원리에 대한 정리가 끝났고 이제 스프링 AOP 적용 방식, 스프링 AOP 어드바이스에 대해서 딥하게 정리해 보겠다. 이전 Spring AOP 핵심 원리 정리에는 스프링 AOP에 바탕이 되는 개념들인 프록시 패턴, 동적 프록시(JDK Dynamic Proxy, CGLIB), ProxyFactory, Advice, Advisor, Pointcut, 빈 후처리기(BeanPostProcessor), 스프링이 제공하는 프록시 자동 생성기(빈 후처리기)에 대해서 정리해놨다. 모르는 키워드가 보인다면 참고하자!! https://20240228.tistory.com/429 [Spring] AOP 핵심 원리 정리개요스프링 시큐리티의 메소드 기반 인가 허용을 공부하는데 스프링 AOP 부분 .. 2024. 12. 16. [Spring] AOP 핵심 원리 정리 개요스프링 시큐리티의 메소드 기반 인가 허용을 공부하는데 스프링 AOP 부분 내용을 많이 까먹어서 복습한다 스프링 시큐리티의 메소드 기반 인가 요청은 특정 애노테이션을 기반으로 메소드 호출 여부를 판단하는데 이때 사용하는 기술이 스프링 AOP 기술이다.스프링 AOP는 프록시 패턴을 바탕으로 하는 기술이다.스프링 AOP를 프록시/데코레이터 패턴 → 리플랙션 → 동적 프록시 기술 → 스프링 제공 프록시 관련 기술(ProxyFactory, Advice, Pointcut, Advisor) → 스프링 빈 후처리기 → 스프링 AOP까지 단계적으로 이해해 보자 참고 자료인프런 김영한님 - 스프링 핵심 원리 고급편스프링 공식 문서/AOPAOP AOP는 Aspect Orientied Prograimming 즉, 관점.. 2024. 12. 15. [Mockito] 정리 Mockito 소개 Mock?mock 단어의 뜻은 모조품이다 진짜 객체와 비슷하게 동작하지만 개발자가 직접 그 객체의 행동을 관리하는 객체 Mockito: Mock 객체를 쉽게 만들고 관리하고 검증할 수 있는 방법을 제공한다즉, Mockito는 Mock 프레임워크 대체제: EasyMock, JMock자바 개발자는 Mockito 프레임워크를 가장 많이 사용한다. Mock 프레임워크를 사용하는 이유테스트하려는 클래스가 의존하는 객체(DB, 외부 API 등)를 실제로 호출하지 않고 격리된 상태에서 테스트할 수 있다. ex) 데이터베이스 연결 없이 Repository / Service 계층 테스트 수행 이를 통해 테스트에서 외부 시스템 의존성이 제거된다. 외부 API나 시스템(서드파티 서비스)가 동작하지 .. 2024. 11. 27. [JUnit 5] 정리 JUnit 5 소개 자바 개발자가 가장 많이 사용하는 테스팅 프레임워크 자바 8 이상이 필요하다 Platform테스트를 실행해주는 런처를 제공한다. TestEngine API 제공 우리가 인텔리제이에서 메인 메소드 없이 테스트를 진행할 수 있는 이유는 인텔리제이가 JUnit 플랫폼과의 통합 테스팅 환경을 제공하기 때문이다. IDE가 내부적으로 JUnit Platform 런처를 사용해 테스트를 자동으로 실행한다. JupiterTestEngine 구현체 Junit5 제공 VintageJunit 4,3 지원하는 TestEngine 구현체 JUnit 5 시작하기 2.2+ 버전의 스프링 부트 프로젝트를 만든다면 기본으로 JUnit 5 의존성 추가 된다 build.gradledependencies { imp.. 2024. 11. 25. [Design Pattern] 템플릿 메소드, 템플릿 콜백 (Template method, Template-Callback) 패턴 템플릿 메소드 (Template method) 패턴알고리즘 구조를 서브 클래스가 확장할 수 있도록 템플릿으로 제공하는 방법추상 클래스는 템플릿을 제공하고 하위 클래스는 구체적인 알고리즘을 제공한다 템플릿 메소드 (Template method) 패턴 beforeFileProcessor 클래스 public class FileProcessor { private String path; public FileProcessor(String path) { this.path = path; } public int process(){ try(BufferedReader br = new BufferedReader(new FileReader(path))) { .. 2024. 11. 25. [Design Pattern] 전략 (Strategy) 패턴 전략 (Strategy) 패턴여러 알고리즘을 캡슐화하고 상호 교환 가능하게 만드는 패턴컨텍스트에서 사용할 알고리즘을 클라이언트가 선택한다. 전략 (Strategy) 패턴 beforeBlueLightRedLight 무궁화 꽃 게임 public class BlueLightRedLight { private int speed; public BlueLightRedLight(int speed){ this.speed = speed; } public void blueLight(){ if(speed == 1) System.out.println("무 궁 화 꽃 이"); else if(speed == 2) System.out.println("무궁화꽃이");.. 2024. 11. 25. 이전 1 2 3 4 ··· 68 다음