본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2020년 4회차 (5)정보시스템 구축관리

by HJ0216 2023. 7. 17.

정보처리기사

ISO/IEC 9126 소프트웨어 품질

: 기능, 신뢰, 사용, 효율, 유지보수, 이식

소프트웨어 프로세스에 대한 개선 및 능력 측정 기준

  • CMMi(5)
    • 레벨 1, Initial: 소프트웨어 개발 프로세스는 거의 없는 상태
    • 레벨 2, Managed: 기본적인 프로세스 구축에 의해 프로젝트가 관리되고 있는 조직
    • 레벨 3, Defined: 세부 표준 프로세스가 있어 프로젝트가 통제되는 조직
    • 레벨 4, Quantitatively Managed: 소프트웨어 프로세스와 품질에 대한 정량적인 측정이 가능
    • 레벨 5, Optimizing: 조직적으로 최적화된 프로세스를 적용하여 다시 피드백을 받아 개선하는 상위 단계
  • SPICE(6)
    • 레벨 0, Incomplete: 특정한 프로세스의 작업이 목표 달성에 실패하는 경우가 많음
    • 레벨 1, Performed: 프로세스 작업 목표는 일정 수준 달성하나, 철저한 계획이 되어있지 않을 수 있음
    • 레벨 2, Managed: 프로세스가 정해진 절차에 따라 이루어져 산출물을 내며 모든 작업이 계획되고 추적
    • 레벨 3, Established: 정의된 프로세스가 표준화되어 있고 문서화되어 있음
    • 레벨 4, Predictable: 프로세스 능력을 정량적으로 이해할 수 있고 수행을 예측하고 정량적으로 관리할 수 있음
    • 레벨 5, Optimizing, 프로세스가 최적화되어 있어 현재 프로젝트만이 아니라 미래에 수행될 프로세스에 대하여도 목표를 잘 만족시킬 수 있음

 

Storage System

  1. DAS(Direct Attached Storage): USB처럼 PC나 서버에 직접 연결하여 사용하는 스토리지
  2. NAS(Network Attached Storage): DAS에 Network 기능 탑재, 서버와 저장장치가 이더넷등의 LAN방식의 네트워크에 연결된 방식
  3. SAN(Storage Area Network): NAS에 고속채널(광채널)을 탑재
  4. RAID(Redundant Array of Independent Disk): 여러개의 저장장치를 묶어서 하나의 고용량, 고성능 저장장치처럼 사용하는 기술

 

HIPO

: 하향식 소프트웨어 개발(절차 지향)을 위한 문서화 도구

  • HIPO 차트 종류
    • 가시적 도표: 시스템의 전체 기능과 흐름을 보여주는 Tree(계층) 구조Visual
    • 총체적 도표: 입력, 처리, 출력에 대한 전반적인 정보 제공Overview
    • 세부적 도표: 총체적 도표와 같은 모양이지만 내용만 좀 더 복잡하게 들어간 형태

 

애자일 방법론

- eXtreme Programming: 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
    - 5가지 핵심 가치: 의사소통, 피드백, 존중, 용기, 단순성
    - 12가지 기본 원리
        - Pair programming
        - 공동 코드 소유 Collective Ownership: 시스템에 있는 코드는 누구든지 언제라도 수정 가능
        - 지속적인 통합 Continuous Integration(CI): 매일 여러 번씩 소프트웨어를 통합하고 빌드
        - 계획 세우기 Planning Process
        - Small Release: 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트
        - Metaphor: 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 함
        - Simple Design: 현재의 요구사항에 적합한 가장 단순한 시스템을 설계
        - Test Driven Development(TDD): 테스트를 먼저 수행하고, 이 테스트를 통과할 수 있도록 코드를 작성
        - Refactoring: 프로그램의 기능을 바꾸지 않으면서 중복 제거, 단순화 등을 위해 시스템을 재구성
        - 40-Hour Work
        - 고객 상주 On Site Customer
        - Coding Standard
- Scrum
    - 짧은 단위시간(Sprint) 내 실행가능한 SW 개발
    - 매일 15분 정도의 Scrum meeting 회의
- FDD(Feature-Driven Development): 기능주도 개발
- Crystal
- LEAN: 낭비 요소를 제거하여 품질 향상

 

정보보안 3요소

- 기밀성: 인가된 사용자만 접근
- 무결성: 인가된 사용자만 인가된 방법으로 자원 수정
- 가용성: 인가된 사용자는 언제든지 접근 가능

접근 제어

  1. 강제적 접근제어(MAC, Mandatory Access Control)
    : 높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법
  2. 임의적 접근제어(DAC, Discretionary Access Control)
    : 객체의 소유주가 접근 여부를 결정
  3. 역할기반 접근제어(RBAC, Role Based Access Control)
    : 조직내에서 맡은 역할에 기초하여 자원에 대한 접근허용 여부를 결정하는 방법

MAC 보안 모델

  1. Bell-LaPadula Confidentiality Model; BLP
    • 기밀성 강조
    • No Read Up: 낮은 등급의 주체는 높은 등급의 객체를 읽을 수 없음
    • No Write Down: 높은 등급의 주체는 낮음 등급의 객체를 수정할 수 없음
  2. Biba Integrity Model
    • 무결성 강조
    • No Read Down: 높은 등급의 주체는 낮은 등급의 객체를 읽을 수 없음
    • No Write Up: 낮은 등급의 주체는 상위 등급의 객체를 수정할 수 없음
  3. Clark-Wilson Integrity Model
    • 무결성 강조
    • 상업용
  4. Brewer Nash, Chinese Wall Model
    • 이익 충돌 방지를 위한 모델
  5. Lattice
    • 정보의 흐름을 안전하게 제어

 

소프트웨어 생명 주기

  • 폭포수 모형 (Waterfall Model)
    • 이전 단계로 돌아갈 수 없다는 전제
    • 각 단계가 끝난 후에는 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 함
  • 나선형 모델
    • 계획 및 정의 → 위험 분석 → 공학적 개발 → 고객 평가
  • 프로토타입 모형(Prototype Model, 원형 모델)
    • 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형
  • RAD 기법 모델
    • 짧은 개발 기간동안 개발하기위한 순차적 프로세스 모델
  • V 모델
    • 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
    • 작업 결과의 검증(테스트)에 초점
  • 4세대 기법
    • 자동화 도구들을 이용하여 요구사항 명세서로부터 실행코드를 자동으로 생성할 수 있게 해주는 방법

 

SW 비용 산정 기법

- 하향식
    - 프로젝트의 전체 비용을 산정한 후 각 작업별로 비용을 세분화
    - 종류: 전문가 감정 기법, 델파이 기법
- 상향식
    - 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정
    - 종류
        - LOC(원시 코드 라인 수, source Line of Code)
            -각 기능의 원시 코드 라인 수의 비관치(1), 낙관치(1), 기대치(4)를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
- 수학적 산정
    - 종류
        - COCOMO: LOC(원시 코드 라인 수)에 의한 비용 산정 기법
            - 종류: 조직형-Organic(5만 라인 이하), 반 분리형-Semi-Detached(30만 라인 이하), 내장형-Embedded(30만 라인 이상)
        - Putnam: 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상
            - 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
            - SLIM: Rayleigh-Nordan 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
        - 기능점수(FP): 소프트웨어의 기능을 증대시키는 요인별로 기능 점수(FP)를 구한 후, 비용을 산정

 

암호화

  • 단방향(Hash): MD ▶ SHA, HAVAL
  • 양방향
    • 대칭키
      • 빠른 속도
      • 많은 양
      • 키 개수: n*(n-1)/2
      • 종류
        • Stream: RC4
        • Block: DES ▶ AES, IDEA, SEED, ARIA
    • 비대칭키(공개키)
      • 느린 속도
      • 적은 양 ◀ 내용보다는 키를 암호화하는 방식으로 사용
      • 키 개수: 2*n
      • 종류
        • 소인수분해: RSA, Robin
        • 이산대수: DH, DSA, EIGmal
        • 타원곡선: ECC, ECDSA
  • 페이스텔: 블록 암호의 일종으로, 암호화 방식이 특정 계산 함수의 반복으로 이루어지는 것

 

Secure SDLC(Software Development Life Cycle)

: 안전한 소프트웨어를 개발하기 위해 SDLC 상에서 보안을 강화한 개발 프로세스

  • 종류
    • CLASP: SDLC 초기단계에 보안강화를 목적으로 하는 정형화된 프로세스
    • MSDL: 마이크로소프트에서 개발한 소프트웨어 개발 보안 방법론
    • Seven Touchpoints: 소프트웨어 보안의 모범 사례를 소프트웨어 개발 라이프사이클에 통합

NS chart

ns_chart

 

용어

VPN: 이용자가 인터넷과 같은 공중망에 사설망을 구축하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
Ransomware: 컴퓨터 시스템을 감염시켜 접근을 제한하고 일종의 몸값을 요구하는 악성 소프트웨어
Pharming: 피싱 기법 중 하나로, 정확한 웹 페이지 주소를 입력해도 가짜 웹 페이지에 접속하게 하여 개인정보를 훔치는 것
Phishing: 공격자가 사람들을 속여 사기에 빠지도록 고안된 악성 이메일을 보내는 것
XSS(Cross Site Scripting): 악의적인 스크립트를 포함하여 정보 유출 등의 공격을 하는 것
MapReduce: Google에서 고안된 기술로 대표적인 대용량 처리를 위한 병렬 처리 기법을 제공, 임의의 순서로 정렬된 데이터를 분산 처리(Map)하고 이를 다시 합치는 과정(Reducer)

 

 

 

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

[정보보안 - Secure SDLC]

안녕하세요!! 이번 포스팅은 Secure SDLC에 대해서 알아보겠습니다. * Secure SDLC   1. 안...

blog.naver.com

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr