[목차]

<aside> 💡 모든 토글을 열고 닫는 단축키 Windows : Ctrl + alt + t Mac : + + t

</aside>

00. Intro

<aside> 🙂 우리가 프로젝트를 진행하면 진행할수록, 뭔가 점점 웹 페이지 같은 모습이 되어가고 있습니다. 하지만 우리가 잠시 미뤄놨던 것들이 있죠 바로 인증과 인가 입니다. 이번 시간에는 이전에 배웠던 인증과 인가에 대한 간단한 복습과 우리가 스프링에서 인증과 인가를 어떻게 구현 할 것 인가에 대한 이해를 가져보면 좋을 것 같습니다.

</aside>

바로 스프링 시큐리티…?

<aside> 🙃 스프링에서 대표적으로 아래에서 배울 “인증”과 “인가”를 관리해주는 것은 바로 스프링 시큐리티 입니다. 다만 우리는 기존에 다른 사람의 코드를 사용해서 구현하는등 실질적으로 인증과 인가에 대해서 고민하거나 구현해 본 적이 없습니다.

해당 개념에 대한 이해가 없는 상태에서, 바로 스프링 시큐리티를 적용하는것은 너무 어렵기만하고, 재미도 없고, 매번 남의 코드 따라치는 느낌으로 코딩하게 될 수 있어서 이번 주차에는 간단하게 “인증”하는 로직을 직접 구현해보고, 심화주차에 스프링 시큐리티에 대하여 다룰 예정입니다.

인증 개념 자체는 어려운 로직이 아닌 만큼 천천히 코드를 따라해 보시고, 지금 프로젝트의 불안함과 불편함같은 개선점을 다음 주차에 어떻게 개선할 수 있을지에 대한 관점으로 가볍게 들어주시면 좋을 것 같습니다!

</aside>

01. 복습 - 인증과 인가

IMG_FA5FD10FA51F-1.jpeg

<aside> 📌 **인증(Authentication)**은 해당 유저가 실제 유저인지 인증하는 개념입니다. 여러분의 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이, 실제 그 유저가 맞는지를 확인하는 절차 입니다.

**인가(Authorization)**는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념입니다. 예를들어 관리자 페이지-관리자 권한 같은 것들을 들 수 있겠네요

우리가 인증과 인가를 헷갈려 하는 이유는 로그인만 생각해서 입니다. 우리가 자주 하는 로그인은 인증을 할 때(비밀번호 입력하고 제출 할 때) 회원/비회원 여부에 따라 갈리는 인가를 받기 때문입니다. 앞으로는 그 두가지 개념을 분리해서 생각해보시면 조금 더 이해가 쉬워질 것 같네요

</aside>

02. 인증의 방식

<aside> 🤔 인증과 인가를 분리해서 생각해 보시라고 말씀드렸죠? 지금 다룰 내용도 마찬가지 입니다. 우리는 이 챕터가 “인증”하는 여러가지 방식 중 두가지를 배울 것 입니다. 인가나 보안 전반에 대한 이야기의 전부가 아니라는 점을 명심하시면 좋을 것 같습니다.

</aside>

<aside> 📌 인증의 방식을 이해하는데 있어, 가장 중요한 내용은 한가지 입니다. “우리는 웹 어플리케이션의 인증을 배운다.”

</aside>

<aside> 📌 일반적으로 웹 어플리케이션은 아래 두가지 방법을 통해서 인증을 처리합니다

</aside>