참고자료


TypeORM?

= node.js에서 쓰이는 객체 관계형 매퍼(ORM).

ORM?

= Object-relational mapping, 객체-관계 매핑.

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해준다.

객체-관계형 데이터베이스 테이블 간의 관계를 바탕으로 SQL을 자동으로 생성하는 원리.

Model 패턴

Active Record

= 모델 그 자체에 쿼리 메소드를 정의하고, 모델의 메소드를 사용하여 객체를 저장/제거/불러오는 방식. 규모가 작은 서비스에 적합 / 간단히 사용 가능

아래 코드는 BaseEntity를 이용한 코드로, User 객체는 BaseEntity가 갖고 있는 메소드와 static으로 만들어 내는 커스텀 메소드를 모두 이용할 수 있다.

import {BaseEntity, Entity, PrimaryGeneratedColumn, Column} from "typeorm";

@Entity()
export class User extends BaseEntity {
	@PrimaryGeneratedColumn()
	id: number;
	
	@Column()
	firstName: string;

	@Column()
	lastName: string;

	@Column()
	isActive: boolean;

	static findByName(firstName: string, lastName: string) {
		return this.createQueryBuilder("user")
			.where("user.firstName = :firstName", { firstName })
			.andWhere("user.lastName = :lastName", { lastName })
			.getMany();
	}
}