Django 프론트& 백엔드 개발

Django 제네릭 뷰(Generic View): 반복되는 View 로직을 줄이는 방법

Data Jun 2026. 1. 17. 13:30

게시글 목록, 상세 조회처럼 자주 반복되는 View 패턴
매번 함수형 뷰로 작성하면 코드가 길어지고 중복이 많아진다.
Django의 제네릭 뷰(Generic View) 는 이런 반복되는 구조를
미리 클래스 형태로 정의해 둔 뷰이다.

 

1. 제네릭 뷰란 무엇인가

제네릭 뷰는 한마디로,

개발자들이 자주 사용하는 View 패턴을
미리 구현해 둔 클래스형 뷰

이다.

  • 목록 조회
  • 상세 조회
  • 생성 / 수정 / 삭제

같은 CRUD 패턴을 짧은 코드로 처리할 수 있다.

 

2. 함수형 뷰의 특징 (기존 방식)

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'posts/post_list.html', {'posts': posts})
  • 직접 ORM 쿼리 작성
  • context 구성
  • render 호출까지 모두 수동

유연하지만 코드가 반복됨

 

3. 제네릭 뷰로 바꾸면

class PostListView(ListView):
    model = Post
    template_name = 'posts/post_list.html'

ListView가:

  • queryset 생성
  • context 구성
  • render 처리까지 담당

핵심 정보만 선언적으로 작성

 

4. 제네릭 뷰의 핵심 장점

  • 반복 코드 감소
  • 가독성 향상
  • CRUD 구조에 최적화
  • 클래스형 뷰의 장점을 그대로 활용

비유하면,
매번 직접 요리하던 것을 기본 레시피가 있는 밀키트로 바꾼 느낌

 

5. 정리하면

제네릭 뷰는
자주 쓰는 View 로직을 미리 구현해 둔 클래스형 뷰로,
코드를 줄이고 구조를 명확하게 만든다.