팀프로젝트/SpringBoot

스프링부트 팀플) 20240330 개인정보 제거

일일일코_장민기 2024. 3. 31. 05:02
728x90
오늘 처음으로 멘토님을 만나고 피드백을 들을 수 있었다.
로그인/회원가입 쪽에서 들은 가장 큰 문제점은 개인정보가 들어갔다는 점.
보안 능력이 따라주면 상관없지만, 아직 미숙하기에 보안을 지킬 수 없다면 아예 다 제거하기로 했다.
으...

우선 DB, DTO부터 수정

 

CREATE TABLE memberDB (
    userId VARCHAR2(50) PRIMARY KEY,
    userPw VARCHAR2(50) NOT NULL CHECK (LENGTHB(userPw) >= 4),
    nickname VARCHAR2(30) UNIQUE NOT NULL,
    userEmailId VARCHAR2(50) NOT NULL,
    userEmailDomain VARCHAR2(50) NOT NULL,
    restoreUserEmailId VARCHAR2(50),
    restoreUserEmailDomain VARCHAR2(50),
    googleConnected CHAR(1) DEFAULT 'n' CHECK (googleConnected IN ('y', 'n')),
    naverConnected CHAR(1) DEFAULT 'n' CHECK (naverConnected IN ('y', 'n')),
    kakaoConnected CHAR(1) DEFAULT 'n' CHECK (kakaoConnected IN ('y', 'n')),
    userSignDate VARCHAR2(10) DEFAULT TO_CHAR(SYSDATE, 'yyyy/MM/dd') NOT NULL,
    userType VARCHAR2(1) NOT NULL CHECK (userType IN ('0', '1', '2', '3', '4')) -- 0 for admin, 1 for member, default is member
);

 

추가로 SSO도 확인하기 쉽도록 구글/네이버/카카오 연동 여부도 DB에 넣었다.
다른 곳은 몰라도 구글은 받아오는 정보가 많지 않고,
개인정보를 최소화하기 위해 동일 이메일 여부로 SSO를 구현할 예정

또한 전체 비밀번호 찾기에서 그래도 질문에 따라 변동되는 답을 대응하는 코드는 살리고 싶었다.
그래서 복구 이메일을 유저 선택에 따라 입력하도록 만들었다.