Web

Django) View: 함수형 뷰와 클래스형 뷰

서영환 2024. 9. 9. 14:12

오늘은 Django의 View에 대해 학습했습니다. Django에서 View는 사용자의 요청을 처리하고 적절한 응답을 반환하는 역할을 합니다. Django에는 두 가지 주요 유형의 View가 있습니다: 함수형 뷰(Function Based View, FBV)와 클래스형 뷰(Class Based View, CBV)입니다.

함수형 뷰 (Function Based View, FBV)

함수형 뷰는 Python의 함수로 정의된 View입니다. 간단하고 직관적이며, 작은 규모의 프로젝트나 간단한 로직을 처리할 때 유용합니다. 함수형 뷰는 요청을 받아서 직접 응답을 반환하는 방식으로 작동합니다.

장점

  • 단순성: 간단한 로직을 구현할 때 적합합니다.
  • 명확성: 함수로 작성되기 때문에 로직이 명확하게 드러납니다.

단점

  • 재사용성 부족: 코드의 재사용이 어렵습니다.
  • 복잡한 로직 처리의 어려움: 복잡한 로직을 처리할 때 코드가 길어질 수 있습니다.

예제

from django.http import HttpResponse

def my_view(request):
    return HttpResponse('Hello, World!')

 

클래스형 뷰 (Class Based View, CBV)

클래스형 뷰는 Python의 클래스로 정의된 View입니다. 객체 지향 프로그래밍의 장점을 활용하여 코드의 재사용성을 높이고, 복잡한 로직을 보다 구조적으로 관리할 수 있습니다.

장점

  • 재사용성: 상속과 믹스인을 통해 코드를 재사용하기 쉽습니다.
  • 구조적 관리: 복잡한 로직을 메서드로 분리하여 관리할 수 있습니다.

단점

  • 초기 학습 곡선: 초반에 이해하기 어려울 수 있습니다.
  • 추상화의 복잡성: 지나친 추상화로 인해 코드가 복잡해질 수 있습니다.

예제

from django.views import View
from django.http import HttpResponse

class MyView(View):
    def get(self, request):
        return HttpResponse('Hello, World!')

 

결론

함수형 뷰와 클래스형 뷰는 각각의 장단점이 있으며, 프로젝트의 요구사항과 규모에 따라 적절한 방식을 선택하는 것이 중요합니다. 작은 프로젝트나 간단한 로직에는 함수형 뷰가 적합할 수 있으며, 복잡한 로직이나 대규모 프로젝트에서는 클래스형 뷰가 더 유리할 수 있습니다.