본문 바로가기

패스트캠퍼스/100% 환급 챌린지_2

패스트캠퍼스 환급챌린지 41일차 : Netplix 구독형 멤버십 프로젝트로 배우는 Spring Security 강의 후기

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

 

안녕하세요 :)

오늘은 챌린지 41일차로, 잠만 자다가 하루가 지나간 느낌적 느낌인데... 그래서 오늘 모처럼 새벽 공부를 합니다.

 

오늘 배울 내용은,

Part B. 스프링 시큐리티 심화

Ch 6. 실전: 인증 서버와 애플리케이션 서버 분리

"01. 요구사항 파악" 입니다.


 

오늘부터는 실전으로 들어가게 되는데, 먼저 인증 서버와 애플리케이션 서버 분리하기 위한 요구사항을 파악하는 시간을 가졌다.

 

지금까지 배운 내용들을 바탕으로 하나의 실전 프로젝트를 진행하게 되는데, 예시 수준에서는 하나의 애플리케이션을 구축하여 기능을 하나씩 테스트해보았지만, 프로젝트 수준에서는 클라이언트, 인증 서버, 비즈니스 논리 서버로 분리하여 구현할 예정이다. 이를 활용하여 다단계 인증 방식을 유사하게 구현해보면, Multi-Factor Authentication, MFA 와 2FA (2단계 인증)가 있다.


각 구성요소 별 특징으로는, 클라이언트, 인증 서버, 비즈니스 논리 서버 총 3개의 구성 요소로 프로젝트를 만든 후 각 구성 요소 별 어떤 특징이 있는지 파악해보았다.

- 클라이언트는 백엔드 애플리케이션을 이용하는 프론트엔드 클라이언트로 모바일 앱이 될 수도 있고, ReactJS, VueJS 등 프론트엔드 프레임워크가 될 수도 있다. 직접 ReactJS 등의 프론트엔드 프레임워크를 활용하여 구축해도 괜찮지만 인증 관련이 아니기 때문에 포스트맨으로 호출하여 이를 대체 할 예정이다. 단, 클라이언트라는 구성 요소가 실무 상황에서는 존재한다는 것을 염두에 두면 좋을 것 같다.

- 인증 서버는 사용자를 인증할 수 있는 애플리케이션으로 사용자 자격 증명 데이터를 관리한다. 전달받은 사용자 ID 와 PW 를 기반으로 사용자를 인증하고 SMS 등을 통해 OTP (일회용 암호)를 전송하는 것이다. 이번 프로젝트에서는 실제로 SMS 를 보내지는 않고, 데이터베이스에 생성되어 있는 OTP 값을 반환하여 이를 대채 할 예정이다.

- 비즈니스 논리 서버는 클라이언트가 이용할 엔드포인트를 관리하는 애플리케이션이다.

각 구성 요소 기반의 흐름을 살펴보면 클라이언트(프론트엔드 프레임워크) → (호출) 비즈니스 논리 서버(비즈니스 논리 서버의 엔드포인트) → (인증 요청) 인증서버(사용자 세부 정보를 자체 데이터베이스에 저장하여 관리, 사용자 인증에 성공하면 OTP를 전송함) → 자격 증명 데이터베이스 순으로 이루어지게 된다는 것을 알 수 있다.