( 춤 안춥니다. )
이번 시리즈는...
백엔드로 가는길,
장뽀장뽀! 장고 뽀개기!
입니다.
(우와아아아앙아ㅏㅏㅏㅏ~!!!!)
( 모르면, 공부하고 와라! 이말입니다! )
( 아니라구요? 크흠... )
( Model 을 짜는거죠! )
장고가 데이터베이스를 다루는 방식인데요!
1. 테이블 ( 정보덩어리 ) 하나하나를 정의하는 방식이에요!
2. Model 은 Table 하나하나와 서로 Mapping ( 연결 ) 되요!
3. 장고에서 Model 은 Python 의 ' Class 객체 ' 모양이에요!
4. 이 Model 에 대한 정의는 장고의 models.py 파일에서 하구요!
정보를 담아둘 공간에 대해서는
장고라는 프레임워크에서 Class 로 정의해요! ( Python 으로 코딩! )
그리고,
위에서 정의한 내용대로 실제 DataBase 에 테이블을 만드는 작업을 하죠!
( 이것을 Migrate 라고 해요! / 한국말로 ' 이주시키다 ' 라는 뜻! )
기준이 될 내용이 필요하겠죠?
그 구조를 미리 정하는 것이 모델링이에요!
다뤄야할 정보가 너무나도 많고, 복잡하다면?
정보의 내용보다 정보들이 묶이는 특징들을 더 우선으로 하여,
최대한 단순하게 모양을 잡아야겠죠??
양이 많고, 내용이 복잡한 정보들에 대해서
중요성이 덜한 부분을 배제하고 생각하는 것을
' 추상화 ' 라고 해요!
복잡한 위성지도!
좀 더 보기 좋아진 지도 ! ( ?? )
더 보기 좋아진 지하철노선도 !
아주 보기 좋은 지하철노선도!
엄청 간단해지고, 보기 좋아졌죠??
이렇게, 핵심적인 부분에 대해서만 확실하게 다루는게 추상화!
앞으로 다룰 도구인 ' Aquery ' 를 이용하면,
ERD ( Entity Relationship Diagram )
라는 그림을 이용해 더 쉽게 구조를 파악할 수 있어요!
( 이것이 데이터베이스의 추상화! 그것의 결정체! )
이렇게 생겼어요! ↓
( 상자 하나가 Table, 밑에 있는 줄들이 Column 의 특징이나 속성! )
지난 글 의 내용을 기준으로 할거에요!
만약에, 이 표를 ERD 로 표현한다면!
ERD 에 있는 상자 하나가 표였으니까, 상자 하나만 만들면 되겠죠?
그리고,
ERD 는 추상화의 결정체니까, 추상화를 해야겠죠?
정보의 내용인 Field 들은 신경쓰지않고, Column 만 볼거에요!
이것을 ERD 의 모양으로,
얍!
이렇게 비어있는 상자에 우리가 내용을 채우는 거랍니다!
( Aquery 사용법은 잠깐쓰! 시리즈에 올릴 예정이에요! )
' 이름 : 춤추는망고 ' , ' 직업 : 개발자 ' , ' 가진 돈 : 5000원 '
이라는 정보로 ' 춤추는망고 ' 가 충분히 설명되죠!
' 춤추는망고, 개발자, 5000원 ' 이라는 내용과
' 춤추는망고 ' 라는 존재의 연결성이 명확하기 때문에,
' 춤추는망고 ' 를 하나의 개체 ( Entity ) 라고 할 수 있어요!
' 춤추는망고, 노래하는후추, 돈버는포도 ' 라는 개체 ( Entity ) 모두
' 이름, 직업, 가진 돈 ' 이라는 공통적인 특징 ( Attribute ) 들의 연결성이 명확해
하나의 표에 같이 있어도 어색하지 않았죠?
공통적으로 설명되는 속성이 있으면서 개체들 사이의 연관성이 명확할 때,
그 정보들이 모인 것이
하나의 테이블이 되요!
그러한 테이블들이 어떤 명확한 연관성을 가지고 있을 때,
그 테이블들이 모인 것이
하나의 스키마가 되는 것이죠!
이러한 테이블이나 스키마를 기준으로
여러 정보를 단독으로 호출하거나 조합한 뒤 정제하여,
Front-End 에게 API 로써 제공해야 하기 때문에,
다루는 정보들의 관계를 명확하게 이해해야 해요!
그러기 위해선, 정보들의 관계에 대해 더 집중해야겠죠?
( 정보들의 관계에 집중하는데에 엄청난 도움을 준답니다! )
( ERD 와 그 필요성도 알아봤죠! )
고생하셨습니다.