게시글 목록, 상세 조회처럼 자주 반복되는 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 로직을 미리 구현해 둔 클래스형 뷰로,
코드를 줄이고 구조를 명확하게 만든다.
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| Django Generic ListView의 역할과 데이터 전달 구조 (0) | 2026.01.17 |
|---|---|
| Django 게시글 생성 View: View 상속 방식과 Generic CreateView 비교 (0) | 2026.01.17 |
| Django 클래스형 뷰(Class-Based View)의 기본 구조와 역할 (0) | 2026.01.17 |
| Django 페이지네이션 구조 이해하기: View와 HTML 템플릿의 역할 분리 (0) | 2026.01.17 |
| href='?page=2'가 현재 경로를 유지하는 이유 (0) | 2026.01.17 |