## 0.1 단일 워크스페이스 레이아웃(src, build, install, log) 파티셔닝 체계

ROS 2 및 Colcon 빌드 시스템은 단일 워크스페이스(Workspace) 내에서 프로젝트의 생명주기를 관리하기 위해 정형화된 디렉터리 레이아웃 구조를 강제한다. 이 아키텍처는 개발 과정에서 발생하는 소스 코드 리비전, 빌드 부산물, 최종 배포 아티팩트(Artifact), 그리고 실행 로그를 상호 독립적인 공간으로 파티셔닝(Partitioning)하는 것을 목적으로 설계되었다. 이를 통해 캐시 오염을 방지하고 환경의 이식성(Portability)을 극대화한다.

0.1.1 소스 디렉터리 (src)

src 디렉터리는 개발자가 작성하거나 외부로부터 클론(Clone)한 소프트웨어 패키지들의 원본 소스 코드가 위치하는 읽기 전용(Read-only) 기준 공간이다.
Colcon 시스템은 빌드 스크립트 실행 시 이 공간 내에 어떠한 빌드 목적 파일(Object file)이나 구성 파일(Configuration file)도 생성하지 않도록 설계된 Out-of-source 빌드 패러다임을 철저히 준수한다. 이는 단일 소스 트리를 활용하여 상이한 아키텍처(예: x86, ARM)나 상이한 빌드 프로필(Debug, Release)에 대한 크로스 컴파일(Cross-compilation)을 동시에 수행할 때 소스 트리가 오염되는 현상을 원천적으로 차단한다.

0.1.2 빌드 디렉터리 (build)

build 디렉터리는 Colcon 프레임워크가 메타 빌드 파이프라인을 구동하면서 생성하는 모든 중간 부산물을 격리하는 파티션이다.
Colcon은 워크스페이스 내의 각 패키지마다 build/<패키지명> 형태의 독립적인 하위 디렉터리를 할당한다. CMake의 캐시 파일(CMakeCache.txt), 컴파일된 C++ 목적 파일(.o), Make 혹은 Ninja 빌드 스크립트 등이 패키지 단위로 엄격하게 분리되어 저장된다. 이러한 패키지 수준의 격리(Package-level Isolation)는 병렬 컴파일(Parallel Compilation) 수행 간 파일 시스템 레벨의 I/O 경합(Contention) 및 심볼 충돌을 방지하며, 특정 패키지의 빌드 실패가 다른 패키지의 캐시에 영향을 미치지 않도록 보장한다.

0.1.3 설치 디렉터리 (install)

install 디렉터리는 성공적으로 빌드가 완료된 패키지의 최종 실행 파일, 라이브러리, 파이썬 모듈, 그리고 구성 파일 등이 배포되는 FHS(Filesystem Hierarchy Standard) 호환 파티션이다.
build와 마찬가지로 각 패키지별로 install/<패키지명> 디렉터리가 생성되며, 해당 공간 내부는 전형적인 유닉스 시스템의 레이아웃(bin, lib, share, include)을 따른다. 가장 핵심적인 특징은 패키지별로 생성되는 셸 스크립트(setup.bash, local_setup.bash 등)이다. 이 스크립트들은 런타임에 실행 파일 및 동적 링커(Dynamic Linker) 경로(PATH, LD_LIBRARY_PATH), 환경 변수(AMENT_PREFIX_PATH)를 현재 터미널 캐시에 재귀적으로 동기화하는 기능을 수행하여, 오버레이(Overlay) 워크스페이스 메커니즘을 구동하는 기술적 토대를 제공한다. (이 기법은 Symlink Install 옵션을 통해 디스크 용량을 최적화하고 재빌드 없이 소구경 수정 사항을 즉시 반영하도록 응용될 수 있다.)

0.1.4 로깅 디렉터리 (log)

log 디렉터리는 빌드 단위별, 혹은 특정 런타임 세션 단위별 진단 및 추적(Traceability) 데이터를 영속화하는 공간이다.
거대한 워크스페이스의 병렬 빌드 과정에서는 각기 다른 패키지의 표준 출력(stdout)과 표준 에러(stderr)가 터미널 상에서 혼재(Interleaved)되어 출력되므로 디버깅이 극도로 제약된다. Colcon은 log/<빌드_타임스탬프>/<패키지명> 형태로 각 패키지의 컴파일 콘솔 출력을 별도의 파일(stdout_stderr.log, logger_all.log)로 캡처하여 저장한다. 패키지 실패 시 컴파일러 에러 추적은 물론, events.log를 통한 빌드 소요 시간 분석 텔레메트리(Telemetry) 기능까지 통합되어 있어 대규모 시스템의 지속적 통합(Continuous Integration) 파이프라인에서 필수적인 감사 궤적(Audit Trail)을 제공한다.

이러한 4분할 파티셔닝 구조는 ROS 2 빌드 시스템이 단일 워크스페이스 내에서 다수의 패키지를 안전하고 결정론적(Deterministic)으로 구성할 수 있게 하는 불변의 공간적 아키텍처이다.