웹 애플리케이션의 레이어는 크게 비즈니스와 관련된 부분과 비즈니스 로직의 결과를 어떻게 표현할지 구현하는 두 부분으로 나눌 수 있다.
비즈니스 로직이야말로 애플리케이션에서 가장 중요하며, 비즈니스 로직의 결과를 어떻게 다룰지 구현하는 기술(예를 들어 브라우저에 표시하거나 RDB에 저장하는 기술 등)이 비즈니스 로직에 영향을 미치지 않는 것이 좋은 설계이다. 그러므로 기존의 세로형 레이어를 버리고 새로운 형태의 레이어를 생각해야 한다. 그것이 이번에 다룰 오목형 레이어이다.
아래 그림에 관해 덧붙이자면 UML 방식으로 그린 것이다. 그림 안의 동그라미는 UML의 인터페이스, 사각형은 클래스이다. 자바를 이용하는 엔지니어라면 반드시 UML을 읽을 수 있어야 한다. 혹시 그림의 원이나 사각형에서 뻗어가는 점선 화살표의 의미를 전혀 알 수 없다면 다른 참고서적이나 블로그를 참고해서 이해해두는 것이 좋다.
오목형 레이어는 이름이 이상하기는 해도 안정 의존 원칙(Stable Dependencies Principle)과 의존 관계 역전 원칙(Dependency Inversion Principle)등에 뒷받침된 꽤 건실한 구조이다.
오목형 레이어에서 중요한 점은 프레젠테이션 층의 이용 기술이 브라우저를 사용하는 기술에서 스마트폰을 사용하는 기술로 변경됐을 경우와 데이터 엑세스 층의 사용 기술이 RDB에서 NoSQL로 변경된 경우 등에서도 비즈니스 층에 영향을 미치지 않는다는 점이다. 즉, 비즈니스 층이야말로 시스템의 핵심이나 기반이므로 표시 메커니즘이나 영속화 메커니즘이 바뀌어도 영향을 받지 않게 만드는 것이 중요하다.
비즈니스 로직 층을 다른 층의 변경과 분리하려면 레이어를 형식으로만 분류할 것이아니라 레이어의 결합 부분에 인터페이스를 도입한 약한 결합 설계나 구현을 고려해야 한다.
오목형 레이어별 상세 설계와 구현에 관해서는 스프링에 의존하는 부분이 많으므로 나중에 설명하기로 하고, 다음으로 레이어별 개요를 알아보자.
Column 1
안정 의존 원칙과 의존 관계 역전 원칙과 오목형 레이어
안정 의존 원칙과 의존 관계 역전 원칙은 패키지를 위한 원칙이다.
안정이란 다른 패키지가 변경됐을 때 영향을 받지 않는다는 것을 의미하고, 안정 의존 원칙이란 안정된 방향으로 의존하라는 뜻이다.
의존 관계 역전 원칙이란 다른 패키지에 가장 큰 영향을 줄 것 같은 위치에 있는 패키지의 의존 방향성을 바꾸기 위한 원칙이다.
의존 관계가 뒤바뀌면 인터페이스의 소유권도 바뀌므로 주의해야 한다.
오목형 레이어는 이 두 가지 원칙을 기초로 한다. 비즈니스 로직 층이 가장 안정돼야 하고 데이터 엑세스 층은 다른 레이어에 가장 큰 영향을 주는 위치에 있으므로 비즈니스 로직 층과 의존 관계를 역전해 비즈니스 로직 층이 데이터 엑세스 층의 인터페이스를 소유하게 된다. 또한 부품화에서 설명하겠지만 '중요한 쪽이 인터페이스를 소유한다'는 원칙도 따른 것이다.
'Study > Spring' 카테고리의 다른 글
[Spring Framework] 다양화되는 사용자 인터페이스 (0) | 2019.08.03 |
---|---|
[Spring Framework] MVC2란? (0) | 2019.08.03 |
[Spring Framework] 티어와 레이어 (0) | 2019.08.03 |
[Spring Framework] 애플리케이션 아키텍처는 자유로운 발상으로 (0) | 2019.08.03 |
[Spring Framework] 개발 효율성과 애플리케이션 아키텍처의 필요성 (0) | 2019.08.03 |