본문 바로가기
CODE/Back-end

Prisma와 PlanetScale - [1] ORM

by zerozero\base 2022. 6. 9.

최근에 진행 중인 MOSS 프로젝트는 Prisma와 PlanetScale로 백엔드를 구현하고 있다.

국내에선 낯선 스택이기도 하고 한국어로 된 자료가 거의 없어 접근하기 매우 어려웠다. 프로젝트에서 이 기술을 제안해주신 분이 영어에 능통해서 시도해 볼 수 있었다.

MongoDB나 Mongoose도 간단하게만 접해봤는데, 이번 기회에 백엔드를 제대로 다뤄보게 되었다. 우선 글쓴이는 프론트엔드 쪽이다보니, 아래 설명은 이해하고 있는 선에서 정리했다.

ODM/ORM

우선 ODM이나 ORM은 데이터베이스에서 정보를 꺼내어 쓰는 일을 편리하게 하는데 목적이 있다.

 

그 중에서 ORM(Object Relational Mapping)은 객체 지향 프로그래밍을 사용한다. 객체 지향 데이터 구조에서 모든 데이터는 객체(Object)이고 각 객체는 독립된 데이터와 함수를 지닌다. 그런데 객체 지향에선 클래스를 사용하다보니, 테이블을 사용하는 관계형 데이터베이스와 차이가 발생한다. 이로 인해 객체 모델과 관계형 모델 간에 불일치가 존재하는데, 그래서 이를 해결하기 위해 객체 간의 관계를 바탕으로 SQL을 생성해내는 변환 기술을 갖추고 있다.

 

반면 ODM(Object Data Mapping)은 SQL과 달리 데이터를 도큐먼트 안에 JSON 형식으로 데이터베이스(Document Database)로 담는 NoSQL 형태로 이를 매핑하는 방식이다. 객체를 도큐먼트 표기법으로 변환하기 위해 JSON이나 JSON API를 사용한다. ODM 방식의 라이브러리로는 대표적으로 Mongoose가 있다.

 

Prisma

Prisma는 ORM 방식을 채택하고 있는 데이터베이스 라이브러리이다. CLI로 모든 기능을 처리할 수 있고, Prisma Studio를 통해 GUI 방식으로 데이터베이스를 관리할 수도 있다.

npx prisma studio

 

'CODE > Back-end' 카테고리의 다른 글

multer로 이미지 업로드 기능 만들기  (0) 2022.01.01
HTTP Method를 활용한 요청 및 응답  (0) 2022.01.01
NPM 패키지 설치와 Express, Nodemon  (0) 2021.12.31
API 서버 만들기  (0) 2021.12.31
Node.js  (0) 2021.12.27

댓글