카테고리 없음

퓨어장고 vs DRF 차이점

kinggoddino 2024. 11. 14.

퓨어 장고 (Django Template 기반)

설명:

  • Django의 기본 템플릿 시스템과 클래스 기반 뷰(CBV) 또는 **함수 기반 뷰(FBV)**를 사용.
  • HTML, CSS, Django 템플릿 문법을 사용하여 백엔드와 프론트엔드가 강하게 결합.
  • 데이터를 서버에서 처리하고, 렌더링된 HTML을 클라이언트로 보냄.

특징:

  • 서버에서 직접 HTML 생성: 데이터를 뷰에서 처리하고 템플릿에 전달.
  • Django 템플릿 문법 사용: {% for %}, {% if %}, {% url %}, {% static %} 등.
  • JS 사용은 선택 사항: 간단한 프로젝트에서는 JS가 크게 필요하지 않을 수도 있음.

장점:

  • 빠른 프로토타입 개발: 백엔드와 프론트엔드를 동시에 개발.
  • 간단한 프로젝트에 적합.
  • 서버사이드 렌더링이므로 SEO 친화적.

단점:

  • 백엔드와 프론트엔드가 강하게 결합되어 있음.
  • 복잡한 UI/UX 요구사항을 처리하기 어려움 (예: 실시간 데이터 업데이트, SPA).

Django Rest Framework(DRF) (API 기반)

설명:

  • RESTful API를 생성하는 데 최적화된 Django 확장 도구.
  • 백엔드와 프론트엔드가 완전히 분리됨.
  • 데이터는 JSON 형태로 제공되고, 프론트엔드는 이를 받아서 **JS(React, Vue, 바닐라JS 등)**로 처리.

특징:

  • 서버는 API만 제공: 클라이언트가 데이터를 요청하면 JSON 응답을 반환.
  • 템플릿 문법 사용 불가: HTML 렌더링은 백엔드가 아닌 프론트엔드에서 처리.
  • 프론트엔드가 데이터를 처리: 바닐라 JS, React, Vue 등의 프레임워크가 데이터를 렌더링.

장점:

  • 백엔드와 프론트엔드 완전 분리: 유지보수와 확장성에 유리.
  • 동적 웹 애플리케이션에 적합 (SPA, 실시간 데이터 등).
  • 다양한 클라이언트 지원: 웹, 모바일, 외부 서비스에서 쉽게 API를 사용할 수 있음.

단점:

  • 초기에 복잡성 증가: 백엔드와 프론트엔드를 각각 개발해야 함.
  • 템플릿 문법 사용 불가: 백엔드에서 HTML 렌더링이 필요하면 DRF 방식과 호환되지 않음.

둘중 결정할 때

1) 프로젝트 목표

  • 간단한 쇼핑 사이트를 구현하려는 경우:
    • 퓨어 장고 방식이 더 적합
    • 템플릿 시스템과 서버사이드 렌더링만으로 회원가입, 로그인, 상품 목록, 장바구니 등 기본 기능을 쉽게 구현할 수 있음.
  • 프론트엔드가 복잡한 동적 웹사이트(예: SPA, 실시간 데이터, 대규모 인터랙션)인 경우:
    • DRF 방식이 더 적합함
    • 프론트엔드와 백엔드를 분리하여 API 기반으로 동작하게 하면 유지보수가 용이함.

2) 프론트엔드 기술 스택

  • 템플릿 시스템을 사용하고 싶고, JS에 익숙하지 않다면:
    • 퓨어 장고 방식 ㄱ
  • React, Vue 등과 같은 프론트엔드 프레임워크를 배우거나 사용할 계획이 있다면:
    • DRF 방식 ㄱ

3) 확장성과 학습 목표

  • 프로젝트를 빠르게 완성하고 싶다면 퓨어 장고가 유리
  • 장기적으로 더 많은 기술 스택을 익히고 싶다면 DRF 도전