모듈
모듈에서 중요한 것은 응집도와 결합도
1. 응집도
- 모듈 내에 요소들이 서로 연관되어 있는 정도
- 높은 응집도일수록 좋은 설계
Why? 모듈이 하나의 책임에 집중하고 독립성을 높일 수 있기 때문
- 원칙
1. 공통 폐쇄 원칙
같은 이유로 동일한 시점에 변경되는 기능은 하나의 모듈로 묶어야 한다.
ex) 컴포넌트에 종속된 기능, 스타일 등을 묶기
과도하게 적용하면 재사용성이 줄어둘 수 있다.
2. 공통 재사용 원칙
모듈 내의 기능들은 함께 재사용할 수 있어야 한다.
함께 재사용할 수 없다면 분리해야 한다.
과도하게 적용하면 개발 용이성이 줄어들 수 있다.

상황에 따라 이 사이를 적절하게 조절하는 것이 개발자의 능력이다.
2. 결합도
- 다른 모듈과의 의존성에 대한 정도
- 모듈과 모듈 사이의 관계
- 낮은 결합도일수록 좋은 설계
Why? 결합도가 높을수록 수정 시에 영향을 미치는 정도가 증가. 불안정성이 증가.
- 원칙
1. 안정된 의존성 원칙
더 안정된 모듈을 의존하자는 원칙.
의존하는 모듈이 적고 의존 되는 모듈이 많을수록 안정적인 모듈이다.
2. 안정된 추상화 원칙
모듈은 안정된 만큼 추상적이어야 한다는 원칙
안정성이 0이면 추상성은 1이어야 한다.
프론트엔드는 변화가 큰 소프트웨어. 웬만하면 추상화 단위로 나누는 것이 편하다.