Spring&SpringBoot
-
스프링 퀵 스타트 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 :..
-
스프링 퀵 스타트 02Spring&SpringBoot 2025. 9. 17. 17:10
CLASS05. 어노테이션 기반 설정5.1.3 @Component 설정을 했으면 스프링 설정 파일에 클래스들을 으로 등록할 필요가 없다클래스 선언 부분에 @Component 설정해 줌으로써 스프링 컨테이너는 해당 클래스를 bean으로 생성하고 관리한다 5.2.1. 의존성 주입 어노테이션@Autowired : 주로 변수 위에 설정하여 해당 타입의 객체를 찾아서 자동으로 할당@Qualifier : 특정 객체 이름을 이용해 의존성 주입@Resources : @Autowired 같은 기능 제공@Inject : @Autowired, @Qualifier 기능을 결합한 어노테이션 5.2.3. @Qualifier의존성 주입 대상이 되는 Speaker 타입의 객체가 두 개 이상일 때 발생한다만약 SonySpeaker..
-
SpringSecurity 02Spring&SpringBoot/SpringSecurity 2025. 9. 16. 15:51
Ahthenticaion SecurityContext / SecurityContextHoldersecurityContextAuthentication 저장 : 현재 인증된 사용자의 Authentication 객체 저장ThreadLocal 저장애플리케이션 전반에 걸친 접근성 SecurityContextHolderSecurityContext 저장 : 현재 인증된 사용자의 Authentication 객체를 담고 있는 SecurityContext 객체 저장SecurityContextHolderStragey 인터페이스 사용하여 다양한 전략 패턴 사용기본 전략 : MODE_THREADLOCAL전략모드 직접 지정 : SecurityContextHolder.setStrategyName(String) Secur..
-
스프링 퀵 스타트 01Spring&SpringBoot 2025. 9. 16. 14:02
DAY01CLASS02. 프레임워크 개요2.2.2 스프링 프레임워크 특징1. 경량(lightweight)- 크기 측면에서 가볍기 때문이다 (하나 이상의 JAR 파일로 이루어진 여러 개의 모듈로 구성)- POJO 형태의 객체 (클래스를 구현하는데 특별한 규칙이 없는 단순하고 가벼운 객체) 를 관리하기 때문이다 2. 제어의 역행(IoC)- 객체 생성을 자바 코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리- 객체 사이의 의존관계 역시 컨테이너가 처리- 즉, 소스 의존관계가 명시되지 않으므로 결합도가 떨어져 유지보수가 편리해진다3. 관점지향 프로그래밍(AOP)- 공통으로 사용하는 기능들을 외부의 독립된 클래스로 분리하고 해당 기능을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리- 응집도 높은 비즈니..
-
SpringSecurity 01Spring&SpringBoot/SpringSecurity 2025. 9. 15. 17:12
SecurityFilterChain 타입 빈을 정의한 후 인증 API 및 인가 API 설정인증 API : 사용자나 시스템이 자신을 증명하는 과정"너 누구야?"ID+비밀번호, 토큰(JWT, OAuth2 Access Token) 등인가 API : 인증된 사용자가 요청한 리소스나 기능에 접근 권한이 있는지 검사"너 뭐 할 수 있어?"권한(ROLE), 정책에 따라 접근 허용/거부 @RestControllerpublic class IndexController { @GetMapping("/") public String index() { return "index"; }}@EnableWebSecurity@Configurationpublic class SecurityConfig { @..
-
[스프링MVC - 2편] 로그인 처리1 - 쿠키, 세션Spring&SpringBoot 2025. 3. 4. 20:30
패키지 구조 설계package 구조hello.logindomainitemmemberloginwebitemmemberlogin도메인이 가장 중요하다도메인 = 화면, UI, 기술 인프라 등등의 영역은 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역을 말한다 향후 web을 다른 기술로 바꾸어도 도메인은 그대로 유지할 수 있어야 한다이렇게 하려면 web은 domain을 알고있지만 domain은 web을 모르도록 설계해야 한다이것을 web은 domain을 의존하지만, domain은 web을 의존하지 않는다고 표현한다 홈 화면HomeController - home() 수정@GetMapping("/")public String home() { return "home";} - templates/home.html..