typeORM이 제대로 뭔지 모르고 넘어서가 transaction이나 query runner를 하기 어려워졌기 때문에 다시 공부해 보려고 합니다. 스노우볼에 강하게 맞은 기분입니다.
ORM
Object-relational mapping - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해줍니다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용합니다.
객체 모델과 관계형 모델 간에 불일치가 존재하기 때문에
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결합니다.
express와 관계형 데이터베이스를 조합할 때 자주 사용되는 ORM으로 sequelize와 typeorm 이 있는데
typeorm을 사용하는 이유는 모델의 정의를 제대로 하면 타입을 정하는 메리트를 최대한으로 얻을 수 있고, 복잡한 모델간의 관계를 형성할 수 있다는 장점이 있기 때문입니다.
const { DataSource } = require("typeorm");
const database = new DataSource({
type: process.env.TYPEORM_CONNECTION,
host: process.env.TYPEORM_HOST,
port: process.env.TYPEORM_PORT,
username: process.env.TYPEORM_USERNAME,
password: process.env.TYPEORM_PASSWORD,
database: process.env.TYPEORM_DATABASE,
});
제가 사용하는 코드인데 사용하는 database 의 종류와 host, port, username, password 를 이용하여 새로운 class 로 만든다라고 이해했습니다. 편하게 사용하라고 만든 모듈이니 deep하게 들어갔다가는 머리가 터질 것이 분명합니다.
typeorm 속에 있는 DataSource 기능을 사용하여 저의 database를 이용하는 법을 알게 되었습니다.
다음 순서는 바로... 대망의 query runner 와 transaction 기능입니다.
'코딩 개발' 카테고리의 다른 글
[AWS] EC2 (0) | 2022.11.23 |
---|---|
Mysql transaction (0) | 2022.11.22 |
Path parameter & Query parameter (0) | 2022.11.17 |
RESTful API (0) | 2022.11.17 |
Node - 각 layer 별 error handling (0) | 2022.11.14 |