유튜브블로그Top 10
내 프로필

데브허브 안내
소개업데이트 소식

데브허브 커뮤니티

[스프링 부트 기초 강의] 9강. 5.3 스프링 시큐리티(Spring Security)

한빛미디어

2025. 9. 29.

0

#backend
  • 스프링 시큐리티는 인증(Authentication)과 인가(Authorization)를 통해 웹 애플리케이션의 보안을 강화한다. 🛡️
  • 인증은 사용자가 누구인지 확인하는 과정으로, 유저 디테일 서비스(UserDetailsService) 인터페이스를 구현하여 사용자 정보를 조회한다. 🔑
  • 유저 디테일 서비스는 로그인 시 입력받은 사용자 이름(username)을 기반으로 데이터베이스에서 사용자 정보를 로드한다. 💽
  • 로드된 사용자 정보(비밀번호, 권한 등)는 UserDetails 인터페이스를 구현한 객체에 담겨 스프링 시큐리티에 제공된다. 📦
  • 인가는 인증된 사용자에게 특정 리소스에 대한 접근 권한을 부여하는 과정이다. 🔐
  • 스프링 시큐리티 필터 체인(SecurityFilterChain)을 커스터마이즈하여 URL 기반 또는 메서드 기반으로 접근 제어를 설정할 수 있다. ⚙️
  • URL 기반 접근 제어는 특정 URL 패턴에 대해 특정 권한을 가진 사용자만 접근을 허용하도록 설정한다. 🌐
  • 메서드 기반 접근 제어는 컨트롤러 메서드 위에 @PreAuthorize 등의 어노테이션을 사용하여 권한을 설정한다. 💻
  • 스프링 이니셜라이저를 통해 스프링 시큐리티, Spring Data JPA, H2 데이터베이스, 타임리프, 롬복 등의 의존성을 추가하여 프로젝트를 구성한다. ➕
  • 기본적으로 스프링 시큐리티는 모든 URL에 대해 인증을 요구하며, 사용자 이름은 'user', 비밀번호는 로그에 랜덤하게 생성된 값을 사용한다. 🤖
  • 데이터베이스에 저장된 사용자 정보를 사용하여 로그인하도록 인증 모듈을 커스터마이즈할 수 있다. 🧑‍💼
  • 패스워드는 반드시 암호화된 형태로 저장해야 하며, 스프링 시큐리티는 BCryptPasswordEncoder와 같은 패스워드 암호화 클래스를 제공한다. 🔒
  • 시큐리티 필터 체인을 커스터마이즈하여 특정 URL에 대한 접근 권한을 설정하고, 폼 로그인 및 로그아웃 기능을 제공할 수 있다. 🚪

Recommanded Videos