로봇 소프트웨어 구조설계로봇소프트웨어아키텍쳐 설계소프트웨어 아키텍처 정의
출제기준 좌표2·4·2·2
2과목 · 로봇 소프트웨어 구조설계

로봇 소프트웨어 프레임워크

로봇소프트웨어아키텍쳐 설계소프트웨어 아키텍처 정의
# 로봇소프트웨어구조설계
01

📌 개요

  • 모든 로봇 프로젝트가 통신·드라이버·도구를 밑바닥부터 만들 수는 없음
  • 프레임워크 = 검증된 뼈대와 부품을 제공해 개발자가 로봇 고유의 문제에 집중하게 해 줌
  • 시험 핵심 출제 포인트
    • 프레임워크 vs 라이브러리(제어의 역전)
    • 로봇 프레임워크가 제공하는 4대 요소
    • 대표 프레임워크(ROS·OROCOS·OpenRTM)의 특징 매칭
  • ROS 1→2 비교와 통신 패턴은 로봇 미들웨어 구조 설계에서 이미 다룸
02

📖 핵심 개념

프레임워크 vs 라이브러리 — 제어의 역전 (시험 단골)

  • 라이브러리(Library): 내 코드가 필요할 때 호출하는 기능 묶음 — 주도권이 내 코드에 있다 (예: 행렬 연산 라이브러리)
  • 프레임워크(Framework): 전체 구조와 실행 흐름을 프레임워크가 쥐고, 내 코드는 정해진 자리에 끼워져 호출당한다제어의 역전(IoC, Inversion of Control). "Don't call us, we'll call you"(할리우드 원칙)
  • 로봇 프레임워크에서: 노드 초기화·통신·스케줄링은 프레임워크가 담당하고, 개발자는 콜백(메시지 수신 시 처리 함수)을 채운다

로봇 프레임워크가 제공하는 4대 요소

  1. 통신 기반: 노드 간 메시지 전달 — 토픽(발행–구독)·서비스(요청–응답)·액션(장기 작업) (→ 로봇 미들웨어 구조 설계)
  2. 하드웨어 추상화: 센서·구동기의 표준 인터페이스와 드라이버 — 기종이 바뀌어도 상위 코드 유지 (→ 계층화)
  3. 패키지 생태계: 기능 단위 패키지 관리 + 커뮤니티의 검증된 구현(내비게이션, SLAM, 모션 계획) 재사용
  4. 개발 도구: 시각화, 데이터 기록·재생, 시뮬레이터 연동, 빌드 시스템 (→ 로봇 소프트웨어 개발환경)

대표 로봇 프레임워크 (특징 매칭 단골)

프레임워크 핵심 특징
ROS / ROS 2 사실상 표준. 방대한 패키지 생태계·도구. ROS 2는 DDS 기반으로 실시간·보안·다중 로봇 강화 (상세 비교 → 로봇 미들웨어 구조 설계)
OROCOS 실시간 제어에 특화 — 주기 실행·락리스 통신 등 RTOS급 제어 루프 구성(RTT, Real-Time Toolkit). ROS와 상호 보완적으로 병용
OpenRTM 일본 AIST 주도, OMG RT-컴포넌트(RTC) 국제 표준 기반 — 컴포넌트 조립형 개발
YARP 휴머노이드(iCub) 계열에서 사용되는 오픈소스 미들웨어
상용 SDK 로봇 제조사 제공(제한적·폐쇄적이나 자사 HW 최적화)

기억 포인트: ROS = 생태계·범용, OROCOS = 실시간 제어, OpenRTM = 컴포넌트 표준(RTC).

프레임워크 사용의 득과 실

장점

  • 개발 기간 단축: 통신·도구·검증된 알고리즘 재사용
  • 품질: 수많은 사용자가 검증한 코드 기반
  • 표준화: 팀·회사 간 코드 호환, 인력 수급 용이
  • 모듈화 강제: 노드·컴포넌트 단위 설계를 자연스럽게 유도

단점·유의점

  • 오버헤드: 범용 계층의 통신·추상화 비용 — 극한 실시간 루프에는 부적합할 수 있음 (→ 해당 부분만 펌웨어·OROCOS로)
  • 학습 곡선: 프레임워크 고유 개념·도구 습득 비용
  • 종속성(Lock-in): 프레임워크의 수명·버전 정책에 묶임 — LTS 버전 선택, 인터페이스 계층으로 격리
  • 제어의 역전의 대가: 세부 실행 흐름 제어가 어려움

프레임워크 선정 기준

  1. 요구 충족: 실시간성(제어 주기), 지원 OS·언어, 통신 품질(QoS)
  2. 생태계: 필요한 기능의 검증된 패키지 존재 여부 — 내비게이션·SLAM을 직접 만들 것인가?
  3. 라이선스: 상용 제품 탑재 가능 여부 (오픈소스 라이선스 검토)
  4. 커뮤니티·지원: 문서, 업데이트 지속성, 사내 경험
  5. 이식성·확장성: 타깃 보드 지원, 다중 로봇 확장

프레임워크 위의 아키텍처

  • 프레임워크 = 아키텍처 스타일(로봇 소프트웨어 아키텍처 분류)을 구현해 주는 재료
    • 발행–구독 → 토픽 / 클라이언트–서버 → 서비스 / 컴포넌트 조립 → 노드·패키지
  • 프레임워크를 정해도 "어떤 노드로 나누고 어떤 토픽으로 이을지"의 설계 책임은 여전히 설계자에게 있음
03

📊 다이어그램 · 수식

라이브러리 vs 프레임워크 — 제어의 역전

DIAGRAM
flowchart LR
    subgraph LIB["라이브러리 사용"]
        MY1["내 코드 (주도권)"] -- 호출 --> L["라이브러리 함수"]
    end
    subgraph FW["프레임워크 사용"]
        F["프레임워크 (주도권)
초기화·통신·스케줄링"] -- 콜백 호출 --> MY2["내 코드
(정해진 자리에 삽입)"] end

프레임워크의 4대 제공 요소

DIAGRAM
flowchart TD
    FW["로봇 프레임워크"] --> C["통신 기반
토픽·서비스·액션"] FW --> H["하드웨어 추상화
표준 인터페이스·드라이버"] FW --> P["패키지 생태계
검증된 구현 재사용"] FW --> T["개발 도구
시각화·기록/재생·시뮬레이터"]
04

🎯 핵심 요약 · 암기 포인트

익힘 0 / 10카드를 눌러 뒤집고, 앞면에서 아는지 표시하세요.
Q · 1
라이브러리와 프레임워크의 차이는?
A
라이브러리=내 코드가 호출(주도권 내게), 프레임워크=전체 흐름을 쥐고 내 코드를 호출(제어의 역전)
Q · 2
제어의 역전(IoC)이란?
A
실행 흐름의 주도권이 개발자 코드가 아니라 프레임워크에 있는 것 — "Don't call us, we'll call you"
Q · 3
로봇 프레임워크가 제공하는 4대 요소는?
A
통신 기반, 하드웨어 추상화, 패키지 생태계, 개발 도구
Q · 4
OROCOS의 특화 분야는?
A
실시간 제어 — 주기 실행 등 RTOS급 제어 루프 구성(RTT)
Q · 5
OpenRTM의 특징은?
A
OMG RT-컴포넌트(RTC) 국제 표준 기반의 컴포넌트 조립형 프레임워크 (일본 AIST 주도)
Q · 6
ROS의 최대 강점은?
A
방대한 패키지 생태계와 도구 — 검증된 내비게이션·SLAM 등 재사용
Q · 7
프레임워크 사용의 대표 장점 3가지는?
A
개발 기간 단축(재사용), 검증된 품질, 표준화(호환·인력)
Q · 8
프레임워크 사용의 대표 단점 3가지는?
A
통신·추상화 오버헤드, 학습 곡선, 종속성(lock-in)
Q · 9
프레임워크 종속성을 완화하는 방법은?
A
LTS 버전 선택, 인터페이스 계층으로 자기 코드를 프레임워크로부터 격리
Q · 10
프레임워크 선정 기준 5가지는?
A
요구 충족(실시간·OS·언어), 생태계, 라이선스, 커뮤니티·지원, 이식성·확장성
05

✏️ 예상문제

1. 프레임워크와 라이브러리를 구분하는 핵심 개념으로, 실행 흐름의 주도권이 개발자 코드가 아닌 프레임워크에 있는 것을 가리키는 용어는?

① 정보 은닉 ② 제어의 역전(IoC) ③ 다형성 ④ 지연 바인딩

정답 및 해설

정답: ② 라이브러리는 내가 호출하지만, 프레임워크는 나를 호출한다(콜백). 이 주도권의 반전이 제어의 역전이며 "할리우드 원칙"으로도 불린다.

2. 로봇 소프트웨어 프레임워크가 일반적으로 제공하는 요소로 가장 거리가 것은?

① 노드 간 통신 기반(토픽·서비스) ② 하드웨어 추상화 인터페이스 ③ 시각화·데이터 기록 등 개발 도구 ④ 로봇 기구부의 기계 가공 도면

정답 및 해설

정답: ④ 프레임워크는 소프트웨어의 뼈대(통신·추상화·패키지·도구)를 제공한다. 기계 도면은 하드웨어 설계 산출물로 SW 프레임워크의 범위가 아니다.

3. 프레임워크와 특징의 연결로 옳지 않은 것은?

① ROS — 방대한 패키지 생태계와 개발 도구 ② OROCOS — 실시간 제어 루프 구성에 특화 ③ OpenRTM — OMG RT-컴포넌트(RTC) 표준 기반 컴포넌트 개발 ④ OROCOS — GUI 화면 디자인 전용 프레임워크

정답 및 해설

정답: ④ OROCOS는 실시간 제어(RTT)에 특화된 프레임워크다. "ROS=생태계, OROCOS=실시간, OpenRTM=컴포넌트 표준"의 매칭을 기억하자.

4. 프레임워크 사용의 단점·유의점으로 옳지 않은 것은?

① 범용 통신·추상화 계층의 오버헤드가 있다 ② 프레임워크 고유 개념의 학습 비용이 든다 ③ 프레임워크의 수명·버전 정책에 종속될 수 있다 ④ 검증된 코드를 재사용하므로 개발 기간이 길어진다

정답 및 해설

정답: ④ 검증된 구현의 재사용은 개발 기간을 단축시키는 프레임워크의 대표 장점이다. 나머지는 실재하는 단점으로, 오버헤드가 문제인 극한 실시간 부분만 펌웨어·전용 프레임워크로 처리하는 절충이 일반적이다.

5. 상용 서비스 로봇 제품에 오픈소스 프레임워크를 채택할 때의 선정 기준으로 가장 거리가 것은?

① 요구 실시간성과 타깃 OS·언어 지원 ② 필요한 기능의 검증된 패키지 존재 여부 ③ 오픈소스 라이선스의 상용 탑재 허용 여부 ④ 프레임워크 로고의 색상

정답 및 해설

정답: ④ 선정 기준은 요구 충족·생태계·라이선스·커뮤니티·이식성이다. 특히 상용 제품은 라이선스 조항(소스 공개 의무 등) 검토가 필수다.

06

🔗 관련 노트

로봇소프트웨어개발기사 필기 · 학습 교재출제기준 2025.1.1 – 2027.12.31