위의 사진은 각각 다양한 대표적인 ORM입니다.
ORM은 (Object Relational Mapping)은 영어그대로 객체와 관계를 매핑을 시키주는 원리를 이야기합니다.
옛날에는 ORM 도구가 없어도 sql를 사용하면서, 데이터베이스를 모두 잘 사용하고 있었음에도 불구하고, 이런 새로운 ORM이라는 기술이 나오게 된 이유는 무엇일까?
ORM이 나오기전에는 간단한 데이터를 가지고 오고싶을땐 데이터베이스 구조에 맞춰 SQL구문을 만들어 데이터를 뽑아 Object에 매핑을 해주는데, 비즈니스 로직에 더 집중이 어려워서 나오게된것이 ORM입니다.
요즘에는 많은 회사들이 Spring boot, Node.js, Python 등 많이부분에 ORM기능을 넣고있는 중인데 확실히 SQL 과 Object 매핑이 아니라 데이터베이스 데이터와 Object 맵핑이라서 개발하기에는 훨씬 수월한것 같습니다.
ORM의 대표적인 장점을 알아보자면?
1. 재사용, 유지보수의 편리성이 증가합니다.
2. SQL의 절차적이고 순차적으로 접근을 하는것이 아니라 객체 지향적으로 접근으로 인해서 빠르게 개발을 할수있습니다.
3. SQL문으로 작성을 하는것보단 하나의 언어로 집중하기가 쉬워집니다. 4. 매핑 정보가 정확해서 ERD를 많이 의존할필요가 없어집니다. 5. 생산성 CRUD 같은 간단한 쿼리는 자동으로 만들수있습니다.
이런 ORM에서도 단점은 존재하는데?
1.사용에서는 편하지만 설계단계에서는 매우 신중해야됩니다. 2.상대적으로 높은 학습곡선이 있다고 생각이 듭니다. 3.복잡한 퀴리작성이 힘들수도 있습니다. 4. 프로젝트가 복잡해지거나, 쿼리자체가 복잡해질때 ORM으로 작업하기가 힘들어 집니다.