[정보처리기사] 실기 정리 - 1과목 (1)

inbdni·2020년 10월 12일
9

정보처리기사

목록 보기
1/34
post-thumbnail

🧀 소프트웨어 아키텍처


1. 개념

여러 가지 소프트웨어 구성 요소와 그 구성 요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성 요소 간의 관계를 표현하는 시스템의 구조나 구조체를 의미


2. 소프트웨어 아키텍처 프레임워크

(1) 개념

소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준

(2) 구성 요소

  • 아키텍처 명세서 : 아키텍처를 기록하기 위한 산출물
  • 이해관계자 : 시스템 개발에 관련된 모든 사람과 조직
  • 관심사 : 시스템에 대해 이해관계자들의 서로 다른 의견과 목표
  • 관점 : 개별 뷰를 개발할 때 토대가 되는 패턴이나 양식
  • 뷰 : 서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템을 표현
  • 근거 : 아키텍처 결정 근거

3. 소프트웨어 아키텍처 4+1 뷰

(1) 개념

고객의 요구 사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법이며 체크 방법으로는 유스케이스를 사용함

(2) 구성 요소

  • 유스케이스 뷰
    아키텍처를 도출하고 설계하는 작업을 주도하는 뷰

  • 논리 뷰
    설계 모델의 추상화이며, 주요 설계 패키지와 서브 시스템, 클래스를 식별하는 뷰

  • 프로세스 뷰
    런타임 시의 시스템의 태스크, 스레드, 프로세스와 이들 사이의 상호 작용 등의 관계를 표현하는 뷰

  • 구현 뷰
    개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 표현하는 뷰

  • 배포 뷰
    물리적인 노드의 구성과 상호 연결 관계를 배포 다이어그램으로 표현하는 뷰



🧀 현행 시스템 파악


1. 개념

현행 시스템이 어떤 하위 시스템으로 구성되어 있고, 제공 기능 및 연계 정보는 무엇이며 어떤 기술 요소를 사용하는지를 파악하는 활동


2. 절차

(1) 구성/기능/인터페이스 파악

  • 구성 현황 파악
    조직의 주요 업무를 처리하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 파악

  • 기능 현황 파악
    단위 업무 시스템이 현재 제공하고 있는 기능 파악

  • 인터페이스 현황 파악
    단위 업무 시스템이 다른 시스템과 주고받는 데이터의 종류, 데이터 형식, 프로토콜, 연계 유형, 주기 파악

(2) 아키텍처/소프트웨어 구성 파악

  • 아키텍처 구성 파악
    기간 업무를 수행하기 위해 계층별로 어떤 기술 요소들을 사용하고 있는지 최상위 수준에서 파악

  • 소프트웨어 구성 파악
    단위 업무 시스템의 업무 처리를 위해 설치되어 있는 소프트웨어들의 제품명, 용도, 라이선스 적용 방식, 라이선스 수 파악

(3) 하드웨어/네트워크 구성 파악

  • 하드웨어 구성 파악
    단위 업무 시스템들이 운용되고 있는 서버의 위치, 운용 서버의 주요 사양과 수량, 이중화 구현 여부를 파악

  • 네트워크 구성 파악
    업무 처리 시스템을 위해 어떤 네트워크 장비를 사용하여 어떻게 구성되어 있는지 파악


3. 분석서 작성 및 검토

(1) 관련 자료 수집

수집 자료의 특성에 따라 팀을 구성

  • 정보시스템 구성/기능/인터페이스 자료 수집팀
  • 현행 시스템 아키텍처/소프트웨어 자료 수집팀
  • 하드웨어/네트워크 자료 수집팀

(2) 수집 자료 분석

  • 수집된 정보들을 취합 및 정제하고, 중복되거나 유효하지 않는 정보들은 삭제함
  • 불분명한 부분은 체크한 후 분석 및 설계 단계를 통해 구체적으로 조사함
  • 현행 시스템의 이슈 및 문제점을 파악함

(3) 분석 결과 기반 산출물 작성

  • 정보시스템 구성 현황
  • 정보시스템 기능 현황
  • 인터페이스 현황
  • 현행 시스템 아키텍처 구성도
  • 소프트웨어 구성도
  • 하드웨어 구성도
  • 네트워크 구성도

(4) 산출물에 대한 검토

팀별로 작성된 산출물을 상호 검토하여 의견을 제시하고 이를 반영하여 수정 및 최종 완료함



🧀 현행 시스템 분석


1. 운영체제 현행 시스템 분석

(1) 개념

컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램

(2) 분석

  • 성능 측면
    • 신뢰도 : 장기간 시스템 운영 시 장애 발생 가능성, 운영체제의 버그로 인한 재기동 여부
    • 성능 : 대규모 및 대량 파일 작업 처리, 지원 가능한 메모리 크기
  • 지원 측면
    • 기술 지원
    • 구축 비용
    • 주변 기기

(3) 종류 및 특징

  • PC용
    • Windows : 중/소규모 서버, 일반 PC 등
    • Unix : 대용량 처리, 안정성 높은 엔터프라이즈급 서버
    • Linux : 대/중규모 서버, 높은 보안성
  • 모바일용
    • Android
    • iOS

2. 네트워크 현행 시스템 분석

(1) 네트워크 개념

컴퓨터 장치들의 노드 간 연결을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술

(2) OSI 7계층

  • 응용 계층 : 사용자 친화 환경 제공
  • 표현 계층 : 코드 문자 등을 번역하여 일관되게 전송하고 압축, 해제, 보안 기능을 담당
  • 세션 계층 : 송신, 수신 간의 논리적 연결
  • 전송 계층 : 송신, 수신 프로세스 간의 연결
  • 네트워크 계층 : 다수의 중개 시스템 중 올바른 경로를 선택하도록 지원
  • 데이터 링크 계층 : 오류와 흐름을 제거하여 신뢰성 있는 데이터를 전송
  • 물리 계층 : 실제 장비들을 연결하기 위한 연결 장치

(3) 분석

  • 네트워크 구조 분석
  • 서버 위치, 서버 간 연결 방식 파악
  • 백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 분석

(4) 효과

  • 물리적 위치 관계 파악 가능
  • 조직 내 보안 취약성 분석 및 대응 가능
  • 장애 발생 추적 및 대응 가능

3. DBMS 현행 시스템 분석

(1) DBMS 개념

데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램

(2) DBMS 기능

  • 중복 제어
  • 접근 통제
  • 인터페이스 제공
  • 관계 표현
  • 샤딩/파티셔닝
  • 무결성 제약 조건
  • 백업 및 회복

(3) 분석

  • 성능 측면
    • 가용성 : 장기간 시스템 운영 시 장애 발생 가능성, 백업 및 복구 편의성
    • 성능 : 대규모 데이터 처리 성능, 다양한 옵션 지원 여부
    • 상호 호환성 : 설치 가능한 운영체제 종류
  • 지원 측면
    • 기술 지원
    • 구축 비용

4. 미들웨어 현행 시스템 분석

(1) 미들웨어 개념

분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간의 원만한 통신이 이루어질 수 있도록 제어해 주는 소프트웨어

(2) WAS 개념

서버 계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 이기종 시스템과의 애플리케이션 연동을 지원하는 서버

(3) 분석

  • 성능 측면
    • 가용성 : 장기간 시스템 운영 시 장애 발생 가능성, 안정적인 트랜잭션 처리 능력
    • 성능 : 대규모 데이터 처리 성능, 가비지 컬렉션의 다양한 옵션 지원 여부
    • 상호 호환성 : 설치 가능한 운영체제 종류
  • 지원 측면
    • 기술 지원
    • 구축 비용



🧀 요구 사항 파악


1. 기술 환경 정의를 위한 자료 수집

(1) OLTP 서버

  • 시스템 구축 형태
  • 사용자 수
  • 트랜잭션 수

(2) WEB/WAS 서버

  • 시스템 용도 및 서비스 형태
  • 시스템 구성 형태
  • 접속자 수

2. 조사 자료 분석 및 개발 기술 환경 결정

(1) CPU 용량 산정

① OLTP/배치/데이터베이스 서버

CPU(tmpC 단위) 
= (분당 트랜잭션 수) X (기본 tmpC 보정) X (peak time 부하 보정) 
  X (DB 크기 보정) X (앱 구조 보정) X (앱 부하 보정) 
  X (클러스터 보정) / (시스템 목표 활용률)

② WEB/WAS 서버

CPU(OPS 단위) 
= (동시 사용자 수) X (사용자 당 연산수) X (기본 OPS 보정) 
  X (인터페이스 부하 보정) X (peack time 부하 보정) X (클러스터 보정) 
  X (시스템 여유율) / (시스템 목표 활용률)

(2) 메모리 용량 산정

메모리(MB 단위) 
= [(시스템 영역) + {(사용자 당 필요 메모리) X (사용자 수)} 
  + (미들웨어 버퍼 캐시 메모리)] X (버퍼 캐시 보정) / (시스템 여유율)

(3) 디스크 용량 산정

① 시스템 디스크

시스템 디스크 
= {(시스템 운영체제) + (응용 프로그램) + (SWAP 영역)}
  X (파일 시스템 오버헤드) X (시스템 디스크 여유율) X (RAID 여유율)

② 데이터 디스크

데이터 디스크
= {(데이터 영역) + (백업 영역)}
  X (파일 시스템 오버헤드) X (시스템 디스크 여유율) X (RAID 여유율)

3. 요구 사항 정의서, 목표 시스템 구성도 반영 및 검토

팀별로 작성된 산출물을 상호 검토하여 의견을 제시하고 이를 반영하여 수정 및 최종 완료함




🐭 참고문헌

  • NCS 정보처리기술사 연구회. (2020). 수제비 정보처리기사 실기 (2판). 건기원.

0개의 댓글