-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 |
댓글