정보처리기사 기출문제 오답노트
디지털 저작권 관리(DRM)를 위한 구성요소
- 콘텐츠 제공자: 콘텐츠를 제공하는 저작권자
- 콘텐츠 분배자: 쇼핑몰 등으로써 암호화된 콘텐츠 제공
- 패키저: 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 기능
- 보안 컨테이너: 원본을 안전하게 유통하기 위한 전자적 보안 장치
- DRM 컨트롤러: 배포된 콘텐츠의 이용 권한을 통제
- 클리어링 하우스: 디지털 라이선싱 중계 및 발급을 수행하는 정산소
객체지향 설계 원칙 (SOLID)
- Single Responsibility, 단일 책임의 원칙: 하나의 클래스는 하나의 목적을 위해서 생성
- Open Close, 개방 페쇄 원칙: 소프트웨어 구성요소는 확장에는 열려있고 변경에는 닫혀있음
- Liskov Substitution, 리스코프 치환의 원칙: 상속받은 하위 클래스는 어디서나 자신의 상위 클래스로 교체할 수 있어야 함
- Interface Segregation, 인터페이스 분리의 원칙: 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 함
- Dependency Inversion, 의존성 역전의 원칙: 클래스 앞에 인터페이스를 두어 인터페이스는 그대로 두고 클래스는 언제든 바꿀 수 있도록 만듦
방향그래프
- 정점을 연결하는 선에 방향이 있는 그래프
- n개의 정점이 있으면 최대 간선 수는 n(n-1)개
지역성
- 시간 지역성
- 최근 사용되었던 기억 장소들이 집중적으로 엑세스함
- 참조했던 메모리는 빠른 시간에 다시 참조될 확률이 높다
- 공간 지역성
- 일정 위치의 페이지를 집중적으로 엑세스함
- 순차 지역성
- 데이터가 순차적으로 엑세스함
온라인 분석 처리 (OLAP)
데이터 웨어하우스의 데이터를 전략적인 정보로 변환시켜서 의사결정을 지원하는 역할을 하는 시스템
시맨틱 웹
리소스에 대한 정보와 자원 사이의 관계-의미 정보를 컴퓨터가 처리할 수 있는 온톨로지 형태로 표현하고 이를 컴퓨터가 처리하도록 하는 지능형 웹
온톨로지
실세계에 존재하는 모든 개념과 개념들의 속성, 개념관의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서
다단계 피드백 큐 (MLFQ)
- FIFO와 라운드 로빈 스케줄링 기법을 혼합
- 새로운거 높은 우선순위 / 실행시간이 길어질수록 낮은 우선순위 / 마지막 단계는 라운드 로빈 방식
자료사전 기호
-: 자료의 정의, ‘~로 구성되어 있다’는 것을 나타냄+: 자료의 연결을 나타냄(): 생략 가능{}: 반복[]: 여러개 중에 선택**: 주석
OSI 7계층
- 물리: 전기적 신호 변환
- 데이터링크: 시스템간 연결, 동기화
- 네트워크: 최적화된 경로 제공
- 전송: 프로세스 간 신뢰성 있는 연결 보장
- 세션: 송수신 간 논리적 연결
- 표현: 암,복호화
- 응용: 네트워크와 응용프로그램 연결
일정관리 모델
- 주 공정법: 프로젝트의 시작과 끝을 나타내는 노드와 노드간의 연결로 공정 계산
- PERT: 비관치, 중간치, 낙관치 3점 추정방식
- 중요 연쇄 프로젝트 관리: 주 공정법에서 자원제약사항까지 고려
라우팅 프로토콜
- RIP: Bellman-Ford 알고리즘 사용
- OSPF: 다익스트라 알고리즘 사용
- BGF: 경로 벡터 알고리즘 사용
디지털 포렌식
범죄행위에 대한 사실을 사법기관에 제출하기 위해 디지털 증거자료를 획득, 분석, 보관, 제출, 기록하는 일련의 과정
개발환경 인프라 구성 방식
- 온프레미스: 외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식
- 클라우드: 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
- 하이브리드: 온프레미스와 클라우드를 혼용하는 방식
분석 자동화(CASE) 도구
- 상위 CASE: 요구사항 분석, 소프트웨어 설계 등 초기 개발 단계에서 사용하는 도구
- 하위 CASE: 코드생성, 디버깅, 테스트 등 구현 및 유지 보수 단계에서 사용하는 도구
IPv6
IPv4가 가지고 있는 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 개발된 128bit 주소체계를 갖는 인터넷 프로토콜
CoAP (Constranined Application Protocol)
- 제약이 있는 장치들을 위한 특수한 인터넷 애플리케이션 프로토콜
- HTTP로 쉽게 변환되도록 설계됨
메모리의 외부 단편화를 해결하는 기법
- 버디 메모리 할당: 요청한 프로세스 크기에 가장 알맞은 크기를 할당하기 위해 메모리를 2^n의 크기로 분할하여 메모리를 할당하는 기법
- 통합: 인접한 단편화 영역을 찾아 하나로 통합하는 기법
- 압축: 메모리의 모든 단편화 영역을 하나로 압축하는 기법
HIPO 차트 종류
- 가시적 도표: 시스템의 전체적인 기능과 흐름을 보여주는 계층 구조도
- 총체적 도표: 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
- 세부적 도표: 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표
ITIL(정보기술 인프라 라이브러리)
IT 서비스의 운영 및 관리를 돕기 위한 문서들의 집합
커널의 유형
- 마이크로 커널: 장치 드라이버, 프로토콜 스택, 파일 시스템과 같은 전통적인 OS의 기능들을 사용자 영역에 놓고 하드웨어 추상화를 최소화한 커널
- 모놀리식 커널: 하프로세스 관리, 동시성 관리, 메모리 관리 등을 관리자 모드에서 작동하여 사용자에게 고수준의 플랫폼을 제공하는 커널
테스트의 종류
- 단위 테스트: 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
- 통합 테스트: 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계
- 시스템 테스트: 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계
- 인수 테스트: 계약상의 요구사항을 만족했는지 확인하기 위한 테스트 단계
프로세스 스케줄링
- 선점형 스케줄링
- 우선순위가 높은 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
- 라운드 로빈
- 비선점형 스케줄링
- 한 프로세스가 CPU를 할당받으면 작업이 종료될 때까지 다른 프로세스의 점유가 불가능한 스케줄링 방식
화이트박스 테스트 VS 블랙박스 테스트
- 화이트박스 테스트: 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
- 블랙박스 테스트: 내부 구조와 동작을 고려하지 않고 결과값 만을 확인하는 테스트 방식
메모리 반입 기법
- 예상 반입 기법: 시스템의 요구를 예측하여 미리 메모리에 적재하는 방법
- 요구 반입 기법: 다음에 실행될 프로세스가 참조 요구가 있을 경우에 적재하는 기법
DDOS 공격 방법
- Slow HTTP Header DoS: HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않음으로 웹 서버와 연결 상태를 장시간 지속시킴으로 연결 자원을 모두 소진시키는 서비스 거부 공격
- Slow HTTP POST DoS: 요청 헤더의 Content-Length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격 기법
- Slow Read Attack: TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송하여 계속 연결 상태를 유지시키는 공격 기법
보안
해킹 공격용 도구
- 루트킷: 시스템 침입 후 지속적으로 시스템을 장악하기 위한 기능을 제공하는 프로그램의 모음
- 크라임웨어: 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램
암호화 알고리즘
- DES: 1975년 표준 기술로 발표한 대칭키 블록 알고리즘, 블록 크기 64bit
- AES: 2001년 표준 기술로 발표한 대칭키 블록 알고리즘, 블록 크기 128bit
입력 데이터 검증 및 표현에 대한 취약점
- XSS(크로스 사이트 스크립트): 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 해당 웹 페이지를 열람함으로써 웹 페이지에 포함된 스크립트가 실행되는 공격
- CSRF(사이트 간 요청 위조): 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
- SQL 인젝션: 응용프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 정보를 탈취하거나 조작하는 공격
데이터베이스
정규화
- 1차: 한 도메인에 하나의 값 (“서울,부산” x)
- 2차: 부분 함수 종속 제거
- 3차: 이행함수 종속 제거
- 보이스-코드: 결정자 함수이면서 후보키가 아닌 것 제거
- 4차: 다치 종속성 제거
- 5차: 조인 종속성 제거
병행 제어 기법
- 로킹(Locking): 같은 자원을 엑세스 할 때 데이터를 잠가(Lock)서 순차적 진행을 보장
- 낙관적 검증: 트랜잭션이 어떠한 검증도 수행하지 않고 일단 수행한 뒤, 종료시에 검증을 수행하여 데이터베이스에 반영
- 타임 스탬프 순서: 트랜잭션을 실행하기 전에 타임 스탬프를 부여하여 시간에 따라 트랜잭션 작업 수행
- 다중버전 동시성 제어: 트랜잭션의 타임스탬프와 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근
병행 제어 미보장 시 문제점
- 갱신 손실: 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
- 현황 파악오류: 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류
- 모순성: 두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류
- 연쇄복귀: 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류
데이터베이스 회복 기법
- 로그 기반 회복 기법
- 지연 갱신 회복 기법: 트랜잭션이 완료되기 전까지 데이터베이스에 기록하지 않음
- 즉각 갱신 회복 기법: 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영
- 체크 포인트 회복 기법: 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원
- 그림자 페이징 회복 기법: 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구
데이터베이스 암호화 기법
- API 방식: 애플리케이션 레벨에서 암호 모듈을 적용하는 애플리케이션 수정 방식
- Plug-in 방식: 암,복호화 모듈이 DB 서버에 설치된 방식
- TDE 방식: DB 서버의 DBMS 커널이 자체적으로 암,복호화 기능을 수행하는 방식
- Hybrid 방식: API 방식과 Plug-in 방식을 결합하는 방식
SQL
HAVING
HAVING 구문은 WHERE 구문 내에는 사용할 수 없는 집계 함수의 구문을 적용하여 복수행의 계산 결과를 조건별로 적용하는데 사용
View 생성
1
2
3
-- CREATE VIEW 이름 AS [SELECT문]
CREATE VIEW test_view AS
SELECT * FROM test_table WHERE a = 1;
컬럼 수정 (ALTER)
1
2
-- ALTER TABLE 테이블 MODIFY 컬럼 데이터타입 [제약조건];
ALTER TABLE foo MODIFY bar INTEGER PRIMARY KEY;
권한 부여 (GRANT)
1
2
-- GRANT 권한 ON 테이블 TO 사용자 [WITH 권한 옵션];
GRANT ALL ON STUDENT TO SYS WITH GRANT OPTION;
WITH GRANT OPTION: 사용자가 권한을 받고 난 후 다른 사람들과 권한을 나누어 가질 수 있음
Java
%x: 16진수로 표시부모 클래스에 자식 클래스와 동일한 메서드가 있으면, 부모 클래스 타입이어도 자식의 메서드로 오버라이드 됨
1 2 3 4 5 6 7 8 9 10
class Parent { void a() {} } class Child extends Parent { void a() {} } Parent p = new Child(); p.a() // Child의 a가 실행됨
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.