본문 바로가기

Spring27

[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.
[Spring Security] 요청 캐시 흐름 정리 해당 동작을 하는 모든 필터들은 FilterChainProxy에 있는 필터들에서 동작 1. 인증되지 않은 사용자가 리소스 요청사용자가 인증이 필요한 리소스에 접근하려 하면, Spring Security는 이 요청을 가로채 인증 여부를 확인2. 인증되지 않은 경우, 예외 처리인증되지 않은 경우, ExceptionTranslationFilter에서 예외를 처리이때 AccessDeniedException이나 AuthenticationException을 던지게된다.AccessDeniedException은 인증은 했지만 권한이 부족한 경우AuthenticationException은 인증이 필요한 경우 RequestCache 인터페이스의 구현체(HttpSessionRequestCache가 일반적)에서 요청 정보를 .. 2024. 9. 13.
[Spring Boot] 자동 구성 동작 엔트리 포인트 main()@SpringBootApplicationpublic class SecurityApplication { public static void main(String[] args) { SpringApplication.run(SecurityApplication.class, args); }} 스프링 부트 애플리케이션의 엔트리 포인트이다. 스프링 부트가 실행이 되면 main 메서드가 실행이 되면서 SpringApplication.run(SecurityApplication.class, args); 메서드가 실행이 된다.  @SpringBootApplication@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inh.. 2024. 9. 3.