TypeORM?? 뭔데??

0
post-thumbnail

1. ORM

  • ORM(Object-Relational Mapping)은 객체지향 프로그래밍(OOP)과 관계형 데이터베이스 사이의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다.
  • Typescript와 Javascript 용 ORM이 TypeORM이다.
  • TypeORM은 MySQL,Oracle,WebSQL 등의 데이터베이스를 지원한다.

2. 설치 및 사용 방법

  • 위에 나온대로 yarn을 쓰게 되면, yarn add @nestjs/typeorm typeorm@0.2 mysql2 이렇게 명령어를 실행하여 설치를 하면 된다.
...
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
        ...
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'test',
      database: 'test',
      entities: [__dirname + '/**/*.entity{.ts,.js}'],
      synchronize: true,
    }),
  ],
})
export class AppModule {}
  • 위 처럼 @nestjs/typeorm 패키지에서 제공하는 TypeOrmModule을 이용하여 DB에 연결할 수 있다.
    1. TypeOrmModule.forRoot : AppModule에 TypeOrmModule을 동적 모듈로 가져온다.
    1. type : TypeOrmModule이 다루고자 하는 데이터베이스의 타입이다.
    2. host : 연결할 데이터베이스 호스트의 주소를 입력한다.
    3. port : 데이터베이스에서 연결을 위해 열어놓은 포트번호이다. 기본적으로 '3306'을 사용한다.
    4. username, password : 데이터베이스에 연결할 유저명과 패스워드이다.
    5. database : 연결하고자 하는 데이터베이스 스키마 이름이다.
    6. entities : 소스 코드 내에서 TypeORM이 구동될 때 인식하도록 할 엔티티 클래스의 경로를 지정한다.
    7. synchornize : 서비스 구동 시 소스코드 기반으로 데이터베이스 스키마를 동기화 할지 여부이다. 로컬환경에서 구동할 때는 개발의 편의를 위해 true로 한다.
      * true일때는 서비스가 실행되고 데이터베이스가 연결될 때 항상 데이터베이스가 연결될 때 항상 데이터베이스가 초기화 되므로 절대 프로젝트에서는 true로 하지 말자!!

마무리

=> 요약하자면, TypeORM은 MySQL을 연결해주는 기능을 하고 개발자의 편의를 도와준다.

profile
끝날때 까지 끝난게 아니야. 결국 내가 이겨!

0개의 댓글