파이썬 기반의 오픈소스 웹 애플리케이션 프레임워크(Open Source Web Application Framework)
라고 사전적 의미가 나와있다.
여기서,
👉 오픈소스: 코드를 온라인상으로 언제든 참조할 수 있다.
👉 프레임워크: 개발할 수 있도록 만들어 놓은 작업장
한마디로 웹 어플리케이션을 만들때 맨땅에 헤딩하지 않고 개발에만 집중할 수 있도록 만들어놓은 작업장이다.
그렇다면 프레임워크와 라이브러리의 차이점은 무엇일까?
어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐에 달려 있다.
프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣는 거라면
라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있다.
일반적으로 장고는 MVT(Model-View-Template) pattern 으로 작동하게 된다.
위의 그림을 풀어 설명하자면,
객체(Object)와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하는데, 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM은 마치 통역사같은 역할로 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.