1. 아래는 C언어의 2차원 배열 형태이다. field의 경우 2차원 배열 형태는 예시처럼 출력되므로, 이를 참고하여 mines의 2차원 배열 형태를 작성하시오.
void main{
field {{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1}};
mines {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
int w = 4, h = 4;
for(y=0; y<h; y++) {
for(x=0; x<w; x++) {
if(field[y][x] == 0) continue;
for(i=y-1; i<=y+1; i++) {
for(j=x-1; j<=x+1; j++) {
if(calculate(w,h,j,i) == 1) {
mines[i][j] += 1;
}
}
}
}
}
for(y=0; y<h; y++){
for(x=0; x<w; x++)
printf("%d", mines[y][x]);
printf("\n");
}
}
int calculate(w,h,j,i) {
if (i >= 0 && i < h && j >= 0 && j < w) return 1;
return 0;
}
1 | 1 | 3 | 2 |
3 | 4 | 5 | 3 |
3 | 5 | 6 | 4 |
3 | 5 | 5 | 3 |
2. 아래 예시를 보고 관계대수에 대한 기호를 작성하시오.
항목 | 기호 |
합집합 | A ( ) B |
차집합 | A ( ) B |
카티션 프로덕트 | A ( ) B |
프로젝트 | A ( ) B |
조인 | A ( ) B |
항목 | 기호 |
합집합 | A ( U ) B |
차집합 | A ( - ) B |
카티션 프로덕트 | A ( X ) B |
프로젝트 | A ( π ) B |
조인 | A ( ⋈ ) B |
3. 다음은 디자인 패턴에 대한 설명이다. 괄호안에 알맞는 답을 작성하시오.
( 1 )은/는 기능을 처리하는 클래스와 구현을 담당하는 추상 클래스로 구별한다.
구현뿐 아니라 추상화도 독립적 변경이 필요할 때 브리지 패턴을 사용한다.
기존 시스템에 부수적인 새로운 기능들을 지속적으로 추가할 때 사용하면 유용하며,
새로운 인터페이스를 정의하여 기존 프로그램의 변경 없이 기능을 확장할 수 있다.
( 2 )은/는 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달해주는 패턴이다.
일대다 관계를 가지며, 주로 분산된 시스템 간에 이벤트를 생성·발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용한다.
1. 브릿지 ( Bridge )
2. 옵저버 (Observer )
4. 아래 코드에 대한 출력 값을 작성하시오.
void main{
int []result = int[5];
int []arr = [77,32,10,99,50];
for(int i = 0; i < 5; i++) {
result[i] = 1;
for(int j = 0; j < 5; j++) {
if(arr[i] <arr[j]) result[i]++;
}
}
for(int k = 0; k < 5; k++) {
printf(result[k]);
}
}
2 | 4 | 5 | 1 | 3 |
5. 아래 코드에 대한 출력 값을 작성하시오.
첫번째 네트워크 주소가 192.168.1.0/26일때 FLSM 3개로 분할했을때
두번째 네트워크 브로드캐스드 IP를 10진수로 변환한 값을 작성하시오.
192.168.1.127
6. 아래 표를 확인하여 보기에 알맞는 값을 고르시오.
점수 | 금액 |
90 ~ 100 | 700 만원 |
80 ~ 89 | 500 만원 |
70 ~ 79 | 300 만원 |
0 ~69 | 0원 |
Boundary Value Analysis [ 경계값 분석 ]
7. 아래 데이터 명령어를 적용할 경우 알맞는 출력값을 작성하시오.
CREATE TABLE 부서 (
부서코드 int, 부서명 varchar(50
PRIMARY KEY (부서코드)
FOREIGN KEY (부서코드)
REFERENCES 직원(부서코드)
ON DELETE CASCADE
);
CREATE TABLE 직원 (
직원코드 int, 부서코드 int
PRIMARY KEY (직원코드)
FOREIGN KEY (부서코드)
REFERENCES 부서(부서코드)
);
insert into 부서 (부서코드, 부서명) value (10, 영업부);
insert into 부서 (부서코드, 부서명) value (20, 기획부);
insert into 부서 (부서코드, 부서명) value (30, 개발부);
insert into 직원 (직원코드, 부서코드) value (1000, 10);
insert into 직원 (직원코드, 부서코드) value (2000, 10);
insert into 직원 (직원코드, 부서코드) value (3000, 20);
insert into 직원 (직원코드, 부서코드) value (4000, 20);
insert into 직원 (직원코드, 부서코드) value (5000, 20);
insert into 직원 (직원코드, 부서코드) value (6000, 30);
insert into 직원 (직원코드, 부서코드) value (7000, 30);
1) SELECT COUNT(DISTINCT 부서코드) FROM 직원;
2) DELETE FROM 부서 WHERE 부서코드=20;
SELECT COUNT(DISTINCT 직원번호) FROM 직원;
1. 3
2. 4
8. 다음 보기 중 형상관리 도구 3가지를 고르시오.
(ㄱ) OLAP (ㄴ) CVS (ㄷ) Ant (ㄹ) Maven (ㅁ) Git (ㅂ) Jenkins (ㅅ) Spring (ㅇ)SVN
(ㄴ) CVS, (ㅁ) Git, (ㅇ)SVN
9. STUDENT 테이블에서 컴퓨터과 학생 50명, 전기과 학생 100명, 인터넷과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문의 실행 결과에 따른 튜플의 수는? (단, DEPT 칼럼은 학과명이다.)
1) SELECT DERP FROM STUDENT;
2) SELECT DISTINCT DEPT FROM STUDENT;
3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '인터넷과';
1) 200
2) 3
3) 1
10. 다음 설명에 해당하는 보안 관제 시스템은 ?
머신러닝 기술을 이용하여 IT 시스템에서 발생하는 대량의 로그를 통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션이다. 서로 다른 기종의 보안솔루션 로그 및 이벤트를 중앙에서 통합 수집하여 분석할 수 있으며, 네트워크 상태의 모니터링 및 이상징후를 미리 감지할 수 있다..
사용하는 네트워크에서 공격이 발생하면 소프트웨어가 모든 IT 구성 요소(게이트웨이, 서버, 방화벽 등)등으로 부터 수집한 다양한 로그와 보안 이벤트 데이터를 빅데이터 기반으로 분석한다.
보안 위협 징후를 판단할 수 있는 데이터(통계정보)를 생성하고, 이 데이터로 보안 사고를 분석하고 예방, 대응한다. 또한 로그 관리를 통합적으로 수행하며 네트워크 포렌식(Forensic)과 보안 관련 준수성(Compliance)에 중요한 역할을 담당한다.
SIEM ( 보안 정보와 이벤트 관리, Security Information & Event Management )
11. 다음 파이썬 코드에 대한 출력값을 작성하시오.
a = [1,2,3,4,5]
b = list(map(lambda num : num + 100, a))
print(b)
[101,102,103,104,105]
12. 다음 코드에 대한 출력 값을 작성하시오.
int main(void) {
int n, k, s;
int el = 0;
for(n=6; n<=30; n++){
s=0;
k=n/2;
for(int j=1; j<=k; j++){
if(n%j==0){
s=s+j;
}
}
if(s==n){
el++;
}
}
printf("%d", el);
}
2
13. 다음 설명에 해당하는 운영체제의 스케줄링 기법의 약어를 쓰시오.
1) 비선점형 스케줄링 기법으로 준비 상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 스케줄링 기법이다.
2) 선점형 스케줄링 기법으로 주어진 시간 할당량(Time Slice) 안에 작업을 마치지 않으면 준비 상태 큐의 가장 뒤로 배치된다.
- 시분할 시스템 ( Time-Sharing System ) 을 위해 고안된 방식이다.
- 시간 할당량이 커지면 FCFS 스케줄링과 같은 효과를 얻을 수 있다.
- 시간 할당이 작아지면 프로세스 문맥 교환이 자주 일어난다.
3) 선점형 스케줄링 기법으로 작업이 끝나기까지의 실행시간 추정치가 가장 작은 작업을 먼저 실행시키는 기법이다.
- FIFO 기법보다 평균 대기 시간이 감소된다.
- 작업 시간이 큰 경우 오랫동안 대기하여야 한다.
1) SJF
2) RP
3) SRT
14. 아래 설명에 대하여 알맞은 답을 보기에서 고르시오.
( 1 )은/는 프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 하드웨어 기반의 보안 기술로 프로세서(processor) 안에 독립적인 보안 구역을 별도로 하여, 중요한 정보를 보호하는 하드웨어 기반의 보안 기술이다.
( 2 )은/는 사용자들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 유사한 유명 도메인을 미리 등록하는 일로 URL 하이재킹(hijacking)이라고도 한다.
1) Trustzone
2) Typosquatting
15. 아래 설명에 대하여 알맞는 용어를 작성하시오.
( )은/는 여러 개의 사이트에서 한번의 로그인으로 여러가지 다른 사이트들을 자동적으로 접속하여 이용하는 방법을 말한다. 일반적으로 서로 다른 시스템 및 사이트에서 각각의 사용자 정보를 관리하게 되는데 이때 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 것을 말한다. 즉 하나의 시스템에서 인증을 할 경우 타 시스템에서는 인증 정보가 있는지 확인하고 있으면 로그인 처리를 하도록 하고, 없는 경우 다시 통합 인증을 할 수 있도록 만드는 것을 의미한다.
SSO ( 싱글 사인온, Single Sign-On )
16. 아래 설명에 대한 알맞는 답을 작성하시오.
( 1 ) 은/는 보안학적 측면에서 기술적인 방법이 아닌 사람들간의 기본적인 신뢰를 기반으로 사람을 속여 비밀 정보를 획득하는 기법이다.
[시스템이 아닌 사람들의 심리와 행동 양식을 교묘하게 이용해 원하는 정보를 얻는 공격 기법]
( 2 ) 은/는 빅데이터(Big Data)와 비슷하면서도 구조화돼 있지 않고, 더는 사용하지 않는 ‘죽은’ 데이터를 의미한다. 일반적으로 정보를 수집해 저장한 이후 분석이나 특별한 목적을 위해 활용하는 데이터가 아니며, 저장공간만 차지하고 이러한 이유로 심각한 보안 위험을 초래할 수 있다.
[정보를 수집한 후, 저장만 하고 분석에 활용하고 있지 않는 다량의 데이터]
1) 사회 공학 ( 사회 공학적 해킹, 사회 공학 공격, 사회 공학 기법)
2) 다크 데이터 ( Dark Data )
17. 다음은 UML에 관한 설명이다. 괄호안에 알맞는 답을 작성하시오.
UML은 통합 모델링 언어로써, 시스템을 모델로 표현해주는 대표적인 모델링 언어이다.
구성 요소로는 사물, ( 1 ), 다이어그램으로 이루어져 있으며, 구조 다이어그램 중,
( 2 ) 다이어그램은 시스템에서 사용되는 객체 타입을 정의하고,
그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램이다.
또한 UML 모델링에서 ( 3 )은/는 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는
오퍼레이션 세트를 정의하는 모델 요소이다.
1) 관계
2) 클래스
3) 인터페이스
18. 다음은 E-R다이어그램에 관한 설명이다. 괄호 안에 알맞는 답을 작성하시오.
ㄱ) 두 부분으로 나뉘어진 사각형: 개체 집합
ㄴ) 마름모: 관계
ㄷ) 점선: 관계-사각형(관계 속성 연결)
ㄹ) 사각형: 관계 속성
ㅁ) 실선: 관계-개체 연결
( 1 ) : 개체와 개체 사이의 연관성
( 2 ) : 관계집합 - 관계집합의 속성 연결
( 3 ) : 같은 속성을 공유하는 개체들의 모임
( 4 ) : 두 개체집합 관계에서 생성되는 값을 저장하는 속성
( 5 ) : 개체집합 - 관계집합 연결. 부분 참여를 의미.
1) ㄴ
2) ㄷ
3) ㄱ
4) ㄹ
5) ㅁ
19. 다음 자바 코드에 대한 출력 값을 작성하시오.
public class Main {
static int nSize = 4;
public static void main(String[] args) {
int[] arr = new int[nSize];
makeArray(arr);
for(int i = 0; i < nSize; i++) {
System.out.print(arr[i] + " ");
}
}
public static void makeArray(int[] arr) {
for(int i = 0; i < nSize; i++) {
arr[i] = i;
}
}
}
0123
20. 다음 자바 코드에 대한 출력 값을 작성하시오.
class Main {
public static void main(String[] args) {
int a = 0;
for(int i=1; i<999; i++){
if(i%3==0 && i%2!=0)
a = i;
}
System.out.print(a);
}
}
993