github-blog.png


✍️ Today I Learned




1. TypeORM이란?


  • TypeORM은 Node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리이다.

  • TypeORM은 MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana 및 WebSQL과 같은 여러 데이터베이스를 지원한다.

    ORM(Object Relational Mapping) 이란?

    객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업이다.

    ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있다.



1-1. ORM vs JavaScript


  • TypeORM

    const boards = Board.find({
    	title: 'Hello'.
    	status: 'PUBLIC'
    });
  • JavaScript

    db.query('SELECT * FROM boards WHERE title = 'Hello' AND status = 'PUBLIC', (err, result) =>
    	if(err) throw new Error('Error');
    	boards = result.rows;
    });
  • ORM은 모델을 기반으로 DB 테이블 체계를 자동으로 생성하지만 순수 JS로만 사용하게 된다면 모두 수동으로 처리해주어야한다.

  • 또한, 데이터베이스에서 개체를 쉽게 삽입, 업데이트 및 삭제(CRUD)를 할 수 있다는 장점이 있으며 테이블 간의 매핑(1:1, 1:N, N:N) 또한 손쉽게 처리할 수 있다.



🤔 Understanding

  • 사실 ORM은 Sequelize만 사용해봤는데 Sequelize는 TypeScript와는 호환성 이슈로 많은 불편함이 있다는 정도만 안다.

  • 반면 NestJS의 프로그래밍 언어는 타입스크립트를 기본으로 채택하고 있기에 조금더 호환성에서 자유로울 것 같다는 생각이 우선 든다.

  • ORM은 사실 문법을 따로 학습을 계속 해야 할 듯하다. Sequelize를 쓸 때도 공식문서 (공식문서 진짜..너무 불친절) 를 항상 참조해서 문법을 완성시켰었다.

  • 우선 Maria DB와 현재 진행중인 실습 프로젝트를 연결 후 다양한 문법을 실습해봐야 알 듯 하다.