모듈화를 해야 하는 이유

변경하기 쉽다

  • 전체를 이해해야 하는 모놀리식 구조는 간단한 변경도 어렵다

  • 모듈화가 잘 되어있다면 변경하기 쉽다

만약 서비스의 크기가 크지 않다면 해당 이유로 모듈화할 필요는 없다고 생각함

결국 서비스가 커지게 되면서 복잡도가 기하급수적으로 증가할 것으로 예상

이러한 복잡도를 낮추기 위해서 모듈화를 진행하여 각 기능을 나눔

정리하자면,

  1. 서비스가 작다면 모듈화에 대한 필요성이 크지 않다

  2. 그 이유는 복잡하지 않아서 유지보수 비용이 크지 않기 때문 (오히려 모듈로 나누며 드는 비용이 큰 경우도 존재)

  3. 서비스가 복잡해지면 모듈화를 진행한다

  4. 모듈화가 진행되면 각 서비스는 작아지므로 1,2 번에서 언급한 장점을 누릴 수 있다

빌드 속도가 빨라진다

Demystify parallelization in Xcode builds
  • 모듈화를 하지 않는다면 병렬 빌드가 불가능해서 빌드 속도가 느리다

디버깅이 쉽다

제일 처음에 언급했던 변경이 쉽다와 비슷하다

  • 모놀리식 구조에서는 internal이 곧 open이며 public이다

  • 이는 모든 곳에서 internal 접근 제어자에 접근이 가능한 것이다

  • 이는 예상치 못한 곳에서 해당 기능을 사용하고 있을 수 있다는 것이다

결국 비용이 문제

결국 연결되는 것은 비용이다.

  • 모듈이 커지게 되면 변경이 어려워진다. 이는 곧 빠른 개발이 불가능하다.

  • 모듈이 커지게 되면 빌드 속도가 증가한다. 이는 곧 빠른 개발이 불가능하다.

  • 모듈이 커지게 되면 디버깅이 어려워진다. 이는 곧 빠른 개발이 불가능하다.

즉 서비스의 크기가 작지 않다면, 모듈화를 해야 한다.

  • 모듈화 = 서비스를 작게 쪼갠다 = 빠르게 변경이 가능해진다 = 개발 속도가 향상된다 = 비용 감소

전에 블로그에 게시한 적이 있음

Last updated