문: Spring 심화강의 켠왕
시: 스프링 심화강의를 먼저 한번 쭉~ 들어보고자 했다.
해: Spring Security
, OAuth2
, Test
, Aop
강의를 원리, 개념적인 부분에 집중해서 들었다.(내일, 모레에는 개인과제에 위 내용들을 적용해보며 배운 내용들을 체화
할 예정)
알: Spring Security
, OAuth2
, Test
, Aop
의 원리와 개념, 매커니즘 등을 배울 수 있었다. 단순히 HOW
만 배운 것이 아니라, 일정부분 WHY(왜 이 기능을 사용해야 되는지)
에 대해서도 생각해볼 수 있었다.
금일 수강한 스프링 심화강의 커리큘럼
오늘도 어김없이 등장하는
보안 글씨체
와 함께 강의를 정리하며 이해해보았다.
- ⚠️주의⚠️ 글씨체가 매우 더러우니 필기 내용을 읽으려하지 마세요! plz🙏
- 강의에 대한 정리목적으로 작성한 것이 아니라, 이해하는 과정에서 적은
메모
느낌?- 내일, 모레에는 개인과제에 위 내용들을 적용할 예정이기에, 그 과정에서 강의 내용이 잘 떠오를 수 있도록 마중물역할을 해줄 메모들이다.
Spring Security
에서 JWT를 사용하여 인증/인가 구현하는 법bCrypt
는 적응형 단방향 함수들이 그렇듯, 내부적으로 리소스 낭비가 매우 심하다.
- 개방형 Authorization 의 표준이며 API 허가(Authorize)를 목적으로 JSON 형식으로 개발된 HTTP 기반의 보안 프로토콜
- 사용자들이 사용하고자 하는 웹사이트 및 애플리케이션에 비밀번호를 제공하지 않고 접근 권한을 부여 받을 수 있게 해주는 공통적 수단으로서 사용 되어지는 기술
- 다양한 클라이언트 환경에 적합한 인증(Authentication) 및 인가(Authorization) 의 위임 방법을 제공하고 그 결과로 클라이언트에게 접근 토큰 (Access Token) 을 발급하는 것에 대한 구조
자연치유
라는 개념이 없다.테스트와 관련한 논란, 논쟁이 많은 것은 사실이다.
그러나 테스트코드의 효용을 부정하는 경우는 없다.
테스트코드를 작성하며 "내 코드의 구조와 설계, 실제 구현을 고민하는 과정"을 경험한다는 것 자체만으로도 큰 가치를 가진다.
핵심기능
과 부가기능
을 분리할 수 있다. 어드바이스(실행될 시점), 포인트컷(실행될 장소)를 줘야한다.
@Aspect는 스프링 빈(Bean) 클래스에만 적용이 가능하다 -> @Component랑 짝꿍이다.
@Around("execution()")
에서 @Around는 어드바이스, ("execution()")는 포인트 컷
@Pointcut("execution()")
-> 어드바이스 역할도 하면서, 해당 포인트 컷을 재사용or결합해서 사용이 가능한 어노테이션
AOP의 원리: DispatcherServlet
과 Controller
사이에 프록시
가 쇽! 하고 들어가서 작동하는 구조, joinPoint.proceed()
에 의해서 서블릿과 컨트롤러는 눈치도 못채고 자연스럽게 로직을 실행하게 됨.