2025년 2회 주제 · 연습 1
SQL·데이터베이스레코드의 키와 저장 위치를 별도 색인에 유지하여 레코드 접근을 빠르게 하는 파일 구성 방식을 쓰시오.
정답·해설 보기
정답
인덱스 파일(색인 파일)
해설
색인 탐색 후 레코드 위치로 접근한다. 추가 저장 공간과 색인 갱신 비용이 필요할 수 있다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
정보처리기사 · 실기
답안을 직접 작성하고 정답과 비교해 보세요. 서술형 답안은 표현이 다를 수 있어 직접 확인합니다.
주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
레코드의 키와 저장 위치를 별도 색인에 유지하여 레코드 접근을 빠르게 하는 파일 구성 방식을 쓰시오.
인덱스 파일(색인 파일)
색인 탐색 후 레코드 위치로 접근한다. 추가 저장 공간과 색인 갱신 비용이 필요할 수 있다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
관계형 테이블에서 이름과 도메인을 가지며 개체의 한 가지 특성을 나타내는 열을 무엇이라 하는지 쓰시오.
속성(Attribute)
행은 튜플, 열은 속성이다. 속성 값 하나와 속성의 정의 자체를 구별한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
원격 셸 접속과 명령 실행에 쓰이며 암호화된 채널을 제공하는 프로토콜의 이름과 기본 TCP 포트를 쓰시오.
SSH, 22번
Secure Shell이다. 평문으로 정보를 전송하는 Telnet 대신 널리 사용된다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
실행 시간이 가장 짧은 작업을 우선하는 SJF와 남은 실행 시간이 가장 짧은 작업을 우선하는 SRT의 선점 여부를 각각 쓰시오.
SJF는 비선점, SRT는 선점
이 문제는 SJF를 비선점 방식, SRT(SRTF)를 그 선점형으로 구분한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 Java 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. Java 21 기준이다.
public class Main {
static class Base { int value; Base(int v){value=v;} int read(){return value;} }
static class Child extends Base {
Child(int v){super(v+2);}
@Override int read(){return super.read()*2;}
}
public static void main(String[] args) {
Base item=new Child(4);
System.out.print(item.read());
}
}12
Child 생성자가 super에 4+2을 전달한다. 변수의 선언형은 Base여도 실제 객체가 Child이므로 재정의한 read가 실행되고 부모의 값에 2를 곱한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
IPv4 호스트 192.168.11.160/26의 네트워크 주소, 브로드캐스트 주소, 사용 가능한 호스트 주소 수를 쓰시오. 일반적인 서브넷에서 네트워크·브로드캐스트 주소는 호스트에 할당하지 않는다.
192.168.11.128 192.168.11.191 62개
호스트 비트는 6비트로 주소 수는 2^6=64개이다. 호스트 비트를 모두 0으로 만들면 네트워크, 모두 1로 만들면 브로드캐스트 주소이며 호스트 수는 2를 뺀다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
실제 객체 앞에 대리 객체를 두어 접근 권한 검사나 지연 로딩을 수행한다. 사용자는 공통 인터페이스를 통해 접근한다. 패턴을 쓰시오.
프록시(Proxy)
구조 패턴이다. 호환되지 않는 인터페이스를 변환하는 Adapter와 구별한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
검색창에 입력할 때 페이지 전체를 다시 불러오지 않고 서버에서 추천어를 받아 일부 영역만 갱신한다. 이런 비동기 웹 통신 기법의 통상적인 이름을 쓰시오.
AJAX
Asynchronous JavaScript and XML의 약어이다. 이름과 달리 전송 데이터는 JSON이나 일반 텍스트일 수도 있다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 Java 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. Java 21 기준이다.
public class Main {
public static void main(String[] args) {
int[] values={7,9,11,13};
int total=0;
for (int i=0;i<values.length;i++)
if (i%2==0) total+=values[i];
System.out.print(total);
}
}18
조건은 값의 홀짝이 아니라 인덱스의 홀짝이다. 인덱스 0과 2의 원소만 누적한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 Java 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. Java 21 기준이다.
public class Main {
static String pick(Object x){return "O";}
static String pick(Number x){return "N";}
static String pick(Integer x){return "I";}
public static void main(String[] args) {
Integer x=4;
Number y=x;
Object z=x;
System.out.print(pick(x)+pick(y)+pick(z));
}
}INO
오버로딩은 호출 지점 인자의 컴파일 시점 타입으로 선택된다. 세 참조가 같은 Integer 객체를 가리켜도 선언형에 따라 I, N, O가 선택된다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
if 문의 참 결과는 실행했지만 거짓 결과는 한 번도 실행하지 않았다. 이 if 하나만 있을 때 분기 커버리지의 비율과 100%를 만들 추가 조건을 쓰시오.
50%. 조건식이 거짓이 되는 테스트를 추가한다.
분기 커버리지는 실행한 분기 결과 수를 전체 분기 결과 수로 나눈다. 참과 거짓 두 결과 중 하나만 실행했으므로 1/2이다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 C 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. C11, ASCII 문자 집합을 기준으로 한다.
#include <stdio.h>
int main(void) {
int data[] = {3, 7, 10, 12};
int *p=data+1;
p[1] += 2;
printf("%d %d %d", *p, *(p+1), data[3]-data[0]);
return 0;
}7 12 9
p는 data[1]을 가리킨다. p[1]과 *(p+1)은 모두 data[2]이므로 같은 원소가 수정된다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
시간 할당량 2의 라운드 로빈으로 아래 프로세스를 실행한다. 문맥 교환 비용은 0이다. 각 대기 시간과 평균 대기 시간을 구하시오(평균은 소수 둘째 자리까지). 시간 경계에서 새로 도착한 프로세스를 큐에 넣은 뒤 할당량을 소진한 프로세스를 큐 끝에 다시 넣는다.
| 프로세스 | 도착 시간 | CPU 실행 시간 |
|---|---|---|
| P1 | 0 | 8 |
| P2 | 1 | 3 |
| P3 | 2 | 2 |
P1: 5 / P2: 5 / P3: 2 평균: 4.00
각 대기 시간=완료 시간−도착 시간−실행 시간이다. 완료 시간: P1=13, P2=9, P3=6. 1시간 단위 실행 순서: P1 → P1 → P2 → P2 → P3 → P3 → P1 → P1 → P2 → P1 → P1 → P1 → P1
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 C 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. C11, ASCII 문자 집합을 기준으로 한다.
#include <stdio.h>
int main(void) {
int x=7;
int a=x++;
int b=++x;
printf("%d %d %d", a,b,x);
return 0;
}7 9 9
후위 증가는 증가 전 값을 a에 저장하고 x를 증가시킨다. 다음 문장의 전위 증가는 x를 먼저 증가시킨 뒤 b에 저장한다. 각 증가는 별도 문장에서 수행된다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 Java 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. Java 21 기준이다.
public class Main {
public static void main(String[] args) {
int result=4;
try {
int divisor=0;
result+=12/divisor;
System.out.print("T");
} catch(ArithmeticException e) {
result+=3; System.out.print("E");
} finally {
result+=2; System.out.print("F");
}
System.out.print(result);
}
}EF9
정수 0 나눗셈은 ArithmeticException을 발생시키며 덧셈 대입은 완료되지 않는다. 예외 여부와 관계없이 finally를 실행한 뒤 최종 result를 출력한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 C 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. C11, ASCII 문자 집합을 기준으로 한다.
#include <stdio.h>
struct Node { int value; struct Node *next; };
int main(void) {
struct Node c={8,NULL}, b={7,&c}, a={6,&b};
struct Node *head=&a;
a.next=c.next; c.next=&a; b.next=&c; head=&b;
for (struct Node *p=head; p!=NULL; p=p->next)
printf("%d", p->value);
return 0;
}786
a의 다음은 NULL, c의 다음은 a, b의 다음은 c가 된다. head에서 b → c → a 순서로 따라가며 구분자 없이 출력한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 Python 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. Python 3 기준이다.
s = "abracadabra"
print(s.count("ab"), sum(ch == "a" for ch in s))2 5
str.count는 겹치지 않는 부분 문자열의 개수를 센다. 불리언을 합산한 두 번째 식은 각 문자 중 a와 같은 문자의 개수이다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
다음 C 코드의 실행 결과를 쓰시오. 출력에 있는 공백과 줄바꿈을 구분하시오. C11, ASCII 문자 집합을 기준으로 한다.
#include <stdio.h>
int main(void) {
char s[]="STREAM";
for (int l=0,r=5; l<r; l++,r--) {
char t=s[l]; s[l]=s[r]; s[r]=t;
}
for (int i=0; i<6; i+=2) printf("%c", s[i]);
return 0;
}MET
양 끝 문자를 교환하며 문자열을 뒤집는다. 이후 역순 문자열의 인덱스 0, 2, 4만 출력한다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
TCP 연결을 완성하지 않는 SYN 요청을 대량으로 보내 서버의 반열림 연결 상태 자원을 소모시키는 공격을 쓰시오.
SYN 플러딩
3단계 연결 설정 중 미완성 상태가 쌓이는 점을 악용한다. SYN 쿠키 등으로 영향을 완화할 수 있다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
관계대수에서 사원 관계의 이름과 부서 속성만 선택하는 연산의 이름과 기호를 쓰시오.
프로젝션(Projection), π
관계대수의 프로젝션은 속성, 즉 열을 선택하며 중복 튜플을 제거한다. SQL SELECT는 DISTINCT가 없으면 중복을 유지할 수 있다.
학습용 재구성 · 주제 참고: Life-Journey · 2025년 2회 비공식 복원 (새 창)
답안과 확인 상태는 현재 브라우저에만 저장됩니다. ‘맞았어요’ 표시는 본인이 확인한 학습 기록이며 실제 시험 점수가 아닙니다.