Skip to content

Latest commit

 

History

History
82 lines (58 loc) · 3.78 KB

functional_specification.md

File metadata and controls

82 lines (58 loc) · 3.78 KB

다음은 회원 관리 앱을 위한 기능 명세서 입니다.

필수 기능

  1. 회원 전체 목록 조회

    • 설명 : 모든 등록된 회원을 중복되지 않게 목록으로 표시합니다.
    • 입력 : 없음
    • 출력 : 회원들의 기본 정보를 포함한 목록 (회원 ID, 이름, 이메일)
    • 참고 : 없음
  2. 회원 상세 조회

    • 설명 : 특정 회원의 상세 정보를 표시합니다.
    • 입력 : 회원 ID
    • 출력 : 선택한 회원의 모든 저장된 정보 (회원 ID, 이름, 이메일, 생년월일, 가입일자)
    • 참고 : 없음
  3. 회원 가입

    • 설명 : 새로운 회원을 DB에 추가합니다.
    • 입력 : 이름, 이메일, 생년월일
    • 출력 : 새로운 회원 정보와 함께 성공적으로 회원이 생성되었음을 알림
    • 참고 :
      • 사용자에게 입력 받지 않는 정보(ID, 가입일자)는 직접 만들어 저장해야 함
      • 이름과 이메일은 필수 입력 사항이며, 생년월일은 선택 사항임
      • 이메일은 중복되선 안됨
  4. 회원 정보 수정

    • 설명 : DB 저장된 회원 정보를 수정합니다.
    • 입력 : 회원 ID, 이름, 이메일, 생년월일
    • 출력 : 변경된 회원 정보와 함께 성공적으로 회원 정보가 수정되었음을 알림
    • 참고 :
      • 회원 ID와 가입일자는 변경되면 안됨
      • 이름과 이메일은 필수 입력사항이며, 생년월일은 선택 사항임
      • 이메일은 중복되선 안됨
  5. 회원 삭제

    • 설명 : 특정 회원을 DB에서 삭제합니다.
    • 입력 : 회원 ID
    • 출력 : 성공적으로 회원이 삭제되었음을 알림
    • 참고 : 없음

[미션 1] 회원 관리 앱 DB 테이블 설계

회원 관리 앱의 기능 명세서를 기반으로, 앱에서 사용할 데이터베이스(DB) 테이블을 설계하는 것이 미션입니다. 회원의 필수 정보를 효과적으로 저장하고 관리할 수 있도록 DB 구조를 설계하고, 각 테이블과 필드에 대한 설명을 작성하세요.

요구 사항

  1. 테이블 설계

    • 회원 정보를 저장할 테이블을 설계하세요.
    • 각 필드의 데이터 타입을 회원 관리에 적합한 형식으로 설정하세요. (예: VARCHAR, DATETIME 등).
    • 각 필드에 적용할 제약 조건을 설정하세요 (예: NOT NULL, UNIQUE 등).
  2. 제약 조건

    • 기본 키 (Primary Key): 각 회원을 고유하게 식별할 수 있는 기본 키를 설정하세요.
    • 유일성 제약 (Unique Constraint): 이메일 필드에 유일성 제약을 추가하여 중복된 이메일이 저장되지 않도록 하세요.
    • 필수 제약 (NOT NULL): 필수 입력이 필요한 필드에는 NOT NULL 제약을 추가하세요.
  3. 스키마 설계 결과물 작성

    • 테이블 및 필드 구조를 설계한 후 깃허브에 제출하세요.
    • 테이블 이름, 각 필드 이름, 데이터 타입, 제약 조건 등이 포함되어야 합니다.

참고 사항

  • 테이블 설계 도구를 자유롭게 사용하세요 (예: dbiagram.io, ERDCloud, 등).
  • 노션이나, 한글 문서 등을 사용해도 좋습니다.
  • DBMS는 SQLite를 사용합니다.

[미션 2] 설계 기반 실제 테이블 생성

테이블 설계를 기반으로, 실제 DB 테이블을 생성하는 것이 미션입니다. Django의 Model을 이용해 DB 테이블을 생성해보세요.

요구 사항

  • Model 클래스를 이용해 회원 정보를 저장할 테이블을 생성하세요.
  • DB 스키마에서 설계한 테이블 이름, 필드 이름, 데이터 타입, 제약 조건과 일치하게 생성해야 합니다.
  • 생성한 Model 클래스가 들어있는 models.py, db.sqlite3 파일을 포함한 프로젝트 파일을 GitHub에 업로드하세요.