ORM - Object Relational Mapping
DBS (Database System)은 크게
RDB - Relational DataBase ( 관계형 데이터베이스)
NoSQL (Non SQL or Not only SQL) Database
두 가지의 유형으로 나뉘어 있다.
RDB 는 테이블 형식의 2차원 배열로 표현되며 (테이블)
NoSQL은 문서(document), collection 등 여러 방식으로 표현된다.
간단한 차이점으로는
RDB는 수직 확장 (서버 용량의 확장) 이 용이하며
NoSQL은 수평 확장 (서버 갯수의 확장) 이 용이하다.
그래서 ORM 이 뭔데?
프로젝트는 전체적으로
데이터베이스 서버
백엔드 서버
프론트엔드 서버
(+클라이언트 서버)
로 이루어져 있고,
데이터베이스 서버에서는 각 서버에 맞는 QUERY 명령어를 사용하여
데이터베이스 내부의 정보를 관리한다.
백엔드 서버에서 객체 (Object) 데이터를 다룰 때,
그 서버에서 사용되는 언어와,
DB QUERY 명령어를 이중으로 사용하지 않고,
객체 (Object) 와 DB data (RDB or NoSQL) 를 매핑 (Mapping) 하여
백엔드 서버에서 DB 명령어(Query)를 자동으로 생성해 주는것을
ORM - Object Relation Mapping
ODM - Object Document Mapping....
이라고 한다.
1. 브라우저 (클라이언트) 에서 백엔드로 요청 (API) 을 보내면,
2. 요청을 받은 백엔드가 DB 서버와 소통하기 위해 ORM / ODM 을 사용하게 되며
각각 3 - RDB, 4 - Document(Collection) 형식의 NoSQL 과 소통하게 된다.
TypeORM
그렇다면 TypeORM은 무엇인가.
NodeJS 를 비롯한 Javascript, Typescript 플랫폼에서 활용 가능한 ORM 이라고
써있는 공식 페이지의 소개글에서 볼 수 있듯
위의 플랫폼들에서 RDS 를 사용할 때,
DB 명령어들을 자동으로 생성해주기 위한
ORM 모듈이라고 할 수 있을 것이다.
다음 포스팅은
실제 TypeORM을 사용해볼 때
실질적인 사용방법을 포스팅할 예정이다
출처 :
TypeORM - https://typeorm.io/
TypeORM 기본개념 - https://dkant.net/2019/06/17/typeorm/
'BE > Database' 카테고리의 다른 글
[MySQL] 사용자 비밀번호 변경, 사용자 추가, 권한 추가 및 확인 (0) | 2022.09.09 |
---|---|
[DB] DB Schema (데이터베이스 스키마) 와 3단계 데이터 구조 (0) | 2022.07.22 |