ORM
기존에 쿼리문으로 직접 DB에 접근하던 사람들에게 ORM에 대해서 설명드리고자 아래와 같은 글을 작성하게 되었습니다.
ORM은 '통역사'라고 생각하시면 됩니다. 두 나라 사람들이 서로 다른 언어를 사용하는데, 이들이 소통하려면 통역사가 필요합니다.
- 한 나라는 '프로그래밍 언어(예: JavaScript)'를 사용합니다.
- 다른 나라는 '데이터베이스 언어(예: SQL)'를 사용합니다.
- ORM은 이 둘 사이에서 '통역'을 담당합니다.
실생활의 예를 들어보겠습니다.
당신이 온라인 서점을 운영한다고 가정해 봅시다. 이 서점에는 수많은 책 정보가 있고, 이를 데이터베이스에 저장해야 합니다.
- 데이터베이스 관점: 데이터베이스에서는 '책' 테이블이 있고, 여기에 '제목', '저자', '가격' 등의 컬럼이 있습니다.
- 프로그래밍 관점: JavaScript에서는 '책'을 객체로 표현합니다.
// 예시 코드
let book = { title: "해리 포터", author: "J.K. 롤링", price: 20000 };
- ORM의 역할:
- ORM은 JavaScript 객체를 데이터베이스 테이블의 행(row)으로 변환합니다.
- 반대로, 데이터베이스의 데이터를 JavaScript 객체로 변환합니다.
ORM의 장점
- 언어 통역: SQL을 직접 작성할 필요 없이 JavaScript로 데이터베이스 작업을 할 수 있습니다.
- 시간 절약: 반복적인 데이터베이스 작업 코드를 줄여줍니다.
- 안전성: SQL 인젝션과 같은 보안 위험을 줄여줍니다.
비유로 설명하자면:
- ORM 없이 작업하는 것 = 외국에 가서 직접 현지어를 써가며 소통하는 것
- ORM을 사용하는 것 = 통역사와 함께 여행하는 것
ORM(예: Sequelize)을 사용하면, 복잡한 데이터베이스 작업을 더 쉽고 직관적으로 할 수 있습니다.
마치 통역사가 있어 현지인과 자유롭게 대화할 수 있는 것처럼요.
Sequelize ORM
nodeJS에서 ORM 중 하나인 Sequelize ORM을 예시로 보여드리겠습니다.
[Sequelize ORM 공식문서]
https://sequelize.org/docs/v6/
Sequelize v6 | Sequelize
npm version
sequelize.org
[Sequelize ORM 활용 정리 블로그]
https://blog.devari.kr/2020/nodejs/nodejs-sequelize
Node.js 에서 Sequelize 설치 및 간단한 사용 방법 :: Dev Ari
Sequelize 설치
blog.devari.kr
Sequelize Model Query - Finders
https://sequelize.org/docs/v6/core-concepts/model-querying-finders/
메서드 하나 중 예시일 뿐입니다. 자세하 내용은 위의 공식 홈페이지를 방문하시면됩니다..!
findByPk - Sequelize ORM의 예시
이 findByPk방법은 제공된 기본 키를 사용하여 테이블에서 단 하나의 항목만 가져옵니다.
const project = await Project.findByPk(123);
if (project === null) {
console.log('Not found!');
} else {
console.log(project instanceof Project);// true
// Its primary key is 123
}
'Dev Framework > Node.js' 카테고리의 다른 글
[Node.js] 이벤트 루프의 이해: 비동기 처리의 핵심 (0) | 2024.09.23 |
---|---|
[NestJS] Node진영에서의 NestJS의 위상 (0) | 2024.09.21 |
[NestJS] NestJS는 Spring에서 많은 영감을 받았다. (0) | 2024.09.21 |
[NestJS] NestJS는 처음이지? 어서와. (0) | 2024.09.21 |