스프링 부트 게시판 프로젝트 - 2 | 요구사항 분석 및 도메인 설계

seren-dev·2022년 8월 14일
0

요구사항 분석

기능 목록

  • 회원 기능
    • 회원가입
      • 아이디, 패스워드, 이름, 나이
    • 로그인
      • 아이디, 패스워드
  • 게시판 기능
    • 게시판 기능은 게시글 조회를 제외하고 모두 로그인한 유저만 가능
    • 게시글 등록
      • 유저가 제목, 내용 작성
    • 게시글 조회
      • 번호, 제목, 작성자(아이디), 작성 날짜
    • 게시글 상세 조회
      • 제목, 작성자(아이디), 내용, 작성 날짜
    • 게시글 내용 수정
    • 게시글 삭제

  • 로그인은 쿠키와 세션을 사용해 구현할 것이다.
  • 사용자의 로그인 인증 체크는 스프링 인터셉터를 사용해 간단하게 구현할 것이다.
  • 추가적인 기능은 나중에 구현할 예정이다.
    • 예시
      • 해당 게시글 작성자만 수정, 삭제 가능
      • 게시글 제목/작성자 검색 필터
      • 게시글 페이징 기능
      • 댓글 기능
      • 예외 처리

도메인 모델

  • 회원 - 게시글: 일대다 관계
  • 회원은 여러 개의 게시글을 작성할 수 있다.

엔티티 클래스 설계

모든 엔티티는 공통 속성으로 id 가 있다. 이 값은 각 엔티티마다 고유한 값을 가진다.

회원(User) : 아이디(loginId), 패스워드(password), 이름(name), 나이(age)를 가진다.

게시글(Board) : 한 명의 회원은 여러 개의 게시글을 작성할 수 있으므로 회원과 게시글은 일대다 관계다. 게시글은 제목(title), 내용(content), 게시글을 작성한 회원(user), 작성일자(registerDate)를 가진다.

DB 테이블 설계

연관관계 매핑

회원과 게시글: 일대다 단방향 관계다. Board.userBOARD.USER_ID 외래 키와 매핑한다.

0개의 댓글