정보처리기사
정보보안 3요소
- 기밀성: 인가된 사용자만 접근
- 무결성: 인가된 사용자만 자원 수정, 전송중인 정보는 수정 불가
- 가용성: 인가된 사용자는 언제든지 접근 가능
취약점 관리 3요소
- 관리: 보안 지침 관련
- 기술: 서버, 네트워크, OS 관련
- 물리: 출입 통제 관련
용어
라이브러리: 함수들의 집합
API(Application Programming Interface): 컴포넌트를 활용하기 위한 규약
프레임워크
- 응용프로그램이나 소프트웨어 구현을 수월하게 하기 위해 제공된 소프트웨어 환경
- IoC: 제어의 흐름이 일반적인 프로그램과 반대로 동작
악성코드 유형
- Worm: 다른 컴퓨터의 취약점을 이용하여 스스로 전파하거나 스스로 증식하는 것
- Adware: 사용자의 컴퓨터에 원하지 않는 광고를 표시하는 모든 응용프로그램
Dos(Denial of Service)
- 정의: 대량의 데이터를 보내어 타깃 시스템이 정상적인 서비스를 하지 못하도록 마비시키는 공격
- 종류
- Ping Of Death: 대량의 Ping을 전송해 네트워크를 마비시킴
- Land Attack: Packet의 보내는 사람과 받는 사람을 동일하게 설정
- Smurf: IP와 ICMP 특성을 이용하여 문제 발생 시, 해당 사용자에게 보고하지 못하도록 공격
- Teardrop Attack: 재조립 시 정확한 조립을 위해 오프셋이라는 값을 더하게 되는데 이 오프셋 값을 고의적으로 수정하여 시스템의 기능을 마비시켜 버리는 방법
DDoS (Distributed Denial of Service)
- 정의: 서비스 중단을 목적으로 표적 서버, 서비스 또는 네트워크에 인터넷 트래픽을 대량으로 보내려고 시도하는 악의적인 사이버 공격의 형태
- 종류
- SYN Flooding: 접속을 요청하는 SYN Packet을 대량으로 전송해 네트워크를 마비 시킴
- UDP Flooding: 많은 수의 UDP packet을 전송하여 정상적인 서비스가 불가능하도록 하는 공격
애자일 방법론
: 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행
- eXtreme Programming: 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
- 5가지 핵심 가치: 의사소통, 피드백, 존중, 용기, 단순성
- 12가지 기본 원리
- 짝 프로그래밍 Pair programming
- 공동 코드 소유 Collective Ownership: 시스템에 있는 코드는 누구든지 언제라도 수정 가능
- 지속적인 통합 Continuous Integration(CI): 매일 여러 번씩 소프트웨어를 통합하고 빌드
- 계획 세우기 Planning Process
- 작은 릴리즈 Small Release: 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트
- 메타포어 Metaphor: 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 함
- 간단한 디자인 Simple Design: 현재의 요구사항에 적합한 가장 단순한 시스템을 설계
- 테스트 기반 개발 Test Driven Development(TDD): 테스트를 먼저 수행하고, 이 테스트를 통과할 수 있도록 코드를 작성
- 리팩토링 Refactoring: 프로그램의 기능을 바꾸지 않으면서 중복 제거, 단순화 등을 위해 시스템을 재구성
- 40시간 작업 40-Hour Work
- 고객 상주 On Site Customer
- 코드 표준 Coding Standard
- Scrum: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 개발 방법론
- 테스트 주도 개발(Test Driven Development, TDD): 테스트 케이스를 먼저 작성하고 이를 통과하는 코드를 개발
- LEAN: 낭비 요소를 제거하여 품질을 향상
소프트웨어 생명 주기
폭포수 모형 (Waterfall Model)
- 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭 짓고 다음 단계를 진행
- 각 단계가 끝난 후에는 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 함
프로토타입 모형(Prototype Model, 원형 모델)
- 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형
나선형 모델
- 계획 및 정의 → 위험 분석 → 공학적 개발 → 고객 평가
암호화
- 양방향 알고리즘 : 암호화, 복호화 가능
- 단방향 알고리즘 : 암화화 가능, 복호화 불가
- 대칭키 방식: 암호화, 복호화시 모두 동일한 키를 사용
- 빠른 속도
- 많은 양
- 비대칭키(공개키)방식: 암호화 복호화에 서로 다른 키를 사용
- 느린 속도
- 적은 양
SW 비용 산정 기법
- 하향식
- 프로젝트의 전체 비용을 산정한 후 각 작업별로 비용을 세분화
- 종류: 전문가 감정 기법, 델파이 기법
- 상향식
- 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정
- 종류
- LOC(원시 코드 라인 수, source Line of Code)
-각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
- 수학적 산정
- 경험적 추정 모형, 실험적 추정 모형
- 종류
- COCOMO: LOC(원시 코드 라인 수)에 의한 비용 산정 기법
- 종류: 조직형(5만 라인 이하), 반 분리형(30만 라인 이하), 내장형(30만 라인 이상)
- Putnam: 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
- SLIM: Rayleigh-Nordan 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
- 기능점수(FP): 소프트웨어의 기능을 증대시키는 요인별로 기능 점수(FP)를 구한 후, 비용을 산정
3A
Authentication, 인증: 신원 검증
Authorization, 인가: 권한 허가
Accounting, 계정 관리: 사용자의 자원 사용 정보
프로젝트 일정 관리
PERT 차트
- 전체 작업의 상호 관계를 표시하는 네트워크
- 소요 기간 예측이 어려운 프로젝트 일정 계획에 사용
간트 차트(시간선 차트)
- 각 작업들의 시작과 종료에 대한 일정을 막대 도표를 이용하여 표시
- 수평 막대 길이 = 각 작업 기간
CPM(Critical Path Method)
- 처음부터 끝까지 프로젝트를 완수하는데 드는 시간을 측정하고 가장 긴 의존 활동을 식별
TCP Wrapper: 외부 컴퓨터 접속 시, 인가 여부를 점검해서 인가된 경우에는 접속 허용, 반대의 경우 접급 거부할 수 있는 접근제어 유틸리티
Zing: 초고속 근접무선통신(근접 거리, 기가급 속도 데이터 전송) 기술
HSM(Cloud-based HardWare Security Module): 클라우드 기반 암호화 키 생성, 처리, 저장 등을 하는 보안 기기
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2022년 1회차 (2)소프트웨어 개발 (0) | 2023.07.08 |
---|---|
[정보처리기사] 2022년 1회차 (1)소프트웨어 설계 (0) | 2023.07.08 |
[정보처리기사] 2022년 2회차 (4)프로그래밍 언어 활용 (0) | 2023.07.07 |
[정보처리기사] 2022년 2회차 (3)데이터베이스 설계 (0) | 2023.07.06 |
[정보처리기사] 2022년 2회차 (2)소프트웨어 개발 (0) | 2023.07.06 |