반응형
데이터를 저장하거나 수정하는 등 데이터를 처리할 때에는 데이터베이스를 사용한다.
이때, SQL 쿼리라는 구조화된 질의를 작성하고 실행하는 등 복잡한 과정이 필요한데
ORM(object relational mapping)을 이용하면 파이썬 문법만으로도 데이터베이스를 다룰 수 있다.
SQL 쿼리와 ORM 비교
id | subject | content |
1 | 안녕하세요 | 가입 인사드립니다! |
2 | 질문 있습니다 | ORM이 궁금합니다. |
이때, 구성된 question 테이블에 새로운 데이터를 삽입하는 쿼리는 보통 다음처럼 작성한다.
insert into question (subject, content) values ('안녕하세요', '가입 인사드립니다!');
insert into question (subject, content) values ('질문 있습니다', 'ORM이 궁금합니다.');
하지만 ORM을 사용하면 쿼리 대신 파이썬 코드로 다음처럼 작성할 수 있다.
question1 = Question(subject=’안녕하세요’, content='가입 인사드립니다!')
db.session.add(question1)
question2 = Question(subject=’질문 있습니다’, content='ORM이 궁금합니다.')
db.session.add(question2)
코드에서 Question은 파이썬 클래스이며, 이처럼 데이터를 관리하는 데 사용하는 ORM 클래스를 모델이라고 한다. 모델을 사용하면 내부에서 SQL 쿼리를 자동으로 생성해 주므로 직접 작성하지 않아도 된다. 즉, 파이썬만 알아도 데이터베이스에 질의할 수 있다.
ORM의 장점
- ORM을 이용하면 데이터베이스 종류에 상관 없이 일관된 코드를 유지할 수 있어서 프로그램을 유지·보수하기가 편리하다.
- 또한 내부에서 안전한 SQL 쿼리를 자동으로 생성해 주므로 개발자가 달라도 통일된 쿼리를 작성할 수 있고 오류 발생률도 줄일 수 있다.
- ORM을 이용한 새 데이터 삽입 예는 코드 자체만 놓고 보면 양이 많아 보이지만 별도의 SQL 문법을 배우지 않아도 된다는 장점이 있어 훨씬 좋다.
반응형
'백엔드' 카테고리의 다른 글
Do it! 모델 만들기 (0) | 2021.08.06 |
---|---|
플라스크 ORM 라이브러리 사용하기 (0) | 2021.08.06 |
블루프린트 라우트 함수 관리 (0) | 2021.08.04 |
플라스크 어플리케이션 만들기_초보 (0) | 2021.08.01 |
플라스크 프로젝트 생성하기 (0) | 2021.07.30 |