웹 프레임워크 '장고'
장고(Django)는 파이썬으로 작성된 고급 웹 프레임워크입니다. 장고의 목표는 복잡한 웹사이트 개발을 빠르고 쉽게 할 수 있게 하는 것입니다. 장고는 "배터리 포함(batteries-included)" 접근 방식을 채택하여, 개발자가 웹 애플리케이션 개발 시 필요할 수 있는 많은 공통 기능들을 프레임워크 내에 이미 구현해 놓았습니다. 이러한 접근 방식은 개발 속도를 크게 향상하고, 개발자가 애플리케이션의 핵심 기능 개발에 더 집중할 수 있게 합니다.
장고의 주요 구성 요소
모델(Model)
장고의 모델은 데이터베이스의 레이아웃을 파이썬 클래스로 정의합니다. 모델을 통해 데이터베이스 스키마를 생성하고 데이터베이스와의 상호작용을 추상화합니다. 이를 통해 개발자는 SQL 쿼리를 직접 작성하지 않고도 데이터베이스를 조작할 수 있습니다.
뷰(View)
뷰는 애플리케이션의 로직을 처리합니다. 사용자의 요청을 받고, 그에 따른 데이터를 모델로부터 가져와 템플릿에 전달하는 역할을 합니다. 뷰는 함수 또는 클래스 기반으로 작성할 수 있으며, 특정 URL에 대한 요청을 처리하는 로직을 담당합니다.
템플릿(Template)
템플릿은 사용자에게 보여질 페이지의 구조와 레이아웃을 정의합니다. HTML을 기반으로 하며, 장고의 템플릿 언어를 사용해 동적 데이터를 HTML 문서에 삽입할 수 있습니다. 이를 통해 뷰에서 처리한 데이터를 사용자에게 표시할 수 있습니다.
URL 디스패처(URL Dispatcher)
URL 디스패처는 웹사이트의 URL을 뷰와 매핑합니다. 이 시스템을 통해 사용자의 요청 URL을 분석하고, 해당하는 뷰 함수나 클래스를 호출합니다. 이는 웹 애플리케이션의 URL 설계를 명확하고 유지 관리하기 쉽게 만듭니다.
관리자 사이트(Admin Site)
장고는 데이터베이스 모델을 관리할 수 있는 자동 생성된 관리 인터페이스를 제공합니다. 개발자는 별도의 웹 관리 페이지를 만들지 않고도, 이 관리자 사이트를 통해 애플리케이션의 데이터를 쉽게 추가, 수정, 삭제할 수 있습니다.
보안( Security)
장고는 기본적으로 여러 보안 기능을 제공하여, SQL 인젝션, 크로스 사이트 스크립팅(XSS), 크로스 사이트 요청 위조(CSRF) 등과 같은 웹 공격으로부터 애플리케이션을 보호합니다.
정리
장고의 이러한 구조는 "Don't Repeat Yourself (DRY)" 원칙을 따릅니다. 이 원칙은 개발 과정에서 반복을 최소화하고 코드의 재사용을 극대화하려는 장고의 철학을 반영합니다. 장고는 이러한 구조를 통해 웹 애플리케이션 개발의 효율성과 가독성을 높이며, 개발자가 안전하고 유지보수가 쉬운 웹 애플리케이션을 구축할 수 있도록 지원합니다.
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
[Django] 장고 프로젝트 생성하기 (46) | 2024.03.18 |
---|---|
[웹 개발] 장고(Django)에서 사용되는 MTV(Model-Template-View) 패턴 (34) | 2024.03.17 |
[Web] 웹사이트의 기본 기능, CRUD (32) | 2024.03.15 |
[웹 개발] '프런트엔드(Frontend)'와 '백엔드(Backend)' (32) | 2024.03.15 |
[파이썬] Jupyter Notebook 사용에서 폴더 지정 (42) | 2024.03.14 |
댓글