ORM ( Object Relational Mapping )
: 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법을 말합니다.
CLI(Command Line Interface)에 한 종류인 MySQL을 사용할 때 명령어를 통해 접속하고 show tables 등과 같은 명령어로 테이블 생성, 데이터 생성, 데이터 조회 등을 할 수 있습니다. 이것을 SQL Query 문 이라고 합니다.
SQL QuerY문은 기본적으로도 복잡한 문법을 가지고 있으며, 종류 또한 매우 다양하므로 아무리 뛰어난 개발자라도 이를 전부 다 외워서 사용하기에는 매우 힘듭니다. 따라서 데이터를 쉽게 볼 수 있는 GUI 도구(관리프로그램)이 존재합니다.
GUI 도구는 사용자가 직관적으로 조작 방법을 이해할 수 있게 고안되어 있는 것이 장점입니다.
GUI 도구는 Sequelize, TypeORM, 등등 여러 가지가 존재!
GUI 도구 중 하나인 TypeORM은 MySQL, MariaDB, Postgres, CockroachDB, SQLite, Oracle, SAP 등등 많은 데이터 베이스를 지원하며, 현재 존재하는 다른 모든 javaScript ORM과 달리 Data Mapper 패턴
과 Active Record
를 모두 지원합니다.
그러므로 고품질의 느슨하게 결합(Loose Coupling)을 통해 결합도가 낮고, 높은 수준의 확장 가능한 애플리케이션을 작성할 수 있습니다.
Active Record Pattern:
모델 자체 내에서 모든 쿼리 메서드를 정의하고 모델 메서드를 사용하여 오브젝트를 생성,삭제,조회,수정할 수 있게 하는 방식을 의미합니다.
Data Mapper 패턴:
"레포지토리" 라는 별도의 클래스에서 모든 쿼리 메서드를 정의하고 이 "레포지토리"를 사용하여 오브젝트를 생성, 삭제, 조회, 수정할 수 있습니다.