문서 읽는 데 30분 · 9강 · 1과목 · 소프트웨어 설계

소프트웨어 아키텍처 및 패턴

목차 17
전체 59강 중 9강 · 1과목 · 소프트웨어 설계

부분 설계(모듈·인터페이스)를 모아 시스템 전체 구조를 그리는 일. 1과목의 마지막 정점이자 매 회차 1~3문항 빈출. MVC는 GoF 디자인 패턴이 아니라 아키텍처 패턴(6강 회수)이 핵심 함정.

핵심 암기: 설계 4원리 단자추정 · 품질 3측면 시비아 · 패턴 8종 레클마파브M이P · MVC 모뷰컨 · 레이어드 하단격 · 파이프-필터 단비재


소프트웨어 아키텍처 기초

소프트웨어 아키텍처 개념 ·정의·

[정의] 시스템을 구성하는 컴포넌트와 그들 사이의 관계, 그리고 이를 지배하는 설계 원칙의 집합(카네기멜론 SEI 정의). 시스템 전체 구조를 정의하는 큰 그림.

[표]

특징 의미
추상적 세부 코드가 아닌 컴포넌트 단위 큰 그림
공유 가능 개발자·기획자·고객이 같은 그림으로 소통
이른 결정 프로젝트 초기에 결정(나중에 바꾸기 매우 어려움)
품질 결정 성능·보안·확장성 등 품질 속성을 거의 결정

💡 비유 30층 빌딩의 골조 설계도 — 한 번 정하면 되돌리기 어렵고, 시스템 품질을 좌우. 🎯 빈출 '컴포넌트 + 관계 + 설계 원칙의 집합' 정의 매칭. 간헐.

아키텍처 설계 4대 원리 ·단자추정·

[분류]

원리 의미
단순성(Simplicity) 복잡도를 최소화
자기서술성(Self-descriptiveness) 보면 무슨 일을 하는지 즉시 이해
추상화(Abstraction) 본질만 남기고 세부는 감춤
정보은닉(Information Hiding) 내부 구현은 감추고 인터페이스만 노출

🔑 암기 단자추정순성 · 기서술성 · 상화 · 보은닉 ⚠️ 함정 5강 모듈 설계 지침과 항목이 겹쳐 보이지만, 여기는 시스템 아키텍처 전체 차원. '복잡성을 일부러 늘려라'는 정반대 함정. 🎯 빈출 정의·소거형. 간헐.

4+1 뷰 ·Kruchten·

[정의] 1995년 필립 크루첸(Philippe Kruchten)이 제안. 시스템을 여러 관점(View)에서 본다.

[표]

관점 주요 다이어그램
논리 뷰(Logical) 설계자 — 기능 요구사항 클래스·객체
프로세스 뷰(Process) 개발자 — 동시성·성능 시퀀스·활동
구현 뷰(Implementation) 개발자 — 모듈·라이브러리 컴포넌트
배포 뷰(Deployment) 시스템 엔지니어 — HW 매핑 배치
+1 유스케이스 뷰 모든 이해관계자 — 시나리오 유스케이스

🔑 암기 4개 뷰(논리·프로세스·구현·배포) + +1 = 유스케이스 뷰(나머지 4뷰를 통합·검증) 🎯 빈출 '4+1의 +1은?' → 유스케이스 뷰. 간헐. ⚠️ 함정 각 뷰가 UML 다이어그램과 짝지어지지만, UML(표기법)과 4+1 뷰(관점 분류)는 같은 분류가 아니다.

GoF 디자인 패턴 vs 아키텍처 패턴 ·MVC≠GoF·6강 회수·

[비교] 6강에서 예고한 함정. 단위가 다른 두 차원이다.

구분 아키텍처 패턴 (오늘) GoF 디자인 패턴
단위 시스템 전체 구조 클래스/객체
추상화 수준 높음(큰 그림) 낮음(구체 설계)
결정 시점 프로젝트 초기 구현 단계
변경 비용 매우 비쌈 상대적으로 쌈
개수 약 8종 (레클마파브M이P) 23종 (5+7+11)
대표 MVC·레이어드·파이프-필터 싱글톤·팩토리메서드·옵저버

🔑 암기 MVC·파이프-필터·레이어드·클라이언트-서버·P2P = 아키텍처 패턴. GoF 23개 아님. ⚠️ 함정 'MVC는 GoF 디자인 패턴이다'는 100% 함정(매 회차). 보기에 싱글톤·팩토리·옵저버가 아키텍처 패턴으로 끼면 정답 후보. 🎯 빈출 분류 매칭. 거의 매회. 6강 GoF 23종(추빌팩프싱·어브컴데퍼플프·책커인이중메옵상전템방)과 짝으로 출제.


품질 속성과 평가

품질 속성 3측면 ·시비아·1순위·

[정의] 아키텍처가 만족시켜야 할 비기능 요구사항 — '무슨 기능을 한다'가 아니라 '얼마나 빠르고·안전하고·잘 버티느냐'.

[분류]

측면 누가 신경 쓰나 세부 품질 (암기)
시스템 개발자·운영자 가용성·변경용이성·성능·보안성·사용성·시험용이성 (가변성보사시)
비즈니스 경영진·기획자 시장적시성·비용편익·예상수명·목표시장·신규일정 (시비예목신)
아키텍처 아키텍트 개념무결성·정확완결성·구축가능성 (개정구)

🔑 암기 측면 = 시비아(시스템·비즈니스·아키텍처) / 시스템 = 가변성보사시 / 비즈니스 = 시비예목신 / 아키텍처 = 개정구(3개뿐) ⚠️ 함정 ISO/IEC 9126 6대 품질(기신사효유이 — SW 제품 자체의 품질)과 다른 분류. 9강 시스템 측면(아키텍처 관점) = 가변성보사시. 9126 ≠ 가변성보사시. 🎯 빈출 '비즈니스 측면이 아닌 것?' 같은 분류 매칭이 매 회차. 가용성·성능(시스템)이 비즈니스로 둔갑하면 정답 후보. 거의 매회.

아키텍처 평가 방법 ·ATAM·

[분류]

방법 풀네임 키워드
ATAM Architecture Tradeoff Analysis Method 품질 속성 간 트레이드오프 분석 (1순위)
SAAM Software Architecture Analysis Method 변경용이성 중심 평가 (2순위)
CBAM Cost Benefit Analysis Method 비용 대비 효과 분석
ADR Active Design Review 설계 명세 적합성 검토

🔑 암기 ATAM = 트레이드오프 (이름 자체에 Tradeoff가 들어 있음). 카네기멜론 SEI 표준이라 출제 1순위. 🎯 빈출 '트레이드오프 분석 평가 방법은?' → ATAM. CBAM(비용편익)은 시비예목신의 '비(비용편익)'와 짝지어 기억. 💡 보충 품질 속성은 다 만족할 수 없다 — 보안↑이면 성능↓. ATAM은 그 충돌의 균형점을 찾는 도구.


아키텍처 패턴 8종

아키텍처 패턴 8종 한눈에 ·레클마파브M이P·메인·

[분류]

패턴 구조 핵심 통신 대표 사례
레이어드 계층·하향참조 동기 OSI 7계층, 3-Tier
클라이언트-서버 요청자-제공자·중앙집중 동기 웹브라우저↔웹서버
마스터-슬레이브 작업 분배·결과 수합 동기 DB 읽기 복제
파이프-필터 데이터 흐름·필터 체인 단방향 Unix 셸, 컴파일러
브로커 중개자 라우팅 동기·비동기 CORBA, Service Mesh
MVC 모델·뷰·컨트롤러 분리 동기 Spring MVC, Django
이벤트 기반 Pub-Sub·이벤트 채널 비동기 Kafka, 메시지 브로커
P2P 동등 노드·중앙 없음 양방향 블록체인, BitTorrent

🔑 암기 레클마파브M이P이어드 · 라서버 · 스터슬레이브 · 이프필터 · 로커 · MVC · 벤트 · P2P (5+3: 레클마파브 + MVC·이벤트·P2P) 🌟 시간이 부족하면 레이어드·클라이언트-서버·파이프-필터·MVC 4개부터 — 시험 정답의 다수가 여기서 나온다. 🎯 빈출 매 회차 1~2문제는 8종 중 하나의 정의·구조 매칭. MVC·파이프-필터·레이어드가 단연 1순위. 💡 보충 POSA 분류의 블랙보드(공유 저장소에 여러 컴포넌트가 협업) 패턴도 간헐 등장.

레이어드 ·하단격·1순위·

[정의] 시스템을 여러 계층(Layer)으로 나누고, 각 계층은 바로 아래 계층만 호출하는 구조.

텍스트
 레이어드 — 하향참조·단방향·격리
   표현 계층
      │   (위 계층은 아래만 호출)
   비즈니스 계층
      │   (아래 계층은 위를 모름)
   데이터 계층
   예) OSI 7계층 · 3-Tier(ControllerServiceRepository)

🔑 암기 하단격향참조 · 방향 · 리성 ⚠️ 함정 '양방향 호출 가능' '한 계층 변경 = 전체 변경' = 함정. 위는 아래만 호출, 아래는 위를 모름(결합도↓·격리성). 🎯 빈출 '계층·하향참조·단방향' → 레이어드. OSI 7계층·3-Tier가 단골 예시. 1순위.

파이프-필터 ·단비재·1순위·

[정의] 필터(처리 단위)들이 데이터를 차례로 처리하고, 그 사이를 파이프(통로)가 연결하는 구조. 필터는 입력 → 가공 → 출력만 하고, 한 필터의 출력이 다음 필터의 입력이 된다.

🔑 암기 단비재방향 · 공유(필터끼리 상태 공유 X) · 사용(필터를 다른 파이프라인에 끼움) ⚠️ 함정 '양방향 흐름' '필터 간 상태 공유' = 100% 함정. 🎯 빈출 '단방향 데이터 흐름·필터 재사용' → 파이프-필터. Unix 셸 파이프(|)·컴파일러(렉서→파서→코드생성)가 단골 예시. 1순위.

MVC ·모뷰컨·1순위·

[정의] 시스템을 데이터(Model)·화면(View)·중재자(Controller) 셋으로 분리하는 패턴. 관심사 분리(Separation of Concerns)의 대표. 1970년대 후반 트리그베 린스카우그가 Smalltalk에서 제안, 50년 가까이 살아남았다.

[표]

구성 요소 역할
Model 데이터·비즈니스 로직
View 사용자에게 보여지는 화면
Controller 사용자 입력을 받아 Model·View를 중재

[흐름] 사용자 → V → C → M → C → V → 사용자 (Controller가 두 번 등장, View와 Model은 직접 호출하지 않음)

🔑 암기 모뷰컨델 · · 트롤러 (영문 약자 MVC와 함께) 💡 변형 MVC(컨트롤러) · MVP(프레젠터) · MVVM(뷰모델) — 셋 다 MVC 계열 아키텍처 패턴. ⚠️ 함정 'MVC는 GoF다' · 'View가 Model을 직접 호출' = 함정. MVC는 반드시 Controller를 거친다. 🎯 빈출 'Model·View·Controller로 분리' → MVC, 'Model과 View 사이 중재자' → Controller. 매 회차. Spring MVC·Django가 단골 예시.

클라이언트-서버 & P2P ·정반대 짝·

[비교] 중앙집중 vs 분산 — 정반대 짝으로 출제된다.

구분 클라이언트-서버 P2P
구조 요청자-제공자·중앙집중 모든 노드 동등·중앙 없음
장애 서버 SPOF(중앙 멈추면 전체 멈춤) 일부 노드 죽어도 동작
대표 사례 웹브라우저↔웹서버 블록체인·BitTorrent

🔑 암기 클라이언트-서버 = 중앙집중(SPOF) / P2P = 분산·동등 ⚠️ 함정 블록체인 = P2P / 가상자산 거래소 = 클라이언트-서버. 둘을 섞으면 함정. 클라이언트-서버의 약점 = 서버 SPOF. 🎯 빈출 '중앙 없음·모든 노드 동등' → P2P. 클라이언트-서버 vs P2P 대비가 단골.

마스터-슬레이브 · 브로커 · 이벤트 기반 ·나머지 3종·

[분류]

패턴 핵심 대표 사례
마스터-슬레이브 작업 분배·병렬 처리·결과 수합 DB 읽기 복제(Read Replica)
브로커 중개자·위치 투명성·서비스 동적 등록 CORBA, Service Mesh
이벤트 기반 Pub-Sub·비동기·느슨한 결합 Kafka, 메시지 브로커

🔑 암기 마스터-슬레이브 = 분배·수합 / 브로커 = 위치 투명성 / 이벤트 기반 = Pub-Sub·비동기 ⚠️ 함정 이벤트 기반(시스템 단위) vs 옵저버 패턴(객체 단위·6강 GoF)의 단위 차이. 🎯 빈출 이벤트 기반 'Pub-Sub' 매칭, 마스터-슬레이브 'DB Read Replica' 예시. 간헐~중간. 💡 보충 이벤트 기반은 8강 MOM(Kafka·RabbitMQ) 위에서 구현 — 옵저버를 시스템 차원으로 확장한 모습. 브로커는 8강 ORB(CORBA)와 닿는다.


기출 다지기

[기출 1 출제] 다음 설명에 해당하는 아키텍처 패턴은? (설명→용어)

사용자 인터페이스와 비즈니스 로직, 데이터 처리를 모델(Model)·뷰(View)·컨트롤러(Controller) 세 컴포넌트로 분리하여 구성하는 패턴으로, 다양한 웹 프레임워크에서 채택하고 있다.

  • ① 파이프-필터 패턴
  • ② MVC 패턴
  • ③ 레이어드 패턴
  • ④ 브로커 패턴
정답 및 해설 보기

정답 ②

'모델·뷰·컨트롤러' 세 컴포넌트 이름이 결정적 단서.

선지 판정 근거
① 파이프-필터 오답 단방향 데이터 흐름·필터 체인
② MVC 정답 모델·뷰·컨트롤러 3분할
③ 레이어드 오답 계층·하향참조
④ 브로커 오답 중개자 라우팅

🔑 Model·View·Controller가 보이면 즉답 MVC(모뷰컨). MVC는 아키텍처 패턴, GoF 아님.

[기출 2 출제] 다음 중 파이프-필터 패턴의 특징으로 옳지 않은 것은? (부정형)

  • ① 데이터가 일련의 처리 단계(필터)를 거쳐 흐른다
  • ② 각 필터는 독립적으로 동작하며 다른 필터와 상태를 공유하지 않는다
  • ③ 필터 간 데이터는 양방향으로 흐를 수 있어 유연한 처리가 가능하다
  • ④ Unix/Linux 셸의 파이프(|) 명령이 대표적인 예이다
정답 및 해설 보기

정답 ③

파이프-필터의 핵심 3대 특징은 단비재(단방향·비공유·재사용). 데이터는 한 방향으로만 흐른다.

선지 판정 근거
① 데이터 흐름·필터 체인 정확 파이프-필터 정의
② 필터 독립·상태 비공유 정확 단비재의 '비'
③ 양방향 흐름 오류 단방향이 정답 — '단'에 정면 위반
④ Unix 셸 파이프 예시 정확 1순위 빈출 예시

🔑 파이프-필터 함정 3총사 = 양방향·공유·결합. 보이면 그 보기가 틀린 것.

[기출 3 출제] 레이어드(Layered) 아키텍처 패턴에 대한 설명으로 옳은 것은? (긍정형)

  • ① 모든 계층이 서로 자유롭게 호출할 수 있어 결합도가 매우 높다
  • ② 상위 계층은 하위 계층만 호출하며, 의존성이 단방향으로 흐른다
  • ③ 하위 계층은 상위 계층의 구체적 구현 정보를 모두 알아야 한다
  • ④ 한 계층이 변경되면 전체 시스템이 모두 함께 변경되어야 한다
정답 및 해설 보기

정답 ②

레이어드의 핵심 3대 특징은 하단격(하향참조·단방향·격리성). ②가 '하향참조 + 단방향'을 정확히 표현.

선지 판정 근거
① 자유 호출·결합도↑ 오답 레이어드는 결합도를 낮추는 패턴
② 상위→하위 단방향 정답 하단격의 정확한 표현
③ 하위가 상위 구현 인지 오답 정보은닉 위반 — 하위는 상위를 모름
④ 한 계층 변경 = 전체 변경 오답 격리성 위반

🔑 함정 단어 = 양방향·자유 호출·전체 변경. 하단격 한 줄로 적발.

[기출 4 출제] 다음 중 아키텍처 패턴에 해당하지 않는 것은? (분류 매칭)

  • ① 파이프-필터(Pipe-Filter) 패턴
  • ② MVC(Model-View-Controller) 패턴
  • ③ 싱글톤(Singleton) 패턴
  • ④ 클라이언트-서버(Client-Server) 패턴
정답 및 해설 보기

정답 ③

싱글톤은 GoF 디자인 패턴(대표 생성 패턴)으로 객체 단위라 아키텍처 패턴이 아니다.

선지 분류 판정
① 파이프-필터 아키텍처 패턴 오답
② MVC 아키텍처 패턴 오답
③ 싱글톤 GoF 디자인 패턴 정답
④ 클라이언트-서버 아키텍처 패턴 오답

🔑 GoF 23개(5+7+11) vs 아키텍처 8종(레클마파브M이P). 보기에 싱글톤·팩토리·옵저버가 섞이면 그게 정답.

[기출 5 출제] 다음 중 시스템 측면의 품질 속성에 해당하지 않는 것은? (분류 매칭)

  • ① 가용성(Availability)
  • ② 성능(Performance)
  • ③ 시장적시성(Time to Market)
  • ④ 변경용이성(Modifiability)
정답 및 해설 보기

정답 ③

시장적시성은 비즈니스 측면(시비예목신의 '시')이다.

선지 측면 판정
① 가용성 시스템(가변성보사시의 가) 오답
② 성능 시스템(가변성보사시의 성) 오답
③ 시장적시성 비즈니스(시비예목신의 시) 정답
④ 변경용이성 시스템(가변성보사시의 변) 오답

🔑 시스템=가변성보사시 / 비즈니스=시비예목신 / 아키텍처=개정구. 시비아 3측면 묶음이면 즉답.

[기출 6 출제] 다음 설명에 해당하는 아키텍처 패턴은? (설명→용어)

중앙 서버가 존재하지 않으며, 모든 노드(Peer)가 동등한 권한과 역할을 가진다. 노드들이 서로 자원과 서비스를 직접 주고받으며, 일부 노드의 장애에도 전체 시스템이 정상 동작한다. 블록체인, BitTorrent 등이 대표적 사례이다.

  • ① 클라이언트-서버 패턴
  • ② 마스터-슬레이브 패턴
  • ③ 브로커 패턴
  • ④ P2P(Peer-to-Peer) 패턴
정답 및 해설 보기

정답 ④

'중앙 서버 없음 + 모든 노드 동등 + 블록체인·BitTorrent'는 모두 P2P를 가리킨다.

선지 판정 근거
① 클라이언트-서버 오답 중앙 서버가 핵심 — P2P와 정반대
② 마스터-슬레이브 오답 마스터라는 중앙 통제자 존재
③ 브로커 오답 브로커(중개자) 중앙 컴포넌트 존재
④ P2P 정답 중앙 없음 + 동등 노드

🔑 클라이언트-서버·마스터-슬레이브·브로커는 모두 중앙 컴포넌트가 있다. 블록체인=P2P / 거래소=클라이언트-서버.

[기출 7 출제] 다음 설명에 해당하는 소프트웨어 아키텍처 평가 방법은? (설명→용어)

여러 품질 속성(예: 성능과 보안성, 사용성과 변경용이성)이 서로 충돌할 때, 그 트레이드오프(Trade-off) 관계를 분석하여 아키텍처 결정의 적합성을 평가하는 대표적인 방법이다.

  • ① ADR (Active Design Review)
  • ② SAAM (Software Architecture Analysis Method)
  • ③ ATAM (Architecture Tradeoff Analysis Method)
  • ④ CBAM (Cost Benefit Analysis Method)
정답 및 해설 보기

정답 ③

설명의 결정적 단서는 '트레이드오프 분석'. ATAM의 정식 명칭에 Tradeoff가 들어 있다.

선지 판정 근거
① ADR 오답 설계 명세 적합성 검토
② SAAM 오답 변경용이성 중심 평가
③ ATAM 정답 이름에 Tradeoff
④ CBAM 오답 비용 대비 효과(비용편익)

🔑 트레이드오프 → ATAM 즉답. ATAM 1순위·SAAM 2순위. CBAM(비용편익)은 시비예목신의 '비'와 연결.


한 장 요약

영역 핵심 암기팁
아키텍처 정의 컴포넌트 + 관계 + 설계 원칙의 집합
설계 4대 원리 단순성·자기서술성·추상화·정보은닉 단자추정
4+1 뷰 논리·프로세스·구현·배포 + 유스케이스 (+1 = 유스케이스)
평가 방법 트레이드오프 분석(1순위) ATAM
품질 속성 3측면 세부 암기팁
시스템 가용·변경·성능·보안·사용·시험용이성 가변성보사시
비즈니스 시장적시성·비용편익·예상수명·목표시장·신규일정 시비예목신
아키텍처 개념무결성·정확완결성·구축가능성 개정구
아키텍처 패턴 8종 결정 키워드 암기팁
레이어드 하향참조·단방향·격리 하단격
클라이언트-서버 중앙집중·SPOF (P2P와 정반대)
마스터-슬레이브 분배·결과 수합 (DB Read Replica)
파이프-필터 단방향·비공유·재사용 단비재
브로커 위치 투명성·중개자 (CORBA·Service Mesh)
MVC 모델·뷰·컨트롤러 분리 모뷰컨
이벤트 기반 Pub-Sub·비동기 (Kafka·MOM)
P2P 동등 노드·중앙 없음 (블록체인)

🎯 합격 한 끗: 패턴 8종 레클마파브M이P, 품질 3측면 시비아, 그리고 1순위 3패턴(레이어드 하단격 · 파이프-필터 단비재 · MVC 모뷰컨). 가장 잦은 함정은 MVC ≠ GoF(아키텍처 패턴이지 디자인 패턴 아님 — 6강 회수)와 9126 ≠ 가변성보사시(SW 제품 품질 vs 아키텍처 시스템 품질). 시간이 부족하면 1순위 4패턴(레이어드·클라이언트-서버·파이프-필터·MVC)부터 손에 쥐면 9강은 끝.

전체 목록 필기 이론
이 과목을 끝까지 봤어요 🎉 다음 과목으로 2과목 · 소프트웨어 개발 →

합격까지

정처기, 혼자 막막하다면

초개인화 학습앱 Klue와 에듀윌 온라인강의로 합격까지 이어가세요.