정보처리기사
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
- DAS(Direct Attached Storage): USB처럼 PC나 서버에 직접 연결하여 사용하는 스토리지
- NAS(Network Attached Storage): DAS에 Network 기능 탑재, 서버와 저장장치가 이더넷등의 LAN방식의 네트워크에 연결된 방식
- SAN(Storage Area Network): NAS에 고속채널(광채널)을 탑재
- RAID(Redundant Array of Independent Disk): 여러개의 저장장치를 묶어서 하나의 고용량, 고성능 저장장치처럼 사용하는 기술
HIPO
: 하향식 소프트웨어 개발(절차 지향)을 위한 문서화 도구
- HIPO 차트 종류
- 가시적 도표: 시스템의 전체 기능과 흐름을 보여주는 Tree(계층) 구조
- 총체적 도표: 입력, 처리, 출력에 대한 전반적인 정보 제공
- 세부적 도표: 총체적 도표와 같은 모양이지만 내용만 좀 더 복잡하게 들어간 형태
애자일 방법론
- 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요소
- 기밀성: 인가된 사용자만 접근
- 무결성: 인가된 사용자만 인가된 방법으로 자원 수정
- 가용성: 인가된 사용자는 언제든지 접근 가능
접근 제어
- 강제적 접근제어(MAC, Mandatory Access Control)
: 높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법 - 임의적 접근제어(DAC, Discretionary Access Control)
: 객체의 소유주가 접근 여부를 결정 - 역할기반 접근제어(RBAC, Role Based Access Control)
: 조직내에서 맡은 역할에 기초하여 자원에 대한 접근허용 여부를 결정하는 방법
MAC 보안 모델
- Bell-LaPadula Confidentiality Model; BLP
- 기밀성 강조
- No Read Up: 낮은 등급의 주체는 높은 등급의 객체를 읽을 수 없음
- No Write Down: 높은 등급의 주체는 낮음 등급의 객체를 수정할 수 없음
- Biba Integrity Model
- 무결성 강조
- No Read Down: 높은 등급의 주체는 낮은 등급의 객체를 읽을 수 없음
- No Write Up: 낮은 등급의 주체는 상위 등급의 객체를 수정할 수 없음
- Clark-Wilson Integrity Model
- 무결성 강조
- 상업용
- Brewer Nash, Chinese Wall Model
- 이익 충돌 방지를 위한 모델
- 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
용어
VPN: 이용자가 인터넷과 같은 공중망에 사설망을 구축하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
Ransomware: 컴퓨터 시스템을 감염시켜 접근을 제한하고 일종의 몸값을 요구하는 악성 소프트웨어
Pharming: 피싱 기법 중 하나로, 정확한 웹 페이지 주소를 입력해도 가짜 웹 페이지에 접속하게 하여 개인정보를 훔치는 것
Phishing: 공격자가 사람들을 속여 사기에 빠지도록 고안된 악성 이메일을 보내는 것
XSS(Cross Site Scripting): 악의적인 스크립트를 포함하여 정보 유출 등의 공격을 하는 것
MapReduce: Google에서 고안된 기술로 대표적인 대용량 처리를 위한 병렬 처리 기법을 제공, 임의의 순서로 정렬된 데이터를 분산 처리(Map)하고 이를 다시 합치는 과정(Reducer)
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2020년 3회차 (2)소프트웨어 개발 (0) | 2023.07.17 |
---|---|
[정보처리기사] 2020년 3회차 (1)소프트웨어 설계 (0) | 2023.07.17 |
[정보처리기사] 2020년 4회차 (4)프로그래밍 언어 활용 (1) | 2023.07.17 |
[정보처리기사] 2020년 4회차 (3)데이터베이스 설계 (0) | 2023.07.17 |
[정보처리기사] 2020년 4회차 (2)소프트웨어 개발 (0) | 2023.07.16 |