아키텍처패턴

0

정보처리기사

목록 보기
64/100

소프트웨어 아키텍처 패턴 (Software Architecture Patterns)


1. 아키텍처 패턴의 개념

  • 아키텍처 패턴이란 소프트웨어 설계 시 사용할 수 있는 전형적인 해결 방식이나 지침, 표준 스타일을 의미함.
  • 시스템 구조 설계를 위한 기본 윤곽을 제시하며, 각 컴포넌트 간의 역할과 관계를 정의함.

2. 주요 아키텍처 패턴

  1. 레이어(Layered) 패턴
    • 시스템을 여러 계층(Layer)으로 나누어 설계하는 방식.
    • 각 계층은 독립적으로 동작하며, 바로 위/아래 계층과만 상호작용함.
    • 예시: OSI 참조 모델
      • 상위 계층(응용 계층)은 하위 계층(물리 계층)과 직접 통신하지 않음.
    • 장점: 유지보수확장성이 용이.

  1. 클라이언트-서버(Client-Server) 패턴
    • 서버가 서비스 제공자, 클라이언트가 서비스 사용자로 동작하는 패턴.
    • 하나의 서버에 여러 클라이언트가 접속할 수 있음.
    • 서버와 클라이언트는 각각 독립적 기능을 가짐.
    • 예시: 게임 서버 (서버는 몬스터 생성, 클라이언트는 게임 플레이)

  1. 파이프-필터(Pipe-Filter) 패턴
    • 데이터를 여러 필터(Filter)로 캡슐화하여 처리하고, 결과를 파이프(Pipe)를 통해 다음 단계로 전송함.
    • 필터: 각각의 데이터 변환 또는 처리를 담당.
    • 파이프: 필터 간 데이터를 전달하는 통로.
    • 예시: 유닉스 셸의 데이터 처리.

  1. 모델-뷰-컨트롤러(Model-View-Controller, MVC) 패턴
    • 모델(M): 데이터와 핵심 기능을 관리.
    • 뷰(V): 사용자에게 정보를 표시하는 역할.
    • 컨트롤러(C): 사용자 입력을 처리하고 모델과 뷰를 제어.
    • 사용자 → 컨트롤러 → 모델 → 뷰 → 사용자로 정보가 전달됨.
    • 장점: 한 개의 모델에 여러 개의 뷰를 적용 가능, 대화형 애플리케이션에 적합.

3. 기타 패턴들

  1. 마스터-슬레이브(Master-Slave) 패턴

    • 마스터 컴포넌트가 작업을 슬레이브 컴포넌트들에게 분배하고, 결과를 통합함.
    • 슬레이브 일부가 고장나도 나머지가 작업을 계속 수행함.
    • 예시: 병렬 컴퓨팅 시스템
  2. 브로커(Broker) 패턴

    • 브로커가 클라이언트 요청을 적절한 서버에 전달하는 역할을 함.
    • 예시: 분산 시스템에서 서버-클라이언트 간 연결 관리.
  3. 피어투피어(Peer-to-Peer, P2P) 패턴

    • 각 컴포넌트가 서버 또는 클라이언트로 동작할 수 있음.
    • 예시: 파일 공유 네트워크 (토렌트 등)
  4. 이벤트 버스(Event Bus) 패턴

    • 특정 채널에서 발생한 이벤트를 구독자(Listener)들이 수신하고 처리함.
    • 예시: 라디오 방송의 문자 참여 이벤트.
  5. 블랙보드(Blackboard) 패턴

    • 여러 컴포넌트가 공유 데이터 저장소(블랙보드)에 접근하여 협력적으로 문제를 해결함.
    • 예시: 음성 인식, 신호 해석 시스템
  6. 인터프리터(Interpreter) 패턴

    • 프로그램 코드의 각 라인을 해석하고 실행하는 방식.
    • 예시: 컴파일러, 번역기

4. 주요 아키텍처 패턴 요약

패턴특징 및 예시
레이어 패턴계층 구조로 설계, OSI 모델 예시
클라이언트-서버 패턴하나의 서버에 다수의 클라이언트 접속
파이프-필터 패턴필터로 데이터 처리, 유닉스 셸 예시
MVC 패턴모델-뷰-컨트롤러로 기능 분리
마스터-슬레이브 패턴작업 분배 및 병렬 처리, 장애 허용 시스템
브로커 패턴클라이언트-서버 연결 관리, 분산 시스템
피어투피어 패턴컴포넌트가 클라이언트와 서버 역할 수행
이벤트 버스 패턴이벤트 발생 시 구독자가 처리
블랙보드 패턴공유 데이터 저장소를 통해 협력적 문제 해결
인터프리터 패턴코드 해석 및 실행, 컴파일러 예시

5. 시험 대비 요점

  • 주요 패턴의 정의와 특징을 이해할 것.
  • 각 패턴이 어떤 상황에서 사용되는지 숙지.
  • 패턴의 장단점예시를 통해 개념을 명확히 할 것.

0개의 댓글