😊Spring Security란?
Spring Security란 Spring 기반의 애플리케이션의 보안 (인증과 권한, 인가 등)을 담당하는 스프링 하임 프레임워크.
즉, Spring에서 제공하는 모듈중 하나인 보안 프레임워크인 셈이다.
Spring Security는 스프링 의존성을 없애기 위해 Filter 인터페이스를 기반으로 동작한다.
즉, 기존의 Spring MVCm 비지니스 로직과 완벽하게 분리하여 관리 및 동작할 수 있다.
🔐인증과 인가?
인증(Authentication)은 누구인지 식별하고, 입증하는 과정
ex) 회원가입을 하고 로그인을 하였다
인가(Authorized)는 인증이 완료된 사용자의 권한을 설정하는 과정
ex) 로그인을한 유저가 마이페이지에 접근하려고 한다.
접근 주체(Principal)는 보호된 대상에 접근하는 유저 혹은 시스템
ex)Spring Security 기준으로 유저의 아이디를 기준을 많이 사용한다
역할(Role)에 따라 다른 권한을 부여해야한다.
ex)일반 유저와 관리자 계정의 역할은 다르니 해당 서비스에대한 권한은 달라야 한다.
😀Filter
이 글을 보는 사람들은 어느정도 Security가 어떤 놈인지 전반적인 이해를 하고 왔다고 생각한다.
또한 항상 Filter가 존재하였고, Spring Security는 Filter 인터페이스를 기준으로 실행된다 하였는데, 좀더 이해를 해보자.

1. 서블릿 컨테이너의 Filter는 Dispatch Survlet으로 가기 전에 먼저 적용 된다.
2. Filter들은 여러개가 연결되어 있어 Filter Chain이라고도 불린다.
3. 모든 Request들은 Filter chain을 거쳐야 Survlet에 도착하게 된다.
우리가 흔히 보던 SecurityFilterChain을 이야기하는것 같다.
😀Security의 Filter

Spring Security는 DelegatingFilterProxy라는 필터를 만등러 메인 Filter Chain에 끼워놓고 그 아래 다시 SecurityFIlterChain 그룹을 등록한다.
다음 장에서는 Architecture와 Servlet을 더 자세하게 알아봐도록 해보자.