정보관리기술사 - 소프트웨어 아키텍처 모델
소프트웨어 아키텍처 모델은 시스템을 구성 요소로 나누고, 그 기능의 분할과 배치를 정한 구조적 설계 틀이다. 기능 분할은 기능을 역할 기준으로 쪼개는 일이고, 기능 배치는 쪼갠 단위를 어느 위치에서 실행할지 정하는 일이다. 이 두 결정을 모델별로 나누어 보면 답안의…
주요 장면
대본
개념 정의
소프트웨어 아키텍처 모델은 시스템을 구성 요소로 나누고, 그 기능의 분할과 배치를 정한 구조적 설계 틀이다.
기능 분할은 기능을 역할 기준으로 쪼개는 일이고, 기능 배치는 쪼갠 단위를 어느 위치에서 실행할지 정하는 일이다.
이 두 결정을 모델별로 나누어 보면 답안의 구조가 잡힌다.
네 가지 모델 비교
네 모델은 기능을 나누는 기준과 배치 방식이 서로 다르다.
데이터 중심형은 자료를, 클라이언트-서버는 요청과 처리를 기준으로 나눈다.
계층형은 추상화 수준을, MVC는 데이터·표현·제어 역할을 기준으로 나눈다.
같은 시스템이라도 택한 모델에 따라 변경 범위와 성능이 달라진다.
MVC 구조
MVC 모델은 기능을 데이터, 표현, 제어의 세 역할로 나눈다.
모델은 데이터와 업무 로직을, 뷰는 화면 출력을 맡는다.
컨트롤러는 사용자 입력을 처리하고 모델과 뷰 사이의 흐름을 제어한다.
계층 모델
계층 모델은 기능을 상하위 레벨로 쌓고, 한 계층이 바로 아래 계층만 호출하는 구조다.
3계층 구조는 이 원리를 배치에 적용한 대표 형태로, 프레젠테이션·애플리케이션·데이터 계층으로 나뉜다.
3계층은 서버 부하를 나눠 맡고, 계층을 늘리면 호출 경로가 길어진다.
계층 수는 무작정 늘리지 않고 성능과 유지보수의 균형으로 정한다.
2계층과 3계층 비교
2계층 클라이언트-서버는 단일 서버가 업무와 데이터 처리를 함께 맡는다.
이 구조는 서버 통신 병목이 생기고 클라이언트 소프트웨어의 정기 업데이트가 필요하다.
3계층은 처리를 애플리케이션 서버와 데이터 서버로 분담하고, 단말은 정기 업데이트가 필요 없다.
N계층은 여러 서버가 서비스 단위로 연동하며 구조 복잡도가 가장 높다.
정리와 확인 문제
지금까지 본 네 가지 모델을 한 줄씩 정리한다.
데이터 중심형은 공유 저장소를, 클라이언트-서버는 요청과 처리의 분리를 기준으로 본다.
계층 모델은 계층 간 변경 영향을, MVC는 표현과 업무 로직의 분리를 핵심으로 본다.
정답은 뷰다. 뷰는 화면 출력을, 모델은 데이터와 업무 로직을 맡는다.
시험에서는 기능 분할과 배치 관점으로 나누어 설명한다.