Spring&SpringBoot
-
템플릿 메서드 패턴 & 전략 패턴 & 템플릿 콜백 패턴Spring&SpringBoot 2025. 10. 13. 18:06
템플릿 메서드 패턴변하는 부분(세부 동작)은 하위 클래스에 구현하고 변하지 않는 부분은 상위 클래스에서 정의하도록 하는 패턴하지만 상속에서 오는 단점들이 그대로 존재하며 특히 자식 클래스가 부모 클래스와 컴파일 시점에 강하게 결합되는 문제가 있다자식 클래스 입장에서는 부모 클래스의 기능을 전혀 사용하지 않는데 부모 클래스를 알아야 한다이런 잘못된 의존관계 때문에 부모 클래스를 수정하면 자식 클래스에도 영향을 줄 수 있다 @Slf4jpublic abstract class AbstractTemplate { public void execute() { long startTime = System.currentTimeMillis(); // 비즈니스 로직 실행 call(..
-
로그추적기 - 동시성 문제Spring&SpringBoot 2025. 10. 2. 11:25
실제 결과 : 기대한 결과 :[nio-8080-exec-3] [52808e46] OrderController.request() [nio-8080-exec-3] [52808e46] |-->OrderService.orderItem() [nio-8080-exec-3] [52808e46] | |-->OrderRepository.save() [nio-8080-exec-4] [4568423c] OrderController.request() [nio-8080-exec-4] [4568423c] |-->OrderService.orderItem() [nio-8080-exec-4] [4568423c] | |-->OrderRepository.save() [nio-8080-exec-3] [52808e46] | ..
-
SpringSecurity 06Spring&SpringBoot/SpringSecurity 2025. 9. 25. 13:28
인가 아키텍처인가 - Authorization권한 부여는 특정 자원에 접근할 수 있는 사람을 결정하는 것GrantedAuthority 클래스를 통해 권한 목록을 관리하고 있으며 Authentication 객체와 연결한다 GrantedAuthorityAythentication에 GrantedAuthority 권한 목록을 저장하며 이를 통해 인증 주체에게 부여된 권한을 사용GrantedAuthority는 AuthenticationManager에 의해 Authentication 객체에 삽입하며 인가 결정을 내릴 때 AuthenticationManager를 사용해 인증 주체로부터 GrantedAuthority 객체를 읽어 들여 처리 기본적으로 역할 기반의 인가 규칙은 역할 앞에 ROLE_를 접두사로 사용한다 ..
-
SpringSecurity 05Spring&SpringBoot/SpringSecurity 2025. 9. 24. 13:03
인가 프로세스 요청 기반 권한 부여 - HttpSecurity.authorizeHttpRequests()Spring Security는 요청 기반 권한 부여와 메서드 기반 권한 부여를 통해 자원에 대한 심층적 방어 제공요청 기반 권한 부여는 클라이언트의 요청(HttpServletRequest)에 대한 권한 부여를 모델링하는 것이며 HttpSecurity 인스턴스를 사용하여 권한 규칙을 선언 authorizeHttpRequests() APIrequestMatchers()Http 요청의 URL 패턴, HTTP 메서드, 요청 파라미터 등을 기반으로 어떤 요청에 대해서는 특정 보안 설정을 적용하고 다른 요청에 대해서는 적용하지 않도록 제어예) 특정 API 경로에만 CSRF 보호 적용하거나 특정 경로에 대해 이..
-
스프링 퀵 스타트 04Spring&SpringBoot 2025. 9. 22. 12:43
CLASS07. 트랜잭션 처리스프링과 비교되는 EJB는 모든 비즈니스 메서드에 대한 트랜잭션 관리를 EJB 컨테이너가 자동으로 처리해 준다스프링에서도 EJB와 마찬가지로 트랜잭션 처리를 컨테이너가 자동으로 처리하도록 설정할 수 있는데 이를 선언적 트랜잭션 처리라고 한다 7.1. 트랜잭션 네임스페이스 등록 스프링에서는 트랜잭션 관련 설정을 AOP로 처리한다추가로 트랜잭션을 제어하는 어드바이스를 설정하기 위해 스프링 설정 파일에 트랜잭션 관련 네임스페이스도 추가해야 한다 DAY3CLASS03. Model2 아키텍처로 게시판 개발3.4. 글 목록 검색 기능 구현하기 검색 결과를 세션에 저장하는 것은 문제가 있다세션은 브라우저당 서버 메모리에 하나씩 유지되는 객체이므로 사용자가 많을수록 많은 세션이 생성되고..
-
스프링 퀵 스타트 03Spring&SpringBoot 2025. 9. 18. 15:35
2.2. AOP 엘리먼트 CLASS03. 어드바이스 동작 시점before : 비즈니스 메서드 실행 전 동작after returning : 비즈니스 메서드가 성공적으로 리턴되면 동작after throwing : 비즈니스 메서드가 실행 중 예외 발생하면 동작after : 비즈니스 메서드가 실행된 후, 무조건 실행around : 메서드 호출 자체를 가로채 비즈니스 메서드 실행 전후에 처리할 로직 삽입어드바이스 동작 시점은 엘리먼트 하위에 와 같이 지정한다 CLASS04. joinpoint와 바인드 변수5.1. 어노테이션 기반 AOP 설정5.1.1. 어노테이션 사용을 위한 스프링 설정스프링 설정 파일에 엘리먼트 선언어드바이스 클래스에 AOP 관련 어노테이션 설정 5.1.2. 포인트 컷 설정 > @Po..
-
SpringSecurity 04Spring&SpringBoot/SpringSecurity 2025. 9. 18. 14:34
예외처리예외처리 - exceptionHandling()예외 처리는 필터 체인 내에서 발생하는 예외를 의미하며 인증예외/인가예외가 있다예외를 처리하는 필터는 ExceptionTranslationFilter가 사용되며 사용자의 인증 및 인가 상태에 따라 로그인 재시도, 401, 403 코드 등으로 응답 [예외처리 유형]AuthenticationExcepionSecurityContext 인증 정보 삭제AuthenticationEntryPoint 호출 - 인증 시도 화면으로 이동인증 프로세스의 요청 정보를 저장하고 검색AccessDeniedExceptionAccessDeniedException 감지되면 필터는 사용자가 익명 사용자인지 여부 판단하고 익명 사용자인 경우 인증예외처리가 실행되고 익명 사용자가 아닌..
-
SpringSecurity 03Spring&SpringBoot/SpringSecurity 2025. 9. 17. 18:37
인증 상태 영속성 1. SecurityContextRepository & SecurityContextHolderFilter SecurityContextRepository사용자가 인증한 후 요청에 대해 계속 사용자의 인증을 유지하기 위해 사용되는 클래스인증 정보와 권한이 SecurityContext에 저장되고 HttpSession을 통해 요청 간 영속이 이루어지는 방식HttpSessionSecurityContextRepository : 요청 간에 HttpSession에 보안 컨텍스트를 저장 / 영속성 유지RequestAttributeSecurityContextRepository : ServletRequest 에 보안 컨텍스트를 저장 / 영속성 유지 xNullSecurityContextRepository :..