[Django] Function-Based View와 Class-Based View

2026. 6. 4. 22:06·Django
반응형

 

Django에서 View는 사용자의 요청을 받아 처리하고 응답을 반환하는 역할을 한다.

이전 글에서는 함수를 사용하여 View를 작성하는 Function-Based View(FBV)를 살펴보았다.

이번에는 Function-Based View의 한계와 이를 개선하기 위해 등장한 Class-Based View(CBV)에 대해 알아보자.

 


 

Function-Based View(FBV)

  • 함수를 사용하여 View를 작성하는 방식
  • 하나의 함수에서 두 가지 이상의 기능 처리(GET, POST 등)
  • 쉬우나 코드가 길어지고 복잡도 증가
from django.shortcuts import render

def post_create_view(request):
    if request.method == "GET":
        return render(request, "post_create.html")

    elif request.method == "POST":
        # 게시글 저장 로직
        ...

 

Classed-based View

  • 객체지향 프로그래밍(OOP)의 상속과 메서드 오버라이딩 활용
  • 코드 중복을 줄이고 재사용 가능성 높임
  • HTTP 메서드 별로 기능을 명시적으로 분리
class LoginRequiredView(View):
    def dispatch(self, request, *args, **kwargs):
        # 로그인 검사 ...
        
class PostCreateView(LoginRequiredView):
    def get(self, request):
        return render(request, "post_create.html")
        
    def post(self, request):
        # 저장 ...

HTTP 메서드별(`get()`, `post()` 등)로 로직을 명확하게 분리할 수 있다.

공통 로직을 부모 클래스에 작성하여 다른 View에서 상속받아 사용할 수 있다.

-> 중복 코드 줄이고 유지보수성 up

 

 

[참고] 실전! Django 입문 강의

반응형
'Django' 카테고리의 다른 글
  • [Django] 장고 회원 시스템 (Session과 User Model)
  • [Django] 장고 회원 시스템 (User 모델과 Admin 페이지)
  • [Django] 좋아요 기능 구현과 F Expression
  • [Django] ORM으로 데이터 생성, 조회, 수정, 삭제(CRUD) 해보기
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (226) N
      • SSAFY (10)
      • Algorithm (123)
        • 이론 (6)
        • 백준 (BOJ) (114)
        • 프로그래머스 (2)
        • 코드트리 (1)
      • Trouble Shooting (11)
      • Frontend (7)
      • React (17)
      • Next.js (5)
      • Vue (4)
      • Django (12) N
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (13)
        • JavaScript (0)
        • Java (13)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
      • 기타 (1)
        • Tistory (1)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    bfs
    Next.js
    블록체인
    강의
    백준
    구현
    Java
    순열
    수학
    백트래킹
    Algorithm
    Error
    dfs
    그리디
    싸피
    알고리즘
    django
    브루트포스
    우선순위큐
    SSAFYcial
    파이썬
    티스토리챌린지
    오블완
    React
    중복순열
    html5
    힙
    SSAFY
    Heap
    DP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
올콩
[Django] Function-Based View와 Class-Based View
상단으로

티스토리툴바