예를 들어 다음과 같이 사용자 정보를 조회하려면 SQL 문을 직접 작성해야 합니다.
SQL
SELECT * FROM users WHERE id = 1;
이런 접근법은 데이터베이스의 스키마, SQL 문법, 쿼리 최적화 지식이 필요합니다. 또 애플리케이션 코드에서 데이터베이스에 접근하는 로직이 점점 복잡해질수록 SQL과 코드 사이의 전환 비용이 증가합니다. 예를 들어 모국어가 한국어인 사람과 모국어가 영어인 사람이 서로의 모국어를 모른 채 대화를 나눌 때 간단한 영어나 한국어로는 대화가 통할 수 있지만, 복잡한 문장이나 고급 어휘를 사용하면 대화를 나누기 무척 어려운 것과 같습니다.
그래서 등장한 것이 ORM입니다. ORM(Object-Relational Mapping)은 데이터를 저장하고 불러오는 과정에서 SQL을 직접 작성하지 않고도 객체 지향 언어 문법으로 데이터베이스와 상호 작용할 수 있게 해 줍니다. 대표적인 라이브러리로는 장고에 사용하는 장고 ORM과 파이썬에 사용하는 SQLAlchemy가 있습니다. 책에서는 데이터베이스를 제어할 도구로 SQLAlchemy를 사용합니다.