ORM이란?
ORM(object-relational mapping)은 객체지향 프로그래밍과 관계형 데이터베이스 사이의 호환되지 않는 데이터를 변환하는 시스템입니다. 객체지향 프로그래밍은 Class를 사용하고 관계형 데이터베이스는 Table을 사용합니다.
TypeOrm이란?
TypeOrm이란 TypeScript 와 Javascript(ES5, ES6, ES7)용 ORM이다. MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL 데이터 베이스를 지원합니다.
먼저 연결을 위 해 TypeOrm을 install 해야합니다.(Mysql)
$ yarn add @nestjs/typeorm typeorm@0.2 mysql2
@nestjs/typeorm
: NestJS 용 TypeORM.typeorm@0.2
: 일반 TypeORM으로 0.2버전을 설치하는것으로, typeorm 만 작성한다면 최신 버전으로 설치 가능합니다.mysql2
: TypeORM 을 MySQL 로 연결하기 위한 프로그램 설치.// board.entity.ts
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Board {
@PrimaryGeneratedColumn('increment')
number: number;
@Column()
writer: string;
@Column()
title: string;
@Column()
contents: string;
}
@Entity
: Board class가 실행될 때, typeorm에 의해 Entity 테이블을 만들어 줍니다.@PrimaryGeneratedColumn
: 자동으로 생성될 값의 컬럼입니다.increment
: 데이터가 한 줄씩 쌓일 때마다 자동으로 숫자가 1씩 증가하여 값이 생성됩니다.uuid
: 중복되지 않는 문자열 ID가 자동으로 생성됩니다.@Column
: 표 형태에서 열
에 해당. 실제 들어갈 데이터의 값의 컬럼입니다.실행하기
yarn start:dev
실행 명령어는 package.json에서 어떻게 설정했느냐에 따라 바뀔 수 있습니다.
TypeORM 특징
TypeORM은 많은 데이터 베이스를 지원하고 현재 존재하는 다른 모든 JavaScript ORM과 달리 Active Record 및 Data Mapper 패턴을 모두 지원합니다. 즉 , 고품질의 느슨한게 결합되고 확장 가능하고 유지 관리 가능한 애플리케이션을 가장 생산적인 방식으로 할 수 있습니다.
(결합도가 낮고, 높은 수준의 확장 가능한 어플리케이션을 작성할 수 있다고 합니다.)