
1. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.
class Connection {
private static Connection _inst = null;
private int count = 0;
public static Connection get() {
if (_inst == null) {
_inst = new Connection();
return _inst;
}
return _inst;
}
public void count() {
count++;
}
public int getCount() {
return count;
}
}
public class testcon {
public static void main(String[] args) {
Connection conn1 = Connection.get();
conn1.count();
Connection conn2 = Connection.get();
conn2.count();
Connection conn3 = Connection.get();
conn3.count();
System.out.print(conn1.getCount());
}
}
| 답: 3 class Connection { private static Connection _inst = null; private : 해당 클래스 내부에서만 볼 수 있고, 수정할 수 있음. static : 모든 Connection 객체가 공유하는 단 하나뿐인 값 ※ public : 어떤 클래스에서든 자유롭게 부르고 사용할 수 있음 ![]() |
2. 다음은 정보 보호 기술인 AAA에 대한 설명이다. 각 설명에 맞는 답을 고르시오
(1) 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
(2) 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
(3) 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집
[보기] Authentication, Authorization, Accounting
| 답: (1) Authentication (2) Authorization (3) Accounting |
3. Grant의 기능에 대해 간략하게 약술하시오.
| 답: 사용자(User)에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어 |
4. 다음 중, 설명에 대한 괄호( ) 안에 들어가는 내용에 대해 작성하시오.
( ) 스푸핑은 근거리 통신망 하에서 ( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 ( )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.
| 답: ARP |
5. 다음은 Coupling에 대한 설명이다. 설명에 대한 Coupling 종류를 영문으로 작성하시오.
- 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
- 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생
| 답: control |
6. OSI 7 Layer의 설명으로 해당되는 설명의 답을 작성하시오.
( 1 ) 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
( 2 ) 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
( 3 ) 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축
| 답: (1) 데이터링크 (2) 네트워크 (3) 표현 |
7. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
눈에 보이지 않는 것을 개념적으로 표현하는 것이 '추상화'라하며,
이는 실세계의 복잡한 상황을 간결하고 명확하게 개념화(槪念化)하는 것이다.
( 1 )은 클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것이고,
( 2 )은 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A관계라하며, 일반화 관계로 모델링한다.
| 답: (1) Aggregation (2) Generalization |
8. 다음은 테스트케이스의 구성요소에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

| 답: (1) 테스트 조건 (2) 테스트 데이터 (3) 예상 결과 |
9. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
( ) 통해 요구사항 명세를 입력 조건과 출력 조건 간의 논리적 관계로 표현하고, 이를 기반으로 테스트케이스를 도출한다.
( )의 ‘원인(causes)’은 입력 조건을 의미하고 ‘결과(effects)’는 입력 조건의 결과를 의미하며, 원인과 결과 간의 논리적 관계를 AND, OR, NOT 같은 boolean 연산자를 사용하여 표현한다.
| 답: cause effect graph |
10. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
( )는 블록 암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호이다.
( )는 64비트 평문을 64비트 암호문으로 암호화하는 대칭키 암호 알고리즘이다.
( )의 키는 7비트마다 오류검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트이다.
| 답: DES |
11. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.
public class testco {
public static void main(String[] args) {
int a = 3, b = 4, c = 3, d = 5;
if ( (a == 2 | a == c) & !(c > d) & (1 == b ^ c != d) ) {
a = b + c;
if (7 == b ^ c != a) {
System.out.println(a);
} else {
System.out.println(b);
}
} else {
a = c + d;
if (7 == c ^ d != a) {
System.out.println(a);
} else {
System.out.println(d);
}
}
}
}
| 답: 7 public class testco { public static void main(String[] args) { int a = 3, b = 4, c = 3, d = 5; → 변수 정의 if ( (a == 2 | a == c) & !(c > d) & (1 == b ^ c != d) ) { → 위에서 정의된 숫자를 넣은 후, 왼쪽부터 값을 풀어가면 된다. ※ 거짓은 0, 참은 1 (※0을 제외한 다른 모든 숫자는 참이다.) ※ | : or, 둘 중 하나만 참이어도 참 ※ & : and, 둘 다 참이어야 참 ※ ! : 값 반전(거짓 → 참) ※ ^ : 두 값이 다르면 참 → (3 == 2 | 3 == 3) & !(3>5) & (1 == 4 ^ 3 != 5) → (거짓 | 참) & !(거짓) & (거짓 ^ 참) → (참) & (참) & (참) → 참 a = b + c; → 참이므로 실행된다. → a = 4 + 3 → a는 이제부터 7이다. if (7 == b ^ c != a) { → (7 == 4 ^ 3 != 7) → (거짓) ^ (참) → (참) System.out.println(a); → 참이므로 a 값 출력된다. → 7 값 출력 → 이 아래로는 거짓이었을 때 실행되므로, 코드는 여기서 종료 } else { System.out.println(b); } } else { a = c + d; if (7 == c ^ d != a) { System.out.println(a); } else { System.out.println(d); |
12. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
#include <stdio.h>
int main() {
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
printf("%d\n", *arr[1] + **arr + 1);
return 0;
}
| 답: 37 int main() { int *arr[3]; int a = 12, b = 24, c = 36; → 변수 정의 arr[0] = &a; arr[1] = &b; arr[2] = &c; → arr[0]에는 a의 주소를 넣는다. (값이 직접 들어가는 게 아님) ![]() printf("%d\n", *arr[1] + **arr + 1); arr[1] : arr[1]은 b의 주소를 가리키고 있음. *arr[1] : arr[1]은 b의 주소를 찾아가서 값(알맹이)를 꺼내라. = 24 arr : arr 은 배열의 시작점인 arr[0]의 주소 arr의 전체가 지정된다. *arr : arr[0]에 담긴 a의 주소를 찾아가라는 뜻. 이때 arr[0] 한 칸이 지정된다. **arr : arr[0]에 담긴 a의 주소를 찾아가서 값(알맹이)를 꺼내라. **arr + 1 : 꺼낸 값(12)에 +1 을 해라 = 13 *arr[1] + **arr + 1 : 꺼낸 두개의 값 24 + 13 을 해서 37이 된다. **(arr+1) 이라면 (arr+1) : arr의 시작점 a[0] 에서 +1을 한 a[1]이 된다. *(arr+1) : a[1]의 주소 한 칸을 지정하고 * *(arr+1) : a[1]의 주소에 있는 값을 꺼낸다. |
13. 다음은, 테이블에서 조건값을 실행한 화면이다. 이에 대한 알맞는 결과값을 작성하시오.

| 답: 4 SELECT COUNT(*) CNT FROM T1 A CROSS JOIN T2 B WHERE A.NAME LIKE B.RULE SELECT COUNT(*) CNT : 개수를 세려라. → CNT는 별칭으로 출력하면 CNT가 이름이 된다. (AS가 없어도 별칭을 쓸 수 있다.) FROM T1 A CROSS JOIN T2 B : T1 과 T2의 테이블을 크로스 조인해라. → 크로스 조인(곱셈)은 모든 조합의 경우의 수를 말한다. → T1 A, T2 B 에서 A와 B는 별칭이다. ![]() = 4개 |
14. 다음 파이썬 코드이다. 알맞는 출력값을 쓰시오.
a,b = 100, 200
print(a==b)
| 답: False ※파이썬의 실행결과 : 앞글자가 대문자로 나온다. |
15. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
( ) 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다. 또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다.
( ) 다이어그램의 형식은 ( )를 포함하여 속성(attribute)과 메서드(method)가 있다.
| 답: 클래스 |
16. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
( ) 패턴은 객체지향 디자인 패턴이다.
( )는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다.
부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다.
| 답: Factory method (팩토리 매서드) |
17. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
#include <stdio.h>
struct jsu {
char name[12];
int os, db, hab, hhab;
};
int main() {
struct jsu st[3] = {
{"데이터1", 95, 88},
{"데이터2", 84, 91},
{"데이터3", 86, 75}
};
struct jsu* p;
p = &st[0];
(p + 1)->hab = (p + 1)->os + (p + 2)->db;
(p + 1)->hhab = (p + 1)->hab + p->os + p->db;
printf("%d\n", (p + 1)->hab + (p + 1)->hhab);
return 0;
}
| 답: 501 struct jsu { char name[12]; int os, db, hab, hhab; → 변수(구조) 정의 ![]() int main() { struct jsu st[3] = { {"데이터1", 95, 88}, {"데이터2", 84, 91}, {"데이터3", 86, 75} → 정의한 변수(구조)에 값 넣기 ![]() struct jsu* p; → (리코컨) 주소를 가리킬 p 를 정의한다. p = &st[0]; → p 의 주소는 st[0] 을 가리킨다. st[0] : 표에서 데이터1 이 존재하는 첫번째 줄 전체를 가리킨다. &st[0] : 첫번째 줄의 시작 주소를 나타낸다. p = &st[0] : p는 이제부터 이 표의 첫번째 줄(st[0])을 가리킨다. (p + 1)->hab = (p + 1)->os + (p + 2)->db; (p + 1)->os : p의 주소(st[0]) 에 +1을 한 값(st[1])의 os에 들어있는 값을 가져와라. (p + 2)->db : p의 주소(st[0]) 에 +2을 한 값(st[2])의 db에 들어있는 값을 가져와라. (p + 1)->hab = : p의 주소(st[0]) 에 +1을 한 값(st[1])의 hab에 값을 넣어라. ![]() (p + 1)->hhab = (p + 1)->hab + p->os + p->db; ![]() printf("%d\n", (p + 1)->hab + (p + 1)->hhab); ![]() 답 : 501 |
18. 다음은, 파일 구조(File Structures)에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
- 파일구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식으로 접근 방식에 따라 방식이 달라진다.
- 접근 방법중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 ( )을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 ( ) 이 가르키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, ( ) 접근, 해싱 접근이 있다.
| 답: 인덱스 or 색인 |
19. 다음 설명에 대한 알맞는 답을 영문약어로 작성하시오.
- ( )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다.
- 이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행시켰지만 ( )에서는 키보드 뿐만 아니라 마우스 등을 이용하여 화면의 메뉴 중 하나를 선택하여 작업을 수행한다.
- 화면에 아이콘을 띄어 마우스를 이용하여 화면에 있는 아이콘을 클릭하여 작업을 수행하는 방식이다.
- 대표적으로는 마이크로소프트의 Windows, 애플의 Mac 운영체제 등이 있다.
| 답: GUI |
20. 다음은 소프트웨어 통합 테스트에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.
( 1 ) 방식은 이름에서도 알 수 있듯이, 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며, 이 방식을 사용하기 위해서는 ( 2 )가 필요하다.
( 2 )는 이미 존재하는 하위 모듈과 존재하지 않은 상위 모듈에 대한 인터페이스 역할을 한다.
| 답: (1) 상향식 (2) 테스트 드라이버 |
'자격증 요약 > 정보처리기사' 카테고리의 다른 글
| [21년 1회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.26 |
|---|---|
| [21년 2회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.26 |
| [22년 1회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.25 |
| [22년 2회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.25 |
| [22년 3회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.25 |







