본문 바로가기
소프트웨어공학론

Pipe and Filter architecture

by 학식러 2023. 4. 28.

 

-Pipe and Filter architecture

 

 

설명

Lexical analysis : 아스키의 나열을 변수, 키워드 단위(토큰)로 쪼개는 것

Syntactic analysis : 1차원적으로 나열되어 있는 토큰을 트리구조로 바꾸는 것

Semantic analysis : 의미 잘못되게 작성한 것 없는지 확인, 트리에 타입정보를 일관성 있게 붙임

 

1) 각 데이터 처리 컴포넌트(필터)는 명확히 구분되어 있고 한가지 유형의 데이터 변환을 담당한다

: 렉시컬, 신택틱, 시맨틱 딱딱 구분,

아스키를 토큰으로 변환, 토큰을 트리구조로 변환 -> 한가지 유형만 변환

 

2) 한 컴포넌트가 출력한 데이터를 다른 컴포넌트로 입력하는 형태로 처리

: 렉시컬의 아웃풋인 토큰 sequence를 신택틱의 입력으로 처리한다.

 

예시

: 컴파일러, 리눅스의 shell 프로그램

 

사용 상황

: 배치 또는 트랜잭션 방식의 데이터를 처리할 때

 

장점

1) 이해하기 쉽고, 변환 필터 재사용이 쉬움

: 이거 끝나면 저거하고, 저거 끝나면 이거하고, ...

 

2) 비즈니스 처리 구조에 적합

: 업무 처리할 때 순서 정해져 있기 때문

 

3) 나중에 변환을 추가하기 쉬움

4) 순차 또는 동시 시스템으로 구현 가능

 

단점

1) 서로 인접한 변환들 간의 데이터 형식을 미리 약속해야 함

: A의 아웃풋이 B의 인풋으로 사용하려면 데이터 형식이 약속 되어야함

 

2) 순서를 지켜야한다.

'소프트웨어공학론' 카테고리의 다른 글

Design Principles - Solid  (0) 2023.05.06
Design Principles - Step-wise Refinement, Abstraction  (0) 2023.05.03
Repository architecture  (0) 2023.04.28
Event-driven Control  (0) 2023.04.27
Model-View-Controller (MVC) architecture  (0) 2023.04.27

댓글