개발 목표
사용자와 판매자 모두를 위한 안정적이고 보안이 강화된 회원가입 및 로그인 시스템 구현
일반 회원가입,로그인,로그아웃
소셜 회원가입,로그인
아이디,비밀번호 찾기
회원정보 수정
회원 탈퇴
보안 기능 강화


구매자와 판매자 회원가입/로그인 페이지를 나눠서 구현
django-allauth 패키지로 소셜 로그인 기능 구현
AbstractBaseUser를 상속받아 구매자,판매자 모델을 커스터마이징
기본 회원가입 및 로그인 기능의 구현: Django의 auth 모듈을 활용하여 기본적인 회원가입과 로그인 기능을 구현
소셜 로그인 기능: 소셜 로그인은 사용자가 쉽게 로그인할 수 있도록 해주므로 중요한 기능입니다. django-allauth 같은 패키지를 활용하여 구현할 수 있으며, 가장 인기 있는 소셜 미디어(예: Facebook, Google)에 대한 로그인을 우선적으로 구현하는 것이 좋습니다.
다양한 소셜 로그인 지원: 최소 2개 이상의 소셜 미디어 플랫폼을 통한 로그인을 지원하여 사용자의 편의성을 높이는 것입니다.
보안: 비밀번호 저장 시 해싱, 소셜 로그인 시 토큰 기반 인증 등 보안에 신경 써야 합니다. 사용자의 정보를 안전하게 보호하는 것이 중요합니다.
사용자가 회원가입 시 입력한 정보의 유효성 검사, 적절한 오류 메시지 표시
사용자가 쉽게 회원가입과 로그인을 할 수 있도록 직관적이고 친화적인 UI/UX 디자인을 구현
구매자와 판매자 데이터베이스 테이블을 분리하여 구현하는 것의 장점
데이터 관리의 용이성: 구매자와 판매자를 별도의 테이블로 관리함으로써 데이터를 더 효율적으로 관리할 수 있습니다. 각 그룹의 고유한 속성과 관계를 명확히 정의할 수 있으며, 이는 데이터베이스의 복잡성을 줄이고 데이터 무결성을 유지하는 데 도움이 됩니다.
확장성: 미래에 각 사용자 유형(구매자 또는 판매자)에 대해 추가적인 기능이나 필드가 필요할 경우, 분리된 테이블 구조는 이러한 확장을 보다 용이하게 합니다. 각 사용자 유형에 맞춰 테이블을 수정하거나 확장하는 것이 더 쉬워집니다.
보안
구매자와 판매자 데이터를 분리함으로써
각 사용자 유형에 대한 보안 정책을 더욱 세밀하게 적용할 수 있음
예를 들어, 판매자 정보에 대한 접근 권한을 더 엄격하게 관리할 수 있음
성능 최적화
데이터를 분리함으로써 각 테이블의 크기가 상대적으로 작아지므로 데이터베이스 쿼리의 성능이 향상될 수 있습니다. 이는 특히 대규모 데이터를 다루는 경우 더욱 중요합니다.
맞춤화된 사용자 경험 제공: 구매자와 판매자 테이블을 분리함으로써 각 사용자 유형에 맞는 맞춤형 기능과 인터페이스를 더 쉽게 제공할 수 있습니다. 이는 사용자 만족도를 높이는 중요한 요소가 될 수 있습니다.
이러한 장점들을 고려할 때, 구매자와 판매자 데이터를 분리하여 관리하는 것은 쇼핑몰 시스템의 효율성, 확장성, 보안성을 높이는 효과적인 방법입니다.