728x90
반응형
테이블 설계
● Member Table
Field | Type | Info |
member_id | UUID | Primary Key |
userID | String | |
userPW | String | Encrypt with Spring Security |
todo_id | Long | Foreign Key (1:N) |
memo_id | Long | Foreign Key (1:N) |
member_id 필드는 회원을 식별하기 위한 필드로 UUID를 무작위로 생성해서 자동으로 입력을 할 것입니다.
userPW는 Spring Security를 사용하여 암호화 하고 로그인 시에도 복호화 하여 로그인을 진행할 것입니다.
todo_id와 memo_id는 member->todo, member->memo, todo->member, memo->member 객체처럼 이동하기 위해 외래키로 설정해주고 각각 1:N 으로 매핑을 해주었습니다.
● Todo Table
Field | Type | Info |
todo_id | Long | Primary Key |
title | String | |
content | String | |
deadline_date | String | format = yyyy/MM/dd |
deadline_time | String | format = HH:MM |
create_time | LocalDateTime | |
member_id | UUID | Foreign Key (N:1) |
deadline_date와 deadline_time으로 deadline을 나누어서 date만 받을 경우와 date와 time둘다 받는 경우로 입력을 받을 수 있습니다. create_time은 todo를 생성한 날짜와 시간으로 추후 deadline_date 또는 create_time을 통해서 todo를 정렬할 생각입니다. 항상 member에 해당하는 todo만을 조회해야하기 때문에 member_id를 외래키로 설정하였습니다.
● Memo Table
Field | Type | Info |
memo_id | Long | Primary Key |
content | String | |
create_time | String | |
member_id | UUID | Foreign Key (N:1) |
memo는 그 날의 메모를 해야될 내용을 저장할 수 있는 테이블로 create_time을 통해서 그날의 메모를 구별해서 조회할 것 입니다. 그리고 member_id를 통해서 member에 memo만을 조회해야하기 때문에 외래키로 설정하였습니다.
Application Programming Interface 구상
● Member API
- 회원 저장
- 회원 가입
- 아이디 중복 확인
- 비밀번호 제약조건 확인
- 회원 조회
- 전체 멤버 조회
- userID에 따른 멤버 조회
- 회원 관리
- 로그인
- 비밀번호 변경
● Todo API
- 투두 저장
- title, deadline_date, deadline_time, content 에 따른 투두 작성
- 투두 조회 (정렬 방식은 추후 결정)
- member_id에 따른 조회
- deadline_date에 따른 조회
- content 키워드에 따른 조회
- 투두 관리
- 투두 수정
- 투두 삭제
- 투두 권한
- 투두 수정, 삭제 권한 확인
● Memo API
- 메모 저장
- 메모 작성
- 메모 조회
- member_id에 따른 조회
- create_time에 따른 조회
- LocalDateTime.now()에 따른 조회
- 메모 관리
- 메모 수정
- 메모 삭제
- 메모 권한
- 메모 수정, 삭제 권한 확인
728x90
반응형
'Project > Todo' 카테고리의 다른 글
[AWS EC2 ubuntu] 서버 초기 설정, MySQL 설정 (0) | 2022.07.12 |
---|---|
[AWS EC2 ubuntu] WinSCP와 PuTTY를 이용해서 EC2 인스턴스 접속 (0) | 2022.07.11 |
[AWS EC2 ubuntu] 인스턴스 생성과 보안 그룹 설정 (0) | 2022.07.10 |
[Spring Boot] Member 서비스 구현 (1) (0) | 2022.07.09 |
[Spring Boot] 프로젝트 만들기 - spring initializr, build.gradle, application.properties (0) | 2022.07.07 |