ORM(Object-relational mapping)이란 객체와 관계를 맵핑해주는 것으로 객체와 관계형 데이터 베이스 속 데이터를 연결해주는 것이다.
객체 지향 설계를 할 땐 클래스를 사용하는데 관계형 db에서는 테이블을 이용한다. 즉, 관계 불일치가 일어나게 되는데 이를 ORM으로 해결할 수 있다는 얘기이다.
그렇다면 TypeORM이란?
직접 sql을 작성하지 않아도 db와의 통신을 간편하게 해결해주는 라이브러리로 get, post 등의 메소드를 처리하는데 용이하다. 또한 타입을 정해서 복잡한 모델을 잘 형성할 수 있는 ORM이다. 그렇다고 JS를 지원하지 않는 것은 아니다.
Data Mapper(python), Active Record(rails)패턴을 사용할 수 있다고 한다.
분리된 클래스에 따라 쿼리 메소드를 정의하는 방식으로 Repository를 통해 객체를 저장, 제거, 로드한다.
모델 자체에 쿼리 메소드를 정의한 후 모델의 메소드를 사용하여 객체를 저장, 제거, 로드한다.
두 패턴 모두 공식 문서에 설명이 잘 나와있으니 참고하자!
아직 이러한 패턴을 사용할 정도로 실력이 좋지도 않고, 클래스로 모델을 구현해 본 적이 거의 없다.. 잘 정리해둔 블로그를 추천한다. 추천 블로그!