모듈 경계와 의존성 흐름
모듈은 파일 단위로 공개할 값과 가져올 값을 분리해 전역 오염을 줄이고 코드 의존성을 명확하게 만든다.
| 경계 | 하는 일 | 좋은 기준 | 위험 신호 |
|---|---|---|---|
| Export | 외부에 공개할 API 선택 | 이름과 책임이 명확 | 모든 내부 값을 export |
| Import | 필요한 의존성만 가져옴 | 사용 위치 가까이 선언 | 순환 참조 발생 |
| Private code | 파일 안 구현 세부사항 | 외부에서 직접 접근 불가 | 테스트 때문에 내부를 과다 공개 |
| Dependency direction | 의존 흐름을 단방향으로 유지 | 상위가 하위 규칙을 사용 | 서로 물고 있는 모듈 |
| Bundle | 사용한 코드만 묶이게 설계 | tree shaking 가능 | side effect 모듈 남발 |
모듈 경계가 좋으면 어떤 파일을 바꿨을 때 영향을 받는 범위를 더 쉽게 예측할 수 있다.