반응형

프레임워크(Framework)/Spring 55

[Spring Batch] 스프링 배치란 무엇인가? - 개념, 아키텍처, 구성요소

본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으 www.inflearn.com 일괄 처리(또는 배치 처리, Batch processing) Batch Processing(일괄 처리)은 데이터를 실시간으로 처리하는 것이 아닌 일괄적으로 처리하는 작업(Job)을 의미한다. 초기의 Batch Processing은 사..

[Spring Security] 스프링 시큐리티 권한 부여 처리 흐름

스프링 시큐리티의 권한 부여 처리 흐름 애플리케이션 서비스에서 사용자 인증에 성공한 이후에는 인가(권한 부여)가 필요하다. 스프링 시큐리티의 필터 체인을 통해 사용자 인증에 성공한 다음에는 애플리케이션에서 제공하는 리소스에 접근할 수 있도록 권한 부여 작업을 위한 필터 체인을 통과해야 한다. 다음은 사용자 인증이 정상적으로 처리된 이후 리소스에 대한 접근 권한을 부여하는 흐름에 대한 이미지이다. 스프링 시큐리티 필터 체인에서 AuthorizationFilter는 URL을 통해 인증된 사용자의 권한 부여하는 필터이다. (1) AuthorizationFilter는 SecurityContextHolder로부터 Authentication 객체를 획득한다. (2) HttpServletRequest와 획득한 Aut..

[Spring Security] 스프링 시큐리티 인증 처리 흐름

스프링 시큐리티의 인증 처리 흐름 스프링 시큐리티에서는 스프링 시큐리티 필터 체인을 통해 보안을 위한 특정 작업을 처리한다. 다음은 사용자가 로그인 인증을 위한 요청을 할 경우, 스프링 시큐리티에서 해당 인증 요청을 어떻게 처리하는지에 대한 핵심 컴포넌트들의 인증 처리 흐름이다. 1. 사용자가 로그인을 하기 위해 아이디와 패스워드를 포함한 요청(request)을 보낸다. 사용자 로그인 요청이 들어오면 UsernamePasswordAuthenticationFilter가 해당 요청을 전달받는다. 2. UsernamePasswordAuthenticationFilter는 전달받은 Username과 Password를 이용하여 UsernamePasswordAuthenticationToken을 생성한다. Userna..

[Spring Security] 스프링 시큐리티 DelegatingPasswordEncoder - 암호화 알고리즘 변경하기

DelegatingPasswordEncoder DelegatingPasswordEncoder는 스프링 시큐리티에서 지원하는 PasswordEncoder 인터페이스의 구현 객체를 생성해주는 컴포넌트이다. DelegatingPasswordEncoder를 통해 애플리케이션에서 사용할 PasswordEncoder를 결정하고, 사용자가 입력한 패스워드를 단방향으로 암호화한다. DelegatingPasswordEncoder는 스프링 시큐리티 5.0부터 등장했으며, 이전 버전에서는 평문 텍스트(Plain text) 패스워드를 그대로 사용하는 NoOpPasswordEncoder가 PasswordEncoder의 default로 고정되어 있었다. 하지만, NoOpPasswordEncoder를 사용하면서 발생하는 문제를 해..

[Spring Security] 필터와 필터 체인(Filter Chain) 구현하기

필터(Filter) 서블릿 필터(Servlet Filter)는 서블릿 기반 애플리케이션의 엔드포인트에 요청이 도달하기 전에 해당 요청을 가로채어 특정 처리를 할 수 있도록 해주는 Java 컴포넌트이다. 위 이미지는 서블릿 기반 애플리케이션에서 서플릿 필터의 위치를 나타내고 있다. 클라이언트가 요청을 전송하면 서블릿 필터에서 특정 처리를 한다. 필터에서 모든 처리가 완료된 이후 DispatcherServlet에서 핸들러 매핑 작업을 진행한다. 필터 체인(Filter Chain) 필터 체인은 여러 개의 필터가 체인처럼 엮인 것을 말한다. 모든 요청(request)이 필터 체인을 거친 후에 서블릿 서비스에 도달할 수 있도록 한다. 필터와 필터 체인의 특성 서블릿 필터 체인은 요청 URI path를 기반으로 H..

[Spring Security] 스프링 시큐리티의 구조와 흐름

Intro Spring Security를 구현한 코드의 흐름은 잘 드러나지는 않지만 내부적으로는 Spring Security에서 제공하는 컴포넌트들이 애플리케이션 내부에서 User의 인증과 인가(권한 부여)에 대한 처리를 알아서 해준다. 이처럼 내부에서 일어나는 과정들을 구체적으로 이해하지 못한 상태에서는 Spring Security라는 기술을 이해하는 데 있어 한계에 부딪힐 수 있다. Spring Security를 애플리케이션에 적용하는데 어려움을 겪는 가장 큰 이유 중 하나는 Spring Security의 아키텍처(구조)와 Spring Security의 컴포넌트들이 어떻게 인터랙션해서 인증, 권한 등의 보안 작업을 처리하는지 이해하지 못했기 때문이다. Spring Security의 동작 방식을 이해하..

[Spring Security] 스프링 시큐리티란? - 기능, 용어, 사용하는 이유

Intro 먼저, 실제 애플리케이션에서 보안을 고려하지 않은 상태에서 서비스를 하게 되면 여러 문제가 발생할 수 있다. 인증(Authentication) 수단이 없는 경우 사용자가 해당 서비스를 이용하는 사람이 나 자신임을 증명할 방법이 없다. 다른 사람이 얼마든지 나의 정보를 조회할 수 있으며, API 호출 등을 통해 서비스를 이용할 수 있게 된다. 따라서 사용자가 본인임을 증명할 수 있는 인증 수단이 필요하다. ID와 PASSWORD와 같은 인증 정보를 사용해야 함 인가(Authorization) 기능이 없는 경우 사용자 인증 절차를 통과하더라도 모든 리소스에 접근할 수 있는 것은 아니다. 쇼핑몰을 예로 들면 판매자와 고객 등으로 구분할 수 있을 것이다. 판매자의 경우 상품을 등록하는 리소스를 이용할..

[Spring] 스프링의 데이터 접근 기술

데이터 접근 기술 Spring에서는 데이터베이스에 접근하기 위해 다양한 기술들을 사용할 수 있다. Spring에서 사용할 수 있는 대표적인 데이터 액세스 기술 mybatis Spring JDBC Spring Data JDBC JPA Spring Data JPA 또한, 이러한 기술들은 SQL 중심 기술과 객체 중심 기술로 분류할 수 있다. SQL 중심 기술 SQL 중심 기술은 애플리케이션에서 데이터베이스에 접근하기 위해 SQL 쿼리문을 애플리케이션 내부에 직접적으로 작성하는 것이 중심이 되는 기술이다. Mybatis와 Spring JDBC가 대표적인 SQL 중심 기술에 해당한다. Mybatis의 SQL Mapper 예시 SELECT * FROM MEMBER WHERE member_id = #{memberI..

[Spring DB] 스프링 예외 추상화

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '스프링 DB 1편 - 데이터 접근 핵심 원리' 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com 웹 애플리케이션을 개발하면서 데이터 접근 계층에서 발생하는 예외(SQLException, ConnectException)는 많은 문제점들이 있다. 데이터 접근 계층에서 발생하는 예외는 체크 예외 서비스나 컨트롤러는 데이터 접근 계층에서 발생하는 예외를 처리할 수 없다. 따라서 throw..

[Spring DB] 체크 예외와 언체크 예외 총정리 - (2)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '스프링 DB 1편 - 데이터 접근 핵심 원리' 스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의 백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의 www.inflearn.com 체크 예외 vs 언체크 예외 체크 예외 예외를 잡아서 처리하지 않으면 항상 throws에 던지는 예외를 선언해야 한다. 언체크 예외 예외를 잡아서 처리하지 않아도 throws를 생략할 수 있다. 결국 체크 예외와 언체크 예외의 차이는 예외를 잡아서 처리할 수 없을 때 밖으로 던지는 부분..

반응형