포스트

회원 관리 기능 목록

회원 관리 Challenge

주 언어는 자바만 사용했었고 업무상 JS도 간간히 사용했었다. 최근 새로운 기술에 대해 궁금증이 생겨 코틀린, NestJS를 공부했었는데. 아직 찍먹 단계지만 얻은 부분이 많았다. 무엇보다 고착화되어 있는 뇌가 새로운 자극을 받아 활성화되는 느낌이 들어 좋았던 거 같다. 그래서 이번에는 챌린지라는 명목하에 각 언어들을 적응하고 설계에 대한 탐구를 해보려고 한다. 처음은 회원 관리지만 나중에는 다양한 도전들을 해보고 싶다. 개발은 너무 재밌으니까 :)

회원 관리 기능은 간단해 보이지만 깊이 들어가보면 여러 방법들이 존재한다고 생각한다. 로그인만 해도 세션과 토큰을 사용하는 것과 하나의 서버로 구동할 때랑 프론트, 백앤드로 나눠서 구동할 때의 처리가 다르듯, 해볼 수 있는 것은 너무나 많다. 그 중 해볼만한 것들을 정리해봤다. 다음은 구현하려는 기능의 목록들이다.

회원 기능

1. 로그인

1) JWT 토큰

  • Access 토큰 발급
  • Refresh 토큰을 통한 Access 토큰 갱신OAuth 2.0

2) OAuth 2.0

  • Google, Github 등 소셜 계정을 이용한 로그인2단계 인증

3) 2단계 인증

  • 이메일 인증
  • SMS 인증(유료)비활성 계정 처리

4) 비활성 계정 처리

  • 특정 기간 동안 로그인하지 않는 계정 자동 비활성화중복 로그인 처리

5) 중복 로그인 처리

  • 동일한 계정으로 중복 로그인 시도 시, 기존 로그인 해제

2. 로그아웃

1) 로그아웃 처리

  • 액세스 토큰 폐기

3. 회원 관리

1) 회원 탈퇴 처리

  • 사용자에 의한 자체 탈퇴
  • 관리자에 의한 강제 탈퇴

2) 비밀번호 재설정

  • 이메일을 통한 비밀번호 재설정 링크 제공
  • 기존 PW, 새 PW 받아 비밀번호 변경

3) 이메일 인증

  • 회원가입 시 이메일 인증
  • 이메일 변경 시 인증

4) 사용자의 권한 변경

  • 관리자에 의한 권한 변경

5) 사용자 인증 정보 변경

  • 비밀번호 변경
  • 이메일 주소 변경

6) 비밀번호 보안 강화

  • 비밀번호 해싱처리
  • 비밀번호 변경 주기 설정
  • 이전에 사용했던 비밀번호 재사용 방지

7) 계정 복구

  • 아이디/비밀번호 찾기

8) 자동 로그인

  • 로그인 상태 유지

9) 사용자 활동 로그 기록

  • 로그인/로그아웃/비밀번호 변경 등 활동 로그 기록

10) 프로필 관리

  • 프로필 사진 관리
  • 닉네임 설정

목록으로만 보면 상당히 많은 기능들인데. 여기에 프론트는 React를 사용해볼까 했었는데. 너무 많은 시간이 소요될 것같아 보류하기로 했다. 기본적으로 Swagger를 통해 REST API를 정리하고 테스트를 진행해보고자 한다. 처음은 코프링으로 구현해보고 그 다음 NestJs로 구현해보면서 설계의 보완점이나 언어의 장단점을 찾아보겠다.

개발은 계속 해야 손이 익는 것처럼, 안주하지 말고 계속 만들어보자.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.