더북(TheBook)

소프트웨어 시스템에서는 클래스들이 모여 더 큰 동작을 수행한다. 예를 들어 서비스 클래스는 작업을 수행하기 위해 여러 리포지터리와 엔터티에 의존한다. 이는 서비스가 이러한 다른 클래스들과 결합된다는 뜻이다.

지금까지 큰 클래스의 문제와 작은 클래스의 장점에 대해 살펴봤다. 한편으로는 클래스가 모든 작업을 혼자 처리하는 대신 다른 클래스에 의존하는 것이 좋다. 다른 한편으로는, 클래스가 작업의 일부를 다른 클래스에 위임하려면 다른 클래스가 작업을 제대로 수행하리라고 ‘신뢰’해야 한다. 만약 개발자가 어떤 엔터티에 버그를 만들어내면, 이 버그가 서비스 클래스까지 영향을 미쳐 서비스 클래스의 코드에 손을 대지 않았는데도 문제가 생길 수 있다.

그러므로 클래스가 무작위로 다른 클래스에 의존하게 만들어서는 안 된다. 의존성 관리, 더 쉬운 말로 어떤 클래스가 어떤 클래스에 의존하는지와 그 의존성이 좋은지 나쁜지를 판단하는 것은 대규모 소프트웨어 시스템을 유지할 때 매우 중요하다.

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