본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
안녕하세요 :)
오늘은 챌린지 16일차로, 어제와 같이 9분짜리 클립 한 개 빠르게 수강하고 자야겠어요!
오늘 배울 내용은,
Part A. 로그인, 로그아웃, 회원가입으로 배워보는 스프링 시큐리티 기초
Ch 4. PasswordEncoder 와 암호 처리
"05. AOP 를 활용하여 비밀번호 암호화하기 - 2" 입니다.

이번 시간에는 강사님께서 공유해주셨던 GitHub fcss-02 프로젝트를 불러와서 실습을 진행했다.
먼저 build.gradle 에 들어가 의존성을 살펴봤다. 자바 버전과 스프링 부트 버전, lombok, test 등 기본적인 패키지와 의존성을 확인했다. 그리고 이전 시간에 PPT에서 봤던 것처럼 AOP 의존성과 Apache Command 의존성이 있는 것도 확인했다.
작성을 완료한 후 Gradle Sync 버튼을 클릭해야 한다. 그리고 4개의 하위 패키지를 만들었다. annotation, aspect, controller, service 이다.
controller 는 Post Mapping 으로 만들어져 있는 Post 형식의 api가 있고, 이 API는 RequestBody 로 HelloRequestBody 를 전달 받고 있다. service 는 하나의 문자를 전달 받아서 암호화를 한 다음에 반환하고 있다.
가장 중요한 aspect 를 살펴보면,
@Aspect 어노테이션이 붙어 있고, @Around 를 사용해서 컨트롤러에 있는 메소드가 실행이 될 때 AOP가 동작하게끔 하는 코드도 작성이 되어 있다.
실제로 동작을 시키면서 디버깅 모드로 찍어가면서 값이 어떻게 바뀌는지 보는 게 이해가 더 빠를 수 있다.
AOP를 활용하면, 나중에 암호화가 필요한 필드에 대해서는 개체를 만들고, @CustomEncryption 이라고 하는 어노테이션만 부여를 해주면 AOP 가 알아서 다 암호화 로직을 수행을 해주기 때문에 상당히 관리하기가 쉽다고 느껴질 수도 있다. 이런 식으로 암호화를 하는 방법도 있다는 것을 이번 시간을 통해 알 수 있었다.
이번 시간에는 AOP를 활용해서 암호화를 하는 방법에 대해서 코드 레벨에서 살펴보았고, 다음 시간에는 새로운 챕터로 AuthenticationProvider 와 인증에 대해 배울 것 같아서 기대가 된다.