일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코로나19
- 막창맛집
- 심폐지구력
- 조깅
- 심박수
- 인천맛집
- 무궁화분식
- 마라탕맛집
- 다이어트
- 시맨틱태그
- 송도커낼워크
- 유연성
- SementicWeb
- 바이러스
- 칼국수맛집
- 근지구력
- 청라맛집
- 탄수화물
- 아이들이 좋아하는
- TypeORM
- 근력
- 에너지원
- 비전공자개발자이야기
- 달리기
- 걷기
- HTML
- K 디지털 크레딧
- 서구맛집
- SementicTags
- 부평파스타맛집
- Today
- Total
songin.dev님의 블로그
[기록하는 습관] TypeORM & Entity 본문
목적 : 학습내용 정리
TypeORM이란?
TypeORM은 TypeScript로 작성된 ORM(Object-Relational Mapping) 라이브러리로, Node.js, Browser, React Native 등 다양한 플랫폼에서 사용할 수 있다.
TypeORM 특징
- TypeScript 지원: TypeORM은 TypeScript를 기본 언어로 사용하기 때문에, 타입 안정성과 가독성을 높일 수 있습니다.
- 다양한 데이터베이스 지원: TypeORM은 MySQL, PostgreSQL, SQLite, MSSQL, Oracle 등 다양한 데이터베이스를 지원합니다.
- ORM 기능 제공: TypeORM은 객체와 데이터베이스 간의 매핑을 쉽게 할 수 있도록 ORM 기능을 제공합니다. 이를 통해 객체를 데이터베이스에 저장하거나, 데이터베이스에서 객체를 가져오는 등의 작업을 쉽게 할 수 있습니다.
- 데이터 마이그레이션: TypeORM은 데이터베이스 스키마를 관리하는 도구인 마이그레이션을 제공합니다. 이를 통해 데이터베이스 스키마를 버전 관리하거나, 데이터베이스 스키마를 업데이트하는 작업을 쉽게 할 수 있습니다.
- 관계형 데이터베이스 지원: TypeORM은 관계형 데이터베이스를 다루는 데 필요한 다양한 기능을 제공합니다. 이를 통해 데이터베이스의 관계를 쉽게 설정하고, 관련된 데이터를 가져오는 작업을 쉽게 할 수 있습니다.
- Active Record 및 Data Mapper 패턴 지원: TypeORM은 Active Record 및 Data Mapper 패턴을 지원합니다. 이를 통해 객체 지향 프로그래밍을 할 때, 데이터베이스와의 상호작용을 쉽게 할 수 있습니다
Entity란?
TypeORM에서 Entity는 객체(Object)와 데이터베이스의 테이블(Table)을 매핑하는 클래스(Class)입니다. Entity는 데이터베이스 테이블의 스키마를 정의하는 역할을 합니다.
Entity 클래스는 @Entity 데코레이터를 사용하여 정의합니다. 이 데코레이터는 데이터베이스에서 해당 클래스를 어떤 테이블로 매핑할 것인지 지정하며, 해당 클래스의 속성들은 테이블의 컬럼(Column)으로 매핑됩니다.
예를 들어, User Entity 클래스를 만든다면, 이 클래스는 데이터베이스의 user 테이블과 매핑될 수 있습니다. User 클래스의 속성(예: 이름, 이메일, 비밀번호 등)은 user 테이블의 컬럼으로 매핑됩니다. 이렇게 Entity 클래스를 정의하면, TypeORM은 해당 클래스와 데이터베이스 간의 매핑을 관리하며, CRUD(Create, Read, Update, Delete) 작업 등을 쉽게 수행할 수 있게 됩니다.
Entity 클래스는 TypeORM에서 제공하는 다양한 데코레이터를 사용하여 관계형 데이터베이스의 다양한 기능을 지원할 수 있습니다. 예를 들어, @Column 데코레이터를 사용하여 컬럼의 데이터 타입, 길이, 기본값 등을 설정할 수 있으며, @OneToMany, @ManyToOne 등의 데코레이터를 사용하여 관계형 데이터베이스의 관계를 설정할 수 있습니다.
User Entity 예시
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 컬럼을 설정하였습니다. name, email, password 속성은 각각 @Column 데코레이터로 컬럼 매핑을 설정하였습니다. 이렇게 Entity 클래스를 정의하면, TypeORM을 사용하여 User 테이블과 관련된 CRUD 작업 등을 쉽게 수행할 수 있습니다.
위의 글은 ChatGPT를 참고하여 작성한 글입니다.
'TIL(Today I Learned)' 카테고리의 다른 글
[공부 정리] Class & OOP & Design Pattern (0) | 2023.03.06 |
---|---|
데이터 타입에 따른 저장 방식 (0) | 2023.03.03 |