AEGLOSLAB ROS 2 Jazzy 대전

부록 부록

A.5 참고자료·출처

A.5.1 이 책의 출처에 관한 정직한 진술

먼저 이 책이 어떻게 쓰였는지 밝힌다.

이 책은 집필 환경에 ROS 2가 설치되지 않은 상태에서, 실행 검증 없이 작성되었다(목차 3·BK-03). 내용은 ROS 2 문서·소스·커뮤니티 관행에 대한 지식에 기반하지만, 개별 문장을 특정 출처와 대조해 확인하지 않았다.

2026-08-14부터 여러 차례에 걸쳐 일부를 실제 Jazzy 컨테이너에서 확인했다(범위는 목차 3의 표). 초기 두 차례는 코어 API·CLI를, 이후 회차는 생태계 스택 네 개(ros2_control·Nav2·MoveIt 2·ros_gz)를 대상으로 했다.

1차에서 오류 두 건을 찾아 고쳤다 — 존재하지 않는 명령(ros2 bag echo), "SEDP가 QoS 전체를 교환한다"는 부정확한 서술.

2차에서 다섯 건을 더 찾아 고쳤다 — 존재하지 않는 환경변수 셋(RCUTILS_LOGGING_SEVERITY·FASTDDS_LOG_LEVEL·FASTDDS_DEFAULT_PROFILES_FILE), Jazzy에서 이미 낡은 ros2 topic echo 서술(기본 QoS가 best_available이라 자동 협상한다 — 오히려 --qos-reliability reliable을 붙이면 끊긴다), 그리고 QoS 정책값 BEST_AVAILABLE이 전권에서 완전히 빠져 있던 것.

3차(2026-08-16)는 성격이 달랐다 — 틀린 서술이 아니라 빠진 주제를 찾았다. 갭 점검으로 다섯 가지 누락을 확인해 채웠고(rclcpp::TypeAdapter, ~/get_type_description 서비스, 내용 필터, matched·incompatible_type 이벤트, 내장 토픽 통계), 전부 컨테이너에서 컴파일·실행한 뒤 집필했다. 같은 작업에서 참조 오지정 75건도 고쳤다 — 파라미터를 1.7(서비스)로, 액션을 1.9(파라미터)으로, 디스커버리를 1.5(QoS)로 가리키던 혼동이 여러 장에 퍼져 있었다.

이 패턴이 시사하는 바가 중요하다. 앞의 두 번은 "공식 문서 기준으로는 맞았던" 서술이 배포판을 거치며 어긋난 경우였다. 즉 이 책의 오류는 무작위가 아니라 버전 이동 지점에 몰려 있다 — 환경변수 이름, CLI 기본값, 새로 추가된 정책값. 검증하지 않은 나머지에도 같은 밀도의 오류가 있다고 보는 편이 안전하며, 특히 자체 릴리스 주기를 갖는 생태계 패키지(Nav2·MoveIt 2·ros2_control·Gazebo) 장들은 실행 검증이 전혀 없다.

그리고 3차가 보탠 교훈은 다르다 — 없는 것은 정오표에 포함되지 않는다. 오류는 읽다가 걸리지만, 완전히 빠진 주제는 독자가 그 존재를 모르므로 영원히 안 보인다. 3차에서 채운 다섯 가지 중 셋은 이 책이 스스로 "저기서 다룬다"고 적어 놓고도 다루지 않은 것이었다. 따라서 "이 책에 없으니 없는 기능"이라고 추론하지 말 것 — 이 책의 커버리지는 완전하지 않으며, 앞으로도 같은 종류의 빈칸이 남아 있다고 보는 편이 안전하다.

그래서 이 부록은 인용 목록이 아니다. 특정 URL·문서 제목·논문을 나열하면 그것이 정확하다는 인상을 주는데, 확인하지 않은 것을 그렇게 제시하는 것은 정직하지 않다. 대신 "무엇을 어디서 확인해야 하는가" 를 정리한다.

이 책의 성격설명
개념·구조 설명비교적 안정적 — 원리는 잘 변하지 않음
판단·견해저자의 것 — "견해"로 라벨링(목차 5)
명령·API·설정버전 의존 — (확인 필요) 표기
수치·성능벤치마크·비교 수치는 제시하지 않음(3.6.1) — 예산·규모감을 보이는 예시 값은 조건과 함께 쓴다(BK-03)
안전·보안·법률다루지 않고 전문가에 위임(14.10)

정직: 이 책의 어떤 서술도 1차 출처를 대체하지 않는다. 특히 명령 옵션·API 시그니처·기본값·버전 지원 상태는 반드시 원문으로 확인해야 한다. 이 책의 가치는 "무엇을 확인해야 하는지"와 "왜 그런지"에 있다.

A.5.2 1차 출처의 종류

정확성이 필요할 때 가야 할 곳들이다.

종류무엇에 대해 정본인가이 책의 장
공식 ROS 2 문서개념·튜토리얼·API 개요전반
패키지 API 문서클래스·함수 시그니처2.1·2.2
소스 코드모든 것의 최종 진실(15.5.4)전반
REP규약·설계 결정A.3
릴리스 노트·CHANGELOG버전별 변경15.1.3
마이그레이션 문서이행 지침15.1
프로젝트별 문서Nav2·MoveIt·ros2_control 등15.5.2
DDS 벤더 문서미들웨어 설정·성능3.7·3.8
이슈 트래커알려진 문제·해법15.5.4
디스커션·포럼맥락·경험15.5.5
표준 원문안전·보안 요구14.10·13.1

견해: "소스가 최종 진실"이라는 원칙을 편하게 받아들이라(15.5.4의 반복). 문서가 불명확하거나 낡았을 때 소스를 여는 것이 추측보다 빠르다. 특히 기본값·동작 순서·예외 처리는 소스에서만 확실히 알 수 있는 경우가 많다.

견해: --help가 CLI의 정본이다(A.1.1). 이 책의 CLI 레퍼런스(A.1)를 포함해 어떤 문서보다 우선한다.

A.5.3 주제별로 어디를 볼 것인가

주제확인처장
CLI 옵션--helpA.1
API 시그니처헤더·API 문서·소스2.1
QoS 의미론ROS 2 문서 + DDS 표준·벤더 문서1.6·3.1
좌표·단위 규약REP 103·105·145A.3.2
배포판·플랫폼REP 2000·공식 배포판 페이지0.3
패키지 품질REP 2004 + 해당 저장소14.7
Nav2 설정Nav2 공식 문서8.1~8.8
MoveIt 설정MoveIt 공식 문서9.1~9.6
ros2_control프로젝트 문서·예제6.2~6.6
Gazebo·ros_gzGazebo 문서10.2
실시간 설정리눅스 RT 문서·배포판 문서12.2
SROS 2·보안ROS 2 보안 문서 + DDS-Security 표준13.2·13.3
안전 표준표준 원문·전문가14.10

A.5.4 이 책이 인용하지 않은 것

의도적으로 하지 않은 것들이다.

하지 않은 것이유
URL 나열확인하지 않았고, 링크는 쉽게 낡는다
논문 인용정확한 서지 정보를 확인할 수 없었다
특정 버전의 API 전문빠르게 낡는다(15.1.1)
성능 벤치마크 수치환경 의존이며 오도할 수 있다(3.6.1)
제품·업체 추천이 책의 역할이 아니다
표준 문서의 문구저작권·정확성(14.10.1)

견해: "확인하지 않은 것을 인용 형태로 제시하지 않는다"가 이 책의 원칙이다. 그럴듯한 출처 목록은 신뢰를 주지만, 그중 하나라도 틀리면 전체의 신뢰가 무너진다. 없는 것을 없다고 말하는 편이 낫다.

견해: 대신 이 책은 (확인 필요) 표기를 촘촘히 썼다. 어느 문장이 검증 대상인지 독자가 알 수 있게 하는 것이, 확인하지 않은 출처를 붙이는 것보다 실질적으로 유용하다고 판단했다.

A.5.5 이 책을 검증하며 읽는 법

독자가 이 책의 정확성을 확인하는 방법이다.

개념 · 구조 명령 · API · 설정 견해 · 판단 이 책의 서술 어떤 종류? 대체로 안정적 다른 자료와 교차 확인 ★ 반드시 --help · 문서 확인 자신의 맥락에 맞는지 판단
규약 안전 · 보안 어떤 종류? REP 원문 전문가 · 표준
(계속 — 규약 · 안전·보안)
서술 유형검증 방법
개념·원리다른 자료와 교차 확인
명령·옵션--help·직접 실행
API헤더·API 문서
기본값·동작소스·직접 측정
규약REP 원문(A.3)
성능 특성자신의 환경에서 측정(11.7)
견해근거가 자신의 맥락에 맞는가

견해: "직접 해 보는 것"이 이 책을 읽는 가장 좋은 방법이다. 이 책은 실행 검증 없이 쓰였으므로, 독자가 실행해 보며 읽으면 이 책의 한계를 넘어선다. 차이를 발견하면 그것이 여러분의 환경에서의 진실이다.

A.5.6 이 책의 내부 참조 체계

이 책 안에서 무언가를 찾는 방법이다.

찾는 것어디로
주제별 장목차(목차)
증상별 진단11.1(현장 플레이북)
성능 문제12.6(안티패턴 카탈로그)
명령A.1
QoS·환경변수A.2
규약A.3
용어A.4
학습 순서A.6

각 장의 공통 구조:

절내용
-01이 장에서 배우는 것·선수 지식·정직 고지
중간 절본문
뒤에서 두 번째함정 카탈로그(증상→대처)
마지막체크포인트(자가 확인 질문)

견해: 각 장의 "함정 카탈로그"만 읽어도 실무적 가치가 크다. 전체를 읽을 시간이 없다면, 관련 장의 함정 표를 보는 것이 빠른 경로다. 대부분 증상 → 원인 → 대처 → 관련 장으로 되어 있다.

견해: "체크포인트"는 자가 진단용이다. 답할 수 없는 질문이 있으면 그 절을 다시 보라. 학습 여부를 확인하는 용도로 설계했다.

A.5.7 이 책의 유효 기간

언제까지 유효한가.

내용수명
원리·구조(DDS·실행 모델·좌표)길다
설계 판단·트레이드오프길다
규약(REP 기반)길다 — 개정 시 확인
API·명령 세부배포판 단위로 낡음
도구 현황(시뮬레이터·미들웨어)빠르게 낡음(10.5·3.10)
배포판 정보Jazzy 기준

특히 빨리 낡는 장:

장이유
3.10(zenoh·대체 미들웨어)변화 빠름
10.5(대안 시뮬레이터)제품 현황 변화
15.2(다음 배포판)미래 서술
A.1·A.2(레퍼런스)옵션 변경
14.7·15.5(생태계)프로젝트 상태 변화

정직: 이 책은 Jazzy(2024-05 릴리스)를 기준으로 쓰였다. 시간이 지날수록 명령·API·도구 서술의 정확도가 떨어지므로, 원리 부분은 계속 유용하되 세부는 확인하며 읽어야 한다. 15.5.4에서 "블로그·영상의 배포판을 확인하라"고 한 것이 이 책에도 적용된다.

A.5.8 오류를 발견했다면

이 책에 틀린 내용이 있을 수 있다.

유형가능성
명령·옵션 이름있음 — 검증되지 않음
API 세부있음
버전별 지원 상태있음 — (확인 필요) 표기
개념 설명낮으나 가능
판단·견해맥락에 따라 다를 수 있음

견해: 차이를 발견하면 여러분의 환경이 옳다. 이 책은 검증되지 않았고 여러분은 실행해 보았다. 그 차이를 기록해 두는 것(11.1.8의 사후 분석과 같은 발상)이 팀의 지식이 된다.

견해: 이 책의 (확인 필요) 표기가 완전하지 않을 수 있다. 표기가 없는 곳에도 버전 의존적 내용이 있을 수 있으므로, "명령·API·기본값은 항상 확인" 을 습관으로 두는 것이 안전하다.

A.5.9 함께 읽으면 좋은 것

이 책이 다루지 않거나 얕게 다룬 영역이다.

영역이 책의 깊이보완
제어 이론실무 적용만(6.5)자매서 robotics 제12부(RB-301~RB-328)·제어공학 교재
추정 이론(칼만 필터 등)개념·실무만(7.6)자매서 robotics 제9부(RB-195~RB-241)·kalmann
컴퓨터 비전ROS 연동 중심(7.2·7.3)자매서 robotics 제10부(RB-242~RB-276)·비전 교재
SLAM 이론실무 운용 중심(8.2)자매서 robotics 제9부(RB-195~RB-241)·SLAM 교재
기구학·동역학실무 적용만(9.1·9.2)자매서 robotics 제2·3부(RB-44~RB-75)
계획 알고리즘선택·튜닝 중심(8.5·9.2)자매서 robotics 제11부(RB-277~RB-300)
액추에이터·모터드라이버 배선 관점만(6.7)자매서 robotics 제5부(RB-93~RB-118)
리눅스 시스템ROS 관련만(12.2·14.8)시스템 프로그래밍
DDS 표준ROS 관점(3.1~3.3)OMG 표준 문서
안전 공학다루지 않음(14.10)표준·전문가
보안방어 개관만(13.1~13.5)보안 전문 자료
GPU·가속개념만(7.8)자매서 nvidia — NV-108·NV-109(Isaac ROS·NITROS)·NV-102·NV-105(Jetson 선택·전력)·NV-56(추론 최적화)·NV-112·NV-113(Isaac Sim·ROS 브리지)

정직: 자매서 robotics(RB)는 집필 중이다. 위 표의 RB 번호는 robotics/docs/book/RB-00-목차.md가 선언한 장 번호이며, 장 번호는 2026-11-03에 새로 고정했다(1408장). 이전 계획(137장)의 번호와 다르다. 2026-11 시점에 새 번호로 작성이 끝난 것은 RB-01뿐이다. 나머지는 예고된 자리이므로 아직 내용이 없을 수 있다 — 찾기 전에 목차에서 상태(✅·⬜)를 확인하라. 번호는 밀지 않는 규약(CLD-03)이라 나중에 채워져도 위치는 그대로다.

견해: 이 책은 "ROS 2로 로봇 시스템을 만들고 운영하는 것"에 초점을 맞췄다. 각 영역의 이론은 그 분야의 교재가 훨씬 낫고, 이 책은 그 이론을 ROS 2에서 어떻게 쓰는가를 다룬다. 두 가지가 함께 필요하다.

견해: 이론이 부족하면 튜닝이 시행착오가 된다. 제어 게인을 추측으로 조정하거나 필터 파라미터를 근거 없이 바꾸는 것은, 이론을 모르기 때문인 경우가 많다. 실무가 막히는 지점이 이론을 공부할 시점이라는 신호다.