QoS 이해 연습문제 정답
시행일·최종 수정일: 2026년 9월 1일
정답을 보기 전에
먼저 각 문제에 자신의 말로 답해본 뒤 해설과 비교해 보세요. 표현이 달라도 핵심 개념과 계산 과정이 맞으면 정답으로 볼 수 있습니다.
1. Topic 이름, Message Type과 QoS가 각각 정하는 계약을 설명하세요.
정답과 해설
Topic 이름은 Data가 오가는 논리 경로, Message Type은 Field 구조와 의미, QoS는 신뢰성·보관·Queue·시간처럼 전달 조건을 정합니다. 세 계약이 모두 맞아야 의도대로 통신합니다.
2. Camera Stream에서 Reliable보다 Best Effort가 유리할 수 있는 이유는 무엇인가요?
정답과 해설
Camera는 다음 Frame이 곧 오므로 한 Frame 유실보다 재전송과 Queue로 오래된 영상이 늦게 처리되는 것이 더 나쁠 수 있습니다. Best Effort와 얕은 Queue가 최신성과 낮은 지연을 지킬 수 있습니다.
3. Reliable이 Application의 처리 완료를 보장하지 않는 이유는 무엇인가요?
정답과 해설
Reliable은 Middleware 전달 신뢰성을 높이는 정책입니다. Subscriber Callback의 정상 처리, Database 저장, Robot 동작 완료와 Process 장애까지 보장하는 Application 확인 Protocol은 별도로 설계해야 합니다.
4. VOLATILE과 TRANSIENT_LOCAL의 Late Joiner 동작 차이를 설명하세요.
정답과 해설
VOLATILE Subscription은 연결 이후 Sample만 받습니다. TRANSIENT_LOCAL Publisher는 보관한 Sample을 늦게 참가한 호환 Subscription에도 제공하므로 Map이나 마지막 상태 Snapshot에 적합합니다.
5. KEEP_LAST Depth를 계속 늘렸을 때 지연과 Memory에 어떤 영향이 있나요?
정답과 해설
일시적인 Burst를 더 흡수할 수 있지만 Consumer가 지속적으로 느리면 오래된 Sample과 Memory 사용량만 계속 늘어납니다. 최신성이 중요한 처리에서는 큰 Depth가 End-to-End Latency를 악화시킬 수 있습니다.
6. Reliability와 Durability의 Offered/Requested 호환표를 설명하세요.
정답과 해설
Best Effort Publisher는 Reliable Subscription 요구를 만족하지 못하지만 Reliable Publisher는 두 Subscription과 호환됩니다. Volatile Publisher는 Transient Local 요구를 만족하지 못하지만 Transient Local Publisher는 Volatile·Transient Local Subscription과 호환됩니다.
7. Deadline 호환 방향과 Deadline Event의 의미를 설명하세요.
정답과 해설
Publisher의 Offered Deadline 간격이 Subscriber Requested 간격보다 같거나 짧아야 합니다. Deadline Event는 약속 간격 안에 Sample이 제공되지 않았음을 알리지만 Robot을 자동 정지하지는 않습니다.
8. Lifespan과 Message Header Stamp 기반 Age Check가 모두 필요한 이유는 무엇인가요?
정답과 해설
Lifespan은 Middleware에서 발행 후 Sample 만료를 다룹니다. Header Stamp는 실제 Sensor 측정 시각을 표현하므로 처리·전송 지연까지 포함한 Application Data Age를 검증하는 데 필요합니다.
9. Liveliness, Deadline, Application Watchdog와 Driver Watchdog의 역할 차이는 무엇인가요?
정답과 해설
Liveliness는 Publisher 생존, Deadline은 Sample 간격 계약을 감시합니다. Application Watchdog는 유효 Data와 업무 조건을 검사하고 Driver Watchdog는 최종 명령이 끊겼을 때 Actuator를 독립적으로 안전 상태로 만듭니다.
10. ros2 topic info /scan --verbose에서 반드시 비교할 항목을 쓰세요.
정답과 해설
Publisher·Subscription Node와 Endpoint 수, Topic Type, Reliability, Durability, History·Depth, Deadline·Lifespan·Liveliness를 확인합니다. 특히 각 Publisher의 Offered와 Subscription Requested 정책을 개별 비교합니다.
11. /cmd_vel QoS에 하나의 정답이 없는 이유와 함께 필요한 안전 장치를 설명하세요.
정답과 해설
Network 손실, 재전송 지연, Driver 구현과 명령 발행률이 Robot마다 다릅니다. 최신 명령 중심의 작은 Queue, VOLATILE, Timestamp·Sequence, Velocity Mux Timeout과 Driver Command Watchdog를 함께 설계해야 합니다.
12. Wi-Fi에서 Reliable Camera가 제어 통신까지 느리게 만들 수 있는 과정을 설명하세요.
정답과 해설
대용량 영상 Packet 손실이 재전송과 Queue를 만들고 무선 대역폭과 Network Buffer를 점유합니다. 작은 Control·Telemetry Packet도 같은 자원을 기다리면서 Jitter와 Latency가 증가할 수 있습니다.
13. 느린 Subscriber 문제를 Depth 증가만으로 해결할 수 없는 이유는 무엇인가요?
정답과 해설
Publisher 속도가 처리 속도보다 계속 빠르면 Backlog 증가율이 양수라 어떤 유한 Queue도 결국 찹니다. 처리 최적화, Sampling, Data 축소, Worker 분리 또는 최신 Sample 교체가 필요합니다.
14. rosbag2 기록·재생에서 QoS Override가 필요한 상황을 설명하세요.
정답과 해설
여러 Publisher가 다른 QoS를 제공하거나 Transient Local 의미를 보존해야 하고 rosbag2 자동 적응이 원하는 Endpoint와 호환되지 않을 때 Topic별 Reliability·Durability·History·Depth를 YAML로 지정합니다.
15. Publisher는 보이지만 Callback이 호출되지 않을 때 Application부터 Network까지 진단 순서를 설명하세요.
정답과 해설
이름·Type과 Endpoint 존재를 확인하고 topic info --verbose로 QoS 호환성을 비교합니다. CLI에 QoS를 명시해 재현한 뒤 Hz·Bandwidth·Delay·Queue Age, Executor·Callback 처리, RMW·Domain·Firewall과 Network 손실을 조사합니다.
학습 마무리
틀린 문제는 강의의 관련 장을 다시 읽고, 용어뿐 아니라 각 개념이 실제 로봇에서 어떤 역할을 하는지 설명해 보세요.