좋은 질문이야! Spring Security는 스프링 프레임워크에서 인증(Authentication)과 권한(Authorization)을 처리해주는 보안 프레임워크야. 쉽게 말하면, "누가 로그인했는지 확인하고", "그 사람이 뭘 할 수 있는지 제어하는 시스템"이야.
웹 애플리케이션의 보안을 책임지는 스프링 기반의 프레임워크
| 기능 | 설명 |
|---|---|
| 인증(Authentication) | 사용자가 누구인지 확인 (예: 로그인) |
| 인가(Authorization) | 인증된 사용자가 무엇을 할 수 있는지 결정 (예: 관리자만 글 삭제 가능) |
UsernamePasswordAuthenticationFilter가 아이디/비밀번호 받음AuthenticationManager가 인증 시도UserDetailsService를 통해 사용자 정보를 DB에서 로드SecurityContext에 인증 정보 저장SecurityContext를 참고해 접근 허용 or 거부/admin/** 경로는 관리자만 접근 가능BCryptPasswordEncoder)@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").authenticated()
.anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home")
.and()
.logout()
.logoutSuccessUrl("/");
}
}
| 이유 | 설명 |
|---|---|
| ✅ 신뢰성 | 스프링에서 공식 지원, 검증된 보안 방식 |
| ✅ 유연성 | 필터, 인증 로직을 커스터마이징 가능 |
| ✅ 확장성 | JWT, OAuth2, 소셜 로그인 연동 가능 |
| ✅ 개발 속도 | 복잡한 인증 로직을 빠르게 구현 가능 |
혹시 이걸 더 쉽게, "로그인 시스템 흐름 + 스프링에서 그걸 어떻게 처리하는지" 같이 그림이나 도식으로 보여줄까?
아니면 앞으로 배우게 될 Spring Boot + JWT 연동 흐름도 알려줄 수 있어!
원하는 방향 알려줘 😊