상똥이의 Back-End 공부방
[Board Project] 3. 도메인 설계 (ERD작성/ 자바 코드 작성) 본문
목차
1. ERD 작성
2. 자바 클래스에 도메인 표현
[1. ERD작성]
1. 테이블을 Article(게시글), ArticleComment(댓글) 두 가지로 생성한다
- 게시글 테이블의 pk는 작성자 id로 설정한다
- 게시글에는 제목, 내용, 해시태그 등의 속성이 필요하다
- 게시글에는 생성일시, 생성자, 수정일시, 수정자 등의 메타데이터가 필요하다
- 댓글 테이블의 pk는 작성자 id로 설정하고 fk는 게시글 작성자 id로 설정한다
- 댓글에는 내용 등의 속성이 필요하다
- 댓글에는 생성일시, 생성자, 수정일시, 수정자 등의 메타데이터가 필요하다
2. ERD 작성
(1) draw.io (diagrams.net) 에 들어가서 새 다이어그램 만들기 클릭
(2) ER다이어그램 선택 후 생성
(3) 파일 형태 SVL로 바꾸기
(4) 폴더 선택 : Board-practice/main/Document
(5) 아래와 같이 생성
(6) ctrl+s 누르면 repository에 ERD 생성됨
[2. 자바 클래스에 도메인 표현]
1. 게시글 클래스
(1) 경로 : main/java/domain
(2) 클래스명 : Article
(3) 도메인 이름 및 타입
- 작성자 아이디 : id, Long
- 내용 : content, String
- 해시태그 : hashtag, String
- 작성일시 : createdAt, LocalDateTime
- 작성자 : createdBy, String
- 수정일시 : modifiedAt, LocalDateTime
- 수정자 : modifiedBy, String
(4) 코드 (접은글)
package com.fastcampus.projectbord.domain;
import java.time.LocalDateTime;
public class Article {
private Long id; // 게시글 작성자 아이디, PK
private String title; // 게시글 제목
private String content; //게시글 내용
private String hashtag; // 해시태그
private LocalDateTime createdAt; // 게시글 작성일시
private String createdBy; // 게시글 생성자
private LocalDateTime modifiedAt; // 게시글 수정일시
private String modifiedBy; // 게시글 수정자
}
2. 댓글 클래스
(1) 경로 : main/java/domain
(2) 클래스명 : Article
(3) 도메인 이름 및 타입
- 작성자 아이디 : id, Long
- 댓글이 달린 게시글 : article, Article
- 내용 : content, String
- 작성일시 : createdAt, LocalDateTime
- 작성자 : createdBy, String
- 수정일시 : modifiedAt, LocalDateTime
- 수정자 : modifiedBy, String
(4) 코드 (접은글)
package com.fastcampus.projectbord.domain;
import java.time.LocalDateTime;
public class ArticleComment {
private Long id; // 댓글 작성자 아이디
private Article article; // 댓글이 달린 게시글
private String content; // 댓글 내용
private LocalDateTime createdAt; // 댓글 작성일시
private String createdBy; // 댓글 작성자
private LocalDateTime modifiedAt; // 댓글 수정일시
private String modifiedBy; // 댓글 수정자
}
마무리~~~
도메인설계와 작성을 모두 마무리 했으므로 칸반보드에서 도메인 설계를 Done으로 옮긴다
다음엔 데이터베이스와 인텔리제이를 연동할 것이므로 ㄷ이터베이스 로직 구현을 ready로 옮긴다
'프로젝트 > 게시판 만들기' 카테고리의 다른 글
[Board Project] 6. 데이터베이스 연결 테스트 준비 (mokaroo/ MySQL/ JPA) (0) | 2023.10.09 |
---|---|
[Board Project] 5. 데이터베이스 연동하기(2) (annotation/ JPA) (0) | 2023.09.05 |
[Board Project] 4. 데이터베이스 연동하기 (MySQL/ JPA) (0) | 2023.09.05 |
[Board Project] 2. 프로젝트 생성 (스프링 이니셜라이저/ UML/ api 설계) (0) | 2023.09.05 |
[Board Project] 1. Git 준비 (Git에서 폴더 생성/ kanban Board 활용) (0) | 2023.09.05 |