소프트웨어 아키텍처 패턴 개요
아키텍처 패턴은 소프트웨어 시스템의 전반적인 구조를 정의하는 상위 수준의 설계 전략입니다. 정보처리기사 시험에서는 레이어드, 이벤트 드리븐, 파이프-필터, 공간 기반 아키텍처와 MSA 패턴이 핵심 출제 범위입니다.
레이어드 아키텍처(Layered Architecture)
가장 널리 사용되는 패턴으로 기능을 수평적 계층으로 분리합니다.
- 4계층: Presentation(UI) → Business Logic → Persistence(데이터 접근) → Database
- 개방 레이어(Open Layer): 계층을 건너뛸 수 있음
- 폐쇄 레이어(Closed Layer): 반드시 인접 계층을 통해야 함
- 장점: 분리성, 이해 용이. 단점: 성능 저하(Sinkhole 안티패턴), 모놀리식 배포
이벤트 드리븐 아키텍처(EDA)
- 이벤트 생산자(Producer): 이벤트 발행. 소비자를 알지 못함
- 이벤트 브로커: Kafka, RabbitMQ. 이벤트 라우팅·저장
- 이벤트 소비자(Consumer): 관심 있는 이벤트 구독·처리
- 토폴로지: 중재자(Mediator) 토폴로지 vs 브로커 토폴로지
파이프-필터 패턴(Pipe-and-Filter)
- 필터(Filter): 데이터를 변환하는 독립적 처리 단위
- 파이프(Pipe): 필터 간 데이터 전달 통로
- 적용 예: Unix 파이프라인(cat | grep | sort | uniq), ETL 파이프라인, 컴파일러
- 장점: 재사용성, 병렬 처리 용이. 단점: 상태 공유 어려움
공간 기반 아키텍처(Space-Based Architecture)
데이터베이스 병목을 제거하기 위해 인메모리 데이터 그리드를 공유 공간으로 사용합니다.
- 처리 유닛(Processing Unit): 독립적으로 확장 가능한 처리 노드. 인메모리 데이터 포함
- 가상화 미들웨어: 요청 분산, 데이터 복제, 세션 관리
- 적용 예: 경매 사이트, 온라인 게임 등 급격한 트래픽 변동 환경
MSA 관련 아키텍처 패턴
- Strangler Fig Pattern: 모놀리스를 점진적으로 마이크로서비스로 전환. 새 기능은 MSA로, 기존 기능은 점진적 이전
- Anti-Corruption Layer(ACL): 레거시 시스템과 새 시스템 사이의 번역 레이어
- Backend for Frontend(BFF): 클라이언트 유형별 맞춤 백엔드 API
정보처리기사 기출 핵심 정리
- 레이어드 = Presentation→Business→Persistence→DB, 4계층
- EDA = 이벤트 중심, 느슨한 결합, Kafka/RabbitMQ
- 파이프-필터 = 독립 변환 단계 체인, Unix 파이프라인
- Strangler Fig = 모놀리스 → MSA 점진적 전환 패턴
- 공간 기반 = 인메모리 그리드, DB 병목 제거