728x90
소프트웨어 아키텍처 비용 평가 모델
- SAAM(Software Architecture Analysis Method)
- 변경 용이성과 기능성에 집중, 평가가 용이하고, 경험이 적은 조직에서도 활용 가능하다.
- ATAM(Architecture Trade-off Analysis Method)
- 품질 속성 간의 상충 관계 분석이며, 시스템의 아키텍처가 품질 속성 만족에 어떤 영향을 미치는지 판단한다.
- CBAM(Cost Benefit Analysis Method)
- ATAM 기반으로, 경제적 의사결정을 고려하여 품질 속성 향상을 위한 아키텍처 변경의 비용과 편익을 평가한다.
- ADR(Active Design Review)
- 아키텍처 구성요소 간의 응집도나 일관성 등을 평가하며, 개발 중 특정 시점에서 전반적인 구조를 빠르게 리뷰할 때 유용하다.
- ARID(Active Reviews for Intermediate Designs)
- 전체 아키텍처가 아닌 특정 부분에 대한 품질 요소에 집중하며, 중간 설계 단계에서의 부분 평가에 특화된다.
소프트웨어 아키텍처 4+1 뷰 모델
소프트웨어 시스템을 여러 시각(뷰)에서 설명함으로써 이해와 설계를 돕는 모델
- 유스케이스 뷰(Usecase View)
- 시스템이 사용자에게 제공해야 할 기능을 설명
- 다른 뷰들을 검증하는 기준 역할
- 논리 뷰(Logical View)
- 시스템의 기능적인 설계를 설명(클래스, 객체 등)
- 프로세스 뷰(Process View)
- 시스템의 비기능 요구사항(동시성, 성능, 이벤트 처리 등)
- 구현 뷰(Implementation View)
- 개발자 입장에서의 모듈 구성(폴더, 코드 단위)
- 배포 뷰(Deployment View)
- 시스템이 실제로 어디에 어떻게 배포되는지(서버, 노드 등)
소프트웨어 아키텍처 패턴(Software Architecture Pattern)
시스템을 설계할 때 구조를 어떻게 잡을지에 대한 패턴이다.
- 계층화 패턴(Layer Pattern)
- 시스템을 여러 계층으로 나눠 구성되며, 관심사를 분리할 수 있어 유지보수가 용이하다.
- 예시) 전통적인 웹앱, MVC 구조
- 모델-뷰-컨트롤러 패턴(MVC Pattern)
- 사용자 인터페이스를 모델(Model), 뷰(View), 컨트롤러(Controller)로 분리하며, 역할 분리와 UI/로직 분리, 테스트가 용이하다.
- 예시) 웹 프레임워크(React는 MVVM에 더 가까움, Django/ASP.NET MVC는 정통 MVC)
- 파이프-필터 패턴(Pipe-Filter Pattern)
- 데이터 스트림을 여러 필터에 통과시켜 순차적으로 처리하는 구조이며, 필터를 재사용할 수 있고 각 단계가 독립적으로 작동한다.
- 예시) 데이터 처리 파이프라인, 컴파일러
- 브로커 패턴 (Broker Pattern)
- 분산 시스템에서 컴포넌트 간 통신을 중개하는 구조이며, 클라이언트와 서버 간의 직접 연결 없이 유연한 통신이 가능하다.
- 예시) RPC 시스템, CORBA, 분산 DB
- 클라이언트-서버 패턴(Client-Server Pattern)
- 하나의 서버와 여러 클라이언트로 구성된 구조이며, 중앙 집중형으로 관리가 가능하고 다양한 클라이언트에 대응할 수 있다.
- 예시) 웹 브라우저 ↔ 웹 서버
일정 관리 모델
- 임계 경로법(CPM, Critical Path Method)
- 프로젝트에서 가장 오래 걸리는 경로(임계 경로)를 찾아 일정을 계획하며, 일정 지연 위험이 큰 작업들을 식별할 수 있다.
- 프로젝트 전체 기간을 계산하고, 여유 시간을 분석
- 마일스톤 일정 관리
- 중요한 시점(마일스톤)을 기준으로 일정을 관리하는 기법이다.
- 주요 목표 도달 시점 기준으로 프로젝트 진행을 추적
- 애자일 방식 일정 관리
- 스프린트 단위로 짧은 주기로 계획, 실행, 피드백을 반복하는 기법이며, 변경에 유연하고, 빠른 피드백이 가능하다.
- 칸반보드, 번다운 차트 등
- 비선형 계획 기법(PERT, Program Evaluation and Review Technique)
- 작업 간의 의존 관계와 예상 시간을 고려해 일정을 분석하는 기법이며, 비관치/중간치/낙관치 3점 추점방식을 통해 관리한다.
- 불확실성이 높은 프로젝트에 적합
- 간트 차트 (Gantt Chart)
- 작업을 막대 그래프로 시간 순서에 따라 나타낸 도표이며, 전체 일정 개요를 한눈에 파악할 때 유용하다.
- 작업 간의 일정/진척 상황 시각화에 효과적
인덱스 종류
- 순서 인덱스(Ordered Index): 정렬된 순서대로 만들어지는 인덱스. 검색 성능이 좋음
- 해시 인덱스 (Hash Index): 해시 함수를 사용해 빠르게 키를 찾음. 동등 비교(=)에 유리
- 비트맵 인덱스 (Bitmap Index): 컬럼 값이 적은 경우 효율적인 인덱스. (예: 성별, 상태 등)
- 함수 기반 인덱스 (Functional Index): 컬럼에 함수를 적용한 결과를 기준으로 만든 인덱스
- 단일 인덱스 (Singled Index): 컬럼 하나로만 만든 가장 기본적인 인덱스
- 결합 인덱스 (Concatenated Index): 여러 컬럼을 묶어서 만든 인덱스
- 클러스터드 인덱스 (Clustered Index): 기본 키(PK) 기준으로 데이터를 물리적으로 정렬하여 저장
728x90
'정보처리기사' 카테고리의 다른 글
정처기 공부 04/13 (0) | 2025.04.13 |
---|---|
정처기 공부 04/06 (0) | 2025.04.06 |
정처기 공부 04/04 (0) | 2025.04.04 |
정처기 공부 04/03 (0) | 2025.04.04 |
프로그래머스 간단한 논리 연산, 정처기 학습 (0) | 2025.03.29 |