ORM(Object-relational Mapping)

one·2021년 9월 1일
0
post-thumbnail

ORM은 데이터베이스 용어인데 프론트개발자도 알고있어야 할까?

  • 결론부터 말하자면 잘 알고있는 것이 좋다.
    ORM, RDBMS, SQL를 알고있으면 데이터 구조 설계하고 구현하는데 많은 도움이 될 것이다.

📒 ORM(Object Relational Mapping)

  • ORM은 객체지향 프로그래밍의 객체(Object)와 관계형 데이터베이스(Relational DataBase)의 데이터를 연결(Mapping)하는 기술을 의미한다.

🔍 ORM의 장점

  • ORM으로 생성된 가상의 객체지향 데이터베이스는 프로그래밍 코드 또는 데이터베이스와 독립적이므로 재사용 및 유지보수가 용이하다.

🔍 ORM 요소

  • Schema Object
    관계형 db에 user라는 테이블이 있고 ORM을 쓰고있다면 아래의 예시처럼 db user테이블에 mapping되는 객체를 선언한다.
//ex_sql)
Create Table User(
	id Integer NOT NULL,
    name Varchar(255)
);
//ex_javascript) 
models.User = {
	id : DataTypes.Integer.Not_Null,
  	name : DataTypes.Varchar(255),
};
  • Query Builder
    자바스크립트를 query로 만들면 이것을 실제 db에서 실행할 sql로 변환해서 만들어주는 기능.
    sql query를 분해해서 여러 객체로 나눌 수 있기 때문에 ORM을 잘하면 db query관리에 유용하다.
//ex-sql)
Select id, name From User 
Where id = 1;
//ex-javascript)
User.findAll({
	attributes : ["id", "name"],
  	where : {id : 1};
});
  • Migration Tool
    db스키마 변경사항 기록, 관리하기 위한 Migration Tool이다.
    소스코드는 깃으로 버전관리를 하는데 소스코드와 강하게 묶인 db를 그냥 사용할 경우 스키마구조에 대해 같이 버전관리할 방법이 없다. 또한, 로컬에서 개발 후 자동배포 할 때에도 유용하다.
    배포시 자동으로 db스키마 변경사항에 대해 변경이 가능하기 때문에 db스키마도 자동으로 관리가 가능하다.
//ex)
202105111530-add-name-to-user.js
202108310920-create-order-table.js
...

💡 What is Database Migration?

  • 데이터베이스를 하나의 플랫폼에서 다른 플랫폼으로 옮기는 것

출처

profile
늘 호기심을 갖고, 새로운 것에 도전할 것.

0개의 댓글