Inflearn brand logo image
Inflearn brand logo image
BEST

스프링 시큐리티 완전 정복 [6.x 개정판]

스프링 시큐리티 6.x 최신 버전으로 제작된 개정판 강의로 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 인가와 관련된 핵심적인 기술들을 익히게 됩니다.

초급자를 위해 준비한
[백엔드, 웹 개발] 강의입니다.

이런 걸 배울 수 있어요

  • 스프링 시큐리티의 기본 API 와 관련 Filter 완전 정복

  • 스프링 시큐리티의 내부 아키텍처와 객체들간의 역할 및 관계흐름들 이해

  • 스프링 시큐리티의 인증원리와 내부 동작방식 이해

  • 스프링 시큐리티의 인가원리와 내부 동작방식 이해

  • 스프링 시큐리티와 스프링 MVC 를 연계하는 방식 이해

  • 스프링 시큐리티를 활용해 실무적 수준의 보안 시스템 구축 노하우 학습

스프링 시큐리티 6.x 최신 버전 완전 개정판!!

스프링 시큐리티 6.x 는 이전 버전들과 비교했을 때 상당한 변화와 개선을 보여주고 있으며, 이번 강좌는 바로 그 변화된 부분과 새롭게 추가된 기능에 초점을 맞추고 있습니다.

이에 따라 커리큘럼 항목도 기존 스프링 시큐리티 강좌 대비 변경되거나 새롭게 추가된 항목이 많아졌습니다.특히 스프링 시큐리티의 인가 영역은 이전 버전과 비교했을 때 전체 뼈대가 바뀌었을 정도로 큰 변화가 있었습니다.
그래서 이번 스프링 시큐리티 완전정복 강좌는 스프링 시큐리티 6.x 버전의 주요 변경 사항과 새로운 기능들을 상세히 분석하고 파헤침으로써 수강생 여러분들이 본 강좌의 이론과 실습을 통해 각 기능과 API 를 확실하게 익힌다면 기존 버전에서의 개발 경험이 있는 분들은 물론, 스프링 시큐리티를 처음 접하는 분들 모두 실무 환경에서 스프링 시큐리티를 활용한 어플리케이션을 개발하는데 큰 도움이 될 것입니다


입문자, 초·중·고급자 모두를 위한 강의

본 강좌는 스프링 시큐리티를 처음 접하는 입문자부터 기초적인 지식이나 사용 경험은 있지만 좀 더 깊이 있는 지식 습득과 스프링 시큐리티의 핵심 원리, 내부 구조, 동작 방식 등을 심도 있게 이해하고 이를 응용하고자 하는 중·고급자를 위해 제작하였습니다.

주요 학습 내용 💡

본 강의는 스프링 시큐리티를 위한 핵심 주제로 크게 인증, 인가, 악용보호, 통합, 실전프로젝트 의 다섯 가지 축을 중심으로 수업을 진행합니다.

1. 인증 (Authentication)

스프링 시큐리티 6.x는 사용자 인증을 위해 폼 기반 인증, 기본 인증, 기억하기 인증 등 다양한 방법을 제공합니다. 이러한 인증 방식은 사용자가 시스템에 자신의 신원을 증명할 수 있는 효과적인 수단을 마련해 줍니다. 인증 과정은 사용자가 제공한 자격 증명을 검증하여 사용자의 신원을 확인하는 것으로, 이는 AuthenticationManager를 중심으로 이루어집니다. 성공적인 인증 후, 사용자의 인증 정보는 SecurityContextHolder 내의 SecurityContext에 저장되며, 이는 애플리케이션 전반에서 사용자의 인증 상태를 참조하는 데 사용됩니다. 스프링 시큐리티는 또한 세션 관리를 통해 사용자의 세션 정보를 관리하며, 동시 세션 제어, 세션 정책 설정, 세션 만료 및 세션 고정 보호 등의 기능을 제공하여 사용자의 세션을 안전하게 보호합니다. 인증 과정에서 발생할 수 있는 다양한 예외 상황들도 적절히 처리할 수 있도록 설계되어 있습니다.


2. 인가 (Authorization)

스프링 시큐리티의 인가 과정은 사용자가 인증을 마친 후 특정 자원에 대한 접근 권한이 있는지를 결정합니다. 스프링 시큐리티 6.x에서는 HttpSecurity를 사용하여 URL 기반 또는 메소드 기반 인가 처리를 구성할 수 있으며, AuthorizationManager를 포함한 새로운 인가 아키텍처를 통해 보다 세밀하고 유연한 인가 정책을 구현할 수 있습니다. 이는 개발자가 애플리케이션의 보안 요구 사항에 맞게 접근 제어 정책을 정의할 수 있게 하며, 사용자의 요청에 대해 권한을 평가하여 자원 접근을 허용하거나 거부할 수 있습니다. 인가 처리는 애플리케이션의 보안을 강화하는 데 중요한 역할을 하며, 민감한 정보와 자원을 보호하는 데 핵심적입니다.

3. 악용보호 (Protection Against Exploits)

스프링 시큐리티 6.x는 애플리케이션을 다양한 보안 위협으로부터 보호하기 위해 CORS, CSRF 보호, 그리고 SameSite 쿠키 설정과 같은 기능을 제공합니다. 이러한 보안 기능은 애플리케이션을 크로스 사이트 스크립팅, 크로스 사이트 요청 위조 공격으로부터 보호하며, 사용자의 데이터와 세션을 안전하게 유지합니다. CORS 설정을 통해 개발자는 다른 도메인의 리소스에 안전하게 접근할 수 있도록 할 수 있으며, CSRF 보호 기능은 악의적인 웹사이트가 사용자를 대신하여 요청을 보내는 것을 방지합니다. SameSite 쿠키 속성을 설정함으로써, 브라우저가 쿠키를 전송하는 방식을 제어하여 추가적인 보안 계층을 제공합니다.

4. 통합 (Integrations)

스프링 시큐리티 6.x 버전은 서블릿 환경, 스프링 MVC, 그리고 스프링 MVC 비동기 처리와의 긴밀한 통합을 제공합니다. 이러한 통합을 통해, 개발자는 스프링 기반의 애플리케이션에 보안 기능을 손쉽게 추가하고 구성할 수 있습니다. 서블릿 통합을 통해 스프링 시큐리티는 HTTP 요청과 응답에 대한 보안 처리를 관리하며, 스프링 MVC 통합은 컨트롤러와 서비스 레이어에서의 세밀한 보안 정책을 가능하게 합니다. 비동기 처리와의 통합은 스프링 웹플럭스(Spring WebFlux)를 사용하는 반응형 프로그래밍 모델에서의 보안 요구사항을 충족시키며, 이는 개발자가 비동기 및 스트림 기반의 애플리케이션을 구축할 때 보안을 효과적으로 관리할 수 있도록 합니다. 이러한 통합 기능은 스프링 시큐리티를 다양한 스프링 애플리케이션 아키텍처와 원활하게 연동시키며, 보안 구현의 복잡성을 줄여줍니다.

5. 실전프로젝트 (Practical Projects)

스프링 시큐리티 6.x 버전은 실전 프로젝트에서의 회원 인증 시스템, 회원 관리 시스템 구현에 있어 핵심적인 역할을 합니다. 이를 통해 개발자는 사용자 인증, 권한 관리, 자원 접근 제어 등의 기능을 효과적으로 구현할 수 있습니다. 회원 인증 시스템은 애플리케이션의 보안을 강화하는 기반을 제공하며, 회원 관리 시스템은 사용자 정보의 안전한 저장, 조회, 수정, 삭제 등을 관리합니다. 권한 관리를 통해 사용자별로 다른 접근 권한을 할당하고, 자원 관리는 애플리케이션 내의 민감한 정보와 기능에 대한 접근을 제어합니다. 또한, 스프링 시큐리티는 Map 및 데이터베이스를 이용한 동적 인가 설정을 지원하여, 실행 시간에 권한을 변경하거나 업데이트할 수 있는 유연성을 제공합니다. 이러한 실전 프로젝트에서의 구현은 스프링 시큐리티의 강력한 기능과 유연성을 보여주며, 개발자가 보안 요구사항을 충족시키는 데 필수적인 도구입니다.

회원 인증 시스템

회원 관리 시스템

강의 구성 및 상세 커리큘럼 🏃

섹션 1. 초기화 과정 이해

  • 스프링 시큐리티가 기동하며서 발생하는 초기화 과정을 깊이 있게 다룹니다.

  • 스프링 시큐리티 초기화 시 설정되는 빈, 전체 구조와 흐름, 필터 체인 구성 등을 포함하여, 스프링 시큐리티가 어떻게 작동 준비를 하는지 세밀하게 설명합니다. 이 과정을 이해함으로써, 개발자는 스프링 시큐리티의 기본 작동 원리를 파악하고, 필요한 보안 설정을 효과적으로 적용할 수 있게 됩니다

섹션 2. 인증 프로세스

  • 다양한 사용자 인증 방식을 학습합니다

  • 폼 기반 인증, 기본 인증(Basic Authentication), "기억하기(remember-me)" 인증 등 다양한 인증 메커니즘을 상세히 소개하고, 어플리케이션의 요구사항에 가장 적합한 인증 방식을 선택하고 구현하는 방법을 배웁니다.

섹션 3. 인증 아키텍처

  • 이 섹션은 스프링 시큐리티의 인증 처리 구조와 원리에 초점을 맞춥니다.

  • 인증 과정에서의 객체 간 관계, 인증 매니저, 인증 프로바이더 등 핵심 컴포넌트의 역할과 상호 작용을 자세히 설명합니다. 이해를 돕기 위해 다양한 인증 플로우와 사용 사례를 통해 인증 아키텍처를 실제로 어떻게 적용할 수 있는지 보여줍니다

섹션 4. 인증 상태 영속성

  • 이 단원에서는 인증 상태의 저장, 참조 및 삭제와 같은 영속성 관리 방법을 다룹니다.

  • 이전 버전에 비해 더욱 효율성 있는 인증 상태의 영속성을 어떻게 설정하고 구현하는지 자세하게 학습합니다.

섹션 5. 세션 관리

  • 이 섹션에서는 세션 정보의 생성, 유지, 만료 및 삭제와 같은 세션 라이프사이클 관리를 포함하여, 동시 세션 제어, 세션 고정 보호, 세션 정책 설정 등을 상세히 설명합니다.

섹션 6. 예외 처리

  • 인증과 인가 과정에서 발생할 수 있는 다양한 예외 상황을 어떻게 처리할지에 대한 방법론을 제시합니다. 보안 관련 예외 처리의 중요성을 강조하며, 사용자에게 친절한 에러 메시지를 제공하고, 시스템의 보안을 유지하기 위한 예외 처리 전략을 학습합니다.

섹션 7. 악용 보호

  • 웹 애플리케이션은 다양한 보안 위협에 노출되어 있습니다. CORS(Cross-Origin Resource Sharing), CSRF(Cross-Site Request Forgery), SameSite 쿠키 속성 등의 보안 메커니즘을 통해 이러한 위협으로부터 어플리케이션을 보호하는 방법을 배웁니다.

섹션 8. 인가 프로세스

  • 인가는 애플리케이션 내에서 사용자가 수행할 수 있는 작업을 결정합니다.

  • URL 기반 인가, 메소드 수준 인가 등 다양한 인가 처리 방법을 소개하고, 각각의 적용 방법과 보안 고려사항을 설명합니다. 이를 통해 개발자는 애플리케이션의 보안 요구 사항에 맞는 적절한 인가 정책을 설계하고 구현할 수 있습니다

섹션 9. 인가 아키텍처

  • 인가 처리의 내부 구조와 원리를 깊이 있게 다룹니다.

  • 인가 매니저, 인가 결정자 등 핵심 컴포넌트와 이들 간의 관계를 분석하며, 인가 아키텍처를 통해 복잡한 보안 요구 사항을 해결하는 방법을 소개합니다.

.섹션 10. 이벤트 처리

  • 스프링 시큐리티는 인증과 인가 과정에서 발생하는 이벤트를 처리할 수 있는 메커니즘을 제공합니다.

  • 인증 이벤트, 인가 이벤트의 처리 방법을 배우며, 어떤 상황에서 이벤트를 발생시키고 수신하는지에 대한 방법들을 학습합니다.

섹션 11. 통합하기

  • 스프링 시큐리티는 스프링 에코시스템과 긴밀하게 통합됩니다.

  • 서블릿 API, 스프링 MVC와의 통합 방법을 상세히 설명하며, 스프링 애플리케이션에 스프링 시큐리티를 효과적으로 통합하는 방법을 다룹니다.

섹션 12: 고급 설정

  • 다중 보안 설정, 이중화 설정, 시큐리티 DSLs 를 어떻게 구현할 수 있는지에 대해 학습합니다.

섹션 13: 실전 프로젝트

  • 이 단원은 이론에서 실제로 넘어가, 회원 인증 시스템 및 회원 관리 시스템 구현을 통해 스프링 시큐리티의 전반적인 적용 방법을 학습합니다.

스프링 시큐리티 로드맵

  • 스프링 시큐리티 완정정복 + 스프링 시큐리티 OAuth2

이 강의를 만든 
지식공유자를 소개합니다.

정수원(leaven)

  • 현직 자바 개발자

  • SI/SM/솔루션/Mobile/Front&Back-end 의 다양한 프로젝트 경험

  • Architect/PM/PL 로서 역할 수행

  • Github


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 스프링 시큐리티의 기본 개념을 확실하게 이해하고 싶은 분

  • 스프링 시큐리티의 기본 기능을 넘어 자유롭게 기능을 확장하고 커스트마이징 하고자 하는분

  • 스프링 시큐리티를 활용해 실무적 수준의 인증 및 권한 제어 시스템을 구현하고자 하는 분

  • 스프링 시큐리티 입문자부터 중고급자까지 활용할 수 있는 내용으로 구성

선수 지식,
필요할까요?

  • Java

  • Spring Boot

  • Spring MVC

  • Spring JPA

  • RDBMS

안녕하세요
정수원입니다.

9,512

수강생

292

수강평

1,202

답변

4.9

강의 평점

5

강의

다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.

공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.

다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.

 

더보기

커리큘럼

전체

103개 ∙ (36시간 55분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

58개

4.9

58개의 수강평

  • rocket70001님의 프로필 이미지
    rocket70001

    수강평 2

    평균 평점 5.0

    5

    75% 수강 후 작성

    프로젝트를 진행 중인데 보안, 인증/인가에서 많이 헤맸습니다. 다른 곳에서 무료 강의(스프링 시큐리티 5.x ) 클론 코딩으로 대략적인 흐름을 배우고 이후에 블로그에 있는 소스 코드들을 제 프로젝트에 맞게 수정하는 식으로 코딩했는데 그런 방식으로는 부족하다는 생각이 들었습니다. 기존의 책이나 강의들은 대부분 스프링 시큐리티 5.x 버전을 기반으로 하고 있어 6.x와 다른 부분이 많았습니다. 특히 보안 설정 부분에서 5.x은 단순 메서드를 사용하는데 6.x부터는 람다식이 필수이다 보니 하면서도 이게 맞나 싶어 일일이 구글링을 해야 하는 번거로움이 있었습니다. 구글링과 스프링 시큐리티 인 액션 2판, GPT4로 프로젝트에 JWT, OAuth2를 적용해 서버가 동작하기는 했지만 제대로 이해하지 못한 상태로 인증/인가를 적용한다는 점이 많이 찜찜해 강의를 듣게 됐습니다. 스프링 시큐리티 인 액션 2판이랑 겹치는 부분이 많으면 어쩌나 싶었는데 책에서 다루지 못한 세세한 부분을 자세하게 짚어주셔서 애매했던 개념들을 확실히 할 수 있었습니다. 처음 공부하시는 분들은 5.x 버전 + ChatGPT4 or 4o(학습 데이터가 대부분 5.x 버전이라서 deprecated된 코드를 많이 제시합니다) + 구글링으로 헤매지 마시고 그냥 이 강의 들으시는 걸 추천합니다😭 + 스프링 시큐리티가 완전 처음이시라면 Manning사에서 파는 Spring Security in Action 2nd(6.x 버전 이상) + 공식 문서도 추천. 5.x 버전 공부는 비추합니다.

    • 싸누바님의 프로필 이미지
      싸누바

      수강평 2

      평균 평점 4.5

      4

      37% 수강 후 작성

      정말 자세하게 설명해주시고, 원리부터 꼼꼼하게 설명해주십니다. 다만.. 발음이 많이 아쉽습니다. 게다가 사투리까지 있으셔서, 못알아 들은 경우가 너무나도 많습니다. 다른 강의에 비해서 많이 힘드네요.. 좋은 강의 감사합니다.

      • 정민교님의 프로필 이미지
        정민교

        수강평 17

        평균 평점 4.7

        4

        76% 수강 후 작성

        대충 필요하다고 생각되는 것만 일단 들었습니다. 강의 분량이 굉장히 많지만 세 번 정도 돌려보시는 거 추천드립니다. 처음엔 뭔 소린지 이해도 안되는데 이걸 계속 듣고 있어야 하나 싶었는데, 두 번째 들을 때는 아 대충 무슨 느낌인지 감이 왔습니다. 한 번 더 들으면 어지간한건 이해가 될 것 같네요. 저는 두 번 돌려봤으니 한 번 더 들을 겁니다. 발음이 배속으로 조금 듣기 어렵고 커뮤니티 질문 피드백이 좀 느린 것 같아서 좀 아쉽습니다... 그 외에는 스프링 시큐리티는 이걸로 공부해도 어지간한 거는 다 배우는 것 같습니다. 추천쓰!

        • 땃쥐님의 프로필 이미지
          땃쥐

          수강평 16

          평균 평점 5.0

          5

          40% 수강 후 작성

          강의 시간이 36시간 55분이나 되다보니 처음 강의를 볼 때는 기겁하게 됩니다. 저도 이 부분에서 처음 학습할 때는 거부감이 들었습니다... 하지만 이 강의의 진가는 디버거를 통해 내부 동작 원리를 상세하게 설명해주시는 부분입니다. 강의 내에서 디버거를 통해 세부적인 동작 원리를 상세하게 파헤치는 것을 따라하면서 스스로 디버거를 사용하는 법을 익혀나가게 되고 개발역량 향상에 큰 도움이 되었습니다. 스프링 입문 단계(core, web, jpa, boot 학습, ..)를 거친 단계에서 이 강의를 따라하면서 디버거를 통해 내부 자동 설정 및 동작 흐름을 익혀가시면 시큐리티에 대한 이해도가 빠르게 성장하는 것을 느끼실 수 있습니다. 그리고 현재 기준으로 놓고보면 시큐리티 관련 자료들이 대부분 deprecated 되거나 사용되지 않는 것들을 기준으로 된 자료들이 많은데 이 강의는 6버전 및 그 이후를 염두해두고 강의가 만들어져있습니다. 이렇게 깊이 있게 시큐리티, 더 나아가서 특정 기술을 설명하는 강의, 자료를 찾아보기 힘듭니다. 정말 강력 추천하는 강의입니다.

          • 정수원
            지식공유자

            먼저 소중한 평가에 진심 감사드립니다^^ 저의 모든 강의 대부분이 꽤 긴 시간으로 제작이 되어 아마 땃쥐님처럼 학습하시기 전부터 많은 부담감을 가지고 있을거라 생각합니다 실제로 그렇기도 하구요 하지만 저 개인적으로는 강의 시간의 장단을 떠나 어떤 형태로든 수강생분들에게 가장 최적의 지식을 전달해야 한다는 철칙같은 기준과 원칙이 확고하기 때문에 비록 강의영상의 외적 모습이 잘 정제되고 고도화된 상품성은 가지지 못하더라도 내적 내용인 지식전달의 품질만큼은 결코 타협하거나 양보하지 않겠다는 의지가 강하다 보니 영상 시간이 예상보다 항상 늘어나게 되더군요!! 물론 적절하게 조절이 필요함을 항상 인지하고는 있습니다^^ 시간이 긴 만큼 어려운 부분은 반복해서 따라가시면 더욱 탄탄한 내공을 가지게 되실거라 생각합니다 그리고 디버깅의 매력을 느껴셨다니 제가 더 감사하네요^^ 실무에서도 잘 활용하시면 엄청난 도움이 되니 계속 습관처럼 발전시켜 나가시길 바랍니다 다시 한번 정성스런 평가 적어주셔서 감사드립니다

        • smathj님의 프로필 이미지
          smathj

          수강평 23

          평균 평점 5.0

          5

          100% 수강 후 작성

          드디어 완강했습니다.!!! 우선 지난 버전 강의도 좋게 봤습니다 이번 시큐리티 6버전이 지난 5버전 보다 더 맘에들구요 ! 강사님께서 새로운 버전에 대한 대단히 많은 분석을 하시고 강의를 만드셨다는걸 강의를 수강할수록 알게됩니다 다른 사람에게도 도움될까 몇가지 특징을 적어봅니다. 1. 필터 초기화 파트를 제잎 앞에 배치 초기화 과정도 제일 앞서 배치된것도 정말 만족합니다 2. 이론 파트, 실습 파트 분리 강의가 각 파트별로 나눠져있어서 20~30분 내외로 보기 편했습니다 3. 각 파트별 브랜치 관리 각 파트별로 브랜치가 나눠어져 있어서 수강하는데 매우 유용합니다 4. 강의력 강의력은 두말할것없구요, 제가 본 시큐리티 강의나 교재중에 정말 빛과소금같은 강의입니다 라이브러리만 추가하고 서버만 켜도 많은 일이 일어나는걸... 단순히 기능 사용하고 끝나는 강의가 아니라서 좋습니다 그외에도 Spring 다양한 기술에 대한 인사이트를 키울 수 있습니다 바라는점... OAuth2도 신규 강의로 내주실수 있나요 !!!

          • 정수원
            지식공유자

            소중한 평가 너무 감사합니다 긴 시간 완강 하신것도 축하 드립니다^^ 저의 강의를 뛰어넘어 smathj 님 만의 체계를 만들어 가시길 응원하겠습니다. 공부에 있어 그 어떤 것도 즐거움을 이길 수는 없습니다. smathj 의 평가에 그런 즐거움이 묻어나는 것 같아 저도 흐뭇합니다. OAuth2 는 계속 모니터링 하고 있습니다. 정확한 시기는 모르겠지만 꼭 필요한 시점에 더 업그레이드 된 내용으로 만날 수 있기를 저도 바래 봅니다 감사합니다.~~

        정수원님의 다른 강의

        지식공유자님의 다른 강의를 만나보세요!

        비슷한 강의

        같은 분야의 다른 강의를 만나보세요!

        연관 로드맵

        강의가 포함된 로드맵으로 학습해 보세요!

        월 ₩15,840

        5개월 할부 시

        20%

        ₩99,000

        ₩79,200