강의

멘토링

로드맵

Inflearn brand logo image
BEST
개발 · 프로그래밍

/

백엔드

스프링 시큐리티

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

(4.7) 수강평 228개

수강생 3,770명

  • 정수원

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

이런 걸 배울 수 있어요

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

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

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

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

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

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

 

스프링 시큐리티의 가장 핵심적인 기술을 익히고, 응용합니다.

 

1. 코어 스프링 시큐리티 강좌 소개

스프링 시큐리티는 인증과 권한 제어 기능을 구현하는데 필요한 강력한 API를 제공하고 있습니다. 
기본적으로 제공하는 API만을 사용해도 아주 적은 비용으로 안전한 보안 시스템을 구현할 수 있습니다.

본 강좌는 스프링 시큐리티의 기본적인 사용법을 전혀 모르는 사용자부터 기초적인 지식 및 사용 경험은 있지만 좀더 깊이있는 지식 습득과 스프링 시큐리티의 핵심적인 원리, 내부구조, 동작방식 등을 심도있게 이해하고 이를 응용하고자 하는 분들을 위해 제작되었습니다.

본 강좌는 스프링 시큐리티의 핵심 개념인 인증과 인가의 두 축을 중심으로 강의가 진행됩니다.

 

[인증]
스프링 시큐리티는 Form, OAuth, JWT, LDAP 등 여러 인증 방식들을 지원해주고 있는데 본 강좌는 Form 인증 방식에 대해서 살펴봅니다.
다수의 웹 서비스들이 Form 인증 방식 기반으로 보안화를 구현하고 있어, 기본적으로 꼭 이해하고 있어야 하는 인증 방식이기 때문입니다.

[인가]
스프링 시큐리티는 웹 계층 권한, 서비스계층 권한, 도메인 계층 권한(ACL) 접근 제어 기능을 지원해 주고 있습니다. 
본 강좌는 웹 계층 권한과 서비스 계층 권한 접근 방식에 대해서 살펴봅니다.
특히 다섯 번째 섹션의 실전 프로젝트 인가 편에서는 실무적 수준에서의 동적인 권한제어가 가능하도록 DB와 연동하는 방식을 학습하게 됩니다.
웹 계층 뿐 아니라 비즈니스 계층의 권한제어를 DB로 연동하는 기술을 익힌다면 실제 운영 서비스에서도 활용도가 매우 높을 것으로 예상됩니다.

 

본 강좌는 다음과 같이 크게 4가지 파트로 나뉩니다.

  • 스프링 시큐리티 기본 API 사용법과 이와 관련된 Filter 이해
  • 스프링 시큐리티 내부 아키텍처와 동작 방식 이해
  • 실전 프로젝트를 통한 스프링 시큐리티 인증 프로세스 구현
  • 실전 프로젝트를 통한 스프링 시큐리티 인가 프로세스 구현 - DB 연동을 통해 권한 제어 시스템 구현

 

2. 심도 있는 내부 아키텍처 및 동작원리 파헤치기

스프링 시큐리티의 기본 API를 사용해서 인증과 인가 기능을 구현할 수 있지만 시스템의 규모가 커지고 보안과 관련한 요구사항이 많아지면 기본적으로 제공하는 API만으로는 구현하고자 하는 보안 기능을 충족하기가 어려워지게 됩니다.

스프링 시큐리티의 기능을 자유롭게 확장하고 요구사항에 맞게끔 다양하고 세세하게 커스트마이징 할 수 있기 위해서는 스프링 시큐리티의 내부 아키텍처를 깊이 이해하고 인증과 인가 처리가 어떻게 이루어지고 있는지의 전체적인 동작원리와 그에 따른 흐름들을 반드시 이해하여야 합니다.

또한 Spring MVC와 연계해서 보안 시스템을 구축할 경우 예기치 않게 발생하는 여러가지 보안 오류에 대해 정확한 원인과 그에 대한 해결책을 알기 위해서도 꼭 필요한 내용입니다. 

본 강좌를 학습하게 되면 이러한 지식들을 습득하고 실무에 활용할 수 있게 됩니다.

 

 

 

 

3. DB 연동 권한 제어 시스템 구현

스프링 시큐리티에서 제공하는 인가 방식은 두 가지로 나눌 수 있습니다.

첫번째는 클라이언트의 요청에 대해서 설정파일에 직접 권한정보를 명시하는 선언적 방식이고 두번째는 외부 저장소와 연동하여 맵 기반으로 권한 정보를 관리하는 동적인 방식으로 나눌 수 있습니다.

첫번째 방식은 시스템의 규모가 커질 수록 권한의 종류와 구성이 복잡해지게 되는데 이때 설정 파일로 일일히 인가 정책을 관리한다는 것은 매우 비효율적이며 유지보수 차원에서도 비용이 많이 들게 됩니다.

스프링 시큐리티에서는 이러한 부분들을 보완하기 위해 설정파일에 직접 인가정책을 관리하지 않고 메모리나 DB 와 같은 외부 저장소에 인가 정책을 관리할 수 있도록 지원하고 있습니다.

본 강좌는 설정 파일에 명시하는 선언적 방식과 DB와의 연동을 통한 동적인 방식 두가지 모두에 대해서 살펴 볼 것이며 특히 웹 계층의 URL 방식 권한 제어 뿐 아니라 비즈니스 계층의 Method와 Pointcut 방식의 권한제어에 대해서도 살펴봅니다.

이로써 서비스 운영시에도 서버 기동 없이 실시간적 동적 권한 제어 시스템을 구현할 수 있는 방법을 학습하게 됩니다.

 

 

4. 실전 프로젝트 완성

본 강좌의 첫번째 섹션과 두번째 섹션을 학습한 이후 이를 바탕으로 세 번째 섹션부터 여섯 번째 섹션까지는 실전 프로젝트를 직접 완성해 가면서 스프링 시큐리티의 기능을 이해하는 방식으로 진행합니다.

 

[사용자]
대시보드, 사용자, 매니저, 환경설정과 같은 화면으로 이루어져 있으며 각 메뉴마다 인증 및 인가 정책을 설정하고 테스트 합니다.
회원등록 및 로그인 페이지를 통해 인증 준비 및 처리가 이루어집니다.

[관리자]
사용자 관리, 권한 관리, 리소스 관리와 같은 화면을 제공하며 관리자 권한을 가진 사용자만 접근이 가능합니다.
실시간적으로 각 기능의 CRUD 처리를 통해 권한과 자원에 대한 동적 관리가 가능하도록 구성합니다
DB 연동으로 사용자의 권한을 설정함으로써 사용자화면에서 즉시 결과를 확인할 수 있게 됩니다.

 

실전 프로젝트에서는 Spring Boot, Spring MVC, Spring JPA 등과 같은 기술을 연계해서 진행하게 됩니다. 
이 강좌를 듣기 전에 미리 학습하길 권장해 드리고 강좌를 수강하시면서 스프링 연계 기술들을 병행해서 학습하시면 됩니다.
중요한 것은 스프링 시큐리티의 핵심 기능을 이해하는 것이기 때문에 위의 연계 기술은 차차 이해해도 크게 문제되지는 않습니다.

 

 

5. 지식공유자 소개

정수원(leaven)

  • 현직 자바 개발자
  • SI/SM/솔루션/Mobile/Front&Back-end 의 다양한 프로젝트 경험
  • Architect/PM/PL 로서 역할 수행
  • Github

이런 분들께
추천드려요

학습 대상은
누구일까요?

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

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

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

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

선수 지식,
필요할까요?

  • Java

  • Spring Boot

  • Spring MVC

  • Spring JPA

안녕하세요
입니다.

9,822

수강생

323

수강평

1,208

답변

4.9

강의 평점

5

강의

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

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

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

 

커리큘럼

전체

64개 ∙ (20시간 58분)

해당 강의에서 제공:

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

수강평

전체

228개

4.7

228개의 수강평

  • semineun8975님의 프로필 이미지
    semineun8975

    수강평 4

    평균 평점 5.0

    5

    59% 수강 후 작성

    コムゴン4年生です。 Spring Securityの場合、Googleで検索してもたくさんの資料が出てきて、spring.ioで公式リファレンスを参照するのも良い方法です。ただし、セキュリティの場合、散在している情報を再結合するプロセスは非常に困難です。すぐに何も知らずにGoogleで検索をしてもSecurityConfigを 'どのように'設定するが教えてくれ、それを'なぜ'書くかどうかはよくわかっていないので、個人プロジェクトに適用すると本当に数多くのエラーが発生します。 私の主観的な考えですが、セキュリティについて何も知らない状況であれば、この講義を信じて購入することが直接検索して探す時間のコストよりもはるかに安いと確信しています。 もし講義を聞くなら、1~2とは最初にスキップしてすぐに実習に行くのがよさそうです。 実習を進めているのになぜなのか詰まる部分があれば、その都度該当1~2章の詳細なAPIの説明を見ると、理解も良くなり、体化される速度も速いですよね。 例えば、Authentication Flowを理論だけで聞いたときはかなり難解でしたが、実習3章で直接私のプロジェクトに適用させて再度聞いてみると、フローチャートが一度に目に入っていました。 PPTも各段階別に目立つように整理をしっかりしておいて、一生持っていってもいいほどの資料です。 私のように、過去にプロジェクトで単純にパスワード値をDBに暗号化せずにダイレクトに送ったり… 会員登録するすべての会員が他の人が書いた投稿を消すことができるか…イチオシです。

    • leaven
      지식공유자

      丁寧な大切な評価を残していただきありがとうございます。 今は以前よりずっと多くの資料があふれていますが、実際に実務的に活用できるようなソースや内容を見つけて、有意な形の機能に発展させることが容易ではないのも事実です。 おっしゃったように順番に講義を聞くのも良いですが、本人のレベルと理解度に合わせて講義を聞くのも良い方法だと思います。 Faustの熱意と意志であれば、この講義を超えてはるかに多くの知識を身につけることができると確信しています。 本講義は少なくない時間で製作されているので大変ですが最後まで完走していただき、本講義が目的とするバーを全て行っていただきたいと思います。 もう一度大切な評価を残していただきありがとうございます。

  • sorayeon님의 프로필 이미지
    sorayeon

    수강평 81

    평균 평점 5.0

    5

    97% 수강 후 작성

    講義に陥って何週間も別れていません。 提供してくださる資料も膨大で質問回答掲示板に回答いただく内容だけを見ても知識共有者の内公が感じられます。 頑張ってから早くもう一度聞かなければならないようです。 宝石のような講義を発見することができて嬉しいですね。 次の講義も楽しみにしています。良い講義を作ってくれてありがとう。 ^___^

    • leaven
      지식공유자

      足りない講義なのに誇張してくれればさらに肩が重くなります 大切な評価ありがとうございます。 短い時間に大量の講義を聞いたことを見ると、学びと学習の情熱がすごいようです。 それほど大きな報酬が与えられると信じて疑いません。 最後までファイティングです。^^

  • skygomu3801님의 프로필 이미지
    skygomu3801

    수강평 1

    평균 평점 5.0

    5

    75% 수강 후 작성

    まだapiとアーキテクチャの部分しか見ていませんが、とても良いコースです jsp、スプリングを勉強しながらセキュリティや権限をもっと詳しく扱いたい インターネットを見てみても、私は初心者レベルです。 最良の点は講義がとてもフレンドリーです 提供してくれる資料でも定性が感じられ、私のような初心者も理解できるほど継続して概念を繰り返し説明してくれます 最初は概念が多くてとても難しくデバッグしてくださるのもわかりませんでした。 手書きで頑張ってフォローするだけで、今では全体的な流れが見え始めます。 良い講義を作ってくれてありがとう

    • leaven
      지식공유자

      不足している講義でも役に立ちました。本当にありがとうございました^^ 講義を聞きながらご質問がございましたら、お気軽にお問い合わせください。 講義が少し長くて完走するのは簡単ではありませんが、最後まで聞くと努力した分の補償が付いてくると思います。 良い評価をいただきありがとうございます。

  • naelina님의 프로필 이미지
    naelina

    수강평 1

    평균 평점 5.0

    5

    91% 수강 후 작성

    国内外ともに統一して本当に心から見る珍しいスプリングセキュリティ講座だとあえて言えます。 浄水院講師様の講義3つをすべて聴いていますが、各講座ごとに講義内容、資料準備、デバッグを通じた内部構造の掘り下げ、全体アーキテクチャ分析など、浄水院講師様だけの講義パターン方式に絶対感心が出ます。 とセキュリティをこのように掘り下げますね… おそらくセキュリティを開発した開発者たちもこの講義を見れば感心するようです。 ご存知でしょうが、Spring Securityはランニングカーブが大きく、中級開発者も内部構造と流れを深く理解することは容易ではありませんが、この講義は入門者から中級以上の開発者にも十分な技術的基盤知識を伝えています。 適切な理論と適切な実習をうまく配合し、難しいセキュリティが魔法に惹かれたように難しく感じられないように、非常に詳細で簡単に説明しています。 特によく準備されたPPT資料の概略図とダイアグラムを通じて、スプリングセキュリティの構造と流れを詳しく説明し、これをコードとしてデバッグして証明する部分は、この講義の圧巻であり、講師のノウハウのようです。私もこのような進行方式を注目してみながら一つずつ学んでいます。 この講義を聞く前はセキュリティに従う方法を知るレベルでしたが、この講義を聞いてからはAPI、フィルタ構造、認証/認可内部フロー、動的認可制御方法などセキュリティの基本機能だけでなく、状況に応じて自由に機能を拡張とカストマイジングできる活用能力を備えることができるようになったのですが、実に途方もないレベルの講義だと評価したいと思います。 インファランの講座の中でも、手に挙げても良いほどのクオリティと情報を提供してくれていると思います。 実はセキュリティ講義は講義したいと誰も講義できる技術ではないので、この講義がより価値があるようです。 もし私一人でこの程度の知識を独学に摂り込もうとしたら、どれほど大変で難しかったのかを聞いてみると、さらに悟ります。 Googleでセキュリティを検索すると、講師の講義内容が多く検索されるのを見ると、進入障壁が高かったセキュリティ知識を多くの開発者に伝播するようになり、進入障壁を下げる役割をしていただきありがとうございます。 講義中に説明内容と提供してくれる羽毛ソースと部分的に同期できないアロ事があったが幸い講師が講義とマッピングされるソースのブランチ名をエクセルでよく整理してくださって従うのに一層容易でしたし、講義内容と実際の実習が違います。がありましたが、全体的な内容を理解するにはあまり困難はありませんでした。 それでも、このような小さな部分も、次の講義の時はもっと細心の注意を払っていただきたいと思います。 今、私は浄水院の講師の次の講義を待って期待されています 先輩のような開発者の知識共有により、私たちの後輩開発者は最小限の試行錯誤を受けるようになります。 これからも講師様の知識共有活動を心から応援いたします。 ありがとうございます。

    • leaven
      지식공유자

      とても良い評価をいただきありがとうございます 受講生の方々の立場でたくさん悩んで研究してきた講義ですが、いろいろ不足している部分が多いです。 いつも謙虚な心で準備し、コミュニケーションし、一緒に成長する講義になるよう努力します naelinaさんの成長を応援しています ありがとう

  • catsbi님의 프로필 이미지
    catsbi

    수강평 14

    평균 평점 4.7

    4

    100% 수강 후 작성

    pptも分量が膨大で、講義量も膨大です。 APIを一つ一つメソッド単位で切り分けて説明してくれますが、 単に使い方を学ぶのではなく、Spring Securityが何で、どのように戻って、なぜこれをするのかを把握するのに多くの役に立った講義です。 Gitに行ってソースを受け取ることもできます。 残念なことは、講義のステップごとにコード作成に従いたいのに、 gitは完成本だけで、講義ではその講義で実装する機能を全て詳細に見せたりするのではなく、Gitも講義内容とは違って、もう少しリファクタリングや最新化されているコードがかなりあって、混乱したり分かって適当に合わせなければならない方が思ったより疲れます。そのような部分を除けば満足して2回目でもう一度講義を受けて熟練度を高める予定です。

    • leaven
      지식공유자

      はい、ありがとうございます。 講義時間や資料を製作して整理するとき、最初に計画したよりもほぼ倍増しました。 量が多いと無条件に良いわけではありませんが、この講義を通じて伝えようとした内容を込めようと努力してみると、講義時間や構成内容がずっと追加されました。 単にAPIの使い方を学ぶことを超えて、原理を理解し、アプリケーションを育てる方法を提示したいと思いました。 なるべく学習者が講義を見ながら実際のコーディングに従いながら学習するように進めましたが、各レッスンごとにソースを区別して提供できなかった点が私も残念です。 次の講義を制作したら、ぜひ参考にして反映させていただきます。 長い時間の間、大変な過程を完走していただくために多くのことがありました。 役に立つ平を残してくれてありがとう。

비공개 강의로
수강이 제한됩니다.
비공개 강의

정수원님의 다른 강의

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

비슷한 강의

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