티스토리 뷰

javacsript/공부

Active Record패턴과 Data Mapper 패턴

실전압축코딩 2023. 7. 20. 10:50

https://velog.io/@koreanhole/Active-Record%ED%8C%A8%ED%84%B4%EA%B3%BC-Data-Mapper-%ED%8C%A8%ED%84%B4

 

Active Record패턴과 Data Mapper 패턴

모든 query메소드들을 모델에 정의하고 객체의 저장, 제거 그리고 불러오는 기능들은 모델의 메소드를 통해 사용하는 패턴이다. 결과적으로 SQL을 직접 사용하지 않으면서 데이터를 조작할 수 있

velog.io

 

TypeORM에서 Active Record 패턴을 위한 BaseEntity 알아보기

https://techbless.github.io/2020/03/15/TypeORM%EC%97%90%EC%84%9C-Active-Record-%ED%8C%A8%ED%84%B4%EC%9D%84-%EC%9C%84%ED%95%9C-BaseEntity-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0/

 

TypeORM에서 Active Record 패턴을 위한 BaseEntity 알아보기

TypeScript, Node.js, 알고리즘, 자료구조, 데이터베이스, 개발 팁, 각종 문제 해결 방법 등을 공유합니다.

techbless.github.io

Active Record 패턴

Active Record패턴은 모델 자체 내에서 모든 쿼리 메서드를 정의하고 모델의 메서드를 통해 데이터를 조회, 삽입, 삭제등을 할 수 있습니다. 따라서, SQL을 사용하지 않고도 모델 내에서 데이터를 조작하는 다양한 메서드를 제공합니다.

Data Mapper 패턴이란?

Data Mapper 패턴에서는 모든 쿼리 메소드들을 별도의 클래스에 정의한다.
이때 생성된 별도의 클래스를 repository라고 부른다.
결국 데이터베이스를 접근하기 위해 모델이 아닌 repository를 통해 접근하는것을 Data mapper라고 한다.

TypeORM 에서 사용하기

TypeORM에서는 Active Record패턴과 DataMapper패턴 두가지 모두 사용할 수 있습니다. 이중 Active Record패턴을 사용하는 방법에 대해 알아보려합니다.

TypeORM에서 Active Record 패턴을 사용하려면 반드시 Active Record를 사용하려는 Entity클래스는 BaseEntity 클래스를 상속받아야합니다. BaseEntity는 Entity를 사용하는 다양한 메서드들을 제공합니다. 또한 BaseEntity는 Repository의 대부분의 메서드들을 가지고 있기때문에 Active Record Entity를 사용하면서 대부분 Repository나 EntityManager를 사용할 필요가 없습니다.

'javacsript > 공부' 카테고리의 다른 글

[js] 실행 컨텍스트  (0) 2023.07.26
[TS] 옵셔널 파라미터  (1) 2023.07.21
js 구조분해할당 [destructuring]  (0) 2023.07.11
js spread/rest 문법  (0) 2023.07.11
js call appy bind  (0) 2023.06.07