더북(TheBook)

3.3.3 모듈 생성의 원칙

임의든 즉시든 모듈을 생성할 때는 다음 사항을 유념하기 바란다.

첫째, 단일 책임 원칙을 잊지 말고 한 모듈에 한 가지 일만 시키자. 그래야 결속력이 강하고 다루기 쉬운, 아담한 API를 작성하게 된다.

둘째, 모듈 자신이 쓸 객체가 필요하다면 의존성 주입 형태로 (직접 또는 팩토리 주입 형태로) 이 객체를 제공하는 방안을 고려하라.

셋째, 다른 객체 로직을 확장하는 모듈은 해당 로직의 의도가 바뀌지 않도록 분명히 밝혀라(리스코프 치환 원칙).

표 3-3은 모듈 패턴에 관한 SOLID/DRY 요약표다.

▼ 표 3-3 모듈의 SOLID/DRY 요약표

원칙

결과

단일 책임

모듈은 태생 자체가 의존성 주입과 친화적이고 애스팩트 지향적이라 단일 책임 유지는 어렵지 않다.

개방/폐쇄

다른 모듈에 주입하는 형태로 얼마든지 확장할 수 있다. 통제해야 할 모듈은 수정하지 못하게 차단할 수 있다.

리스코프 치환

의존성의 의미를 뒤바꾸는 일만 없으면 별문제 없다.

인터페이스 분리

결합된 API 모듈 자체가 자바스크립트에서 분리된 인터페이스나 다름없다.

의존성 역전

임의 모듈은 의존성으로 주입하기 쉽다. 모듈이 어떤 형태든 다른 모듈에 주입할 수 있다.

DRY(반복하지 마라)

제대로만 쓴다면 DRY한 코드를 유지하는 데 아주 좋은 방법이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.