ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 팀과제 : ORM과 MySQL
    이제 막 슬픔 없이 십오 초 정도가 지났다 2022. 10. 15. 09:30

    ORM (Object Relational Mapper)은 객체와 데이터베이스의 관계를 매핑(Mapping)하는 도구이며,

    시퀄라이저는 이 ORM으로서의 라이브러리, 혹은 모듈이다.

     

    ORM을 통해 관계형 데이터베이스가 다루는 엔티티 (어떤 사물 혹은 개념의 뭉치. 그냥 SQL 테이블을 생각하면 된다.) 를 객체로 활용할 수 있다.

    ORM은 객체간 관계를 바탕으로 SQL을 자동생성한다. 이로써 객체 모델과 관계형 모델 간의 불일치를 해소하는 것이다.

     

    이 효용은 그저 SQL 쿼리문을 직접 작성해야 하는 수고를 덜어주는 정도에 그치지 않는다. 

    ORM의 매개로 말미암아 데이터 베이스와 에플리케이션은 "느슨하게 연결된, 테스트에 용이한" 관계를 맺게 된다.

    혹은 DBMS(Database Management System)에 종속된 정도가 낮아진다고 표현하기도 한다.

     

    예컨대, 테이블의 데이터는 그대로 보존한 채로, 개발자는 자신의 IDE 위에서 테이블의 데이터를 가지고 반복문을 돌릴 수 있다.

    또 독립적으로 작성된 객체나 코드들을 재사용할 수도 있다.

     

    상기한 ORM의 장점들을 거칠게 요약하면 이렇다. 

    "느슨하게 연결된" 관계로 말미암아 개발자는 객체 모델로 코드를 작성할 수 있고, 생산성이 향상된다.

     

    그러나 ORM은 설계에 신중해야 한다.

    프로젝트의 규모가 커질 수록 데이터 간의 관계를 정의하는 일이 복잡해진다.

    관계형 데이터베이스는 테이블 세로축으로는 열(column), 필드(field) 혹은 속성(attribute), 가로축으로는 행(row), 튜플(tuple) 혹은 레코드(record) 등에 의해 짜여져 있다.

    때문에 NoSQL에 비해 상대적으로 유동적이지 못하며, 이러한 데이터베이스의 구조 탓에 join문이 양산될 우려도 있다.

     

    MySQL의 경우, 오픈소스이며 무료이용이 가능하다는 점은 차치하고서라도, 다종다양한 운영체제와 프로그래밍 언어를 위한 API를 마련해놓고 있다는 장점이 있다.

     

    그래서 나도 PHP라는 걸 써보고 싶다.


    참조

    https://hanamon.kr/orm이란-nodejs-lib-sequelize-소개/

Designed by Tistory.