상세 컨텐츠

본문 제목

알고보니 - 아키텍처 스타일 대표예제 : Layered Architecture

IT 정보/IT 알쓸신잡

by 마이드림72 2022. 4. 6. 15:14

본문

Layered Architecture이란?

 

 

Layer의 구성을 통하여 어플리케이션 처리를 위한 아키텍처를 구성하는 방법을 말한다.

 - Service : 어플리케이션이 제공하는 독립적인 서비스

 - Business-Module : 비즈니스 로직이 구체적으로 표현되며 Main의 Sub 모듈이면서, 재활용을 목표로 독립적으로 존재

 - Link(api) : 외부에 있는 EAI/BRE/TP_Monitor 등과의 연계를 담당하는 컴포넌트(모듈)

 - DBIO : 데이터 처리를 담당하는 SQL을 포함하는 모듈

 - Utility : 계산 처리, 변환 등의 데이터 참조가 없는 기능성 유틸리티

 

 

Service Layer 상세 설명

Service Layer 는 어플리케이션 프레임워크 외부에서 인식가능한 거래 요청의 단위를 실체화 한 Service 들이 위치하는 Layer임

 

1. Layer 구성요소

외부 채널에서 인식 가능한 거래 요청의 단위인 Service 들로 구성됨

“Service” 란 채널에서 접근 가능한 어플리케이션 거래의 단위임

 

2. 주요 역할 및 책임

처리흐름 제어 및 하위 레이어의 구성요소를 호출하여, 서비스 수행에 필요한 세부 프로세스를 완성함 

하나의 Transaction 처리를 위한 모든 비즈니스 스텝을 포함하도록 함 

서비스의 완전한 처리를 위한 하위 계층의 모듈과 컴포넌트 호출을 담당함

에러 처리, 로깅 등의 시스템/프레임워크 관점에서의 처리 단위임

서비스의 묶음으로 단위 시스템이 형성되며, 단위 시스템의 묶음으로 전체 시스템을 구성하게 되는 시스템 구성의 최소 단위임

서비스는 S/W 품질속성 (응집도, 결합도, 재활용성, 유연성 등)을 감안하여 설계되어야 함

 

3. Layer 간 호출 원칙 및 제약사항

Service Layer는 바로 하위의 Business Layer와 전체 공통인 Utility Layer, DBIO Layer, Link Layer의 구성요소를 사용할 수 있으며, 사실상 제약이 없음

 

Business Module Layer 상세 설명

Business Module Layer 는  비즈니스 로직이 구체적으로 표현되며 service의 sub 모듈이면서, 독립적으로 존재 하는 Layer임

 

1. Layer 구성요소

독립적인 비즈니스 로직으로 구성

 

2. 주요 역할 및 책임

서비스(Business Main)의 sub모듈로 독립적인 Business logic을 수행

필요 시 시스템 인터페이스를 호출함

업무 로그, 계리 등의 업무적 후처리를 위한 데이터 조립 수행

DBIO Layer의 구성요소간 참조를 방지하기 위한 브로커 역할 수행

 

3. Layer 간 호출 원칙 및 제약사항

Business Module Layer는 바로 하위의 Link Layer와 DBIO Layer, 도메인 및 전사 공통인 Utility Layer의 구성 요소를 호출할 수 있음

동일 Layer 상의 구성요소 간 호출을 허용하며, 각 구성요소는 서로 다른 DBIO를 호출 하여야 함

 

 

Link Layer 상세 설명

Link Layer 는 대외기관 및 타 시스템과의 연계 서비스를 수행하는데 필요한 Adaptor를 제공하는 역할을 수행하는 Layer임

 

1. Layer 구성요소

대외기관 및 타 시스템/타 서비스와의 연계서비스를 수행하는 구성요소

실제 구현은 인터페이스를 위한 API를 호출하는 방식으로 구현될 수 있으며, 물리적인 별도의 모듈로 분리되지 않을 수 있음

 

2. 주요 역할 및 책임

서비스 또는 모듈  구성 시 필요한 연계 인터페이스를 호출함

타 시스템과의 연계를 위해 필요한 Adaptor와 Connector는 표준화하여 사용할 수 있도록 함

타 시스템 구성요소의 참조에 대해 표준화된 방식을 적용하기 위한 공통 기능 담당

 

3. Layer 간 호출 원칙 및 제약사항

Link Layer는 서비스, Business Module, Utility Layer에서 외부에 존재하는 다른 System Link Layer의 Connector를 Adaptor를 통해 호출할 수 있음

동일 Layer 상의 구성요소 간 호출은 허용하지 않음

 

 

DBIO Layer 상세 설명

DBIO Layer 는 서비스 처리 중 Data 의 CRUD 및 실제 비즈니스 로직의 수행을 처리하는 컴포넌트들이 위치하는 Layer임

 

1. Layer 구성요소

각 업무 도메인 별 데이터 처리 및 데이터 처리의 조합으로 비즈니스를 처리하는 구성요소

Entity 단위의 DML을 처리하는 Entity DBIO와 Query와 복잡한 DML을 처리하는 Query DBIO의 2가지로 구분됨

 

2. 주요 역할 및 책임

데이터의 생성, 조회, 수정, 삭제(CRUD)를 수행하며, 재활용 가능한 데이터 처리 로직을 모듈화 하는 것을 목적으로 함

별도의 제작 도구 등을 이용하여 SQL을 표준화하고, 적정한 수준의 품질을 보장받는 것을 목적으로 함

서비스, Business Module의 호출을 통해, 전달받은 I/O를 이용하여 DBMS에 사용되는 SQL을 수행함 

데이터에 대한 가공/변환, 업무 검증 또는 계산 로직 들을 수행함

 

3. Layer 간 호출 원칙 및 제약사항

DBIO Layer는 Service Layer, Business Module Layer에서 호출 가능함

DBIO Layer는 하위 Layer인 Utility Layer 만을 호출할 수 있으며, 동일 Layer 간의 호출은 허용하지 않음

 

 

Utility Layer 상세 설명

Utility Layer는 비즈니스 데이터에 상관없이 계산, 검증, 변환 등의 자체적인 기능성만을 제공하는 Layer임

 

1. Layer 구성요소

DB 참조 없이 어플리케이션 내에서만 사용하는 공통 로직 및 유틸리티 프로그램

Domain 구성요소들 중, 여러 업무 도메인에 걸쳐 공통적으로 사용되는 구성요소들을 별도로 그룹핑함

프레임워크 공통 유틸리티를 포함함

 

2. 주요 역할 및 책임

데이터 접근이 없는 검증, 계산, 변환, 체크 기능 제공

공통 Utility (체크, 변환, 계산) 기능 제공

공통 데이터의 참조 및 갱신(CRUD) 기능 제공

전사 공통으로 플랫폼과 무관하게 동일한 서비스를 제공함

 

3. Layer 간 호출 원칙 및 제약사항

Utility Layer는 모든 상위 Layer에서 호출을 허용함

동일 Layer상의 구성요소간의 호출을 허용함

 

이상으로 아키텍처 스타일의 종류 중 가장 대표적으로 사용하는 Layered Architecture에 대하여 알아보았다.

관련글 더보기

댓글 영역