본문 바로가기

항해

모듈화가 필요한 이유

자바의 버전 공부...자바 8과 11의 차이점!

여러 개선 사항 중 모듈화라는 것을 알게 됨

 

✔️모듈시스템 도입

모듈화를 통해...

  • 자바 클래스와 패키지를 더 체계적으로 구조화, 관리
  • 모듈 간 의존성을 더욱 명확하게 관리

이렇다고 한다.

 

✔️모듈화의 장점?

💡 모듈화란?
▸ 소프트웨어를 작은 단위인 모듈로 분리하여 개발하는 방법
▸ 모듈은 특정 기능을 수행하는 작은 코드 블록이며 모듈끼리 상호작용하면서 전체 소프트웨어 시스템을 구축함
  1. 재사용성 향상 :
    모듈은 독립적으로 개발되며 재사용 가능한 단위로 설계되기 때문에 다른 프로젝트나 부분에서도 활용할 수 있다.
    ->개발 속도를 높이고 비용을 절감할 수 있다.
  2. 유지보수 용이성 : 
    각 모듈이 독립적이기 때문에 변경이나 수정이 필요한 경우 해당 모듈만 수정하면 된다.
    ->전체 코드의 영향을 최소화하여 유지보수 용이

  3. 개발 효율성 증대 : 
    큰 시스템을 작은 단위로 나누어 개발하므로 개발자들은 병렬적으로 작업할 수 있음
    -> 개발시간을 단축하고 효율성을 높일 수 있음

  4. 코드 가독성 향상 :
    모듈화는 코드를 논리적으로 구분하여 관리하기 쉬움
    -> 각 모듈은 특정 기능을 담당하므로 코드의 의도를 이해하기 쉽고 가독성이 좋아짐
  5. 디버깅 용이성 : 
    독립적인 테스트 및 디버깅이 가능
    ->빠르게 버그를 발견하고 수정 가능

  6. 유연성과 확장성 : 
    모듈화는 소프트웨어를 작은 단위로 나누어 개발
    ->필요에 따라 새로운 기능을 추가하거나 기존 기능을 변경하는 작업이 비교적 간단해짐
  7. 품질향상 : 
    단위테스트와 같은 품질보증 절차를 강화할 수 있다
    ->각 모듈은 독립적으로 테스트되므로 전체 시스템의 품질을 높일 수 있다.

  8. 분업 용이성 : 
    대규모 프로젝트에서 여러 개발자들이 동시에 작업할 수 있게 작업을 분할하여 각 개발자가 본인의 역할에 집중할 수 있도록 도와줌

✔️모듈화 예시

<가정>

  • 주문 관리 시스템은 제품 주문과 배송관리로 구성되어있다고 가정
  • 각 모듈은 독립적으로 개발 및 유지 보수가능

1. 제품 주문 모듈:
  제품 주문과 관련된 기능을 담당

// ProductOrderModule.java
public class ProductOrderModule {
    public void placeOrder(Product product, Customer customer) {
        // 주문 처리 로직
    }
}

 

2. 배송 관리 모듈:
주문된 제품을 배송하는 기능을 담당

// ShippingModule.java
public class ShippingModule {
    public void shipOrder(Order order) {
        // 배송 처리 로직
    }
}

 

3. 메인 애플리케이션:

두 모듈을 사용하여 주문과 배송을 관리한다.

// MainApplication.java
public class MainApplication {
    public static void main(String[] args) {
        ProductOrderModule productOrderModule = new ProductOrderModule();
        ShippingModule shippingModule = new ShippingModule();

        Product product = new Product("12345", "Smartphone", 599.99);
        Customer customer = new Customer("John Doe", "johndoe@example.com");
        
        Order order = productOrderModule.placeOrder(product, customer);
        shippingModule.shipOrder(order);
    }
}