Symfony

Messenger Component

Message bus, handler, transport, 비동기 메시지, middleware, 재시도, 실패한 메시지

22 면접 질문·
Mid-Level
1

Symfony에서 Messenger 컴포넌트의 주요 목적은 무엇인가요?

답변

Messenger 컴포넌트는 RabbitMQ, Redis, Doctrine과 같은 transport를 통해 메시지를 동기 또는 비동기로 handler에 dispatch할 수 있게 해줍니다. 메시지 발행과 처리를 분리하여 느슨하게 결합된 아키텍처 구축을 용이하게 하고, 애플리케이션의 확장성과 유지보수성을 향상시킵니다.

2

Symfony Messenger에서 메시지를 어떻게 정의하나요?

답변

Symfony Messenger의 메시지는 처리에 필요한 데이터를 담은 단순한 일반 PHP 클래스(POPO)일 뿐입니다. 어떤 인터페이스나 부모 클래스도 필요하지 않습니다. 관례적으로 메시지에는 Notification이나 Command 같은 설명적인 접미사를 붙이며, readonly 속성으로 immutable하게 만들어 데이터 무결성을 보장합니다.

3

Symfony Messenger에서 메시지를 처리하는 handler를 어떻게 생성하나요?

답변

handler는 메시지를 파라미터로 받는 __invoke() 메서드를 가진 클래스입니다. #[AsMessageHandler] 속성이 handler를 자동으로 등록합니다. Symfony는 파라미터의 type-hint를 통해 처리할 메시지 타입을 감지합니다. 이 방식은 autowiring을 사용하며 services.yaml에서의 수동 설정을 피할 수 있습니다.

4

Symfony Messenger에서 메시지를 dispatch하려면 어떤 인터페이스를 주입해야 하나요?

5

Symfony Messenger 맥락에서 Envelope란 무엇인가요?

+19 면접 질문

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

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

무료로 시작하기