셤숌셤/정보처리기사 필기 오답노트

2021-05 2차

moonday 2021. 8. 12. 00:55

[1과목]
시스템 구성요소
입력처리 출력 제어 피드백 : 출력 결과가 예정 목표를 미달성 -> 목표달성까지 반복

- 유스케이스 : 시스템이 액터에게 제공해야 하는 기능, 시스템의 요구사항이자 기능
- 유스케이스 다이어그램 : 사용자 요구 추출하고 분석하기 위해 주로 사용
- 액터 : 시스템 외부에서 시스템과 상호작용하는 사람 혹은 시스템
- 사용자 액터 : 기능을 요구하는 대상이나 시스템 수행결과를 통보받는 사용자 혹은 기능을 사용하게 될 대상, 시스템이 제공해야하는 기능인 유스케이스의 권한을 가지는 대상
- 시스템 액터 : 사용자 액터가 사용한 유스케이스를 처리해주는 외부시스템, 시스템 기능 수행을 위해 연동되는 또다른 시스템 액터를 의미

요구사항 개발 프로세스
요구사항을 “도출” 해야 “분석”하고 “명세”해서 “검토”함

- factory method pattern은 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
- prototype pattern은prototype을먼저 생성하고 인스턴스를 복제하여 사용하는 구조
- adapter pattern 기존 구현 클래스에기능 발생시 기존 클래스 재사용 가능 토록 중간에 맞추기
- mediator pattern은객체 간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향의 목표를 달성하게 해준다
-bridge pattern구현부에서 추상층을 분리하여 각자 독립적으로 확장 가능토록 함

소프트웨어 아키텍처 설계 중 시스템 품질 속성
- 가용성, 변경 용이성, 성능, 보안성, 사용편의성, 시험용의성

연계시스템 구성
1) 송신 시스템 : 연계할 데이터를 DB와 애플리케이션으로부터 연계 테이블 또는 파일 형태로 선 생성 후 송신
2) 수신 시스템: 수신한 데이터를 DB에저장하여 애플리케이션에서 활용할 수 있도록 제공
3) 중계서버 : 송수신 시스템에서 데이터를 송수신하고 연계 데이터의 송수신 현황을 모니터함, 연계 데이터 보안강화 및 다중 플랫폼 지원 등이 가능

CASE 원천 기술
- 구조적 기법, 프로토타이핑 기술, 자동 프로그래밍 기술, 정보 저장소 기술, 분산처리

아키텍쳐 스타일
- 클라이언트-서버 구조 : 컴포넌트가 다른 컴포넌트에게 서비스 요청, 데이터가 여러 컴포넌트 거치며 처리
- 계층 구조 : 모듈들로 응집된 계층단위로 소프트웨어 구성, 계층 간에 사용기능의 관계로 표현
- MVC구조: 모델-뷰-컨트롤러, 기능을 분리한 아키텍쳐
- 파이프-필터 : 파이프를 통해 받은 데이터를 변경시키고 그 결과를 파이프로 전송

럼바우(객체-동적-기능)
- 동적 모델링 - 상태도
- 기능 모델링 - 자료흐름도

UML다이어그램
- 액티비티 다이어그램 => 업무 흐름을 모델링 또는 객체 생명 주기 표현
- 시퀀스 다이어그램 => 객체 간 메세지 전달을 시간적 흐름에서 분석
- Deployment => 기업환경의 구성과 컴포넌트 간의 관계를 그림
- Collaboration -> 객체와 객체가 주고 받는 메세지 중심의 작성, 동적 다이어그램
- Component =>소프트웨어 구조를 그림
- Class=>시스템 구조적 모습을 그림

- Realization => 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정
-Dependency => 한사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼침
- Generalization => 일반화된 사물과 좀 더 특수화된 사물 사이의 관계 (is-a)
- Assosiation => 두사물 간의 구조적 관계로 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음(has-a)

CASE: 시스템 개발 과정의 일부 또는 전체를 자동화 시킨 것
- 소프트웨어 생명주기의 전체 단계를 연결해주고 자동화해주는 통합된 도구를 제공
- 소프트웨어를 개발하는 환경을 제공

상위CASE:요구 분석과 설계 단계를 지원
- 모델들 사이의 모순 검사 기능
- 모델의 오류 검증 기능
- 자료흐름도 작성

하위 CASE : 코드를 작성하고 테스트하며 문서화하는 과정 지원
- 원시 코드 생성 기능

통합 CASE:소프트웨어 개발 주기 전체 과정을 지원

애자일 개발 방법론
- 익스트림 프로그래밍 (XP, Extreme Programming)
- 스크럼 크리스털 패밀리
- 기능 주도 개발(FDD, Feature-Driven Development)
- 적응형 소프트웨어 개발(ASD, Adaptive Software Development)
- 익스트림 모델링

하둡 : 분산 환경에서 빅데이터를 저장하고 처리할 수 있는 자바 기반의 오픈 소스 프레임 워크

[2과목]
힙 정렬
- 정렬할 입력 레코드들로 힙을 구성, 가장 큰 키 값을 갖는 루트 노드를 제거하는 과정을 반복하여 정렬하는 기법
- 평균 수행 시간과 최악 O(nlog2n)
- 완전이진트리 입력 자료의 레코드를 구성

단위테스트는 테스트코드가 독립적이여야 함.
=> 모듈간의 상호작용X, 모듈 간 상호작용은 통합테스트에서 가능

버전관리 항목
- 저장소 : 최신버전 파일과 변경내역에 대한 정보가 저장
- 체크아웃 : 프로그래밍 수정을 위해 저장소에서 소스파일과 버전관리를 위한 파일을 받아옴
- 커밋 : 체크인 수행할 때, 이전에 갱신된 내용이 있는 경우에는 충돌을 알리고 diff도구를이용해 수정한 후 갱신 완료
- 동기화 : 저장소에 있는 최신버전으로 자신의 작업공간을 동기화

소프트웨어 테스트
- 테스트케이스는 일반적으로 시험조건, 테스트 데이터, 예상 결과가 포함되어야 함
- 화이트 박스는 논리적 구조를 체계적으로 점검, 블랙박스는 기능을 점검(프로그램 구조는 고려X)

단위테스트
1. 명세기반 : 주어진 명세를 빠짐없이 테스트케이스로 구현하고 있는지 확인하는 테스트
2. 구조 기반 : 프로그램 내부 구조 및 복잡도를 검증하는 화이트 박스 테스트 시행, 제어 흐름과 조건 결정 등이 목적
3. 성능 테스트 도구 : 성능 목표 달성 여부 확인 => 인위적으로 적용한 가상 사용자를 만들어서 테스트 수행

-Ant, Maven, Gradle은 빌드 자동화 도구
- 형상관리 도구는 Github과 같은 것

DEM 구성요소
1. 콘텐츠 분배자 : 암호화된 콘텐츠를 유통하는 곳, 사람
2. 패키저 : 콘텐츠를 메타데이터와 함께 배포가능한 형태로 묶어서 암호화
3. 클리어링 하우스 : 키 및 라이센스 발급 관리
4. DRM 컨트롤러 : 배포된 컨텐츠 이용권한 통제

클라이언트-서버 방식
- 중앙 시스템(서버)에 저장되어 관리
- 개발자 별로 자신의 PC(클라이언트)로 복사
- 모든 버전 관리는 서버에서 수행 -> 서버에서 문제가 있으면 협업 및 버전관리 작업 중단

Pass정렬 : 하나를 모든 수와 비교 후, 위치를 잡는게 1pass이고 결과값에서 2번째 값을 기준으로 2 pass가 시작

-O(N*log2N)선형로그형 복잡도 : 로그, 변수에 비례 -> 퀵정렬, 합병정렬
-On2 : 제곱형으로 제곱에 비례 -> 버블정렬, 삽입정렬, 선택정렬

EAI구축 유형에서 애플리케이션 사이에 미들웨어를 두어 처리하는 것은? Message Bus(=EBS) + 확장성, 대용량 처리에 좋음

-Hub&Spoke : 단일접점인 허브를 통해 데이터 전송하는 중앙 집중형 방식, 확장 및 유지보수가 용이/ 허브장애 발생 -> 시스템 전체 영향
- Hybrid : 그룹 내 Hub&Spoke, 그룹간 Message Bus + 데이터 병목 최소화
- Point to Point : 가장기본적인 애플리케이션 통합 방식으로 1:1연결, 변경 및 재사용이 어려움

인터페이스 구현 검증 도구
- xUnit, STAF, NTAF, Selenium, Watir 등
*Foxbase는프로그래밍 언어로 인터페이스 구현 검증 도구가 아님

소프트웨어 패키징 : 모듈별로 생성한 실행 파일들을 하나로 합쳐서 설치파일을 만드는 것
- 사용자 중심
- 신규 및 변경 개발 소스 식별->모듈화->상용제품으로 패키징
-범용 환경 사용가능을 위해 일반적인 배포 형태로 패키징

테스트 : 오류찾기 / 디버깅 : 오류수정

스택: 재귀호출, 후위 표현의 연산, 깊이우선 탐색
큐 : 선택정렬

[3과목]
병행제어 : 동시에 여러 트랜젝션을 병행수행 할 때, DB일관성을파괴하지않도록 제어 하는 것.
시분할 기법 : 사용자가 여러개의 작업이 동시에 일어나는 것처럼 느끼도록 분할

[4과목]
무선랜에서 데이터 전송 시, 매체가 비어있음을 확인한 뒤 충돌을 피하기 위해 임의의 시간을 기다린 후 데이터를 전송 + 네트워크 데이터 전송이 없는 경우라도 동시 전송에 의한 충돌에 대비하여 확인 신호를 전송
=> CSMA/CA

Collision Domain : 충돌발생을 검출할 수 있는 브리지 간 혹은 다른 계층 장치 간의 이더넷 세그먼트 범위

CSMA/CD : 이더넷에서 각 단막이 전송 공유매체에 규칙있게 접근하기 위한 매체 엑세스 제어 방식

- Detection(탐지) : 교착상태 발생을 허용하고 발생 시 원인을 규명하여 해결 (ex 자원할당 그래프)
- Avoidance (회피) : 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법 (ex 은행원 알고리즘)
- Recovery (복구) : 교착상태 발견 후 현황대기를 배제시키거나 자원을 중단하는 메모리 할당 기법 (ex 선점, 프로세스 중지(희생자 선택)
- Prevention(예방) : 교착상태의 필요조건을 부정함으로써 교착상태가 발생하지 않도록 미리 예방하는 방법 (ex 환형대기, 비선점, 점유와 대기, 상호배제 4가지 부정)


프로세스 적재 정책
- 반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다.
- 공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상주소공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다.
- 일반적으로 프로세스 수행에 보내는 시간이 더 크면 스레싱이 발생
- 스레싱 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공

프레임워크
- 모듈화, 재사용성, 확장성, 제어의 역흐름
- 소프트웨어 아키텍쳐와 동일한 개념

리눅스 Bash 쉘에서 export
-export가 매개변수 없이 쓰일 경우, 현재 설정된 환경 변수들이 출력
- 사용자가 생성하는 변수는 export명령어 표시하지 않는 한, 현재 쉘에 국한
- 변수를 export시키면 전역 변수 처럼 끝까지 기억


리눅스에서 변수출력은 echo$변수명

아스키코드 테이블에 A= 65, a = 97

페이징기법
- 컴퓨터가 메인 메모리에서 사용하기 위해 데이터를 저장하고 검색하는 메모리 관리 기법
- 페이징 기법을 통해 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없음
- 페이징 기법을 통해 비 연속적 메모리를 연속적 메모리처럼 만들 수 있음

*페이지 크기가 작은경우
- 더 많은 페이징 사상 테이블 필요
- 내부 단편화 감소
- 페이지 집합 효율적으로 운영가능
- 기억장치의 효율이 좋음
- 총 입출력 시간 증가

* 페이지 크기가 큼
- 주기억 장치 공간 절약
- 참조되는 정보와 무관한 양의 정보가 주기억 장치에 남게 됨
- 테이블이 복잡하지 않아 관리가 용이

응집도 (약-강): 우논시절교순기

연산자 우선순위(높-낮)
1. 증감 연산자 ++ - -
2. 산술 연산자 * / %
3. 산술 연산자 + -
4. 시프트 연산자 << >>
5. 관계 연산자 => <= > <
6. 관계 연산자 == !=
7. 비트 연산자 & ^ |
8. 논리 연산자 && ||
9. 조건 연산자 ? :
10. 대입 연산자 = += *= /= <<= >>=
11. 순서 연산자 ,

C언어 Stdlib.h 라이브러리
=> 표준 라이브러리로 문자열 반환( 문자열->수치 데이터, 수치->문자열), 동적 메모리 관리 등의 함수를 포함하고 있음

- math.h : 수학적인함수내장
- stdio.h : 표준입출력라이브러리
- strlen()함수: String.h

[5과목]
네트워크 상에 광채널 스위치의 이점인 고속 전송과 장거리 연결 및 멀티 프로토콜 기능 활용 + 네트워크 상에서 동일 저장 장치의 데이터를 공유하게 함으로써, 여러개의 저장장치나 백업 장비를 단일화 시킨 시스템 => SAN

- MBR(Memory Buffer Register) : 기억 장치를 출입하는 데이터가 잠시 기억 되는 레지스터
- NAC(Network Access Control) PC의 MAC주소를 IP관리시스템에 등록, 일관된 보안관리 기능을 제공
- NIC : 물리 계층과 데이터 계층의 서비스를 제공

SSH(Secure Shell)
- 기본네트워크포트22번
- 전송되는 데이터는 암호화
- 키를 통한 인증은 클라 공개키를 서버에 등록해야 함
- 서로 연결된 컴퓨터 간 원격 명령 실행이나 셀 서비스 등을 수행

CBD(Component Based Development)
: 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 어플리케이션을 만드는 방법론
CBD방법론의 개발 공정
1. 요구파악 단계 : 요구사항 기술사, 용어 선택, 개념 모델, 유스케이스 모델
2. 분석 및 설계 : 객체 모델, UI설계서,아키텍처 기술서, 인터페이스 명세서, 컴포넌트 설계서, 데이터베이스 설계서
3. 구현 : 개발 표준 정의서, 플랫폼 종속적 코드
4. 테스트 : 테스트 계획서, 컴포넌트 테스트 보고서, 통합 테스트 보고서, 인수테스트 보고서

접근제어 모델 중
군대 보안 레벨 처럼 정보 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용 + 자신의 권한보다 낮은 보안 레벨 권한을 가진 경우 높은 보안 레벨 문서를 읽을 수 없고 권한 보다 낮은 수준의 문서만 읽을 수 있음(글쓰기도 동일) => Bell-Lapadula Model(BLM)

-BLP 기밀성모델 : 정보의 불법적인 파괴나 변조 보다는 불법적인 비밀 유출 방지에 중점(기밀성 강조)
- Clark-Wilson 무결성모델:비밀 노출 방지보다 자료의 변조 방지가 더 중요(금융, 회계 관련 데이터, 기업 재무재표 등)
- Chinese Wall : 충돌을 야기 시키는 어떠한 정보의 흐름도 없어야 함(이익 충돌 금지, 최근 일한적 있는 파트너는 동일 영역에 있는 다른 회사 자료에 접근하면 안됨

하둡과 관계형 데이터 베이스 간에 데이터를 전송할 수 있도록 설계된 도구 => Sqoop
(커넥터를 사용하여 관계형 디비시스템RDBM에서 HDFS로데이터를 수집하는 빅데이터 기술

라우팅 프로토콜인 OSPF(Open Shortest Path First - 링크상태알고리즘)
- 네트워크 변화에 신속하게 대처
- 멀티 캐스팅을 지원
- 최단 경로 탐색에 Dijksta알고리즘을 사용

*거리 벡터 라우팅 프로토콜 => RIP

소프트웨어 비용 추정 모형
1) COCOMO: 시스템을 구성하는 모듈과 서브시스템의 비용 합계
2) Putnam : 소프트웨어 개발주기 간 단계별로 요구 할 인력의 분포를 가정
3) Function-Point(FP) : 요구기능을 증가 시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정하는 방식

*PERT :계획 평가 및 재검토 기술, 프로젝트 관리를 분석하거나 주어진 완성 프로젝트를 포함한 일을 묘사하는데 쓰이는 모델

코드 기입 오류
- 생략오류(Omission error) : 한 자리 빼고 씀
- 필사오류(Transcription error) : 한 자리 잘못 씀
- 전위 오류(Transposition error) : 좌우로 위치 바꿔씀 1234 -> 1243
- 이중오류(Double Transposition error): 전위오류가 2회
- 추가 오류(Addition error): 한자리 더 씀
- 임의 오류(Random error) : 오류 두 가지가 섞임

ISO12207표준
기본 생명 주기의 주요 프로세스
- 획득 프로세스, 개발 프로세스 ,유지보수 프로세스
지원 생명 주기 프로 세스
- 품질 보증, 검증, 확인, 활동검토, 문제해결 프로세스
조직 생명 주기
- 관리, 기반 구조, 훈련, 개선 프로세스

SPICE모델(0~5단계 - 총 6개 수준)
0 - 불안정( 구현 전 또는 목적 달성 전)
1 - 수행 ( 목적이 전반적으로 이뤄짐)
2 - 관리 (작업 산출물 인도)
3 - 확립(공학 원칙을 지킴)
4 - 예측(산출물의 양적 측정이 가능 해져, 일관된 수행가능)
5 - 최적화(지속적으로 업무 목적 만족)

PC,TV, 휴대폰 등 원하는 콘텐츠를 끊김없이 자유롭게 이용할 수 있는 서비스 => N-Screen (n개서로 다른단말기가 동일콘텐츠를 자유롭게 이용)

MEMS : 기계구조를 다양한 기술로 미세가공 후, 전기기계적 동작 가능케한 초미세 장치

SNMP: 간이 망 관리 프로토콜(하드웨어 신기술 X)

Memristor : 전원공급끊겨도다시전원 공급되면 이전 상태 복원

해쉬(Hash)기법
- 임의의 길이 입력 데이터를 받아 고정된 길이의 해쉬값으로 변환
- 주로 공개키 암호화 방식에서 키 생성 위해 사용
- 해쉬 함수는 일(단)방향

IPSec( IP Security)
-ESP발신지 인증, 데이터 무결성, 기밀성 모두를 보장
- 운영모드는 Tunnel모드와 Transport모드로 분류
- AH는발신지 호스트를 인증하고 IP패킷무결성 보장

- 메모리 상에서 프로그램 복귀 주소와 변수사이에 특정값을 저장해 두었다가 그 값이 변경되는 경우, 오버 플로우 상태로 가정하여 프로그램 실행을 중단하는 기술 => Stack guard

- ASLR(Address Space Layout Randomization)
프로그램 실행 할 때 마다 스택, 힙, 공유 라이브러리 등을 메모리에 적재할 때 주소를 랜덤화 시키는 기법으로 공격자로 하여금 메모리 상의 주소를 추측하기 어렵게 함



=> Screen Subnet : 외부 네트워크와 내부 네트워크 사이에 두는 완충적인 통신망


Secure OS 보안 기능
1. 식별 및 인증, 계정 관리
2. 강제적 접근 통제
3. 임의적 접근 통제
4. 객체 재사용 방지
5. 완전한 중재 및 조정
6. 감사 및 감사기록 축소
7. 안전한 경로
8. 보안 커널 변경 반지
9. 해킹 방지(Anti-Hacking)
10. 통합관리


참고사이트 : www.comcbt.com