본문 바로가기

웹/Django

[Django] 모델 이해하기 , 데이터베이스/ 2021.09.17

* 참고 자료 : 코드잇 Django 강의

 

1. 모델이란?

모델은 데이터의 구조를 잡아주고 정의된 구조를 기반으로 데이터베이스와 소통하는 역할을 한다. 

 

(1) 데이터의 구조 

데이터의 구조란 우리가 저장할 정보들의 형태를 말한다.

메뉴판을 예로 들어보자.

메뉴판은 음식이름, 설명, 가격등으로 구성이 되어 있다.

여기서 음식이름과 설명은 문자열(str) 형태로 저장하면 되고, 가격은 정수(int)형태로 저장하면 된다.

이런식으로 각각의 데이터구조와 형식을 저장하는 것을 데이터모델링이라고 한다.

데이터모델링은 쉽게 말해 우리 서비스의 요구사항에 맞게 데이터의 구조를 짜는것이며 데이터를 어떤식으로 저장해야할 지 고민하는 과정이다. 

데이터모델링

 

그렇다면 실제로 데이터를 저장하는 곳은 어디일까?

 

(2) 데이터베이스

실제로 데이터를 저장하는 곳을 데이터베이스라고 한다. 

대표적인 데이터베이스로는 MySQL, PostgreSQL, Oracle, MongoDB, SQLite 등이 있다.

그리고 SQL이라는 언어로 데이터베이스에 추가(Create)하거나 조회(Read)하거나 수정(Update)하거나 삭제(Delete)한다.

그러나 우리는 웹사이트를 만들기위해 파이썬도 배우고 HTML/CSS와 자바스크립트 그리고 장고 프레임워크까지 배웠는데 SQL도 배우려면 너무 버거울 것이다.

그래서 장고에서는 파이썬을 이용해서 데이터베이스와 소통하도록 도와주는 ORM이 있다.

원래 데이터베이스와 소통하기 위해서는 SQL코드를 작성해야하는데 이 ORM을 쓰면 파이썬을 사용해서 데이터베이스와 소통할 수 있다. 장고에서는 바로 모델이 ORM기능을 제공한다.

우리가 서비스의 요구사항에 맞게 데이터의 구조를 모델에 정리한다음 파이썬 코드를 본 후 장고에서 자동으로 SQL코드로 실행한 후 우리가 정의해준 형태에 맞게 데이터베이스에 저장이되는 것이다.

 

 

 

이렇게 데이터베이스를 다루기 위해서 직접 SQL코드를 다루지않고 파이썬을 이용해서 할 수있다는것은 개발 효율을 엄청나게 끌어올려준다.