새소식

반응형
250x250
기타/정보처리기사

정보처리기사 필기 정리

  • -
728x90
반응형

<소프트웨어 생명주기 모델>

1.폭포수
- 가장 오래된 / 전통적 / 고전적 생명주기 모델
- 순차적 접근
- 산출물 중심
- 각 단계를 확실히 매듭짓고 승인을 거쳐 이전 단계로 돌아갈 수 없음
- 매뉴얼 작성 필요
- 2개 이상 과정 병행x


2.프로토타입
- 개발될 sw에 대한 견본품 만들어 최종 결과물 예측


3.나선형
- 소프트웨어 개발 프로세스를 위험 관리 측면에서 본 모델
- 요구사항 / 아키텍처를 이해하기 어렵거나 중심 기술에 문제가 있는 경우 적합한 모델
- 폭포수 / 프로토타입 모델 장점에 위험 분석기능 추가
- 시스템을 여러 부분으로 나누어 여러번 개발 주기를 거치며 완성
- 계획 및 정의 => 위험 분석 => 공학적 개발 => 고객 평가

 
4.V
- 폭포수 모델의 변형
- 작업과 결과물 검증에 초점


5.애자일

- 공정과 도구 < 개인과의 상호작용
- 포괄적인 문서 < 동작하는 소프트웨어
- 계약 협상 < 고객과의 협력
- 계획 따르기 < 변화에 대응

 

*애자일 기법*

 

1.XP(extreme programming)

- 5가지 핵심 가치

ㄴ의사소통

ㄴ피드백

ㄴ존중

ㄴ용기

ㄴ단순성

 

2.스크럼(scrum)

- 스프린트(sprint) : 하나의 완성된 최종 결과물을 만들기 위한 단위

ㄴ단위 : 보름~1달

- 매일 15분 짧은 회의

 

3.FDD(function driven development)

4.크리스탈

5.lean

 

 

<클래스 설계원칙>

 

1.단일 책임원칙 : 하나의 클래스는 하나의 일만 수행

2.개방-폐쇄의 원칙 : 클래스는 확장에는 열려 있고 변경에는 닫혀 있어야 함

3.리스코프 교체/치환의 원칙 : 자식 클래스는 언제든 부모 클래스를 대체할 수 있어야 함

4.의존관계 역전 원칙 : 자주 변경되는 클래스와 의존관계를 갖지 말아야 함

5.인터페이스 분리 원칙 : 불필요한 인터페이스 생성하지 않기


<하향식 / 상향식 설계 방법>

*하향식 설계
- 구조적 설계
- 절차지향

*상향식 설계
- 객체지향

 

<자료흐름도(Data Flow Diagram)>

 

- 버블 차트라고도 함

- 구조적 분석 기법에 이용

- 프로세스와 프로세스 간의 상호작용 표현

 

<UML>

- 모델링 언어

- 산출물 명세화

 

 

<UI 설계도구>

 

 

 

<디자인 패턴>

 

 

<객체지향 분석기법>

1.럼바우(Rumbaugh) : 객체 / 동적 / 기능 3가지 모형을 생성

 

<테스트 단계>

 

1.단위 테스트

- 정적 분석 : 소스코드 내부 확인

- 동적 분석 : 입력값과 출력값 확인

 

2.통합 테스트

- 상향식 : 디테일부터 메인 페이지

ㄴ드라이버

- 하향식 : 메인 페이지부터 디테일

ㄴ스텁

 

3.시스템 테스트

- 기능 테스트 : 사용자가 요구한 기능 작동

- 비기능 테스트 : 보안, 성능, 안정성, 신뢰성, 자원 활용력

 

4.인수 테스트

- 알파 테스트 : 사용자와 개발자가 같이

- 베타 테스트 : 사용자만

 

<자료구조>

 

 

1.스택

- LIFO

- 인터럽트 처리, 서브루틴 호출 작업에 응용

 

2.큐

- FIFO

 

<정렬 알고리즘>

1.퀵 정렬

- 피벗 사용

- n(n-1)/2회 비교

- 시간 복잡도 : n*log2n

 

2.버블 정렬

3.삽입 정렬

4.선택 정렬

 

<화이트 박스 테스트 기법>

- 개발자 관점의 테스트 방법

- 내부 소스코드 테스트

- 프로그램 내부 구조, 동작 검사

ㄴ데이터 흐름 검사

ㄴ루프 검사

 

1.문장검증

2.선택검증

3.경로검증

4.조건검증

 

<블랙박스 테스트 기법>

- 프로그램 내부 구조, 작동 원리 모르는 상태에서 동작 검사

- 사용자 관점의 테스트 방법

- 원하는 기능이 예측한 대로 정상 동작하는지 확인

ㄴ동등 분할 기법

ㄴ경계값 분석 기법

ㄴ오류 예측 기법

ㄴ원인/결과 그래프 기법

 

<소스코드 품질 분석>

 

1.동료 검토(peer review)

- 2~3명이 진행

- 작성자가 코드 설명, 관계자들이 설명 들으며 결함 발견하는 형태로 진행

 

2.워크스루

- 검토 자료 회의 전 배포해 사전검토

- 짧은 시간 동안 회의 진행

 

3.인스펙션

- 공식적 검사회의

- 작업자 외 다른 전문가가 검사

- 코드 품질 향상 기법

- 프로그램 수행x, 눈으로 확인

 

<정보시스템>

1.고가용성 솔루션(HACMP)
- 클러스터링 : 다수의 시스템 동시 연결

2.스턱스넷
- 제로데이 취약점 이용
- 핵무기와 원심분리기 등 물리적 피해를 입히는 목적

3.루팅
- 안드로이드 운영체제에서 최상위 권한을 얻어 해당 기기 권한을 해제

<공격 종류>

1.Switch Jamming
- 위조된 MAC 주소를 네트워크로 흘려보내 스위치 MAC 주소 테이블의 저장 기능을 혼란시켜 더미 허브처럼 작동시킴

2.블루투스 공격

a)블루버그
- 블투 장비 사이 취약한 연결 관리 악용

b)블루스나프
- 블루투스의 취약점 활용해 장비의 파일에 접근

c)블루프린팅
- 블투 공격 장치의 검색 활동

d)블루재킹
- 블투 이용해 스팸처럼 메시지를 익명으로 퍼트림

3.DDos

a)Smurf attack
- IP, ICMP 특성 이용

b)Ping of Death
- 정상 크기보다 큰 ICMP 패킷을 fragment로 쪼개 조각화된 패킷을 처리하게 만듦

c)Land attack
- 출발지 / 목적지 IP가 같은 패킷을 만들어 보냄

d)SYN Flooding
- 존재하지 않는 사용자가 접속한 것처럼 속여 다른 사용자가 서비스를 이용하지 못하게 함

e)Teardrop attack
- 재조합할 수 있는 fragment number를 위조

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.