# core ## 목적 / 책임 파이프라인 실행 전 단계에서 YAML 파싱, Jenkins 환경 변수 합성, 태그 치환을 담당하는 공통 인프라 레이어다. `Application` 싱글턴이 전체 빌드 흐름을 오케스트레이션한다. ## 포함 경로 - `lib/oto/application.dart` — 싱글턴 오케스트레이터 (BuildType enum, 빌드 진입점) - `lib/oto/core/` — 태그 시스템, 데이터 합성, 정의 데이터 - `lib/oto/utils/` — 공통 유틸리티 (Mattermost 등 재사용 헬퍼) ## 제외 경로 - `lib/oto/pipeline/` — 실행 흐름 (core 처리 이후) - `lib/oto/commands/` — 커맨드 구현체 (core 결과물을 소비) ## 주요 구성 요소 - `TagSystem` (`tag_system.dart`) — `` 읽기 / `<@namespace.key>` 쓰기 태그 처리 - `DataComposer` (`data_composer.dart`) — YAML + Jenkins env → `DataCommand` 리스트 변환 - `DefinedData` (`defined_data.dart`) — 내장 YAML 템플릿 (빌트인 정의) - `MattermostSender` / `MattermostData` (`utils/mattermost/`) — 공통 알림 헬퍼 ## 유지할 패턴 - 태그 치환은 반드시 `TagSystem`을 통해 처리 - 태그 전체 문자열이면 원본 타입 유지, 부분 삽입이면 `toString()` 변환 원칙 유지 ## 다른 도메인과의 경계 - **pipeline**: DataComposer가 DataCommand 리스트 생성을 완료한 후 Pipeline이 실행 시작 - **command**: 커맨드 실행 중 쓰기 태그(`<@...>`) 처리는 TagSystem에 위임 ## 금지 사항 - core에서 외부 시스템(Git, Jenkins API 등)을 직접 호출하지 않는다 - 커맨드별 파싱 로직을 DataComposer에 넣지 않는다