분류 전체보기692 [Spring Security] Authentication 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-authentication Servlet Authentication Architecture :: Spring Security ProviderManager is the most commonly used implementation of AuthenticationManager. ProviderManager delegates to a List of AuthenticationProviders. Each Auth.. BackEnd/Spring Security 2022. 8. 25. [Spring Security] 필터 초기화와 다중 보안 설정 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 1. 필터 초기화와 다중 보안 설정 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 시큐리티에서는 보안 설정을 단일 설정이아닌 여러 개의 설정을 만들어서 동시에 사용을 할 수 있다. 위 그림을 보면 Config 파일이 2개이다. 설정 Config Class 별로 보안기능이 각각 작동한다. 각 Config Class 별로 RequestMatcher를 설정한다. 예를 들면 다음과 같이 말이다. http.antMatcher("/admin/**") 이후 각각의 config 파일 별로 Filter가 생성된다. 위에서 생성된 Filter를 DefaultSecurityFil.. BackEnd/Spring Security 2022. 8. 25. [Spring Security] DelegatingFilterProxy, FilterChainProxy 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 이번 글 부터 당분간 Spring Security의 구조에 대하여 학습하고 정리하도록 하겠다. https://docs.spring.io/spring-security/reference/servlet/architecture.html Architecture :: Spring Security Spring Security’s Servlet support is based on Servlet Filters, so it is helpful to look at the role of Filters generally first. The picture below shows the typical layering of the.. BackEnd/Spring Security 2022. 8. 25. [TIL] 일일 회고 2022/08/24 요즘 한일 1. ATDD 수료 NextStep 의 ATDD 과정을 성공적으로(?) 수료하였다. 수료한 후 소감과, 과정에 대한 간략한 설명을 기록해 두었다. https://blogshine.tistory.com/516 ATDD, 클린 코드 with Spring 5기 후기 어느덧 ATDD과정 또한 수료하게 되었다. 나 같은 경우 미션 4개를 모두 수행하고, 리뷰어와 의견을 잘 나누면서 나름 성공적으로 과정을 수료한 것 같다. 1. 과정 소개 ATDD, Clean Code with Spring 과정은 blogshine.tistory.com 2. 김영한 Spring 고급편 완강 최근 2주정도? 영한님의 고급편 강의를 듣고, 정리하고, 복습하면서 AOP와 친해지는 시간을 가지게 되었다. 내용이 재미있다보니 시간.. Life/회고록 2022. 8. 24. [Spring] @Profile과 @ActiveProfiles 를 통한 활성 프로파일(Profile)의 관리 개발을 진행하다보면 환경설정 파일들을 분리하거나, 가져와야하는 경우가 많다. 이에 대하여 알아보자. 우선 활성프로필에 대하여 잠시 알아봅시다. ▶ 활성 프로파일 활성 프로파일이란 스프링 컨테이너를 실행할 때 실행 환경을 지정해주는 속성으로, 환경을 구분하기 위해 사용된다. 프로파일은 JVM의 옵션으로도 설정을 할 수 있고, 스프링에서도 설정을 할 수 있다. JVM 옵션으로 프로파일을 설정하기 위해서는 다음처럼 옵션을 지정해줄 수 있다. -Dspring.profiles.active=dev 우리에게 주어진 활성 프로필이 test, prod, dev 과 같이 3개의 환경이 있다고 생각해보자. 1. @Profile 을 통한 특정 Profile에 활성화 시키기 예를 들어 특정 운영 환경, dev 에서만 사용하기를.. BackEnd/Spring 2022. 8. 23. [Spring] 스프링 AOP - 실전 예제 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 예제 만들기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 시간에는 예제 준비코드를 작성해보자. ▶ ExamRepository @Repository public class ExamRepository { private static int seq = 0; /** * 5번에 한번 실패하는 요청 */ public String save(String itemId) { seq++; if (seq % 5 == 0) { throw new IllegalStateException("예외 발생"); } return "ok"; } } ▶ ExamService @Ser.. BackEnd/Spring 2022. 8. 20. [Spring] 스프링 AOP - 포인트컷 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. @target, @within " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 정의 @target : 실행 객체의 클래스에 주어진 타입의 애노테이션이 있다면 조인 포인트로 인식 @within : 주어진 애노테이션이 있는 타입 내 조인 포인트 다음과 같이 사용한다. @target(hello.aop.member.annotation.ClassAop) @within(hello.aop.member.annotation.ClassAop) 타겟 class에 붙어있는 @ClassAop 애너테이션으로 조인 포인트를 판별한다. @ClassAop class Target{}.. BackEnd/Spring 2022. 8. 20. [Spring] 스프링 AOP - 포인트컷 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 애스펙트J는 포인트컷을 편리하게 표현하기 위한 특별한 표현식을 제공한다. @Pointcut("execution(* hello.aop.order..*(..))") 포인트컷 표현식은 AspectJ pointcut expression 즉 애스펙트J가 제공하는 포인트컷 표현식을 줄여서 말하는 것이다. ▶ 포인트컷 지시자 포인트컷 표현식은 execution 같은 포인트컷 지시자(Pointcut Designator)로 시작한다. 줄여서 PCD라 한다. 1. execution - 1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 execution의 문법은 다음과 같다.. BackEnd/Spring 2022. 8. 19. [Spring] 스프링 AOP 구현 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 AOP 구현1 - 시작 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 시간에는 @Aspect 를 사용해서 가장 단순한 AOP를 구현해보자. ▶ AspectV1 @Slf4j @Aspect public class AspectV1 { @Around("execution(* hello.aop.order..*(..))") public Object doLog(ProceedingJoinPoint joinPoint) throws Throwable { log.info("[log] {}", joinPoint.getSignature()); //join poi.. BackEnd/Spring 2022. 8. 18. [백준][C++] 2410번: 2의 멱수의 합 <240> 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. 1. 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 문제는 동전1 문제와 매우 유사한 문제입니다. 우선 DP[i] : i를 2의 멱수로 표편하는 방식의 수 라고 정의합시다. DP[i]를 구하는 방법은 DP[i-1] + DP[i-2] + DP[i-4] + DP[i-8] + ... + DP[0] 로 구할수 있습니다. 예를 들어 문제의 예시인 7을 구한다 생각해봅시다. 2^0(1) 일때의 모든 DP 배열을 채우면 다음과 같다 1로만 각 수를 만들수 있는 경우는 전부 1가지 이다. i = 1 2 3 4 5 6 7 DP[i] 1 1 1 1 1 1 1 2^1(2) 일때의 모든.. Algorithm/백준 2022. 8. 18. [Spring] 스프링 AOP 개념 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. AOP 소개 - 핵심 기능과 부가 기능 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 1) 핵심 기능 해당 객체가 제공하는 고유의 기능이다. 예를 들어서 OrderService 의 핵심 기능은 주문 로직이다. 2) 부가 기능 핵심 기능을 보조하기 위해 제공되는 기능이다. 예를 들어서 로그 추적 로직, 트랜잭션 기능이 있다. 이러한 부가 기능은 단독으로 사용되지 않고, 핵심 기능과 함께 사용된다. 주문 로직을 실행하기 직전에 로그 추적 기능을 사용해야 하면, 핵심 기능인 주문 로직과 .. BackEnd/Spring 2022. 8. 17. [Spring] @Aspect AOP 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. @Aspect 프록시 - 적용 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링은 @Aspect 애노테이션으로 매우 편리하게 포인트컷과 어드바이스로 구성되어 있는 어드바이저 생성 기능을 지원한다. ▶ 참고 @Aspect 는 관점 지향 프로그래밍(AOP)을 가능하게 하는 AspectJ 프로젝트에서 제공하는 애노테이션이다. 스프링은 이것을 차용해서 프록시를 통한 AOP를 가능하게 한다. AOP와 AspectJ 관련된 자세한 내용은 다음에 설명한다. 지금은 프록시에 초점을 맞추자. 우선 이 애노테이션을 사용해서 스프링이 편리하게 프록시를 만들어준다고 .. BackEnd/Spring 2022. 8. 16. 이전 1 ··· 12 13 14 15 16 17 18 ··· 58 다음