강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

백엔드

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

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

(4.9) 수강평 78개

수강생 2,200명

  • 정수원
백엔드개발자
스프링시큐리티
개정판
업데이트
SpringSpring BootSpring Securitysecurityweb-security

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • 스프링 시큐리티의 기본 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

안녕하세요
입니다.

10,043

수강생

350

수강평

1,211

답변

4.9

강의 평점

5

강의

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

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

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

 

커리큘럼

전체

103개 ∙ (36시간 55분)

해당 강의에서 제공:

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

수강평

전체

78개

4.9

78개의 수강평

  • rocket700015862님의 프로필 이미지
    rocket700015862

    수강평 2

    평균 평점 5.0

    5

    75% 수강 후 작성

    I was working on a project and had a lot of trouble with security and authentication/authorization. I learned the general flow by cloning the free lecture (Spring Security 5.x) from another place and then modified the source codes in the blog to fit my project, but I felt that it was not enough. Most of the existing books and lectures were based on Spring Security 5.x version, so there were many differences from 6.x. In particular, in the security setting part, 5.x uses a simple method, but from 6.x, lambda expressions are required, so I had to googling every single thing while wondering if it was right. I applied JWT and OAuth2 to the project with Googling and Spring Security in Action 2nd Edition and GPT4, and the server worked, but I was very uneasy about applying authentication/authorization without properly understanding it, so I decided to take the lecture. I was worried that there would be a lot of overlap with Spring Security in Action 2nd Edition, but the detailed parts that were not covered in the book were covered in detail, so I was able to clearly understand the concepts that were ambiguous. For those who are learning for the first time, I recommend 5.x version + ChatGPT4 or 4o (since most of the learning data is 5.x version, it presents a lot of deprecated code) + don't waste time Googling and just listen to this lecture😭 + If you are completely new to Spring Security, I recommend Spring Security in Action 2nd (6.x version or higher) sold by Manning + official documentation. I do not recommend studying 5.x version.

    • pinako님의 프로필 이미지
      pinako

      수강평 2

      평균 평점 4.5

      4

      37% 수강 후 작성

      He explains it in great detail, and explains the principles thoroughly. However... his pronunciation is very disappointing. On top of that, he speaks in a dialect, so there are many times when I couldn't understand. It's much harder than other lectures.. Thank you for the great lecture.

      • alsry922님의 프로필 이미지
        alsry922

        수강평 17

        평균 평점 4.7

        4

        76% 수강 후 작성

        I just listened to what I thought was necessary. The lecture is very long, but I recommend that you watch it three times. At first, I didn't understand what was being said, and I wondered if I should keep listening to it, but the second time, I got a general idea of what it was. I think I'll understand most of it if I listen to it one more time. I've watched it twice, so I'll listen to it one more time. The pronunciation is a bit hard to listen to at double speed, and the feedback from community questions seems a bit slow, so it's a bit disappointing... Aside from that, I think you'll learn most of what you need to know about Spring Security if you study it with this. I recommend it!

        • smathj9975님의 프로필 이미지
          smathj9975

          수강평 34

          평균 평점 5.0

          5

          100% 수강 후 작성

          Finally, I'm done!!! First of all, I liked the previous version of the lecture. I like this Security 6 version more than the previous 5 version! The more I take the lecture, the more I realize that the instructor has done a lot of analysis on the new version and created the lecture. I'll write down some features that might be helpful to others. 1. Place the filter initialization part in front of the leaf I am also really satisfied with the fact that the initialization process is placed at the very front 2. Separation of theory and practice parts The lecture is divided into each part, so it is easy to watch in about 20~30 minutes 3. Branch management for each part The branches are divided into each part, so it is very useful for taking the class 4. Teaching ability There is no need to say anything about the teaching ability, and among the security lectures or textbooks I have seen, This is a lecture that is really like light and salt Just adding a library and turning on the server, a lot of things happen... It is good because it is not a lecture that simply uses functions and ends In addition, you can develop insight into various Spring technologies What I hope for... Can you also give a new lecture on OAuth2!!!

          • leaven
            지식공유자

            Thank you so much for your valuable evaluation. Congratulations on completing the course for a long time^^ I will cheer for smathj to create his own system that goes beyond my lecture. Nothing can beat the fun in studying. I am also happy that smathj's evaluation is filled with such fun. We are continuously monitoring OAuth2. I don't know the exact time, but I hope to meet you with more upgraded content at the necessary time. Thank you.~~

        • ttasjwi님의 프로필 이미지
          ttasjwi

          수강평 16

          평균 평점 5.0

          5

          40% 수강 후 작성

          The lecture time is 36 hours and 55 minutes, so it is scary when you first watch the lecture. I also felt resistance when I first learned this part... However, the true value of this lecture is the part where the internal operation principles are explained in detail through the debugger. As you follow the lecture to dig into the detailed operation principles through the debugger, you will learn how to use the debugger yourself, which was a great help in improving your development skills. If you follow this lecture at the stage where you have gone through the Spring introductory stage (learning core, web, jpa, boot, etc.) and learn the internal automatic settings and operation flow through the debugger, you will feel that your understanding of security will grow rapidly. And as of now, most of the security-related materials are based on deprecated or unused materials, but this lecture was created with version 6 and later in mind. It is hard to find lectures or materials that explain security, or even specific technologies, in such depth. This is a lecture that I really recommend.

          • leaven
            지식공유자

            First of all, thank you very much for your valuable evaluation^^ Most of my lectures are produced over a long period of time, so I think you may have a lot of burden before learning like Mr. Ssulji. It is true. However, I personally have a firm standard and principle that I must convey the best knowledge to students in any form regardless of the length of the lecture time, so even if the external appearance of the lecture video is not refined and has advanced marketability, I have a strong will to never compromise or yield on the quality of the internal content, the knowledge transfer, so the video time always ends up being longer than expected!! Of course, I always recognize that it needs to be adjusted appropriately^^ Since it is long, I think you will have a more solid foundation if you follow the difficult parts repeatedly. And I am even more grateful that you felt the charm of debugging^^ If you use it well in practice, it will be of great help, so I hope you continue to develop it as a habit. Thank you again for your sincere evaluation.

        2025 블랙 프라이데이 깜짝 연장 할인 중 (1일 남음)

        ₩58

        24%

        ₩99,000

        정수원님의 다른 강의

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

        비슷한 강의

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

        연관 로드맵

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