Chapter 663. rclpy 심화 (Advanced rclpy) Chapter 663. rclpy 심화 (Advanced rclpy) 663.1rclpy 라이브러리의 아키텍처 개요 663.2rclpy와 rcl, rmw 계층 관계 663.3rclpy의 Python C 확장 바인딩 구조 663.4rclpy.node.Node 클래스의 내부 구조 663.5Node 클래스의 생성자와 파라미터 663.6rclpy의 초기화와 종료 절차 663.7rclpy.init()의 내부 동작 663.8rclpy.shutdown()의 내부 동작 663.9rclpy 컨텍스트 (Context) 관리 663.10다중 컨텍스트 운용 663.11발행자 (Publisher)의 Python 구현 상세 663.12create_publisher()의 파라미터와 옵션 663.13발행자의 QoS 프로파일 설정 663.14구독자 (Subscriber)의 Python 구현 상세 663.15create_subscription()의 파라미터와 옵션 663.16구독자 콜백의 메시지 수신 패턴 663.17콜백 함수와 Python 데코레이터 패턴 663.18람다 함수를 이용한 간결한 콜백 정의 663.19타이머 (Timer)의 Python 구현 상세 663.20create_timer()의 파라미터와 옵션 663.21타이머 콜백의 정밀도와 지터 663.22서비스 서버의 Python 구현 상세 663.23create_service()의 파라미터와 옵션 663.24서비스 서버 콜백의 동기/비동기 처리 663.25서비스 클라이언트의 비동기 호출 663.26call_async()를 이용한 비동기 서비스 호출 663.27asyncio를 이용한 서비스 호출 663.28asyncio 이벤트 루프와 rclpy Executor의 통합 663.29Future 객체를 이용한 비동기 처리 663.30Future.add_done_callback()을 이용한 콜백 등록 663.31서비스 호출의 타임아웃 처리 663.32액션 서버의 Python 구현 상세 663.33액션 서버의 목표 수락/거부 콜백 663.34액션 서버의 실행 (Execute) 콜백 663.35액션 서버의 취소 요청 처리 663.36액션 서버의 피드백 발행 663.37액션 클라이언트의 Python 구현 상세 663.38액션 클라이언트의 목표 전송 663.39액션 클라이언트의 피드백 콜백 663.40액션 클라이언트의 결과 수신 663.41rclpy의 Executor 구현 개요 663.42SingleThreadedExecutor의 Python 구현 663.43MultiThreadedExecutor의 Python 구현 663.44Executor의 spin() 메서드 663.45Executor의 spin_once() 메서드 663.46Executor의 spin_until_future_complete() 메서드 663.47ExternalShutdownException 처리 663.48콜백 그룹 (Callback Group) 활용 개요 663.49MutuallyExclusiveCallbackGroup의 동작 원리 663.50ReentrantCallbackGroup의 동작 원리 663.51콜백 그룹과 멀티쓰레드 Executor의 조합 663.52콜백 그룹 간 교착 상태 방지 전략 663.53rclpy의 파라미터 관리 구현 663.54declare_parameter()를 이용한 파라미터 선언 663.55get_parameter()를 이용한 파라미터 조회 663.56set_parameters()를 이용한 파라미터 설정 663.57파라미터 디스크립터 (ParameterDescriptor) 설정 663.58rclpy의 파라미터 콜백 등록 663.59add_on_set_parameters_callback()의 사용법 663.60파라미터 변경 검증과 거부 처리 663.61rclpy의 로깅 API 활용 663.62get_logger()를 이용한 로거 접근 663.63로그 수준별 메서드 (debug, info, warn, error, fatal) 663.64조건부 로깅과 스로틀링 로깅 663.65rclpy의 QoS 프로파일 설정 663.66QoSProfile 클래스의 사용법 663.67사전 정의된 QoS 프로파일 활용 663.68rclpy의 QoS 이벤트 처리 663.69QoSPublisherEventCallbacks 663.70QoSSubscriptionEventCallbacks 663.71rclpy의 생명주기 노드 (LifecycleNode) 개요 663.72LifecycleNode 클래스의 구조 663.73rclpy의 생명주기 전이 콜백 구현 663.74on_configure(), on_activate(), on_deactivate() 구현 663.75on_cleanup(), on_shutdown(), on_error() 구현 663.76rclpy의 생명주기 상태 조회와 전이 트리거 663.77rclpy의 시간과 클럭 관리 663.78rclpy.time.Time 클래스 663.79rclpy.duration.Duration 클래스 663.80rclpy.clock.Clock 클래스 663.81ROSClock과 use_sim_time 설정 663.82rclpy의 Rate 클래스를 이용한 주기적 실행 663.83GIL (Global Interpreter Lock)과 rclpy 성능 영향 663.84GIL 우회를 위한 멀티프로세싱 전략 663.85concurrent.futures를 이용한 병렬 처리 663.86rclpy에서의 NumPy 배열 처리 기법 663.87NumPy 배열과 ROS2 메시지 간 변환 663.88rclpy에서의 OpenCV 이미지 처리 통합 663.89cv_bridge를 이용한 이미지 메시지 변환 663.90rclpy의 직렬화된 메시지 (SerializedMessage) 처리 663.91rclpy의 TypeAdapter 지원 663.92rclpy의 Guard Condition 활용 663.93rclpy의 WaitSet 활용 663.94rclpy의 예외 처리 전략 663.95rclpy 예외 클래스 분류 663.96rclpy의 단위 테스트 작성 방법 663.97pytest를 이용한 rclpy 노드 테스트 663.98테스트 픽스처를 이용한 노드 초기화/종료 663.99launch_testing을 이용한 rclpy 통합 테스트 663.100launch_testing의 테스트 구성과 실행 663.101rclpy의 성능 최적화 기법 663.102메시지 직렬화/역직렬화 최적화 663.103콜백 처리 시간 최소화 전략 663.104rclpy와 C++ 노드의 상호운용 663.105Python-C++ 혼합 시스템의 설계 패턴 663.106rclpy의 고급 설계 패턴 663.107싱글턴 노드 패턴 663.108팩토리 패턴을 이용한 동적 토픽 관리 663.109rclpy의 Jupyter Notebook 연동 663.110rclpy의 디버깅 기법과 도구