2020-01-04 TIL

오늘은 TypeORM의 many to many relations(mtm)에 대해 집중적으로 공부했다.

following, follower 관계(ff관계)와 친구 상태를 구현했어야 했는데 ff관계에서 mtm을 사용하고 친구 상태를 표현하기 위해 별도의 테이블을 하나 더 추가했다. 친구 상태를 표현하는 것은 ff관계만으로 처리할 수 있을 것 같다. 하지만 친구의 숫자와 following, follower의 숫자를 각각 계산하려면 결국 별도의 테이블이 필요하다고 판단했다.

TypeORM의 mtm은 insert, delete에 자동으로 cascade가 설정되는 점이 재미있었다. cascade를 option으로 좀 더 잘 활용하면 편리할 것 같은데 아직 사용법을 잘 모르겠다 ㅋㅋ

mtm에서 insert와 delete는 array에 값을 넣고 빼는 것 처럼 구현하는 점도 이색적이었다. Relation table을 수면 위로 부각시키지 않기 위해 고안한 방법같다. 별도의 테이블에 insert, delete 하는 것이 아니라 class의 array field를 사용하는 느낌으로 코드를 작성하게 된다.

여러모로 Sequelize 보다 재미있는 ORM이다. 앞으로 ORM을 써야 할 일이 있으면 Sequelize보다는 TypeORM을 선택하겠다.


Written by@[Suho]
뭐든지 만들어보자.