본문 바로가기
Study in Bootcamp/Pre-Project

[Pre-Project] Day 4 : ERD 작성, 테이블 명세서 작성, API 명세서 작성

by Bhinney 2022. 10. 25.

프로젝트를 하는 과정에 있어서 기록하는 것이다.

잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다.


✅ ERD 작성

  • ERD : Entity Relationship Diagram
  • 테이블 간의 관계를 설명해주는 다이어그램
  • 프로젝트에서 DB의 구조를 한눈에 파악 가능

 

✔️프로젝트 ERD 작성

  • 엔티티 별로 Master Table 생성 -> Users, Questions, Answers, Comments
  • 각 엔티티 안에 들어갈 필드 정리
  • 구현에 필요한 Table 생성 -> Questions_Vote, Answers_Vote
  • 각 테이블 별로 연관관계 표시

✅ 테이블 명세서 작성

  • 테이블과 인덱스를 데이터베이스 공간에 맵핑시키고 저장공간 등의 물리 모델을 기술
  • 서비스에서 사용될 테이블을 미리 설계하고 그 내용을 문서화데이터 베이스 명 : 데이터베이스 이름을 작성

  • 테이블 명 : 테이블 이름을 작성
  • 요구 사항 ID : 테이블이 사용되는 요구사항 정의서의 ID를 작성
  • 테이블 설명 : 테이블의 목적 및 역할을 간략하게 작성
  • Column 명 : Column을 인식할 수 있는 명칭을 작성
  • Column ID : Column ID를 기술
  • 타입 및 길이 : Column의 타입과 최대 허용 길이를 작성
  • Not Null : 필수 항목 여부를 표시
  • PK : Primary Key인지 여부를 표시
  • FK : Foreign Key인지 여부를 표시
  • IDX : 인덱스를 작성
  • 기본값 : 속성의 기본값이 있는 경우에 그 값을 작성
  • 제약 조건 : 속성의 특이한 제약조건이 있는 경우 작성

✅ API 명세서 작성

  • 기능과 Method, URI를 기본으로 구성을 해 보았다.
  • 이 부분도 계속해서 수정해 나아갈 예정이다.
  • 회고 및 이 글을 작성 후, PostMan으로 문서를 작성할 수 있다는 것을 알게 됨. >> 해당 내용 찾아볼 것.

🔥 해야할 것

: 끝나면 취소선으로 표시

1️⃣ Implement Users Entity Class 

  • 필드 : usersId, email, password, displayName, usersStatus
  • UsersStatus 작성
  • 엔티티 클래스 어노테이션 : @Entity, @Getter, @Setter, @NoArgsConstructor
  • 필드 어노테이션 : @Id, @GeneratedValue, @Column, @Enumerated
  • 어노테이션 요소
    • GeneratedType.IDENTITY : 기본 키 생성을 DB에 위임,
                                                     Id가 null일 경우 해당 객체의 Id를 DB의 AUTO_INCREMENT를 가져와 할당
    • length : 최대 길이 지정
    • nullable = false : null 값 비허용
    • unique = true : 유일한 값 설정, 동일한 값이 들어갈 수 없도록 제약 설정
    • EnumType.STRING : enum 값을 텍스트 값 그대로 저장

2️⃣ Implement Exception Handler

  • 동일한 에러 응답을 위한 ErrorResponse 구현
  • @RestControllerAdvice 어노테이션을 이용해 전역에서 발생할 수 있는 예외를 하나의 클래스에서 처리하기 위한 GlobalExceptionAdvice 구현
  • 에러 메세지가 일정하게 출력되길 원하면 enum으로 Exception Code 구현 -> BusinessLogicException 구현

 

 

댓글