정보처리기사
소프트웨어 생명 주기
- 폭포수 모형 (Waterfall Model)
- 이전 단계로 돌아갈 수 없다는 전제
- 각 단계가 끝난 후에는 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 함
- 나선형 모델
- 계획 및 정의 → 위험 분석 → 공학적 개발 → 고객 평가
- 프로토타입 모형(Prototype Model, 원형 모델)
- 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형
- RAD 기법 모델
- 짧은 개발 기간동안 개발하기위한 순차적 프로세스 모델
- V 모델
- 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
- 작업 결과의 검증(테스트)에 초점
- 4세대 기법
- 자동화 도구들을 이용하여 요구사항 명세서로부터 실행코드를 자동으로 생성할 수 있게 해주는 방법
V모델
- 단위(Unit) 테스트
: 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트- 정적: 소스코드의 실행없이 내부 확인
- 동적: 입력값에 대한 출력값 확인
- 통합(Integration) 테스트
: 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트- 빅뱅 테스트: 프로그램 전체를 대상으로 테스트
- 상향식 테스트: 테스트 드라이버 사용
- 하향식 테스트: 깊이 우선 통합법, 넓이 우선 통합법 사용, 테스트 스텁 사용
- 백본(BackBone) 테스트: : 하위 수준에서는 상향식 통합, 상위수준에서는 하향식 통합 사용하여 최적의 테스트를 지원, 샌드위치(Sandwich)식 통합 테스트 방법
- 회귀(Regression) 테스트: 통합 테스트가 완료된 후 변경된 모듈이나 컴포넌트가 있을 경우, 다른 부분에 영향을 미치는지 테스트하여 새로운 오류 여부를 확인
- 시스템(System) 테스트
: 전체 시스템 또는 제품의 동작에 대해 테스트- 기능 요구사항 테스트
- 비기능 요구사항 테스트
- 인수(Acceptance) 테스트
: 계약상의 요구사항이 만족되었는지 확인- 알파 테스트: 개발자 + 사용자
- 베타 테스트: 사용자
Storage System
- DAS(Direct Attached Storage): USB처럼 PC나 서버에 직적 연결하여 사용하는 스토리지
- NAS(Networt Attached Storage): DAS에 Network 기능 탑재, 서버와 저장장치가 이더넷등의 LAN방식의 네트워크에 연결된 방식
- SAN(Storage Area Network): NAS에 고속채널(광채널)을 탑재
Bluetooth 공격
- BlueBug: 블루투스 장비 사이의 취약한 연결 관리를 악용한 공격
- BlueSnarf: 블루투스 장비의 파일에 접근하는 공격으로 OPP를 사용하여 정보를 열람
- BluePrinting: 블루투스 공격 장치의 검색 활동
- BlueJacking: 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
cf. Session HiJacking: 다른 사람의 세션 상태를 훔치거나 도용하여 액세스하는 해킹기법
Dos(Denial of Service)
- 정의: 대량의 데이터를 보내어 타깃 시스템이 정상적인 서비스를 하지 못하도록 마비시키는 공격(가용성 저하)
- 종류
- Ping Of Death: 정상 크기보다 큰 ICMP 패킷을 작은 조각(Fragment)으로 쪼개어 공격 대상이 조각화된 패킷을 처리하게 만드는 공격
- Smurf: IP와 ICMP 특성을 이용하여 문제 발생 시, 해당 사용자에게 보고하지 못하도록 공격
- Land Attack: Packet의 보내는 사람과 받는 사람을 동일하게 설정
- Teardrop Attack: Fragment를 재조립 시 정확한 조립을 위해 오프셋이라는 값을 더하게 되는데 이 오프셋 값을 고의적으로 수정하여 시스템의 기능을 마비시켜 버리는 방법
DDoS (Distributed Denial of Service)
- 정의: 서비스 중단을 목적으로 표적 서버, 서비스 또는 네트워크에 인터넷 트래픽을 대량으로 보내려고 시도하는 악의적인 사이버 공격의 형태(가용성 저하)
- 종류
- SYN Flooding: 접속을 요청하는 SYN Packet을 대량으로 전송해 네트워크를 마비 시킴
- UDP Flooding: 많은 수의 UDP packet을 전송하여 정상적인 서비스가 불가능하도록 하는 공격
정보보안 3요소
: 기밀성, 무결성, 가용성
클라우드 서비스
- on-premises: 자사에서 데이터센터를 보유하고 시스템 구축부터 운용까지 모두 수행하는 형태
- IaaS(Infrastructure as a Service): 개발사에 제공되는 물리적 자원을 가상화
- PaaS(Platform as a Service): 개발사에 제공되는 플랫폼을 가상화
- SaaS(Software as a Service): 개발사에 제공되는 소프트웨어를 가상화
프로젝트 일정 관리
WBS (Work Breakdown Structure)
- 프로젝트를 탑다운 방식으로 세분화하여 프로젝트의 단위 작업에 대해 파악하는 기법
PERT 차트
- 전체 작업의 상호 관계를 표시하는 네트워크
- 소요 기간 예측이 어려운 프로젝트 일정 계획에 사용
CPM(Critical Path Method)
- 처음부터 끝까지 프로젝트를 완수하는데 드는 시간을 측정하고 가장 긴 의존 활동을 식별
간트 차트(시간선 차트)
- 각 작업들의 시작과 종료에 대한 일정을 막대 도표를 이용하여 표시
- 수평 막대 길이 = 각 작업 기간
입력 데이터의 보안 약점
- XSS(Cross Site Scripting): 웹 브라우저에서 의도하지 않은 악성 스크립트가 실행되는 것
- 자원 삽입: Script 태그에서 src 부분을 조작하여 의도하지 않은 다른 자원도 함께 실행되는 것
암호화
- 양방향 알고리즘 : 암호화, 복호화 가능
- 단방향 알고리즘 : 암화화 가능, 복호화 불가
- 대칭키 방식: 암호화, 복호화 시 모두 동일한 키를 사용
- 빠른 속도
- 많은 양
- 비대칭키(공개키)방식: 암호화 복호화에 서로 다른 키를 사용
- 느린 속도
- 적은 양 ◀ 내용을 암호화하기보다는 키를 암호화하는 방식으로 사용
대칭키 암호화 방식
DES | AES | |
---|---|---|
블록 길이 | 64bit | 128bit |
키 길이 | 56bit | 128/196/256bit |
라운드 수 | 16 | 12/14/16 |
페이스텔 | 페이스텔 | 비페이스텔 |
- 페이스텔: 블록 암호의 일종으로, 암호화 방식이 특정 계산 함수의 반복으로 이루어지는 것
SW 비용 산정 기법
- 하향식
- 프로젝트의 전체 비용을 산정한 후 각 작업별로 비용을 세분화
- 종류: 전문가 감정 기법, 델파이 기법
- 상향식
- 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정
- 종류
- LOC(원시 코드 라인 수, source Line of Code)
-각 기능의 원시 코드 라인 수의 비관치(1), 낙관치(1), 기대치(4)를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
- 수학적 산정
- 경험적 추정 모형, 실험적 추정 모형
- 종류
- COCOMO: LOC(원시 코드 라인 수)에 의한 비용 산정 기법
- 종류: 조직형(5만 라인 이하), 반 분리형(30만 라인 이하), 내장형(30만 라인 이상)
- Putnam: 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
- SLIM: Rayleigh-Nordan 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
- 기능점수(FP): 소프트웨어의 기능을 증대시키는 요인별로 기능 점수(FP)를 구한 후, 비용을 산정
소프트웨어 3R
- 역공학(Reverse-Engineering)
: 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 작업 - 재공학(Re-Engineering)
: 소프트웨어의 위기를 유지 보수의 생산성으로 해결하려는 방법- Migration: 기존 SW 시스템을 새로운 환경에서 사용할 수 있도록 변환하는 작업
- 재사용(Re-Use)
로그 파일 종류
- utmp: 현재 로그인 사용자 상태 정보를 담고 있는 로그파일
- wtmp: 리눅스 시스템에서 사용자의 성공한 로그인/로그아웃 정보 기록
- btmp: 실패한 로그인 정보를 담고 있는 로그파일
- last log: 마지막으로 성공한 로그인 정보를 담고있는 로그파일
- sulog : su(switch user) 명령어와 관련된 로그 기록
Stuxnet: 핵무기 등 물리적인 피해를 입히는 목적으로 사용되는 악성 코드
Rooting: 안드로이드 OS에서 최상위 권한을 얻어 해당 기기의 제약을 해제하는 것(= 탈옥)
Hadoop: 대규모 데이터 세트를 분산 처리할 수 있는 오픈 소스 프레임워크
MapReduce: 분산처리엔진 역할을 하는 하둡의 중심 모듈
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2021년 3회차 (2)소프트웨어 개발 (0) | 2023.07.10 |
---|---|
[정보처리기사] 2021년 3회차 (1)소프트웨어 설계 (0) | 2023.07.10 |
[정보처리기사] 2022년 1회차 (4)프로그래밍 언어 활용 (0) | 2023.07.09 |
[정보처리기사] 2022년 1회차 (3)데이터베이스 설계 (0) | 2023.07.09 |
[정보처리기사] 2022년 1회차 (2)소프트웨어 개발 (0) | 2023.07.08 |