ORM, 분명히 편리하다. ORM
은 보통 Query Builder
객체들이 있고, 메서드 호출을 통해 쿼리를 생성한다. 그리고 그 결과를 객체로 매핑해서 가져와준다.
나는 ORM
을 Laravel에서 처음 접했다. Laravel
에서는 Eloquent라고 부르는데, 그렇게 편리할 수가 없었다.
그런데 시간이 좀 지나고 보니, Eloquent
에 너무 의존하게 되는 나를 발견하게 되었다. 그리고 자꾸 Query Builder
만 쓰다 보니까, SQL
문법을 점점 까먹게 되었다.
그리고 Eloquent
를 쓰다 보면, 쿼리로 짜는게 편할 때가 있다. 이런 경험들을 하고 나니까, 굳이 ORM
을 써야 하나? 하는 생각이 들기 시작했다.
그리고 지금, 다시 ORM
의 필요성을 느끼게 되었다.
애초에 모든 것에는 트레이드 오프가 존재하기 마련이다. ORM
을 사용하면서 얻는 것이 있으면 잃는 것이 있는 법이다. 그런데 일부 쿼리를 짜기 힘든 경우 때문에 객체의 큰 이점을 포기한다? 이건 비효율적이라는 것을 깨달았다.
어차피 대부분의 어플리케이션은 간단한 CRUD
덩어리일 뿐이다. 복잡한 쿼리가 필요한 경우 ORM
을 안쓰면 된다.
이 단순한 것을 깨닫는데 오래 걸린 것 같다.