Board [ Model ] ?
게시물에 필요한 데이터가 어떤것이 필요한지를 정의해주기 위해서 게시물의 모델을 만들겠습니다.
예를 들어 게시물 데이터에는 게시물 번호[IDX], 작성자, 게시글 등이 필요합니다.
이를 정의해줄 코드를 작성하는 것이 모델입니다.
Model 정의하기
- Class를 이용하거나 Interface를 이용하면 됩니다.
Interface
- 변수의 타입만을 체크합니다.
Class
- 변수의 타입도 체크하고, 인스턴스 또한 생성할 수가 있습니다.
Board Model 만들기
먼저 boards 디렉토리 안에 boards.model.ts 파일을 생성합니다.
./boards/boards.model.ts
export interface Board {
id: string;
title: string;
description: string;
status: BoardStatus;
}
export enum BoardStatus {
PUBLIC = 'PUBLIC',
PRIVATE = 'PRIVATE',
}
BoardStatus란 ?
- 게시물이 공개 게시물인지, 비밀 게시물인지 나누어 주기 위해 생성한 것입니다.
- 두개의 상태 이외에는 나오면 안되기 때문에 이 두가지의 상태만 나올수 있게 타입스크립트의 기능인 enumberation을 추가로 작성해 사용한 것입니다.
생성한 Board 모델을 이용한 타입정의
방금 작성한 Board Model을 이용해 Service와 Controller에 Board 변수와 메소드에서 리턴해주는 값에 타입을 정의해줍니다.
./boards/boards.service.ts
./boards/boards.controller.ts
이렇게 타입을 정의해주면 좋은 이유
- 타입을 정의해주는 것은 선택사항입니다.
- 하지만! 이렇게 정의해주므로서 원하는 타입과 다른 코드를 사용할 시 에러를 발생시켜 사전에 미리 에러를 방지할 수 있습니다.
- 코드를 읽는 입장에서 타입과 리턴값을 쉽게 이해할 수 있어 가독성이 좋습니다. (readable)
'NestJS' 카테고리의 다른 글
게시물 생성하기 (Controller 부분) (0) | 2022.03.17 |
---|---|
게시물 생성하기 (Service 부분) (0) | 2022.03.17 |
[실습] Board Module 로직 구현 (0) | 2022.03.16 |
간단하게 알아보는 NestJS Service (0) | 2022.03.16 |
간단하게 알아보는 NestJS Providers (0) | 2022.03.16 |