7. Phase 5 - 응집도 향상하기
1. 입출금 내역 연산 로직 분리
입출금 내역에 대한 연산 로직은 본 애플리케이션에서 중요한 로직을 담당하는 비즈니스 로직(Business Logic) 이라고 볼 수 있음
해당 로직은 별도의 패키지인 service package로 구성하여 연산 처리(Processing)를 담당한다는 의미로 BankProcessor.java 파일로 분리
1-1. 분리 결과
분리 결과 개선된 포인트는 다음과 같음
높아진 내부 응집도
월별, 카테고리별과 같이 다양한 조건 입출금 내역의 결과를 처리하는 기능을 BankStatmentProcessor 클래스로 분리하였기 때문에 이 클래스의 자체 내부 응집도가 높아짐
재사용성
이러한 BankStatmentProcessor 클래스 역시 다른 클래스에서 재사용 가능해짐
이렇게 분리하지 않으면 계산 로직을 사용하기 위해 BankStatementAnalyzer 클래스를 사용해야 하기 때문에 불필요한 Parser나 TSV 읽기 로직까지 불러와야 하는 단점이 발생
💡
Tip
클래스 혹은 메서드, 패키지 내부 응집도는 높게, 다른 클래스 간 결합도는 낮게 유지하기
응집도가 클래스, 패키지, 메서드 등의 동작이 서로 얼마나 관련되어 있는 지에 대한 척도라면
결합도는 한 기능이나 클래스가 다른 클래스에 얼마나 의존(dependent)하고 있는지를 나타냄
따라서 결합도란 특정 클래스를 구현하는데에 얼마나 많은 클래스들을 의존하고 있는지로 가늠할 수 있음
Last updated on