본문 바로가기
기술도서/자바스프링 개발자를 위한 실용주의 프로그래밍

자바스프링 개발자를 위한 실용주의 9. 모듈

by jasNote 2024. 11. 9.

모듈성

  • 독립성과 은닉성을 갖는 속성
    • 의존성 관리 : 모듈을 사용하기 위해 어떤 의존성이 필요한지 명시할 수 있어야 한다.
    • 캡슐화 관리 : 모듈은 불필요한 구현을 외부로 드러내지 않는다.

 

모듈과 모듈 시스템

  • 모듈은 모듈성을 만족한다.
  • 모듈성은 독립성, 은닉성이라는 특징이 있다.
  • 모듈 시스템은 코드 묶음이 모듈성을 갖도록 도와주는 시스템이다.
  • 모듈 시스템은 기능적으로 모듈 수준의 의존성관리와 캡슐화 관리가 필요하다.
  • 패키지와 모듈은 다르다.
  • 자바의 패키지 시스템은 모듈이 아니다. 폴더에 가깝다.
  • 하지만 패키지를 만들때도 모듈성을 추구하는 것이 좋다.

 

독립성

  • 최대한 내부에서 해결하라
  • 외부를 강하게 의존하지 마라
  • 외부 시스템을 사용한다면 외부 시스템 사용을 명시해라

은닉성

  • 불필요한 정보를 들어내지마라. 그래야 작업이 편하다.
  • 예시로 gradle 설정중 implement