주제
Spring boot로 단순한 기능을 가진 인증 서버를 만든다. Spring Security를 이해하기 이전에 단순한 로그인 서버를 만들자는 목표에서 시작한다. 화면 구성은 따로 없이 Postman을 이용하여 결과를 확인한다.
목표
- 로그인, 로그아웃, 회원가입 세 가지 기능을 수행한다.
- 사용자와 관리자가 존재한다.
- 접근 경로만 다를 뿐, 모두 id, password, email, phone 라는 요소를 이용하여 로그인한다.
- MySQL을 이용해 정보를 저장한다.
- 로그인 시 발급되는 Token을 이용해 유효성을 확인한다.
- Token은 Redis에 저장한다.
- Spring에 내재된 Test를 이용한다.
설계 원칙
- <객체지향의 사실과 오해>를 기반으로 진행한다.
- 객체의 속성과 행위가 클래스보다 우선되어야 한다.
- 메시지가 데이터보다 우선되어야 한다.
주요 객체
속성 및 행위
- 사용자
* id, password, email, phone를 갖고 있다.
- 관리자
* id, password, email, phone을 갖고 있다.
- 로그인
* 입력 id가 유효한지 확인한다.
- 유효한 id의 password와 입력 password가 동일한지 확인한다.
- 로그인한 사용자가 유효하다는 것을 알려주는 Token을 발급한다.
- 로그아웃
* 로그인한 사용자의 Token의 유효성을 없앤다.
- 회원가입
* 입력 id가 중복되지 않는 id인지 확인한다.