개발/Spring Boot

[로그인 기능 만들기] 1. DB 기획(1)

졔졔311 2024. 5. 2. 17:40
728x90
반응형

사실 이 프로젝트의 핵심은 서버 로직 구현이기 때문에, DB 구조는 가장 단순하게 만드는 것을 목표로 잡았다.

추후 기능이 추가되고, 필요해진다면 제대로 따로 DB서버까지 구현해볼 예정.

따라서 지금은 Spring DATA JPA, H2 in-memory DB를 사용할 것이다.

 

DB 구조는 다음과 같다.

 

◎ <UserInfo> table : user의 정보를 담고있는 테이블

Column Name Type Description
UniqueId(PK) Long Int auto increment. 유저 아이디를 직접 PK로 사용하는 것은 보안상, 조회 상 문제가 될 수 있기 때문에 따로 유저를 구분할 수 있는 PK로서 숫자를 저장해 사용함
CreatedDate Date 생성된 시간을 JPA Audit 기능을 사용해 자동으로 저장
LastModifiedDate Date 마지막으로 데이터가 수정된 시간을 JPA Audit 기능을 사용해 자동으로 저장
UserId Varchar(20) 이 서버에서 사용될 사용자의 ID
만약 타 사이트 계정 인증으로 로그인 할 경우, 이 ID는 고유 번호로 자동 부여됨
UserPwd Varchar(30) 이 서버에서 사용될 사용자의 password
만약 타 사이트 계정 인증으로 로그인 할 경우, null이 입력될 것임
AuthId(FK) Long Int AccountAuth 테이블의 PK
외부 사이트 계정 인증 정보를 저장

 

◎ <AccountAuth> table : 계정 인증을 타 사이트 연동을 통해 할 경우, 인증 관련 정보를 저장하기 위한 테이블

Column Name Type Description
AuthId(PK) Long Int auto increment. 외부 사이트 계정 인증 정보의 고유 ID
AuthType Varchar(10) 외부 사이트 이름(현재는 Naver, Kakao, Google 세 가지 고려)

 

우선은 이정도로 기획했는데,

지금 떠오르는 고민점은 여러가지다.

가장 크게 고민되는건 여러 외부 사이트에서 인증해서 계정을 만들면, 그게 한 사람이라는 것을 어떻게 알 것인가?

우선 오늘의 기획은 여기서 끝.

피드백을 받고 고쳐봐야겠다.

728x90
반응형