반응형
시스템 아키텍처
시스템 아키텍처의 개념
* 하드웨어와 소프트웨어를 아우르는 시스템 전체에 대한 논리적인 기능 체계
* 시스템의 구성 및 작동 원리를 설명하는 프레임 워크
시스템 아키텍처 특징
* 시스템 구성 요소에 대한 설계 및 구현이 자세히 기술되어 있다.
요구사항 및 시스템의 전체 생명주기를 고려하여 시스템의 초적화를 목표로 한다.
시스템 아키텍처 설계
* 시스템 아키텍처 설계는 소프트웨어 아키텍처 설계에 제약을 하는 상위 설계
* 소프트웨어 아키텍처의 설계는 상세 설계를 제약한다.
소프트웨어 아키텍처
소프트웨어 아키텍처 개념
* 소프트웨어의 골격이 되는 기본구조이며 소프트웨어 전체에 대한 밑그림
* 소프트웨어 구성 요소의 유기적인 결합 형태와 전체구조
* 설계 및 구현을 위한 구조적, 비구조적인 틀을 제공
* 모듈이나 컴포넌트들과의 관계를 정의, 상호 관계를 설계하고 전개하기 위한 지침
* 소프트웨어 품질 요구사항은 소프트웨어 아키텍처를 결정하는데 중요한 요소로 작용
소프트웨어 아키텍처 설계
1. 아키텍처 드라이버: 아키텍처에 영향을 주는 요구사항
2. 아키텍처 설계의 입력물과 출력물
* 입력물: 시스템 요구사항, 아키텍처 드라이버
* 태스크: (더 이상 분해되지 않는)작업의 단위, 병행되지 않는 하나의 프로세스
* 출력물 : 아키텍처를 문서화
소프트웨어 아키텍처 설계시 고려사항
* 개발자와 사용자간의 의사소통 도구로 활용할 수 있어야 한다.
* 구현시 제약 사항을 파악
* 재사용할 수 있도록 설계
* 이해하기 쉽고, 명확하게 작성해야 한다.
* 표준화된 형식으로 작성하며, 버전관리를 해야한다.
소프트웨어 아키텍처의 비지니스 품질
1. 시장적시성: 지정한 시간에 소프트웨어 출시
2. 비용과 이익: 비용의 절감이나 유연성, 어느부분에 초점을 맞출지 판단
3. 예상 시스템 수명: 소프트웨어 유통 및 폐기지점을 고려해 확장성이나 이식성 고려
4. 목표 시장: 사용 고객층을 정확히 파악하여 시장성을 파악
5. 신규 발매 일정 또는 공개 일정: 소프트웨어의 신규 발매, 유통, 관리일정을 공개하여 관리
6. 기존 시스템과의 통합: 기존 시스템 또는 타 시스템 간의 통합 방법을 고려
소프트웨어 아키텍처 패턴
계층화 패턴 | 1. 기능을 분리한 계층: 각각의 인접 레이어끼리만 상호작용을 하는 패턴 * SOA 기반 애플리케이션 계층 - 표현 계층 (UI) - 프로세스 계층 (Service) - 비지니스 계층 (Domain) - 데이터 접근 계층 (Persistence) 2. n-Tier 패턴: 시스템을 물리적으로 분리한다. * 1-Tier 패턴: 클라이언트, 애플리케이션, 데이터 계층을 하나의 서버 또는 클라이언트에 함께 구현 * 2-Tier 패턴: 클라이언트와 애플리케이션 계층, 데이터 계층을 각각 구분하여 구현 * 3-Tier 패턴: 각각의 계층을 모두 물리적으로 분리하여 구현 |
클라이언트/서버 패턴 | * 서비스를 제공하는 서버와 서비스를 요청하는 클라이언트로 구성 * 분산 네트워크 방식으로 병목현상을 줄일 수 있다. * 보안에 취약하고 응용프로그램이 복잡해질 수 있다. |
마스터/슬레이브 패턴 | * 작업을 분리하고 배포하는 마스터와 요청 작업을 처리하는 슬레이브로 구성된다. * 마스터 데이터베이스는 원본 데이터, 슬레이브는 복제본을 동기화하는 형태로 활용된다. |
파이프-필터 패턴 | * 데이터 스트림을 생성하고 처리하는 시스템에서 사용된다. * 서브 시스템이 입력 데이터를 받아 처리한 결과를 파이프를 통해 다음 서브 스시템으로 넘겨주는 과정 * 버퍼링 또는 동기화 목적으로 사용된다. |
브로커 패턴 | * 브로커는 컴포넌트간의 통신을 조정하는 역할 * 분산 시스템에서 원격 서비스를 통해 사용작용을 한다. * 서버와 클라이언트 사이에 위치하여 클라이언트가 요청한 기능을 서버 대신 클라이언트에게 서비스를 한다. |
피어 투 피어 패턴 | * 서버와 클라이언트의 역할이 유동적으로 바뀔 수 있다. * 서로에게 서비스를 요청하고 서비스하는 파일 공유 네트워크등에 활용될 수 있다. |
이벤트 - 버스 패턴 | * 알림 서비스등에 활용된다. * 이벤트를 처리하는 주요 컴포넌트 - 이벤트 소스: 데이터와 처리 결과 - 이벤트 리스너: 특정 채널의 메시지를 구독 - 채널: 서버, 클라이언트, 컴포넌트 - 이벤트 버스 : 메시지 경로 |
MVC 패턴 | 1. 개념 * 사용자 인터페이스로부터 비지니스 로직을 분리하여 응용 프로그램의 시각적 요소를 쉽게 수정할 수 있도록 지원 * 사용자 인터페이스 변경에 로직이 영향을 덜 받도록 만든 모델 2. Model * 응용프로그램의 데이터에 해당하며 요청 데이터 처리를 담당 * 모델 상태의 변화가 있을 경우에 컨트롤러와 뷰에 통보 3. View * 모델로부터 가저온 데이터의 시각화 * 버튼, 텍스트 상자, 체크박스 4. Controller * 데이터와 비지니스 로직 사이의 상호작용을 관리 * 뷰를 통해 사용자 요청을 해당 모델에 전달, 모델의 응답을 다시 사용자에게 돌려준다. |
블랙보드 패턴 | 1. 개념 * 음성인식, 차량 식별 및 추적등에 활용 * 블랙보드에 접근하여 기존 지식 소스와의 패턴 매칭을 통해 데이터를 검색 2. 주요 컴포넌트 * 블랙보드: 소스 저장 메모리 * 지식 소스: 특정 데이터, 블랙보드에 저장된 데이터 * 제어 컴포넌트 : 모듈 선택, 설정 및 실행 담당 |
인터프리터패턴 | * 특정 언어나 명령어를 해석하는 컴포넌트를 설계할 때 사용 * 특정 언어로 작성된 표현식을 수행하는 방법을 지정 |
코드 설계
* 정보처리 효율을 극대화하기 위해 일정한 규칙을 통하여 부여한 숫자, 문자등의 기호체계이다.
* 코드는 컴퓨터 처리에 융통성과 일관성을 부여할 수 있어야 하며 업무처리에 있어 효율성과 용이성 부여
코드의 기능
코드의 3대 기능
식별 기능: 다른것과 구별될 수 있는 기능
분류 기능: 동일 특성이나 유형을 가진 데이터로 그룹화하여 나누는 기능
배열 기능: 의미를 부여한 일련의 순서로 나열할 수 있는 기능
기타 코드 기능
간소화, 표준화, 연상, 암호화, 오류 검출
코드 설계 원칙
1. 적은 자리수: 적은 자릿수로 많은 데이터를 표현할 수 있도록한다.
2. 고유성: 하나의 항목에는 하나의 코드만 부여되어야 한다.
3. 정렬과 분류: 데이터를 특정 기준으로 분류하고 정렬이 용이하도록 한다.
4. 적응성 및 확장성: 데이터 양이 증가하거나 감소해도 기준을 바꾸지 않는다.
5. 기계처리의 용이성: 컴퓨터로 처리하는데 편리하도록 한다.
6. 표의성: 코드값만 보아도 그 의미를 알 수 있도록 한다.
코드 설계시 고려사항
* 코드화 목적과 사용범위 등을 종합적으로 판단하여 적합한 코드 체계를 선정한다.
* 에러에 의해 정보처리에 중대한 영향을 주는 항목에 대해서는 체크 디지트를 주어 에러 체크가 쉽도록한다.
* 코드체계, 코드 자릿수, 특성등을 판닪나여 각 대상 항목에 대한 어떤 요령으로 코드를 부여할지 결정
* 표준화 호환성을 고료하여 코드의 갱신과 확장이 용이해야 한다.
코드의 분류
순차 코드 | * 일정한 인련번호를 부여하는 방법 * 코드 부여가 간단하고 추가가 용이하다 * 코드의 길이가 짧고 단순 명료하다 |
블록 코드 | * 코드화 대상 항목을 공통의 특성에 따라서 임의 크기의 블록으로 구분한뒤 각 블록내에서 순서대로 번호를 부여하는 방석 * 적은 자릿수로 많은 항목의 표시가 가능하고 예비코드 사용이 가능하다. * 공통된 특성별로 분류 및 집계가 용이 |
10진 코드 | * 코드의 좌측부분은 그룹화, 우측 부분은 세분화하여 지정하는 코드 * 추가하기 쉽고 확대가 용이 * 10개 이상의 항목으로 그룹화 |
그룹 분류 코드 | * 대분류, 중분류, 소분류로 구분하여 순차번호를 부여하는 방식 * 다른 코드에 비해 비교적 자릿수가 길다 |
연상 코드 | * 대상 항목의 명칭등을 코드에 반영하여 대상에 대한 연상이 가능하도록 한 방식이다. * 영문자, 숫자를 조합하여 품목의 약호를 만들기 때문에 표의성이 뛰어나다. |
표의 숫자 코드 | * 대상 항목의 중량, 면적, 용량 등의 물리적 수치를 이용하여 만든 코드이다. * 물리적인 수치가 나타나 있으므로 대상의 외형을 코드만 보고도 알 수 있다. |
합성 코드 | * 2개 이상의 코드를 조합하여 만든 코드 |
코드의 오류 발생 형태
1. 생략 오류: 입력시 한자리 빼놓고 기록
2. 필사 오류: 입력시 한자리를 잘못 기록
3. 전위 오류: 입력시 좌우 두자리를 바꾸어 기록
4. 이중 오류: 전위 오류가 두 가지 이상 발생한 경우
5. 추가 오류: 입력시 한자리를 추가로 기록한 경우
6. 임의 오류: 오류가 2가지 이상 결합하여 발생한 경우
파일 설계
순차 편성
1. 순차 편성의 개념
* 입력되는 데이터의 논리적인 순서에 따라 물리적으로 연속된 위치에 기록
* 파일 복사나 일괄 처리에 많이 사용
* 기록 밀도가 좋고, 어떤 매체에도 이식성이 좋다
* 순차 검색을 하여야 하므로 검색 호율이 떨어진다.
2. 순차 파일 종류
* 엔트리 순차 파일: 레코드가 추가되는 순서대로 저장되는 파일
* 키 순차 파일: 레코드에 키 값을 두어 키 값의 순서대로 저장되는 파일
색인 순차 편성
1. 인덱스 개념
* 순차 파일에서 원하는 데이터를 빠르게 검색하고 추출할 수 있도록 일정한 순서에 따라 별도로 정리하여 놓은 목록을 의미
* 먼저 인덱스를 찾고, 그 인덱스가 가리키는 위치의 데이터 파일에 접근하여 원하는 레코드를 참조
* 검색 속도를 향상 시킬 수 있다.
2. 인덱스 순차 편성의 개념
* 순차처리와 랜덤처리를 병행할 수 있고, 레코드의 삽입과 수정이 용이
* 인덱스를 저장하기 위한 공간과 오버플로우 처리를 위한 별도의 공간이 필요하다.
* 삽입, 삭제가 많아지면 파일에 대한 재 편성이 이루어져야한다.
* 랜덤 편성 파일과 비교할때 엑세스 시간이 느리다
3. 인덱스 순차 파일의 구성 영역
* 인덱스 구역: 기본 데이터 영역에 대한 인덱스를 구성하는 영역
* 기본 데이터 구역: 실제 데이터가 기록되는 영역
* 오버플로우 구역: 정적 인덱스 편성인 경우 기본 데이터 구역 대신 기록되는 영역
4. 인덱스 구성 방법
* 정적 인덱스 방법: 데이터 파일이 변경될 때, 인덱스 내용은 변하지만 인덱스 파일 구조 자체는 변경이 없음
* 동적 인덱스 방법: 각 블록에는 빈 공간을 미리 생성, 유지가 안되는 블록은 다른 블록과 병합
임의 편성
1. 임의 편성의 개념
* 기록 순서나 코드 순서와 같은 논리적 순서와 관계없이 특정 방법으로 키 변환에 의해 임의로 데이터를 보관
* 데이터 처리시에도 필요한 장소에 직접 접근하여 원하는 정보에 접근하는 방식
2. 임의 편성의 특징
* 레코드를 키 변환에 따라 직접 처리한다
* 어떤 레코드라도 평균 접근 시간 내에 접근한다.
* 키 변환에 따른 지연 시간이 있고 공간의 낭비를 가져올 수 있다.
* 대화형 처리에 적합하고 충돌 문제를 해결할 수 있는 준비가 필요하다.
출처: 이기적 환상의 콤비 정보처리기사
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 보안 용어 정리 (0) | 2024.04.12 |
---|---|
[오답노트] 정보처리기사 실기 2023년 4월 (0) | 2024.04.12 |
모듈의 성능 평가 (0) | 2024.01.11 |
공통 모듈 (0) | 2024.01.11 |
UI 요구사항 (0) | 2024.01.11 |