데이터 베이스를 사용하다 보면 ORM이라는 말을 자주 들어봤을 것이다.
하지만 저는 처음 들어보기 때문에 이렇게 기록을 남겨요..ㅎㅎ
ORM이 뭐야?
객체(클래스)와 관계(관계형 데이터 베이스)와의 설정을 의미한다.
내가 이해한 말로 풀어보자면 ORM을 사용하면 쿼리문을 직접 작성하지 않아도 된다.
ORM에서 사용하는 Class가 RDBMS의 테이블과 연결된다고 생각하면 쉽다.
Class의 메서드를 사용하는데 테이블에 대한 쿼리문을 실행하는 것과 동일한 행동을 한다!라고 생각하면 될 것 같다.
쉽게 말하면 나 대신 데이터베이스와 대화를 해주는 번역기와 같다.
ORM을 왜쓰지?
클래스를 사용하는 것처럼 데이터베이스를 조작할 수 있으니 객체지향처럼 더 직관적이고 로직에 집중할 수 있게 해준다!
CRUD를 위해 매우 긴 쿼리 문을 작성할 필요가 없어진다!
그리고 재사용이 간편해 유지보수할때에도 간편함을 제공해준다.
이렇게 보면 ORM은 완벽해보인다. 하지만 모든 것에는 장단점이 있듯이 ORM에도 단점이 존재한다.
ORM은 뭐가 안좋을까?
일단 완벽한 ORM만으로는 복잡한 프로젝트를 구현하기 어렵다.잘못 구현될 경우 속도저하 및 일관성이 무너진다.
그러면 ORM은 어떻게 쓰는건데?
ORM에는 여러가지 프레임 워크가 존재한다.그 중 가장 많이 사용되고 있는 Sequelize를 소개합니다!
Sequelize란?
Sequelize는 nodejs에서 가장 많이 사용되고 있는 ORM으로 MYSQL, PostgresSQL, MariaDB, SQLite, MSSQL을 지원한다.
가장 큰 특징은 Promise를 기본으로 지원해준다는 점이다!!
비동기 작업을 지원하여 복잡한 비동기 코드를 깔끔하고 쉽게 만들 수 있게한다.
또 체이닝을 통해 값을 전달하거나 연속된 작업을 처리 할 수 있다.
위와 같은 장점으로 인해 Sequelize는 nodejs에 가장 특화된 ORM이라고 할 수 있다!!
여기까지 ORM과 Sequelize에 대해 간단하게 알아보는 시간을 가졌습니다.
끝!
'웹 프로그래밍 > BackEnd' 카테고리의 다른 글
[네트워크] Websocket과 socket.io (0) | 2021.10.06 |
---|---|
[Backend] OAuth란?(+ 동작방법) (3) | 2021.09.30 |
로그인 - 쿠키와 세션 (0) | 2021.09.29 |
[Database] ERD란 무엇일까? (0) | 2021.09.27 |
[nginx] nCloud서버에 nginx적용하기 (2) | 2021.09.17 |