Spring Example: ToDo List #1 요구 사항 분석 및 설계

함형주·2022년 9월 15일
0

Spring Example: ToDo

목록 보기
2/16

질문, 피드백 등 모든 댓글 환영합니다!

지난 블로그에 이어서 요구사항 분석과 DB, 애플리케이션 설계를 시작합니다.

1. 요구 사항 분석

회원

[회원가입]

Id, Password, Name을 기반으로 회원가입.
Id, Password는 5~20자의 영소문자, 숫자로 구성되어야함.
Name은 2~10자의 한글과 대소문자 구분 없는 영어로 구성.
추가로 회원가입 시 Id는 타 회원과 중복 불가하며 Password는 '비밀번호'와 '비밀번호 확인'을 입력받아 둘이 일치해야 가입 성공.
가입 실패 시 오류메시지와 함께 사용자가 입력한 값을 그대로 표시.

[로그인]

Id와 Password를 입력받아 로그인.
로그인 성공 시 세션쿠키에 회원 정보를 저장하고 todo 페이지로 이동.
로그인 실패 시 오류메시지와 함께 사용자가 입력한 값을 그대로 표시.

ToDo

Title, Description, CreatedDateTime(createdDate), DueDate, IsCompleted를 가짐.
회원별로 ToDo를 가지며 자신의 ToDo만 접근 가능.
Title은 필수이며 최대 20자까지 허용.
Description은 최대 100자까지 허용.
createdDateTime는 서버에서 자동 생성, DueDate는 createdDateTime보다 이전 날짜는 선택 불가.
IsComplete 기본값은 false, 완료 시 true. true = 완료된 상태

기타

비로그인 회원은 기본페이지, 회원가입, 로그인을 제외한 다른 경로에는 접근 불가.
메인 페이지에서 todo 출력 시 DueDate, CreatedDateTime을 기준으로 null last 정렬
로그인 사용자는 로그인페이지 접속 불가 및 화면 상단에 로그아웃 버튼 생성

2. DB 설계

사용한 DB 설계 툴 : dbdiargram

Member와 ToDo를 1:N으로 설계. (외래키를 N인 ToDo가 관리, 연관관계의 주인이 됨)

3. 애플리케이션 구조 설계

블로그 참고해서 작성했습니다.

Pakage 구조

Domain : Member, ToDo

Controller : HomeController, LoginController, ToDoController

  • Dto : MemberDto, LoginDto, ToDoDto

Service :

  • MemberService : MemberService, MemberServiceImpl
  • ToDoService : ToDoService, ToDoServiceImpl
  • LoginService : LoginService, LoginServiceImpl

Reposotory : MemberRepository, ToDoRepository

configration : Configurer

  • interceptor : LoginInterceptor, ToDoInterceptor

4. 다음으로

개발 순서

Entity -> Repository -> Service -> Test Code -> Controller, Web(html), Interceptor

이제 정말 본격적으로 ToDo 개발을 시작하겠습니다.


github , 배포 URL (첫 접속 시 로딩이 걸릴 수 있습니다.)

profile
평범한 대학생의 공부 일기?

0개의 댓글