ORM(object relational mapping)

2021. 8. 6. 00:46·🔧 Backend
반응형

데이터를 저장하거나 수정하는 등 데이터를 처리할 때에는 데이터베이스를 사용한다.

이때, 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 문법을 배우지 않아도 된다는 장점이 있어 훨씬 좋다.
반응형

'🔧 Backend' 카테고리의 다른 글

Do it! 모델 만들기  (0) 2021.08.06
플라스크 ORM 라이브러리 사용하기  (0) 2021.08.06
블루프린트 라우트 함수 관리  (0) 2021.08.04
플라스크 어플리케이션 만들기_초보  (0) 2021.08.01
플라스크 프로젝트 생성하기  (0) 2021.07.30
'🔧 Backend' 카테고리의 다른 글
  • Do it! 모델 만들기
  • 플라스크 ORM 라이브러리 사용하기
  • 블루프린트 라우트 함수 관리
  • 플라스크 어플리케이션 만들기_초보
S J ʕ·͡ᴥ·ʔ
S J ʕ·͡ᴥ·ʔ
  • S J ʕ·͡ᴥ·ʔ
    누워서 코딩하기 - 떡 먹는 것처럼 쉽고 재밌게!
    S J ʕ·͡ᴥ·ʔ
  • 전체
    오늘
    어제
    • 분류 전체보기 (99)
      • 👩‍💻 Programming (25)
        • React (18)
        • JavaScript (5)
        • Swift (1)
        • JAVA (1)
      • 🌐 CS-Study (16)
        • CS 스터디 (13)
        • 컴퓨터 네트워크 (3)
      • 🔧 Backend (20)
      • 🎨 UX & HCI (12)
      • 📊 Data analysis (7)
      • 📚 License study (19)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
S J ʕ·͡ᴥ·ʔ
ORM(object relational mapping)
상단으로

티스토리툴바