-
FBV와 CBV는 각각 무엇이며, 어떤 차이가 있습니까?
장고 MVT 패턴 중 View를 구현하기 위한 방법이 두 가지 있습니다. 함수 형식으로 작성하는 FBV, 클래스 형식으로 작성하는 CBV.
FBV(Function Based View)
from rest_framework.decorators import api_view from rest_framework.response import Response from rest_framework import status @api_view(['GET', 'POST']) def example(request): if request.method == 'GET': return Response({"message": "GET 요청"}, status=status.HTTP_200_OK) else: return Response({"message": "POST 요청"}, status=status.HTTP_201_CREATED)
CBV(Classs based View)from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status class Example(APIView): def get(self, request): return Response({"message": "GET 요청"}, status=status.HTTP_200_OK) def post(self, request): return Response({"message": "POST 요청"}, status=status.HTTP_201_CREATED)단순히 함수로 구현하냐, 클래스로 구현하냐의 차이입니다. 어떤 것을 쓰든 상관은 없지만 둘의 장단이 있습니다.
장점 단점 FBV 쉽고 편하게 구현 가능
읽기 편한 로직확장성
재사용성CBV 확장 및 재사용 용이
다중 상속 가능상속으로 인해 읽기 어려움 테스트코드를 작성하는 이유는 무엇이며 어떤 장점이 있습니까?
- 코드의 안정성 향상 테스트 코드를 작성하면 코드의 안정성이 향상됩니다. 테스트 코드를 작성하면 새로운 기능을 추가하거나 코드를 변경할 때, 기존 코드에 문제가 생겼는지 검증할 수 있습니다. 이를 통해 특정 기능이나 모듈이 제대로 작동하는지 확인할 수 있으며, 버그를 사전에 발견하여 코드의 안정성을 높일 수 있습니다.
- 코드 리팩토링 용이성 테스트 코드를 작성하면 코드 리팩토링이 용이해집니다. 코드 리팩토링은 기존 코드를 유지보수하거나 개선할 때 사용하는 기술로, 코드의 가독성을 높이고 유지보수를 쉽게 만들어 줍니다. 테스트 코드를 작성하면 리팩토링 후 코드의 기능이 변경되는지 여부를 확인할 수 있으므로, 코드 리팩토링이 쉬워집니다.
- 팀원 간 협업 향상 테스트 코드를 작성하면 팀원 간 협업이 원활해집니다. 테스트 코드를 작성하면 코드 자체의 동작을 이해하고, 코드 리뷰를 수월하게 할 수 있습니다. 또한, 테스트 코드를 작성하면 코드 변경 후에도 기능이 문제없이 동작하는지 확인할 수 있으므로, 팀원들 간의 신뢰도가 향상됩니다.
- 코드 품질 향상 테스트 코드를 작성하면 코드의 품질이 향상됩니다. 테스트 코드를 작성하면 코드의 가독성과 유지보수성이 높아지며, 버그 발생 확률도 낮아집니다. 이를 통해 코드의 품질을 높일 수 있습니다.
최종적으로, 테스트 코드를 작성하면 코드의 안정성, 유지보수성, 협업성, 품질 등이 향상되므로, 개발자로서 반드시 필요한 기술 중 하나입니다.
테스트 코드를 작성하면 코드가 어떻게 작동하는 지를 이해하고, 코드를 수정할 때 예상치 못한 부작용을 방지할 수 있습니다. 또한 테스트 코드는 개발자 간의 협업을 원활하게 하고, 코드를 유지 보수하는 데 필요한 문서화 작업을 줄일 수 있습니다.
테스트코드를 작성하면 안정성 향상, 리팩토링 용이성, 협업 향상, 코드 품질 향상 등 많은 이점있지만, 그 중에서도 저희 팀에서 겪은 경험을 예를 들면, AI 기능 테스트 코드를 작성하는 도중 AI 기능에서 발생하는 오류의 원인을 알게 되어 문제를 해결할 수 있었던 경험이 있습니다.