TypeORM์ ์ ์
- TypeORM์ ์๋ฐ์คํฌ๋ฆฝํธ, ํ์
์คํฌ๋ฆฝํธ๊ณผ ํจ๊ป ์ฌ์ฉ๋์ด Node.js, React Native, Expo์์ ์คํ๋ ์ ์๋ ORM์
๋๋ค.
- ORM(Object Relational Mapping)์ผ๋ก ๊ฐ์ฒด-๊ด๊ณ ๋งคํ์ผ๋ก ๊ฐ์ฑ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋์ผ๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ ๋ปํฉ๋๋ค.
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
age: number;
}
const repository = connection.getRepository(User);
const user = new User();
user.firstName = "Timber";
user.lastName = "Saw";
user.age = 25;
await repository.save(user);
const allUsers = await repository.find();
const firstUser = await repository.findOne(1);
const timber = await repository.findOne({ firstName: "Timber", lastName: "Saw" });
await repository.remove(timber);
TypeORM์ ์ฅ์
- ๋ค์ํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ง์ํด์ค๋๋ค.(MariaDB,NOSQL ๋ฑ)
- Active Record์ Data Mapperํจํด์ ์ง์ํด์ค๋๋ค.
- ์ฝ๋์ entities์ ํจ๊ป ์์
์ ํ ์ ์์ต๋๋ค.
TypeORM์ ๋จ์
- ์คํ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ์ ์ด ์์ต๋๋ค.
- ์ฟผ๋ฆฌ ์์ฑ์ด ์กฐ๊ธ ๋ณต์กํ๋ค๋ ์ ๋ ์กด์ฌํฉ๋๋ค.
TypeORM์ ํฅํ ๋ฏธ๋
- ์ฃผ๊ฐ ๋ค์ด๋ก๋ ์๊ฐ 40๋ง๊ฑด์ด ๋์ผ๋ฉด์ ์ง์์ ์ผ๋ก ์ฆ๊ฐ๋๊ณ ์๋ ์ถ์ธ์
๋๋ค.
- ํ์ง๋ง ์์ง๊น์ง Sequelize๋ผ๋ ๋ํ์ ์ธ ORM๊ณผ ๋น๊ต๋๊ณ ์์ผ๋ฉฐ ์์ง ๋ฐ๋ผ์ก๊ธฐ์๋ ์กฐ๊ธ ๋ ์ง์ผ๋ด์ผํ ๊ฑฐ ๊ฐ์ต๋๋ค.