목적: 학습 콘텐츠 구성
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를 참고하여 작성되었습니다.