12. TypeORM

어니언·2023년 1월 31일
0

타입ORM은 Object-Relational-Mapping의 약자로, 객체관계맵핑 즉, 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑시켜주는 확장자이다.

객체지향프로그래밍은 클래스를 사용하고, 관계형 db는 테이블을 사용한다. 객체모델과 관계형 모델 간에는 불일치가 존재하는데 ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.

타입스크립트의 사용이 증가하면서 함께 typeORM도 같이 증가하고 있는데 그 이유는 모댈의 정의를 제대로 한다면 타입을 정하는 장점을 얻ㅇ르 수 있고, 복잡한 모델간의 관계를 형성할 수 있다는 장점이 또 있기 때문이다.

Active Record 패턴
모델 그 자체에 query메소드를 정의하고, 모델의 메소드를 사용하여 객체를 저장,제거,불러오는 방식이다.

Data Mapper 패턴
분리된 클래스에 query메소드를 정의하는 방식이며, repository를 이용해 객체를 저장, 제거, 불러온다. 앞서말한 엑티브레코드와 의 차이점은 모델에 접근하는 방식이 아닌 레포지토리에서 데이터를 접근한다는 것이라고 할 수 있다.

두가지 패턴은 각각의 장단점이 존재하기 때문에 어느것이 우월하고 어느것이 못하다고 정의할 수 없다 그러니 상황에 맞게 개발을할 때 이용하면 될것이다.

주로 엑티브레코드는 규모가 작은 어플리케이션에서 적합하고 간단하게 사용할수있고, 데이터맵퍼는 규모가 큰 어플리케이션에서 적합하고 유지보수하는데 효과적이라 할 수 있다.

profile
안녕하세요.

0개의 댓글