ORM은 Object-Relational Mapper
의 준말이란다. 다 뜯어보면 객체를 관계형태로 맵핑해준다는 것 같다. 객체를 사용한다는 건 ORM이 객체 지향 프로그래밍이 사용하는 클래스
를 쓴다는 것이고, 관계형태라는 것은 데이터베이스를 테이블
로 받아준 다는 걸 의미한다. 여기서 테이블은 탁상이 아니라 표
이다.
그래서 ORM을 사용하면 객체를 통해서 간접적으로 데이터베이스의 데이터를 다루게 되는데, 여기서 객체 모델과 관계형 모델간 불일치를 해결하는게 ORM의 장점이라고 한다.이래서 ORM 만으로는 서비스 구현을 완전하게 하기가 힘들어서 TypeORM이 나왔다고 하는데...
여기서 객체 모델은 뭐고 관계형 모델은 뭔지 서비스 구현을 완전하게 왜 못하는지 불일치는 어떻게 생기는 건지 궁금했는데 그걸 설명해준 페이지를 못 찾아서 블로그에 짚어만 둔다. 나중에 멘토님한테 여쭤봐야겠다...
위에서 나온 ORM의 불편한 점을 해결하기 위해 나온 기술이고, 단어에서 보이는 말처럼 ORM의 한 갈래이고 객체와 관계형 데이터베이스를 매핑(연결)을 통해서 모델 간 불일치를 해결해 객체와 데이터베이스의 변형에 유연하게 사용할 수 있는 기술이란다.
무슨 말인지 하나도 모르겠고 적당히 여러가지 DB(MySQL이나 MariaDB, Postgres, Oracle, MongoDB 등)를 지원하는 패키지인 것 같다.
더 찾아보니 Nest.js랑 관련이 있는 것 같은데 아직 거기까지 안 배워서 모르겠다. 모르는 건 블로그에 더 적고 싶지 않으니까 공부를 하고 난 뒤 나중에 이어서 더 적어보겠다.