전에 프로젝트를 진행하면서 조금 더 깊게 Django에 대해 생각 할 수 있는 기회가 생겼다. 그 때 생각 했던 것들을 정리해 보려한다.
- ORM을 쓰는 이유
- 데이터베이스의 접근을 줄이는 방법
- Django를 좀 더 활용하는 법
그 중 첫번째 ORM을 쓰는 이유에 관한 글이다.
ORM(Object Relational Mapping)은 객체 관계 매핑으로 객체 지향 언어와 데이터 베이스의 통역사 같은 역활을 한다.
전에 생각으론 단순히 ORM을 사용하는 이유는 보다 직관적이고 사람이 이해하기가 쉬워서만 사용한다고 생각하였다.
하지만 찾아보니 좀 더 많은 이유가 있었고 그에 따른 단점들도 존재 하였다.
1. 직관성(객체 지향적 코드)
2. 재사용, 유지보수의 편리성이 증가
3.DBMS 종속성 하락
1. 완벽한 ORM 으로만 서비스를 구현하기가 어렵다.
2. DB와 바로 연결하는 것보다 초기설정이 더 많아지거나 복잡해 질 수있다.
3. DB와 ORM 프레임워크, 내부코드에 대한 충분한 이해가 없는 경우 문제 해결이 힘들다.
4. DB에 직접 Query문을 보내는 것이 아니기 때문에 성능저하가 발생한다.
Django ORM을 사용하면서 느꼈던 장단점도 있고 생각하지 못한 장단점도 있다. 직관성이나 재사용성은 생각을 해보았지만 데이터베이스 측면 즉, 서버에서의 생각을 많이 하지 못한것 같다. 단순히 ORM을 사용만 하는 것이 아닌 동작 방식을 이해하고 작성해야 서버의 성능을 향상시킬 수 있다는 것을 알게 되었다.