TypeORM

박찬효·2022년 9월 18일
0
post-custom-banner

ORM이란?

ORM(object-relational mapping)은 객체지향 프로그래밍과 관계형 데이터베이스 사이의 호환되지 않는 데이터를 변환하는 시스템입니다. 객체지향 프로그래밍은 Class를 사용하고 관계형 데이터베이스는 Table을 사용합니다.

TypeOrm이란?

TypeOrm이란 TypeScript 와 Javascript(ES5, ES6, ES7)용 ORM이다. MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL 데이터 베이스를 지원합니다.

Setting

먼저 연결을 위 해 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 로 연결하기 위한 프로그램 설치.

Entity 생성

// 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 패턴을 모두 지원합니다. 즉 , 고품질의 느슨한게 결합되고 확장 가능하고 유지 관리 가능한 애플리케이션을 가장 생산적인 방식으로 할 수 있습니다.
(결합도가 낮고, 높은 수준의 확장 가능한 어플리케이션을 작성할 수 있다고 합니다.)

profile
개발자가 되기 위한 1인
post-custom-banner

0개의 댓글