계층화(Layering)란? 계층화란 모듈들이 계층(Layer)을 이루도록 역할과 책임을 세분화 하는 것을 말한다. 시스템을 구성하는 모듈들의 상관 관계를 의존성을 이용해 구분한다. 상위 계층의 모듈은 하위 계층에서 제공하는 인터페이스를 이용해 구현되어야 한다. 계층화의 예로 비행기 서비스의 예를 들어보자. 어떤 사람이 출발 항공에서 도착 항공 까지 비행 서비스를 이용하는 것을 계층화(Layering) 한 것을 나타냈다. 매표소 계층, 수화물 계층, 게이트 계층, 활주로 계층, 비행기 계층으로 나누어 각각 계층이 역할과 책임을 세분화하여 맡는다. 이렇게 계층화를 하는 이유가 무엇일까? 계층화의 장점 복잡한 시스템을 파악하기 쉽게 단순화 시킬 수 있다. 시스템의 업데이트와 유지보수를 쉽게 할 수 있다. 한..