코딩일기

[Django] ORM 이란? (feat. object relational mapping) 본문

Code/기타

[Django] ORM 이란? (feat. object relational mapping)

daje 2021. 1. 31. 22:17
728x90
반응형

 

 

 

안녕하세요 다제입니다. 

 

오늘은 장고의 ORM에 대해서 알아보도록 하겠습니다. 

 

ORM이란 object relational mapping의 줄임말입니다. 

 

장고의 프레임워크에 포함된 기능으로 

우리가 작성한 코드를 장고가 읽고 SQL언어로

"자동"으로 변환하여 Database와 소통하는 시스템을 의미합니다. 

 

장고의 이러한 ORM 시스템 덕분에

저희는 Database와 소통하기 위해

SQL을 직접 배워야할 필요가 없는 것이죠

 

이렇게 장고가 알아서 만들어준 

SQL Database를

Model이라고 부르고

이 Model은 field로 구성되어 있습니다. 

 

이러한 field는 저희가

일을 하기에 매우 좋은 형태로

구성되어 있습니다. 

 

몇가지 예를 들어드릴게요~

 

1) imagefield

  -. 오직 그림파일만 선택될 수 있도록 사전에 구성되어 있습니다. 

 

2) datefield

  -. 오직 날짜만 입력할 수 있도록 구성되어 있습니다.

3) emailfeld

  -. 이게 대박인데요! 우리가 많이 사용하는 비밀번호는 입력할 수 없도록 사전에 정의되어 있습니다. 

  -. 또한, 이메일 유효성 검사 기능까지 탑재되어 있어 바르게 이메일을 입력하였는지도 바로 체크할 수 있습니다. 

  -. (참고로 이메일 유효성에 관련된 코드를 작성하려면 최소.. 아무리 못해도 2개 이상의 함수로 20줄 이상 코드를 작성해야합니다.)

  -. (이 외도 어마어마한 field가 있으니 링크를 참조 부탁드립니다.)

 

 

즉, 우리가 작성한 파이썬 코드를

장고가 이용하는 것입니다. 

 

이렇게 장고가 이용한다는 점은

매우 강력하면서도 단점이 있는데요

 

장점을 먼저 설명을 드리면,

유지관리가 용이하다는 것입니다. 

 

장고가 제공하는 틀 안에서 코드를

작성하다보니 다른 개발자가 오더라도 

꼼꼼하게 코드를 작성해놓았다면

쉽게 코드 내용을 파악하는게 가능하죠

 

그런데 이런 점이 단점으로 작용하기도 합니다. 

톡창성이 떨어지고 확장할 수 있는 범위가

어느정도 한정되어 있다는 말이기도 하니까요!

 

 

오늘은 장고가 AWESOME한 이유인 

ORM에 대해서 알아보았습니다. 

 

앞으로도 유익한 정보를 공유드리겠습니다. 

감사합니다. ^^

728x90
반응형