① 은/는 기능을 처리하는 클래스와 구현을 담당하는 추상 클래스로 구별하며, 서로가 독립적으로 확장할 수 있도록 구성한 패턴이다. 기존 시스템에 부수적인 새로운 기능들을 지속적으로 추가할 때 사용하면 유용하며, 새로운 인터페이스를 정의하여 기존 프로그램의 변경 없이 기능을 확장할 수 있다.
② 은/는 한 객체의 상태가 변화하면 객체에 상속된 다른 객체들에게 변화된 상태를 전달해주는 패턴이다. 일대다의 의존성을 정의하며, 주로 분산된 시스템 간에 이벤트를 생성·발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용한다.
<평가 점수표>
평가 점수 | 성적 등급 |
---|---|
90~100 | A |
80~89 | B |
70~79 | C |
0~69 | D |
<케이스>
테스트 케이스 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
입력값 | -1 | 0 | 69 | 70 | 79 | 80 | 89 | 90 | 100 | 101 |
예상 결과값 | 오류 | D | D | C | C | B | B | A | A | 오류 |
실게 결과값 | 오류 | D | D | C | C | B | B | A | A | 오류 |
( ① ) 은/는 컴퓨터 보안에 있어서, 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위한 비기술적인 침입 시스템
( ② ) 은/는 특정 목적을 가지고 데이터를 수집하였으나, 이후 활용되지 않고 저장만 되어있는 대량의 데이터를 의미한다. 다른 말로, 빅데이터(Big Data)와 비슷하면서도 구조화되어 있지 않고, 더이상 사용하지 않아 ‘죽은’ 데이터를 말한다. 미래에 사용될 가능성을 고려하여 저장 공간에서 삭제되지 않고 보관되어 있으나, 이는 저장 공간의 낭비뿐만 아니라 보안 위험을 초래할 수도 있다.
다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션으로, 방화벽, IDS, IPS, 웹 방화벽, VPN 등에서 발생한 로그 및 보안 이벤트를 관리함으로써 비용 및 자원을 절약할 수 있는 특징이 있다. 또한, 사전에 위협에 대응할 수 있고, 보안 솔루션 간의 상호 연동을 통해 종합적인 보안 관리 체계를 수립할 수 있다.
( ① )는/은 칩 설계회사인 ARM(Advanced RISC Machine)에서 개발한 기술로, 하나의 프로세서(Processor) 내에 일반 애플리케이션을 처리하는 일반 구역(Normal World)과 보안이 필요한 애플리케이션을 서치하는 보안 구역(Secure World)으로 분할하여 관리하는 하드웨어 기반의 보안 기술이다.
( ② )는/은 네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 것으로 URL 하이재킹(hijacking)이라고도 한다. 유명 사이트들의 도메인을 입력할 때 발생할 수 있는 온갖 도메인 이름을 미리 선점해 놓고 이용자가 모르는 사이에 광고 사이트로 이동하게 만든다.
( )는/은 한 번의 로그인으로 개인이 가입한 여러 가지 사이트들을 이용할 수 있게 해주는 시스템을 말한다. 일반적으로 서로 다른 시스템 및 사이트에서 각각의 사용자 정보를 관리하게 되는데, 이때 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 것을 말한다. 개인의 경우 불편함이 해소되며, 기업에서는 회원에 대한 통합 관리가 가능해 마케팅을 극대화시킬 수 있다는 장점이 있다.
구분 | 기법 | 설명 | 문제/해결 |
---|---|---|---|
비 | ( ① ) | 먼저 들어온 프로세스 먼저 처리 | Convoy Effect 발생 |
선 | ( ② ) | 처리시간이 짧은 프로세스부터 처리 | Starvation 발생 |
점 | HRN | 짧은 작업시간이면서 대기시간이 긴 프로세스부터 처리 | Starvation 해결 |
선 | ( ③ ) | 먼저 들어온 순서대로 일정 시간만큼만 처리 | |
( ④ ) | 남은 시간이 짧은 프로세스부터 처리 | ||
점 | MLQ | 우선순위별로 큐를 분리하여 다양한 스케줄링 적용 | Starvation 발생 |
UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원할하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어로, 사물, ( ① ), 다이어그램으로 이루어져 있다.
( ① )는 사물과 사물 사이의 연관성을 표현하는 것으로, 연관, 집합, 포함, 일반화 등 다양한 형태의 ( ① )가 존재한다.
( ② )는 UML에 표현되는 사물의 하나로, 객체가 갖는 속성과 동작을 표현한다. 일반적으로 직사각형으로 표현하며, 직사각형 안에 이름, 속성, 동작을 표기한다.
( ③ )는 ( ② )와 같은 UML에 표현되는 사물의 하나로, ( ② )나 컴포넌트의 동작을 모아놓은 것이며, 외부적으로 가시화되는 행동을 표현한다. 단독으로 사용되는 경우는 없으며, ( ③ )구현을 위한 ( ② ) 또는 컴포넌트와 함께 사용된다.
( ㉡ ) : 관계 집합을 의미
( ㉢ ) : 관계 집합과 속성을 연결
( ㉠ ) : 개체 집합을 의미하며, 키로 사용되는 항목에는 밑줄을 표시함
( ㉣ ) : 관계 집합의 속성을 의미
( ㉤ ) : 개체 집합과 관계 집합을 연결
- SRP: 객체는 단 하나의 책임만 가져야 한다는 원칙
- OCP: 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙
- LSP: 자식 클래스는 최소한 부모 클래스의 기능은 수행할 수 있어야 한다는 원칙
- ISP: 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
- DIP: 의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙
인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하지는에 중점을 두고 테스트하는 방법이다.
( ① ) : 선정된 최종 사용자가 여려 명의 사용자 앞에서 행하는 테스트 기법으로, 실제 업무를 가지고 사용자가 직접 테스트한다. 하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업으로, 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업이다.
( ② ) : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법으로, 테스트는 통제된 환경에서 행해지며, 오류와 사용사의 문제점을 사용자와 개발자가 함께 확인하면서 기록한다. 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트으로, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며, 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.
경로 제어 프로토콜은 크게 자율 시스템 내부의 라우팅에 사용되는 ( ① )와 자율 시스템 간의 라우팅에 사용되는 ( ② )로 구분할 수 있다.
( ① )는 소규모 동종 자율 시스템에서 효율적인 RIP와 대규모 자유 시스템에서 많이 사용되는 ( ③ )로 나누어진다. ( ③ )는 링크 상태(Link State)를 실시간으로 반영하여 최단 경로로 라우팅을 지원하는 특징이 있다.
( ④ )는 ( ② )의 단점을 보안하여 만들어진 라우팅 프로토콜로, 처음 연결될 때는 전체 라우팅 테이블을 교환하고, 이후에는 변환된 정보만을 교환한다.
<R>
에서 '성적'은 기본키인 {학생, 학과}에 대해 ( ① ) Functional Dependency이다.<R>
에서 '학년'은 기본키인 {학생, 학과} 중 '학생'만으로 식별이 가능하므로 기본키에 대해 ( ② ) Functional Dependency이다.인터넷이란 TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망이다.
( ① ) : WWW에서 HTML 문서를 송수신 하기 위한 표준 프로토콜로, GET과 POST 메소들를 통해 메시지를 주고 받는다.
( ② ) : 다른 문서나 그림으로 이동할 수 있는 연결을 가지고 있는 텍스트를 의미한다.
( ③ ) : 인터넷의 표준 문서인 하이퍼텍스트 문서를 만들기 위해 사용하는 언어이다.
( ① ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작(start)과 완료(commit)에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산이다.
( ② ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 ''는 있지만 완료를 나타내는 '' 기록이 없는 트랜잭션들이 작업한 내용들을 모두 취소한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경한다.
- 삽입 이상(Insertion Anomaly) : 데이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 상황
- 삭제 이상(Deletion Anomaly) : 데이블에서 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상, 즉 연쇄 삭제가 발생하는 현상
- 갱신 이상(Update Anomaly) : 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Incosistency)이 생기는 현상
무랜선 보안에 사용된 웹 방식을 보완한 데이터 보안 프로토콜로, 임시 키 무결성 프로토콜이라고도 한다. WEP의 취약성을 보완하기 위해 암호 알고리즘의 입력 키 길이를 128비트로 늘리고 패킷당 키 할당, 키값 재설정 등 키 관리 방식을 개선하였다.
( ① ) 도구는 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일를 분석해 결함 등을 찾아내는 원시적 코드 분석 도구이다.
( ② ) 도구는 소스 코드를 직접 실행하여 프로그램의 동작이나 반응을 추적하고 보고하는 분석 도구로, 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하며, 프로그램 모니터링 기능이나 스냅샷 생성 기능등을 포함하고 있다.
Kent Beck과 Erich Gamma등이 개발한 자바 프로그래밍 언어용 유닛 테스트 프레임워크로, xUnit 계열의 한 종류다. 같은 테스트 코드를 여러 번 작성하지 않게 도와주며, 테스트마다 예상 결과를 기억할 필요가 없는 자동화된 해법을 제공한다는 특징이 있다.
사용자의 자연스로운 움직임을 통해 시스템과 상호작용하는 사용자 인터페이스(UI)로, 키보드나 마우스와 같이 조작을 배워야 하는 인공 제어 장치를 사용하는 인터페이스와 구분하기 위해 '자연스로운'이라는 표현을 사용한다. 시리(Siri), 빅스비(Bixby) 등과 같이 음성 비서에게 사용하는 자연어 명령이나 퓨대폰 태블릿에서의 터치 등이 여기에 해당한다.
정보 자신을 안전하게 보호하기 위한 보호 절차와 대책으로, 정보보호 관리 체계라고 한다. 조직에 맞는 정보보호 정책을 수립하고, 위험에 상시 대응하는 여러 보안 대책을 통합 관리한다. 공공 부문과 민간 기업 부문에서 이것을 평하가고 인증하는 사업을 한국인터넷진흥원(KISA)에서 운영중이다.
슈퍼키(Super Key)는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 릴레이션을 구성하는 모든 튜플에 대해 ( ① )을 만족한다.
후보키(Candidate Key)는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로 ( ① )과 ( ② )을 만족하는 특징이 있다.
목표 조직이 자주 방문하는 웹 사이트를 사전에 감염시켜 목표 조직의 일원이 웹 사이트에 방문했을 때 악성 코드에 감염되게 한다. 이후에는 감연된 PC를 기반으로 조직의 중요 시스템에 접근하거나 불능으로 만드는 등의 영향력을 행사하는 웹 기반 공격이다.