평가요소에 따른 기능 요구사항 기능 분석
로그인 / 회원가입
평가 요소
Spring Security 의 인증/인가를 활용하여 회원가입/로그인 기능을 구현하였는가
프론트엔드에서 필요한 유효성 검사가 1 개 이상 고려되었는가
이메일, 비밀번호, 이름을 포함한 정보로 회원 가입 기능이 구현되었는가
이메일과 비밀번호로 로그인 기능이 구현되었는가
기능 분석
이메일 회원가입
사용자는 이메일 주소(아이디) , 비밀번호 , 이름을 입력 받는다.
닉네임 입력 → 후기 기능
이메일, 비밀번호, 이름 유효성을 검사한다. ( ex 비밀번호 8글자 이상)
비밀번호 소대문자 필수 하나,
프론트, 백엔드 둘다 체크
이메일 인증 메일을 발송하여 사용자 본인 이메일인지 확인한다.
백엔드 상의 필요
아이디 중복 체크
이메일은 DB에 중복되지 않는지 한번 더 검사한다.
중복 체크
로그인
인증 방식 세션 vs jwt
세션
장점: 안정성, 보안
단점: 세션 데이터를 직접 관리하고 저장하기에 서버 부담
jwt
장점: 서버 부담 X
단점: 클라이언트에 저장하게 되면( 로컬 스토리지,세션 스토리지) 스크립트 공격에 취약해짐, http only 사용하면 보안 강화 가능
⇒ JWT
사용자는 이메일과 비밀번호 입력을 통해 로그인을 한다
로그인 유지 (자동로그인)
토큰 재발급으로 로그인 유지