Django

Django 시그널

내장 시그널, pre_save, post_save, pre_delete, 커스텀 시그널, receiver, 시그널 모범 사례

18 면접 질문·
Mid-Level
1

Django에서 시그널이란 무엇입니까?

답변

시그널은 프레임워크의 다른 곳에서 특정 작업이 발생했을 때 애플리케이션의 특정 부분에 알릴 수 있게 해주는 메커니즘입니다. 시그널을 사용하면 이벤트 발신자와 그 이벤트에 반응하는 receiver 사이를 느슨하게 결합할 수 있습니다. Django는 모델 작업을 위해 pre_save, post_save, pre_delete, post_delete 같은 여러 내장 시그널을 제공합니다.

2

객체가 데이터베이스에 저장되기 직전에 발생하는 시그널은 무엇입니까?

답변

pre_save 시그널은 모델의 save() 메서드가 실행되기 전에 발생합니다. 이를 통해 파생 값 계산이나 데이터 정규화처럼 저장 전에 인스턴스를 수정할 수 있습니다. 이 시그널은 객체가 생성될 때든 업데이트될 때든 호출되므로 유용합니다.

3

receiver 함수를 Django 시그널에 연결하는 데 사용해야 하는 데코레이터는 무엇입니까?

답변

django.dispatch의 @receiver 데코레이터를 사용하면 함수를 선언적으로 시그널에 연결할 수 있습니다. 수신할 시그널을 매개변수로 받으며, 선택적으로 발신자를 필터링하기 위한 sender도 지정할 수 있습니다. 이 방식은 connect() 메서드보다 가독성이 좋고 코드 유지보수를 쉽게 만듭니다.

4

post_save 시그널의 어떤 인자로 생성과 업데이트를 구분할 수 있습니까?

5

Django 애플리케이션에서 시그널 receiver 코드를 어디에 두는 것이 권장됩니까?

+15 면접 질문

다음 면접을 위해 Django을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기