정보처리기사 기출문제 총정리 ⑪ 소프트웨어 아키텍처 – MVC·MSA·SOA·레이어드

소프트웨어 아키텍처란?

소프트웨어 아키텍처는 시스템의 구성 요소, 컴포넌트 간 관계, 설계 원칙을 정의한 구조적 청사진입니다. 정보처리기사에서는 주요 아키텍처 패턴의 특징과 장단점이 자주 출제됩니다.

레이어드 아키텍처 (Layered Architecture)

기능을 계층으로 분리하여 위에서 아래 방향으로만 의존합니다.

  • 표현 계층(Presentation): UI, 사용자 입출력
  • 비즈니스 로직 계층(Business): 핵심 업무 규칙
  • 데이터 접근 계층(Data Access): DB 연동
  • 데이터 계층(Database): 실제 데이터 저장

장점: 유지보수 용이, 단위 테스트 쉬움. 단점: 불필요한 계층 통과 오버헤드

MVC 패턴 (Model-View-Controller)

  • Model: 데이터와 비즈니스 로직
  • View: UI 표현
  • Controller: 사용자 요청을 받아 Model을 호출하고 View를 선택

파생 패턴: MVP(Model-View-Presenter), MVVM(Model-View-ViewModel)

SOA (Service-Oriented Architecture)

비즈니스 기능을 독립적인 서비스 단위로 분리하고, 표준 인터페이스로 연동합니다.

  • ESB(Enterprise Service Bus): 서비스 간 메시지 라우팅·변환 미들웨어
  • 웹 서비스: SOAP/WSDL 기반 서비스 연동
  • MSA의 전신이지만 중앙화된 ESB 때문에 단일 실패점 발생 가능

마이크로서비스 아키텍처 (MSA)

애플리케이션을 작고 독립적으로 배포 가능한 서비스로 분해합니다.

특징

  • 서비스별 독립 배포, 독립 확장 가능
  • 서비스별 다른 기술 스택 사용 가능 (폴리글랏)
  • API Gateway로 클라이언트 단일 진입점 제공
  • 서비스 간 통신: REST API 또는 메시지 큐(Kafka, RabbitMQ)

MSA 설계 패턴

  • Circuit Breaker: 장애 서비스 차단으로 연쇄 장애 방지
  • Saga: 분산 트랜잭션 처리 패턴
  • CQRS: 읽기/쓰기 모델 분리
  • Event Sourcing: 상태 변경을 이벤트로 저장

기타 아키텍처 패턴

  • 파이프 필터(Pipe and Filter): 데이터 스트림을 필터 체인으로 처리 (Unix 파이프)
  • 이벤트 드리븐(Event-Driven): 이벤트 발행-구독 모델, 느슨한 결합
  • 헥사고날(Hexagonal/Ports and Adapters): 핵심 도메인 로직을 외부 의존성으로부터 격리
  • 클린 아키텍처(Clean Architecture): 의존성 방향을 안쪽으로만 허용

시험 핵심 포인트

  • MVC Controller: 사용자 요청 처음 수신
  • SOA vs MSA: SOA는 ESB 중심, MSA는 분산 서비스 자율
  • 레이어드: 상위 계층이 하위 계층에만 의존
  • MSA 장점: 독립 배포, 기술 다양성 / 단점: 네트워크 복잡성, 분산 트랜잭션 어려움

마무리

아키텍처 패턴은 각 패턴의 핵심 특징과 대표 사례를 한 줄로 정리해두면 시험장에서 빠르게 답을 고를 수 있습니다. MSA와 SOA의 차이는 특히 자주 출제되므로 비교 정리를 꼭 해두세요.

Leave a Comment