본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

[웹 개발] 웹 프레임워크 '장고'

by easyfly 2024. 3. 16.
반응형

웹 프레임워크 '장고'

장고(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)" 원칙을 따릅니다. 이 원칙은 개발 과정에서 반복을 최소화하고 코드의 재사용을 극대화하려는 장고의 철학을 반영합니다. 장고는 이러한 구조를 통해 웹 애플리케이션 개발의 효율성과 가독성을 높이며, 개발자가 안전하고 유지보수가 쉬운 웹 애플리케이션을 구축할 수 있도록 지원합니다.

반응형

댓글