Chapter 674. 로봇 소프트웨어 아키텍처 패턴 (Robot Software Architecture Patterns) Chapter 674. 로봇 소프트웨어 아키텍처 패턴 (Robot Software Architecture Patterns) 674.1로봇 소프트웨어 아키텍처 패턴의 개요 674.2로봇 소프트웨어 아키텍처의 발전 역사 674.3로봇 소프트웨어 아키텍처 설계 원칙 674.4모듈성(Modularity)과 관심사 분리(Separation of Concerns) 원칙 674.5높은 응집도(High Cohesion)와 낮은 결합도(Low Coupling) 원칙 674.6단일 책임 원칙(Single Responsibility Principle) 674.7개방-폐쇄 원칙(Open-Closed Principle) 674.8의존성 역전 원칙(Dependency Inversion Principle) 674.9인터페이스 분리 원칙(Interface Segregation Principle) 674.10로봇 소프트웨어 계층 아키텍처 개요 674.11센스-플랜-액트(Sense-Plan-Act) 아키텍처 674.12센스-플랜-액트 아키텍처의 구성요소 674.13센스-플랜-액트 아키텍처의 데이터 흐름 674.14센스-플랜-액트 아키텍처의 장점과 한계 674.15센스-플랜-액트 아키텍처의 ROS2 구현 674.16반응형(Reactive) 아키텍처 674.17반응형 아키텍처의 설계 원리 674.18서브섬션(Subsumption) 아키텍처 674.19서브섬션 계층 설계 674.20서브섬션 행동 억제(Suppression) 메커니즘 674.21서브섬션 행동 제어(Inhibition) 메커니즘 674.22브룩스(Brooks) 아키텍처의 원리 674.23반응형 아키텍처의 ROS2 구현 674.24행위 기반(Behavior-Based) 아키텍처 674.25행위 기반 아키텍처의 행동 모듈 설계 674.26행위 기반 아키텍처의 행동 조정(Coordination) 메커니즘 674.27경쟁적 행동 조정(Competitive Coordination) 674.28협력적 행동 조정(Cooperative Coordination) 674.29행위 기반 아키텍처의 행동 우선순위 관리 674.30포텐셜 필드 기반 행동 합성 674.31행위 기반 아키텍처의 ROS2 구현 674.32하이브리드(Hybrid) 아키텍처 개요 674.333계층(Three-Layer) 아키텍처 674.34심의 계층(Deliberative Layer) 설계 674.35실행 계층(Executive Layer) 설계 674.36반응 계층(Reactive Layer) 설계 674.373계층 아키텍처의 계층 간 통신 설계 674.383계층 아키텍처의 데이터 흐름 674.393T 아키텍처 구현 상세 674.40ATLANTIS 아키텍처 구현 상세 674.41AuRA (Autonomous Robot Architecture) 구현 상세 674.42하이브리드 아키텍처의 ROS2 구현 674.43파이프라인(Pipeline) 아키텍처 패턴 674.44파이프라인 데이터 흐름 설계 674.45파이프라인 스테이지 병렬화 674.46파이프라인 백프레셔(Backpressure) 관리 674.47파이프라인 데이터 드롭 전략 674.48파이프라인 아키텍처의 ROS2 구현 674.49퍼블리시-서브스크라이브(Publish-Subscribe) 아키텍처 패턴 674.50토픽 기반 퍼블리시-서브스크라이브 설계 674.51콘텐츠 기반 필터링 퍼블리시-서브스크라이브 674.52퍼블리시-서브스크라이브와 QoS 정책 674.53이벤트 기반(Event-Driven) 아키텍처 패턴 674.54이벤트 버스(Event Bus) 설계 674.55이벤트 소싱(Event Sourcing) 패턴 로봇 적용 674.56CQRS(Command Query Responsibility Segregation) 패턴 로봇 적용 674.57서비스 지향 아키텍처(SOA) 로봇 적용 674.58서비스 정의와 계약 설계 674.59서비스 레지스트리와 디스커버리 674.60마이크로서비스 아키텍처 로봇 적용 674.61마이크로서비스 로봇 노드 분리 전략 674.62마이크로서비스 간 통신 패턴 674.63마이크로서비스 데이터 관리 전략 674.64컴포넌트 기반 아키텍처(CBA) 패턴 674.65컴포넌트 인터페이스 설계 674.66컴포넌트 생명주기(Lifecycle) 관리 674.67컴포넌트 조합(Composition) 패턴 674.68컴포넌트 기반 아키텍처의 ROS2 구현 674.69플러그인(Plugin) 아키텍처 패턴 674.70플러그인 로딩 메커니즘 (pluginlib) 674.71플러그인 인터페이스 표준화 674.72플러그인 레지스트리 관리 674.73플러그인 버전 호환성 관리 674.74상태 머신(State Machine) 아키텍처 패턴 674.75유한 상태 머신(FSM) 설계 674.76계층적 유한 상태 머신(HFSM) 설계 674.77상태 전이 다이어그램 설계 674.78상태 전이 조건(Guard) 설계 674.79상태 진입(Entry)과 퇴출(Exit) 액션 설계 674.80상태 머신 프레임워크 선택 기준 674.81SMACH 상태 머신 프레임워크 674.82SMACH 상태 머신 구성 패턴 674.83FlexBE 행동 엔진 통합 674.84FlexBE 행동 상태 설계 674.85행동 트리(Behavior Tree) 아키텍처 패턴 674.86행동 트리의 수학적 기초 674.87행동 트리 기본 노드 유형 674.88행동 트리 액션(Action) 노드 674.89행동 트리 조건(Condition) 노드 674.90행동 트리 시퀀스(Sequence) 노드 674.91행동 트리 폴백/셀렉터(Fallback/Selector) 노드 674.92행동 트리 데코레이터(Decorator) 노드 674.93행동 트리 반복(Repeat) 데코레이터 674.94행동 트리 재시도(Retry) 데코레이터 674.95행동 트리 타임아웃(Timeout) 데코레이터 674.96행동 트리 반전(Inverter) 데코레이터 674.97행동 트리 병렬(Parallel) 노드 674.98행동 트리 블랙보드(Blackboard) 패턴 674.99행동 트리 블랙보드 포트(Port) 설계 674.100행동 트리 커스텀 노드 개발 674.101행동 트리 서브트리(SubTree) 활용 674.102행동 트리 동적 수정과 리로딩 674.103행동 트리 XML 정의와 파싱 674.104BehaviorTree.CPP 프레임워크 통합 674.105BehaviorTree.CPP 로깅과 리플레이 674.106py_trees 프레임워크 통합 674.107Nav2 행동 트리 통합과 커스터마이징 674.108MoveIt2 태스크 컨스트럭터 연동 674.109블랙보드(Blackboard) 아키텍처 패턴 674.110블랙보드 데이터 공유 메커니즘 674.111블랙보드 지식 소스(Knowledge Source) 설계 674.112블랙보드 제어 전략 674.113옵저버(Observer) 패턴 로봇 적용 674.114팩토리(Factory) 패턴 로봇 노드 생성 674.115추상 팩토리(Abstract Factory) 패턴 로봇 적용 674.116전략(Strategy) 패턴 알고리즘 교체 674.117커맨드(Command) 패턴 로봇 명령 대기열 674.118미디에이터(Mediator) 패턴 노드 간 조율 674.119데코레이터(Decorator) 패턴 기능 확장 674.120어댑터(Adapter) 패턴 인터페이스 변환 674.121프록시(Proxy) 패턴 원격 노드 접근 674.122싱글턴(Singleton) 패턴 리소스 관리 674.123템플릿 메서드(Template Method) 패턴 로봇 적용 674.124빌더(Builder) 패턴 로봇 구성 객체 생성 674.125체인 오브 리스폰시빌리티(Chain of Responsibility) 패턴 674.126ROS2 노드 아키텍처 패턴 674.127ROS2 단일 노드 다중 기능 패턴 674.128ROS2 마이크로 노드 패턴 674.129ROS2 컴포넌트 노드 패턴과 제로 카피 674.130ROS2 라이프사이클(Lifecycle) 노드 패턴 674.131ROS2 노드 구성(Composition) 패턴 674.132ROS2 런치 기반 시스템 구성 패턴 674.133ROS2 파라미터 기반 구성(Configuration) 패턴 674.134ROS2 콜백 그룹(Callback Group) 패턴 674.135ROS2 실행기(Executor) 선택 패턴 674.136실시간 시스템 아키텍처 패턴 674.137실시간 처리 파이프라인 설계 674.138실시간 우선순위 기반 스케줄링 설계 674.139실시간 데이터 버퍼링 패턴 674.140이중 버퍼링(Double Buffering) 패턴 674.141트리플 버퍼링(Triple Buffering) 패턴 674.142링 버퍼(Ring Buffer) 패턴 674.143락프리(Lock-Free) 큐 패턴 674.144내결함성(Fault-Tolerant) 아키텍처 패턴 674.145감시자(Watchdog) 패턴 674.146심장박동(Heartbeat) 패턴 674.147중복(Redundancy) 패턴 674.148N-모듈 중복(N-Modular Redundancy) 패턴 674.149체크포인트와 복원(Checkpoint-Recovery) 패턴 674.150우아한 저하(Graceful Degradation) 패턴 674.151회로 차단기(Circuit Breaker) 패턴 674.152재시도와 백오프(Retry and Backoff) 패턴 674.153분산 로봇 시스템 아키텍처 패턴 674.154분산 합의(Consensus) 패턴 674.155분산 작업 스케줄링 패턴 674.156피어투피어(Peer-to-Peer) 통신 패턴 674.157클라이언트-서버 통신 패턴 674.158게이트웨이(Gateway) 패턴 674.159브릿지(Bridge) 패턴 674.160엣지-클라우드(Edge-Cloud) 아키텍처 패턴 674.161데이터 오프로딩(Offloading) 패턴 674.162인공지능 통합 아키텍처 패턴 674.163추론 파이프라인(Inference Pipeline) 아키텍처 674.164모델 서빙(Model Serving) 아키텍처 674.165온라인 학습(Online Learning) 아키텍처 674.166학습-실행 분리(Train-Deploy Separation) 패턴 674.167로봇 소프트웨어 아키텍처 평가 기법 674.168아키텍처 품질 속성(Quality Attribute) 분석 674.169아키텍처 트레이드오프 분석 방법론(ATAM) 674.170아키텍처 리팩터링 전략 674.171레거시 로봇 소프트웨어 현대화 패턴 674.172스트랭글러 피그(Strangler Fig) 패턴 674.173로봇 소프트웨어 아키텍처 문서화 674.174아키텍처 결정 기록(ADR) 작성 674.175C4 모델 기반 아키텍처 문서화 674.176로봇 소프트웨어 아키텍처 참조 모델