[Spring] 스프링 부트를 이용한 게시판 프로젝트 - 요구사항 분석, 데이터 모델링(+SECASE, ERD)

전주은·2022년 12월 29일
0
post-thumbnail

1.요구사항 분석

  • 게시글 목록을 보여줄 수 있는 페이지
  • 게시글을 작성할 수 있는 페이지
  • 게시글 상세 정보를 보여줄 수 있는 페이지
  • 게시글 수정, 삭제를 할 수 있는 페이지
  • 댓글을 작성, 수정, 삭제할 수 있는 기능
  • 게시글과 댓글에 대한 검색 기능

2.데이터 모델링

  • UserAccount : 사용자 정보를 저장하는 엔티티
  • Article : 게시글 정보를 저장하는 엔티티
  • ArticleComment : 게시글의 댓글 정보를 저장하는 엔티티

3.API 설계

GET /articles : 게시글 목록을 보여주는 API
POST /articles : 게시글을 작성하는 API
GET /articles/{id} : 게시글 상세 정보를 보여주는 API
PUT /articles/{id} : 게시글을 수정하는 API
DELETE /articles/{id} : 게시글을 삭제하는 API
POST /articles/{id}/comments : 게시글에 댓글을 작성하는 API
PUT /comments/{id} : 댓글을 수정하는 API
DELETE /comments/{id} : 댓글을 삭제하는 API
GET /search : 검색 기능을 제공하는 API

4.데이터베이스 구현(다음글)

UserAccount, Article, ArticleComment 엔티티를 각각의 테이블로 생성하고, 필요한 컬럼들을 정의합니다.

5.비즈니스 로직 구현

요구사항에 맞게 API를 구현합니다.
필요한 서비스 클래스와 레포지토리 클래스를 생성하여 로직을 구현합니다.

📌사용한 프로그램

다이어그램스

USECASE

USECASE는 무엇일까


<출처: 위키백과>

  • 시스템과 사용자 의 가능한 상호 작용을 그래픽으로 나타낸 것이다.
  • 유스 케이스 다이어그램은 시스템에 있는 다양한 기능과 사용자 유형을 보여줄 수 도 있다.
  • 사용 사례는 원이나 타원으로 표시되며 행위자는 종종 막대기로 표시된다.

한마디로 행위자(Actor)가 어떤 기능 사용할 수 있는지 보여주는 그림이다.

게시판 USECASE 예시안

  • 포함 관계(Include)는 포함되는 유스케이스가 포함하는 유스케이스를 실행하기 위해 반드시 실행되어야 하는 경우에 적용한다.
  • 확장 관계(Extend)는 확장 대상 유스케이스를 수행 할 때 특정 조건에 따라 확장 기능 유스케이스를 수행하는 경우에 적용한다.
  • 일반화 관계(Generalization)는 유사한 유스케이스 또는 액터를 모아 추상화한 유스케이스 또는 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계이다.

ERD(Entity Relationship Diagram)

ERD는 무엇일까

  • 객체-관계 모델. 테이블간의 관계를 설명해주는 다이어그램이다.
  • 이를 통해 프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다.

간단히 말해, API를 효율적으로 뽑아내기 위한 모델 구조도라고 생각하면 된다.

Entity간의 관계를 표시하는 방법

게시판 ERD 예시안

0개의 댓글