Today I learnt What Django Is

Jiwon Jung·2020년 12월 31일
0

T.I.L

목록 보기
7/10
post-thumbnail


영화만큼 무지막지한 python Django를 배우기 시작했다.
앞으로 Django를 이해하기 위해 중요한 키워드를 정리해보았다.

Django

장고(Django)는 파이썬으로 작성된 오픈 소스 웹 프레임워크로, MVT(모델/뷰/템플릿) 패턴을 따르고 있다.

#KEYWORD
Web Framework
MVT 패턴
CRUD

Web Framework

framework: 뼈대 작업이라는 뜻 자체와 같이 기본적으로 웹 app을 제작하는 도구와 기본 틀을 제공하는 프로그램들을 말한다.
Django도 역시 Webframework 프로그램 중 하나로 파이썬을 기본으로 한다.
2020 top web framework
위와 같은 다양한 웹프레임워크가 존재한다. 만들고자하는 웹페이지의 속성, 사용하는 언어에 따라 사용하는 웹프레임워크가 달라진다.

그렇다면 웹페이지 제작에 필요한 뼈대라는 것이 무엇일까?
멘토님이 아주 적절한 표현을 해주셔서 인용해보겠다.

웹 프레임워크는 뭔든 것이 갖추어진 주방과 같다. 내가 집에서 빵을 굽고자하는데 집에는 오븐도, 반죽기도, 빵틀도, 숙성고 등등 도구가 없어 만들수가 없다. 직접 도구를 구할수가 있지만 만드는 빵에 비해 도구 비용이 지나칠수가 있다. 도구 없이 제작이 가능하나 품질이 떨어질수 밖에 없다. 이를 해결하기 위해 모든 도구가 갖추어진 주방에서 빵을 구우면 된다.

주방이 바로 framework이다. 빵을 굽는 사람은 django를 이용하는 개발자이며 빵은 웹이다. 이미 빵을 굽기 위해 구비된 환경에서 품질 좋은 빵을 구울수가 있다. 요리하는 음식에 따라, 선호하는 조리법에 따라 좋은 환경이 갖추어져 있는 주방의 기준이 다르 듯이 framework을 고르는 기준도 비슷하다.

framework and library

갖추어진 도구를 사용하는 library와 헷갈릴수도 있다. 다시 예를 들어 설명을 하자면 프레임워크가 주방이면 라이브러리는 도구가방과 같다. 자신에 환경에 도구가방을 가져와 도구를 하나 둘씩 꺼내(import)하여 사용하는 개념이라 이해할수가 있다.

Django의 아키택쳐 MVT

장고는 MVT아키택쳐를 이용하여 데이터 구조를 관리한다. Model View Template를 뜻한다. 대게는 MVC라고 부르기도 하지만 Controller인 C 대신 장고는 탬플릿을 사용한다.

Template

웹 클라이언트에게 받은 요청을 django 데이터 처리 시스템이 알아 듣는 방식으로 넘겨주는 장소이다. 현재는 프론트와 백엔드가 나뉘어져 작업을하면서 Template은 프론트에서 작성을 하여 백엔드로 넘겨준다. 또한 백엔드가 반환하는 응답을 탬플릿에게 넘겨 다시 유저에게 전달한다. 탬플릿 이후가 백엔드 영역이라 보면 된다

URL.conf

Template에서 요청한 작업을 장고의 어떠한 view로 전달할지 분배하는 곳이다. 예를 들어 로그인을 요청하면 로그인app에, 회원가입을 요청하면 회원가입app에 요청을 보낸다.

View

받은 요청을 수행하는 곳이다. 모델과 교신하여 어떤한 정보를 어떻게 처리하여 다시 요청자에게 응답할지 데이터를 가공하는 장소이다.

Model

장고가 작업을 수행하기 위해 데이터베이스에서 안정적으로 데이터를 추출하고 저장하는 장소이다. 어떠한 작업을 하기 위해 데이터베이스의 모든 정보를 불러올 필요가 없다. 비효율적이고 작업량이 너무 많기 때문이다. views에서 요청한 자료를 추출하고 담고 있는 장소이다. 작업이 완료된 정보를 다시 데이터베이스에 저장하는 역할까지 수행하는 저장소이다.

C.R.U.D(Create, Read, Update, Delete)

백엔드가 장고에서 하는 활동들을 크게 나눈 것이다. Create, Read, Update, Delete 작업을 뜻한다. 뜻 그대로 데이터베이스의 정보를 읽고 생성하고, 변경하고 삭제하는 작업이다. 회원가입을 하면 create, 회원 정보를 읽고, 회원 정보를 변경하고 최종적으로 회원정보 삭제를 하는 모든 과정이다.

ORM(object relation mapping)

모델과 데이터베이스가 통신할 때 사용하는 매서드이다. 사용자에게 유리한 파이썬 언어를 이용해 기계식 언어로 저장된 데이터베이스를 효과적으로 읽고 저장하는 방식이다.

profile
Venire, Videre, Vincere

0개의 댓글