[django]FBV와 CBV의 차이, 테스트코드의 장점

안떽왕·2023년 7월 24일
0

View

장고는 MVT(Model-View-Template)패턴을 기반으로 하는 프레임워크로 View의 작성 방법은 2가지가 존재한다.
1. FBV(Function Based Views) 함수 기반 뷰
2. CBV(Class Based Views) 클래스 기반 뷰

FBV(Function Based Views)

장점

  1. 함수를 이용해 뷰를 작성
  2. 간단하고 직관적
  3. 데코레이터 사용이 명료함

단점

  1. 확장, 재사용이 어려움
  2. 조건문으로 HTTP 메서드를 구분해야함

예시

@login_required
def hello_world(request):
    if request.method == 'GET':
        return HttpResponse("GET요청 헬로우 월드")
    elif request.method == 'POST':
        return HttpResponse("POST요청 헬로우 월드")

CBV(Class Based Views)

장점

  1. 뷰를 재사용, 코드를 모듈화하는데 유리
  2. HTTP메서드에 대해 클래스 내의 별도의 메서드를 정의함으로 처리
  3. 다중상속, mixin 같은 객체지향 기술 사용

단점

  1. 명시성이 떨어짐
  2. 상속되고 믹스되며 디버깅이 복잡해질 수 있음

예시

class HelloWorldView(View):
    def get(self, request):
        return HttpResponse("GET요청 헬로우 월드")

테스트코드

소프트웨어의 특정 부분이 의도한대로 동작하는지 확인하기 위해 작성하는 코드

장점

  1. 버그를 빠르게 발견하고 수정할 수 있음
  2. 리팩토링 과정에서도 코드를 안전하게 수정, 개선 가능
  3. 시스템이 어떻게 동작하는지 알려주는 문서가될 수 있음
profile
이제 막 개발 배우는 코린이

0개의 댓글