BEST
개발 · 프로그래밍

/

백엔드

스프링 시큐리티

스프링 시큐리티 구동 원리 및 구조를 이해하고 스프링 시큐리티가 제공하는 다양한 기능을 활용하여 웹 애플리케이션에 필요한 인증 및 인가 기능을 설정하는 방법을 살펴봅니다.

(4.7) 수강평 136개

수강생 1,973명

Thumbnail

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

이런 걸
배워요!

  • 웹 애플리케이션에 인증 및 인가 기능을 추가할 수 있습니다.

  • 스프링 시큐리티 아키텍처를 이해할 수 있습니다.

  • 스프링 시큐리티 적용시 테스트를 작성하는 방법을 학습할 수 있습니다.

내가 만든 앱의 시큐리티는
내가 책임져야죠 💪

앱에서 '인증'과 '인가'는 필수! 🔥

게시판을 만든다고 가정해 봅시다. 익명 게시판이 아닌 이상 현재 어떤 사용자가 글을 작성하고 있는지 알아야 합니다. 흔히 '로그인'이라고 부르고 스프링 시큐리티에서는 Authentication 또는 "인증"이라고 말하는 기능이 필요합니다.

또한 글을 수정할 수 있는 사용자는 최소한 그 글의 작성자 또는 관리자 권한이 있어야 합니다. 이때 개발자로서 애플리케이션에 "인가", Authorization 또는 Access Control 기능을 적용하여 적절한 권한을 가진 사용자만 해당 글을 수정할 수 있도록 기능을 구현해야 합니다.

웹 애플리케이션인 경우, CSRF, XXS, 세션 변조, Clickjacking 등 다양한 웹 보안 관련 이슈에 대응하는 것도 반드시 필요합니다.


강의 소개 📖

#1.
스프링 시큐리티의
다양한 기능 적용 

이 강의는 폼 기반의 웹 애플리케이션에 스프링 시큐리티가 제공하는 다양한 기능을 적용하며 스프링 시큐리티 구조를 파악합니다.

#2.
스프링 시큐리티의
내부 구조

단순히 기능을 적용해 보는 것에 그치지 않고 스프링 시큐리티가 서블릿 기반 웹 애플리케이션에 어떻게 맞물려 동작하는지 그 내부 구조를 학습합니다. AuthenticationManager, AccessDecisionManager, FilterChainProxy 등 스프링 시큐리티 내부 구조를 학습하는데 많은 도움이 될 것입니다.

#3.
대중적인 앱 형태에
선택과 집중

이 강의는 타임리프(Thymeleaf)를 뷰 템플릿으로 사용하는 서블릿 기반 애플리케이션을 주로 다룹니다. ACL, OAuth2, Reactive(WebFlux) 그리고 웹소켓을 지원하는 기능은 다루지 않았으며 메소드 시큐리티에 대해서는 간략하게 살펴봤습니다. 하지만 이 강의를 충분히 학습하신다면 여기서 다루지 않은 기능도 손쉽게 익힐 수 있을 겁니다.


지식공유자의 한 마디 🧑‍🏫

지금까지 만든 또 앞으로도 만들 제 모든 강좌를 보면서 여러분은 제가 무언가를 학습하는 방법을 익힐 수 있습니다. 저는 항상 테스트를 중요하게 생각하지만 그렇다고 TDD에 집착하지는 않습니다. (가끔 그렇게 보인다는 피드백을 받기도 했지만..) 모든 기능은 직접 코딩하여 검증하며, 이해가 되지 않는 부분 또는 더 자세히 보고 싶은 부분은 디버거를 활용합니다.

여러분은 이 강좌에서도 어김없이 스프링 시큐리티를 적용했을 때 테스트 코드를 작성하는 방법디버거를 사용하여 분석하는 방법을 익힐 수 있습니다.

💡 참고사항

  • 어떤 IDE를 사용하는지는 중요하지 않습니다. 여러분에게 익숙한 IDE를 사용하시기 바랍니다.
  • 이 강좌에서는 IntelliJ IDEA(인텔리J) 유료 버전을 사용합니다. 무료 버전을 사용해도 강좌를 따라하는 데는 크게 지장은 없지만 일부 과정이 여러분보다 편리해 보일 수는 있습니다.
  • 스프링에서 무료로 제공하는 이클립스 기반의 STS(스프링 툴 스윗)을 사용한다면 비슷한 수준의 편리함을 누릴 수 있을 겁니다.

필요한 선수지식 🤓

이 강좌는 수강하시는 분들이 다음과 같은 선수 지식을 갖췄다는 가정 하에 만들었습니다. 아직 수강하지 않은 강좌 또는 학습하지 않은 주제가 있다면 꼭 미리 학습하신 뒤에 이번 강좌를 수강하시기 바랍니다.


참고 자료 📜


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 웹 애플리케이션에 폼 기반의 인증 및 인가 기능을 구현하고 싶은 학생 또는 개발자

  • 스프링 시큐리티 아키텍처를 이해하고 싶은 학생 또는 개발자

선수 지식,
필요할까요?

  • 스프링 웹 MVC

  • 스프링 부트

  • 스프링 프레임워크 핵심 기술

  • 스프링 데이터 JPA (optional)

네이버와 아마존을 거쳐 현재 Microsoft에서 시니어 소프트웨어 엔지니어로 일하고 있습니다.

아인슈타인은 "교육이란 사실을 가르치는 것이 아니라, 생각할 수 있는 힘을 기르는 것이다."라고 말했습니다. 그리고 저도 그 말에 깊이 공감하며 강의를 만들고 있습니다.

유튜브:
'백기선' 채널에서 개발자 고민 상담 및 개발자에게 유용한 지식 공유
번역: 스프링 및 하이버네이트 관련 서적 다수 번역
저술: 쉽게 따라하는 자바 웹 개발

커리큘럼

전체

48개 ∙ (8시간 4분)

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

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!