# platform-utilities

## 목적 / 책임

플랫폼별 I/O 추상화, 로그, 시스템 유틸, Slack 전송, 암호화 등 공통 유틸리티 기능을 담당한다.

## 포함 경로

- `lib/platform/` — 플랫폼 조건부 구현과 isolate/process 처리
- `lib/utils/` — 경로, 문자열, 시스템, Slack 유틸
- `lib/log/` — 로그 출력
- `lib/encrypt/` — 암호화 유틸

## 제외 경로

- `lib/core/` — 애플리케이션 실행 코어
- `lib/charset/` — 문자셋 변환
- `lib/subtitle/` — 자막 파싱

## 주요 구성 요소

- `platform_base.dart` — 플랫폼 API 추상화
- `platform_io.dart`, `platform_web.dart`, `platform_stub.dart` — 플랫폼별 구현
- `SlackSender` — Slack 메시지/파일/build 전송 유틸
- `system_util.dart`, `string_util.dart`, `path.dart` — 공통 유틸

## 유지할 패턴

- 플랫폼별 구현은 조건부 import 구조를 유지한다.
- 외부 API 호출 유틸은 에러 콜백/완료 콜백 계약을 깨지 않도록 변경한다.

## 다른 도메인과의 경계

- **application-core**: 앱 초기화는 core가 호출하고, 실제 시스템/로그 구현은 platform-utilities에 둔다.
- **charset/subtitle**: 변환/파싱 알고리즘은 각 도메인에 두고, 파일 접근과 실행 환경만 제공한다.

## 금지 사항

- 플랫폼별 구현을 한 파일에 섞어 넣지 않는다.
- Slack token 등 민감 정보를 코드나 규칙 파일에 기록하지 않는다.
