[기록하는 습관] TypeORM &

목적: 학습 콘텐츠 구성

TypeORM이란 무엇입니까?

TypeORM은 Node.js, Browser 및 React Native와 같은 다양한 플랫폼에서 사용할 수 있는 TypeScript로 작성된 ORM(Object-Relational Mapping) 라이브러리입니다.

ORM 기능 입력

  • TypeScript 지원: TypeORM은 TypeScript를 기본 언어로 사용하기 때문에 유형 안전성과 가독성을 향상시킬 수 있습니다.

  • 다중 데이터베이스 지원: TypeORM은 MySQL, PostgreSQL, SQLite, MSSQL 및 Oracle을 포함한 다중 데이터베이스를 지원합니다.

  • ORM 기능 제공: TypeORM은 객체와 데이터베이스 간의 손쉬운 매핑을 위해 ORM 기능을 제공합니다.

    이렇게 하면 데이터베이스에서 개체를 저장하고 검색하는 것과 같은 작업을 쉽게 수행할 수 있습니다.

  • 데이터 마이그레이션: TypeORM은 데이터베이스 스키마를 관리하는 도구인 마이그레이션을 제공합니다.

    이렇게 하면 버전 제어 또는 데이터베이스 스키마 업데이트가 더 쉬워집니다.

  • 관계형 데이터베이스 지원: TypeORM은 관계형 데이터베이스 작업을 위한 다양한 기능을 제공합니다.

    이렇게 하면 데이터베이스에서 관계를 쉽게 설정하고 관련 데이터를 검색할 수 있습니다.

  • 활성 레코드 및 데이터 매퍼 패턴 지원: TypeORM은 활성 레코드 및 데이터 매퍼 패턴을 지원합니다.

    이를 통해 개체 지향 프로그래밍에서 데이터베이스와 더 쉽게 상호 작용할 수 있습니다.

엔터티란 무엇입니까?

TypeORM의 엔터티는 데이터베이스의 개체와 테이블을 나타내는 클래스입니다.

엔티티는 데이터베이스 테이블의 스키마를 정의하는 역할을 합니다.

엔티티 클래스는 @Entity 데코레이터로 정의됩니다.

이 데코레이터는 데이터베이스에서 클래스를 매핑할 테이블을 지정하고 클래스의 속성은 테이블의 열에 매핑됩니다.

예를 들어 사용자 엔터티 클래스를 만드는 경우 해당 클래스는 데이터베이스의 사용자 테이블에 매핑될 수 있습니다.

사용자 클래스 속성(예: 이름, 이메일, 비밀번호 등)은 사용자 테이블의 열에 매핑됩니다.

이와 같이 엔터티 클래스를 정의함으로써 TypeORM은 클래스와 데이터베이스 간의 매핑을 관리하고 CRUD(Create, Read, Update, Delete) 작업을 쉽게 수행할 수 있습니다.

엔티티 클래스는 TypeORM에서 제공하는 다양한 데코레이터를 사용하여 다양한 관계형 데이터베이스 기능을 지원할 수 있습니다.

예를 들어 @Column 데코레이터를 사용하여 열의 데이터 유형, 길이, 기본값 등을 설정하고 @OneToMany 및 @ManyToOne 데코레이터를 사용하여 관계형 데이터베이스 관계를 설정할 수 있습니다.

사용자 엔터티의 예

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ length: 50 })
  name: string;

  @Column({ length: 100 })
  email: string;

  @Column()
  password: string;
}

User 클래스는 @Entity 데코레이터로 테이블 연결을 설정하고 @PrimaryGeneratedColumn 데코레이터로 ID 열을 설정합니다.

이름, 전자 메일 및 암호 속성의 경우 열 매핑은 @Column 데코레이터로 지정됩니다.

이러한 방식으로 Entity 클래스를 정의하면 TypeORM을 사용하여 User 테이블에서 CRUD 작업을 쉽게 수행할 수 있습니다.

위 글은 ChatGPT를 참고하여 작성되었습니다.