Engineer Information Processing study materials
Engineer Information Processing study resources

Engineer Information Processing practice questions

One question at a time. Build your Engineer Information Processing understanding.

First 50 of 198 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1정보처리기사 실기 (practical)

관계형 데이터베이스에서 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 용어는 무엇인가?

  1. 도메인(domain) Correct answer.
  2. 카디널리티(cardinality)
  3. 릴레이션 스키마(relation schema)
  4. 차수(degree)

Explanation

도메인은 한 애트리뷰트가 취할 수 있는 원자값들의 집합으로, 릴레이션의 각 열에 적용되는 값의 범위를 정의한다. 스키마는 릴레이션의 구조 자체를, 카디널리티는 튜플 수를, 차수는 애트리뷰트 수를 나타내므로 도메인과 구분된다.

Question 2정보처리기사 실기 (practical)

다음 중 데이터베이스 정규화 과정에서 부분 함수 종속성을 제거하는 정규형은 무엇인가?

  1. 제1정규형(1NF)
  2. 제2정규형(2NF) Correct answer.
  3. BCNF
  4. 제3정규형(3NF)

Explanation

제2정규형은 기본키가 복합키일 때 기본키의 일부에만 종속되는 부분 함수 종속성을 제거하는 단계이다. 제1정규형은 원자값만 허용하고, 제3정규형은 이행적 함수 종속을, BCNF는 모든 결정자가 후보키가 되도록 강화한 정규형이다.

Question 3정보처리기사 실기 (practical)

다음 SQL 문에서 DELETE 후 테이블 EMP의 상태로 옳은 것은? (EMP에는 10개의 행이 있고, DEPTNO는 NULL을 허용한다) DELETE FROM EMP WHERE DEPTNO IS NULL;

  1. 조건에 맞는 행이 없으면 오류가 발생하여 전체 트랜잭션이 롤백된다.
  2. DEPTNO가 NULL인 행의 DEPTNO만 NULL이 아닌 0으로 갱신된다.
  3. 테이블 EMP 자체가 삭제된다.
  4. DEPTNO가 NULL인 행만 삭제되고 테이블 구조는 유지된다. Correct answer.

Explanation

DELETE는 WHERE 조건을 만족하는 행만 제거하며 테이블의 구조는 남긴다. DEPTNO IS NULL 조건은 NULL 값을 가진 행을 정확히 선택하므로 해당 행들만 삭제된다. 테이블 자체를 없애는 것은 DROP TABLE이다.

Question 4정보처리기사 실기 (practical)

다음 파이썬 코드의 실행 결과로 옳은 것은? a = [1, 2, 3] b = a b.append(4) print(len(a))

  1. 오류가 발생한다
  2. 7
  3. 4 Correct answer.
  4. 3

Explanation

b = a는 리스트를 복사하지 않고 같은 리스트 객체를 참조하도록 별칭을 만든다. 따라서 b에 append한 4가 a에도 반영되어 len(a)는 4가 된다. 리스트를 독립적으로 만들려면 a.copy()나 a[:]를 사용해야 한다.

Question 5정보처리기사 실기 (practical)

다음 중 소프트웨어 개발에서 사용되는 형상 관리(Configuration Management)의 주요 기능으로 가장 거리가 먼 것은?

  1. 부하 분산 Correct answer.
  2. 버전 관리
  3. 형상 통제
  4. 형상 식별

Explanation

형상 관리는 형상 식별, 형상 통제, 형상 감사, 형상 기록(버전 관리)의 기능으로 구성된다. 부하 분산은 서버나 네트워크 자원에 요청을 분산하는 인프라 기술로 형상 관리 기능과 무관하다.

Question 6정보처리기사 실기 (practical)

다음 중 응집도(Cohesion)가 가장 높은 경우는 무엇인가?

  1. 우연적 응집도(Coincidental Cohesion)
  2. 논리적 응집도(Logical Cohesion)
  3. 기능적 응집도(Functional Cohesion) Correct answer.
  4. 시간적 응집도(Temporal Cohesion)

Explanation

응집도는 모듈 내부 요소들이 얼마나 밀접하게 관련되는지를 나타내며, 기능적 응집도가 가장 높고 우연적 응집도가 가장 낮다. 기능적 응집도는 모듈이 단일 기능을 수행하기 위해 모든 요소가 협력하는 경우이다.

Question 7정보처리기사 실기 (practical)

다음 중 IP 주소 192.168.10.130/26이 속한 서브넷의 네트워크 주소와 브로드캐스트 주소로 옳은 것은?

  1. 192.168.10.128 / 192.168.10.255
  2. 192.168.10.0 / 192.168.10.63
  3. 192.168.10.64 / 192.168.10.127
  4. 192.168.10.128 / 192.168.10.191 Correct answer.

Explanation

/26은 서브넷 마스크 255.255.255.192로, 한 서브넷에 64개의 주소가 배정된다. 130은 128~191 구간에 속하므로 네트워크 주소는 192.168.10.128, 브로드캐스트 주소는 192.168.10.191이 된다.

Question 8정보처리기사 실기 (practical)

다음 중 블랙박스 테스트 기법에 해당하는 것은 무엇인가?

  1. 조건 검증 기준(Condition Coverage)
  2. 경계값 분석(Boundary Value Analysis) Correct answer.
  3. 문장 검증 기준(Statement Coverage)
  4. 기초 경로 검사(Basis Path Testing)

Explanation

블랙박스 테스트는 프로그램 내부 구조를 보지 않고 명세를 기반으로 입력과 출력을 검증하며, 경계값 분석과 동등 분할, 결정 테이블 등이 여기에 속한다. 문장·조건 검증 기준과 기초 경로 검사는 내부 논리 구조를 활용하는 화이트박스 테스트 기법이다.

Question 9정보처리기사 실기 (practical)

다음 C 코드의 출력 결과로 옳은 것은? int a[5] = {10, 20, 30, 40, 50}; int *p = a; printf("%d", *(p + 2));

  1. 40
  2. 20
  3. 30 Correct answer.
  4. 10

Explanation

배열 이름 a는 첫 원소의 주소로 사용되므로 p는 a[0]을 가리킨다. 포인터에 2를 더하면 원소 크기만큼 이동하여 a[2]를 가리키고, 역참조하면 30이 된다.

Question 10정보처리기사 실기 (practical)

다음 중 데이터베이스 트랜잭션의 ACID 특성에 대한 설명으로 옳지 않은 것은?

  1. 격리성(Isolation)은 동시에 수행되는 트랜잭션들이 서로의 중간 결과에 영향을 주지 않아야 함을 의미한다.
  2. 원자성(Atomicity)은 트랜잭션의 연산이 모두 반영되거나 모두 반영되지 않아야 함을 의미한다.
  3. 일관성(Consistency)은 트랜잭션 수행 전후 데이터베이스가 일관된 상태를 유지해야 함을 의미한다.
  4. 지속성(Durability)은 트랜잭션이 커밋되기 전에 변경 내용이 디스크에 즉시 반영되어야 함을 의미한다. Correct answer.

Explanation

지속성은 커밋이 완료된 트랜잭션의 결과가 장애가 발생해도 영구적으로 보존되어야 한다는 특성이다. 커밋 전에 변경을 디스크에 즉시 반영하라는 의미가 아니며, 그렇게 되면 원자성이나 격리성과 충돌한다.

Question 11정보처리기사 실기 (practical)

다음 중 OSI 7계층과 그 계층에서 동작하는 대표 프로토콜의 연결이 옳은 것은?

  1. 전송 계층 - TCP Correct answer.
  2. 데이터 링크 계층 - IP
  3. 네트워크 계층 - HTTP
  4. 응용 계층 - Ethernet

Explanation

TCP는 종단 간 신뢰성 있는 연결형 전송을 제공하는 전송 계층 프로토콜이다. HTTP는 응용 계층, IP는 네트워크 계층, Ethernet은 데이터 링크 계층에 해당한다.

Question 12정보처리기사 실기 (practical)

다음 자바 코드의 출력 결과로 옳은 것은? class A { int x = 1; int get() { return x; } } class B extends A { int x = 2; int get() { return x; } } A a = new B(); System.out.println(a.get());

  1. 2 Correct answer.
  2. 1
  3. 0
  4. 컴파일 오류

Explanation

a는 A 타입이지만 실제 객체는 B이므로, 오버라이딩된 B의 get()이 동적 바인딩으로 호출된다. B의 get()은 B의 필드 x를 반환하므로 2가 출력된다. 필드는 오버라이딩되지 않지만 메서드는 런타임 타입을 따라간다.

Question 13정보처리기사 실기 (practical)

다음 중 화이트박스 테스트의 순환 복잡도(Cyclomatic Complexity)에 대한 설명으로 옳은 것은?

  1. 테스트 케이스의 실행 시간을 측정하여 복잡도를 산정한다.
  2. 제어 흐름 그래프에서 독립적인 경로의 수를 나타내며, McCabe의 공식 V(G) = E - N + 2로 계산한다. Correct answer.
  3. 모듈 간의 호출 관계만으로 계산되는 결합도 지표이다.
  4. 제어 흐름 그래프의 간선 수에서 노드 수를 뺀 값에 2를 더한 값이다.

Explanation

순환 복잡도는 프로그램의 제어 흐름 그래프에서 독립 경로의 수를 의미하며, McCabe 공식 V(G) = E - N + 2 또는 판단 노드 수 + 1로 계산한다. 값이 클수록 테스트해야 할 경로가 많아 유지보수가 어려워진다.

Question 14정보처리기사 실기 (practical)

다음 중 서로 다른 두 테이블을 조인하여 한쪽 테이블의 모든 행을 유지하고, 일치하지 않는 상대 테이블 값은 NULL로 표시하는 조인은 무엇인가?

  1. LEFT OUTER JOIN Correct answer.
  2. SELF JOIN
  3. CROSS JOIN
  4. INNER JOIN

Explanation

LEFT OUTER JOIN은 왼쪽 테이블의 모든 행을 결과에 포함시키고, 오른쪽 테이블에 일치하는 행이 없으면 해당 열을 NULL로 채운다. INNER JOIN은 일치하는 행만, CROSS JOIN은 모든 조합을, SELF JOIN은 같은 테이블끼리 조인한다.

Question 15정보처리기사 실기 (practical)

다음 중 소프트웨어 아키텍처 패턴인 MVC 패턴에 대한 설명으로 옳은 것은?

  1. MVC 패턴은 데이터베이스 정규화를 자동으로 수행하는 설계 기법이다.
  2. Model은 사용자 입력을 처리하고 화면 출력을 담당한다.
  3. Controller는 사용자 입력을 받아 Model과 View를 갱신하며 둘 사이의 흐름을 제어한다. Correct answer.
  4. View는 데이터와 비즈니스 로직을 담당하며 Controller의 변경을 직접 수행한다.

Explanation

MVC에서 Model은 데이터와 비즈니스 로직을, View는 화면 표시를, Controller는 사용자 입력을 해석해 Model과 View를 연결하는 역할을 한다. 이 분리를 통해 화면과 로직의 결합도를 낮추고 변경 영향을 줄인다.

Question 16정보처리기사 실기 (practical)

다음 중 TCP와 UDP의 특성을 비교한 설명으로 옳은 것은?

  1. UDP는 연결 설정 과정이 없어 오버헤드가 작지만 신뢰성을 보장하지 않는다. Correct answer.
  2. TCP는 브로드캐스트 전송에 주로 사용된다.
  3. UDP는 순서 번호를 사용하여 수신 순서를 재조립한다.
  4. TCP는 비연결형이며 흐름 제어를 수행하지 않는다.

Explanation

UDP는 비연결형 전송 프로토콜로 3-way handshake 같은 연결 설정이 없어 오버헤드가 작지만, 재전송·순서 보장·흐름 제어를 제공하지 않는다. 반면 TCP는 연결형으로 신뢰성과 순서 보장을 제공한다.

Question 17정보처리기사 실기 (practical)

다음 중 디자인 패턴에서 하나의 인스턴스만 생성되도록 보장하고 전역 접근점을 제공하는 패턴은 무엇인가?

  1. 옵서버(Observer) 패턴
  2. 싱글톤(Singleton) 패턴 Correct answer.
  3. 팩토리 메서드(Factory Method) 패턴
  4. 데코레이터(Decorator) 패턴

Explanation

싱글톤 패턴은 클래스의 인스턴스를 하나만 생성하고 이를 공유하도록 보장하며, 전역 접근점을 제공한다. 생성자를 private으로 두고 정적 메서드로 인스턴스를 반환하는 방식이 대표적이다.

Question 18정보처리기사 실기 (practical)

다음 중 해시 함수의 특성과 관련된 설명으로 옳은 것은?

  1. 해시값으로부터 원래 입력을 항상 복원할 수 있어야 한다.
  2. 해시 함수는 암호화 키를 사용하여 복호화가 가능해야 한다.
  3. 해시 함수는 임의 길이의 입력을 고정 길이의 출력으로 변환하며, 서로 다른 입력이 같은 해시값을 갖는 충돌 가능성이 존재한다. Correct answer.
  4. 해시 함수는 입력 길이에 비례하여 출력 길이가 증가한다.

Explanation

해시 함수는 임의 길이 입력을 고정 길이 출력으로 압축하며, 출력 공간이 유한하기 때문에 충돌이 이론적으로 발생할 수 있다. 좋은 해시 함수는 충돌 저항성과 역상 저항성, 눈사태 효과 등을 갖추어야 한다.

Question 19정보처리기사 실기 (practical)

다음 SQL의 실행 결과로 옳은 것은? SELECT COUNT(*) FROM T WHERE COL > 5; (T에는 COL 값 3, 5, 7, NULL이 각각 한 행씩 존재한다)

  1. 3
  2. 2
  3. 4
  4. 1 Correct answer.

Explanation

WHERE COL > 5는 NULL과의 비교가 UNKNOWN으로 평가되어 거짓으로 처리되므로 NULL 행은 제외된다. 3과 5는 조건을 만족하지 않고 7만 참이 되어 COUNT(*)는 1이 된다.

Question 20정보처리기사 실기 (practical)

다음 중 소프트웨어 개발 방법론인 스크럼(Scrum)에 대한 설명으로 옳은 것은?

  1. 스크럼에서 제품 백로그는 개발팀이 아니라 고객이 매일 직접 갱신한다.
  2. 스크럼에서는 계획을 고정하고 스프린트 중간에 요구사항 변경을 금지한다.
  3. 스크럼은 스프린트라는 짧은 반복 주기 동안 제품 백로그의 항목을 개발하고, 데일리 스크럼과 회고를 통해 점진적으로 제품을 완성한다. Correct answer.
  4. 스크럼은 요구사항을 문서로 완전히 확정한 뒤 순차적으로 개발하는 폭포수 모델의 한 종류이다.

Explanation

스크럼은 제품 백로그를 기반으로 스프린트라는 짧은 반복 주기마다 동작하는 제품 증분을 만드는 애자일 방법론이다. 데일리 스크럼으로 진행을 공유하고 스프린트 리뷰와 회고로 개선한다.

Question 21정보처리기사 실기 (practical)

다음 중 서브넷 마스크 255.255.255.224를 사용하는 네트워크에서 사용 가능한 호스트 주소의 개수로 옳은 것은?

  1. 30개 Correct answer.
  2. 62개
  3. 32개
  4. 14개

Explanation

255.255.255.224는 /27에 해당하며, 한 서브넷의 주소 수는 2^(32-27) = 32개이다. 네트워크 주소와 브로드캐스트 주소를 제외하면 사용 가능한 호스트 주소는 30개이다.

Question 22정보처리기사 실기 (practical)

다음 파이썬 코드의 실행 결과로 옳은 것은? def f(n): if n <= 1: return 1 return n * f(n - 1) print(f(4))

  1. 16
  2. 4
  3. 10
  4. 24 Correct answer.

Explanation

f는 팩토리얼을 재귀적으로 계산하며 f(1)=1을 기저 조건으로 둔다. f(4) = 4 × 3 × 2 × 1 = 24가 반환되어 출력된다.

Question 23정보처리기사 실기 (practical)

다음 중 데이터베이스에서 이상 현상(Anomaly)에 대한 설명으로 옳지 않은 것은?

  1. 갱신 이상은 데이터 중복으로 인해 일부 튜플만 갱신되어 정보가 불일치하는 현상이다.
  2. 삽입 이상은 원하지 않는 데이터가 함께 삽입되거나 삽입이 불가능한 상황을 말한다.
  3. 삭제 이상은 한 튜플을 삭제할 때 유지해야 할 정보까지 함께 삭제되는 현상이다.
  4. 이상 현상은 정규화를 수행할수록 증가하므로 정규화를 최소화해야 한다. Correct answer.

Explanation

삽입·삭제·갱신 이상은 릴레이션의 함수 종속성이 부적절하게 설계되어 발생하며, 정규화를 통해 제거하거나 줄인다. 따라서 정규화를 최소화해야 한다는 설명은 반대이다.

Question 24정보처리기사 실기 (practical)

다음 자바 코드에서 컴파일 오류가 발생하는 이유로 가장 옳은 것은? class Parent { void run() {} } class Child extends Parent { @Override void run(int n) {} }

  1. 부모 클래스의 메서드가 final이어야만 재정의가 가능하여 오류가 발생한다.
  2. 매개변수가 있는 메서드는 오버라이딩 대상이 될 수 없어 오류가 발생한다.
  3. 자식 클래스는 부모 클래스의 메서드를 재정의할 수 없어 오류가 발생한다.
  4. @Override 애노테이션이 붙은 메서드의 시그니처가 부모 클래스에 존재하지 않아 오류가 발생한다. Correct answer.

Explanation

@Override는 해당 메서드가 상위 타입의 메서드를 재정의한다는 것을 컴파일러가 검증하도록 한다. Child의 run(int n)은 Parent의 run()과 매개변수가 달라 오버라이딩이 아니라 오버로딩이므로, 애노테이션 검증에서 오류가 발생한다.

Question 25정보처리기사 실기 (practical)

다음 중 SQL의 GROUP BY와 HAVING 절에 대한 설명으로 옳은 것은?

  1. GROUP BY 절을 사용하면 SELECT 절에는 집계 함수만 사용할 수 있고 그룹 기준 열은 사용할 수 없다.
  2. HAVING 절은 GROUP BY로 생성된 그룹을 대상으로 조건을 적용하며 집계 함수를 포함할 수 있다. Correct answer.
  3. WHERE 절은 그룹화 이후에 그룹을 필터링하는 데 사용된다.
  4. HAVING 절은 GROUP BY로 묶기 전에 개별 행을 필터링하며 집계 함수를 사용할 수 없다.

Explanation

WHERE는 그룹화 이전에 개별 행을 필터링하고, HAVING은 GROUP BY로 만들어진 그룹에 조건을 적용하며 COUNT, SUM 같은 집계 함수를 사용할 수 있다. SELECT 절에는 그룹 기준 열과 집계 함수를 함께 사용할 수 있다.

Question 26정보처리기사 실기 (practical)

다음 중 UML 다이어그램에서 객체 간의 메시지 흐름과 시간 순서를 표현하며, 생명선(Lifeline)과 활성 박스(Activation Box)를 사용하는 다이어그램은 무엇인가?

  1. 배치 다이어그램
  2. 유스케이스 다이어그램
  3. 클래스 다이어그램
  4. 시퀀스 다이어그램 Correct answer.

Explanation

시퀀스 다이어그램은 객체들이 시간의 흐름에 따라 주고받는 메시지를 세로축 시간 순서로 표현하며, 각 객체의 생명선과 실행 구간을 나타내는 활성 박스를 사용한다. 따라서 동적 상호작용을 시간 관점에서 모델링하는 다이어그램이다.

Question 27정보처리기사 실기 (practical)

다음 중 관계형 데이터베이스에서 기본키(Primary Key)에 대한 설명으로 옳은 것은?

  1. 하나의 테이블에 여러 개를 반드시 정의해야 한다.
  2. NULL을 허용하지 않으며 각 행을 유일하게 식별한다. Correct answer.
  3. 외래키가 참조하는 대상이 되는 속성으로만 정의된다.
  4. NULL 값을 허용하되 중복은 허용하지 않는다.

Explanation

기본키는 테이블의 각 튜플을 유일하게 식별하는 속성 또는 속성 집합으로, 개체 무결성에 따라 NULL 값을 가질 수 없고 중복된 값도 허용되지 않는다. 한 테이블에 하나만 정의할 수 있다.

Question 28정보처리기사 실기 (practical)

다음 중 프로세스 스케줄링에서 라운드 로빈(Round Robin) 기법에 대한 설명으로 옳은 것은?

  1. 준비 큐에 도착한 순서와 무관하게 남은 실행 시간이 긴 프로세스를 먼저 실행한다.
  2. 우선순위가 높은 프로세스가 실행 중인 프로세스를 선점한다.
  3. 할당된 시간 조각(Time Quantum)을 기준으로 프로세스를 순환하며 실행한다. Correct answer.
  4. 실행 시간이 가장 짧은 프로세스를 먼저 선택한다.

Explanation

라운드 로빈은 준비 큐의 프로세스들을 정해진 시간 조각만큼 번갈아 실행하는 선점형 스케줄링 기법으로, 시분할 시스템에 적합하다. 시간 조각이 너무 크면 FCFS와 유사해지고 너무 작으면 문맥 교환 오버헤드가 커진다.

Question 29정보처리기사 실기 (practical)

다음 중 소프트웨어 형상 관리(Configuration Management)의 주요 활동으로 가장 거리가 먼 것은?

  1. 형상 식별
  2. 형상 감사
  3. 형상 압축 Correct answer.
  4. 형상 통제

Explanation

형상 관리는 형상 식별, 형상 통제, 형상 감사, 형상 기록(상태 보고)의 네 가지 활동으로 구성된다. 형상 압축은 형상 관리의 표준 활동에 포함되지 않는다.

Question 30정보처리기사 실기 (practical)

다음 중 소스 코드 정적 분석 도구로 분류되는 것은 무엇인가?

  1. Checkstyle Correct answer.
  2. Selenium
  3. JMeter
  4. JUnit

Explanation

Checkstyle은 자바 소스 코드의 코딩 규칙 준수 여부를 실행 없이 검사하는 정적 분석 도구이다. 정적 분석은 프로그램을 실행하지 않고 소스 코드 구조를 분석하여 결함 가능성을 찾는다.

Question 31정보처리기사 실기 (practical)

다음 중 응용 소프트웨어의 결함을 유발할 수 있는 보안 약점인 SQL 삽입(SQL Injection)에 대한 설명으로 옳은 것은?

  1. 사용자 입력값이 SQL 쿼리의 구조를 변경할 수 없도록 검증하지 않아 발생한다. Correct answer.
  2. 스크립트를 게시물에 삽입하여 다른 사용자의 브라우저에서 실행되게 할 때 발생한다.
  3. 서버의 메모리 버퍼 크기를 초과하는 입력으로 스택을 덮어쓸 때 발생한다.
  4. 네트워크 패킷을 도청하여 세션 쿠키를 탈취할 때 발생한다.

Explanation

SQL 삽입은 사용자 입력값을 검증하거나 매개변수화하지 않고 SQL 문에 그대로 연결할 때, 입력값이 쿼리 구조를 바꾸어 인증 우회나 데이터 유출을 일으키는 보안 약점이다. 대응 방안으로 Prepared Statement 사용과 입력값 검증이 있다.

Question 32정보처리기사 실기 (practical)

다음 중 데이터베이스 정규화에서 제2정규형(2NF)이 만족해야 하는 조건으로 옳은 것은?

  1. 모든 속성이 원자값만 가지도록 분해되어야 한다.
  2. 기본키가 아닌 속성 간의 이행적 함수 종속이 존재해야 한다.
  3. 모든 결정자가 후보키이어야 한다.
  4. 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 한다. Correct answer.

Explanation

제2정규형은 제1정규형을 만족하면서 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되는 상태이다. 즉 기본키의 일부에만 종속되는 부분 함수 종속을 제거해야 한다.

Question 33정보처리기사 실기 (practical)

다음 중 소프트웨어 개발에서 요구사항 분석 단계의 산출물로 가장 적절한 것은 무엇인가?

  1. 테스트 결과 보고서
  2. 릴리스 노트
  3. 요구사항 명세서 Correct answer.
  4. 소스 코드

Explanation

요구사항 분석 단계에서는 사용자 요구를 수집·분석하여 기능 요구사항과 비기능 요구사항을 정리한 요구사항 명세서를 산출한다. 이 문서는 이후 설계와 테스트의 기준이 된다.

Question 34정보처리기사 실기 (practical)

다음 자바 코드의 실행 결과로 옳은 것은? int i = 0; int sum = 0; while (i < 5) { i++; if (i % 2 == 0) continue; sum += i; } System.out.println(sum);

  1. 6
  2. 15
  3. 9 Correct answer.
  4. 4

Explanation

i가 1,2,3,4,5로 증가하며 짝수일 때 continue로 누적을 건너뛴다. 따라서 홀수인 1, 3, 5만 sum에 더해져 결과는 9가 된다.

Question 35정보처리기사 실기 (practical)

다음 SQL에서 사원 테이블 EMP의 부서별 평균 급여가 400 이상인 부서만 조회하려고 한다. 빈칸에 들어갈 절로 옳은 것은? SELECT DEPT, AVG(SAL) FROM EMP GROUP BY DEPT ________ AVG(SAL) >= 400;

  1. WHERE
  2. ORDER BY
  3. HAVING Correct answer.
  4. GROUP BY

Explanation

그룹 함수의 결과를 조건으로 필터링할 때는 HAVING 절을 사용한다. WHERE 절은 그룹화 이전의 개별 행에 적용되므로 집계 함수 결과를 조건으로 쓸 수 없다.

Question 36정보처리기사 실기 (practical)

다음 C 코드의 실행 결과로 옳은 것은? int a = 10; int *p = &a; int **pp = &p; **pp = 20; printf("%d", a);

  1. 20 Correct answer.
  2. 주소값이 출력된다
  3. 컴파일 오류가 발생한다
  4. 10

Explanation

pp는 p의 주소를 저장하는 이중 포인터이고, *pp는 p가 가리키는 a의 주소이며 **pp는 a 자체를 의미한다. 따라서 **pp = 20은 a에 20을 대입하므로 20이 출력된다.

Question 37정보처리기사 실기 (practical)

다음 중 IP 주소 172.16.5.100에 서브넷 마스크 255.255.255.192를 적용했을 때의 네트워크 주소로 옳은 것은?

  1. 172.16.5.64 Correct answer.
  2. 172.16.5.96
  3. 172.16.5.0
  4. 172.16.5.128

Explanation

255.255.255.192는 /26으로, 마지막 옥텟의 상위 2비트가 네트워크 부분이다. 100은 이진수 01100100이므로 상위 2비트를 유지하고 나머지를 0으로 만들면 01000000, 즉 64가 되어 네트워크 주소는 172.16.5.64가 된다.

Question 38정보처리기사 실기 (practical)

다음 중 데이터베이스에서 두 개 이상의 테이블을 조인할 때, 조인 조건에 일치하는 행뿐 아니라 양쪽 테이블의 일치하지 않는 행까지 모두 결과에 포함하는 조인은 무엇인가?

  1. INNER JOIN
  2. CROSS JOIN
  3. FULL OUTER JOIN Correct answer.
  4. SELF JOIN

Explanation

FULL OUTER JOIN은 왼쪽과 오른쪽 테이블의 모든 행을 결과에 포함하고, 조인 조건이 맞지 않는 쪽의 열은 NULL로 채운다. INNER JOIN은 일치하는 행만 반환한다.

Question 39정보처리기사 실기 (practical)

다음 중 소프트웨어 아키텍처에서 레이어 간 호출 방향을 단방향으로 제한하고 상위 계층이 하위 계층을 호출하도록 구성하며, 각 계층이 인접한 계층과만 상호작용하는 패턴은 무엇인가?

  1. 브로커 패턴(Broker Pattern)
  2. 파이프-필터 패턴(Pipe-Filter Pattern)
  3. 이벤트-버스 패턴(Event-Bus Pattern)
  4. 계층화 패턴(Layered Pattern) Correct answer.

Explanation

계층화 패턴은 시스템을 여러 계층으로 나누고 각 계층이 인접한 하위 계층에만 서비스를 요청하도록 구성한다. 계층 간 결합도를 낮추고 재사용성과 유지보수성을 높이는 구조이다.

Question 40정보처리기사 실기 (practical)

다음 중 디자인 패턴에서 기존 객체에 동적으로 새로운 기능을 추가할 수 있도록 하며, 상속 대신 감싸는 구조를 사용하는 패턴은 무엇인가?

  1. 어댑터 패턴(Adapter)
  2. 옵서버 패턴(Observer)
  3. 파사드 패턴(Facade)
  4. 데코레이터 패턴(Decorator) Correct answer.

Explanation

데코레이터 패턴은 대상 객체를 같은 인터페이스의 데코레이터로 감싸 런타임에 책임을 추가한다. 상속으로 기능을 확장할 때 발생하는 클래스 폭발 문제를 줄일 수 있다.

Question 41정보처리기사 실기 (practical)

다음 중 화이트박스 테스트에서 각 조건식의 참과 거짓을 최소 한 번씩 평가하도록 테스트 케이스를 설계하는 기준은 무엇인가?

  1. 문장 검증 기준(Statement Coverage)
  2. 경로 검증 기준(Path Coverage)
  3. 결정 검증 기준(Decision Coverage)
  4. 조건 검증 기준(Condition Coverage) Correct answer.

Explanation

조건 검증 기준은 결정문 내부의 개별 조건식이 참과 거짓을 각각 한 번 이상 평가되도록 테스트 케이스를 설계하는 기준이다. 결정 검증 기준은 전체 결정문의 결과가 참/거짓을 모두 갖도록 한다.

Question 42정보처리기사 실기 (practical)

다음 중 해시(Hash) 기반 자료구조에서 충돌(Collision) 해결 기법인 체이닝(Chaining)에 대한 설명으로 옳은 것은?

  1. 해시 함수를 두 번 적용하여 충돌 확률을 0으로 만든다.
  2. 버킷의 크기를 원소 수보다 작게 유지하여 충돌을 방지한다.
  3. 충돌이 발생하면 다음 빈 버킷을 찾아 순차적으로 저장한다.
  4. 충돌한 원소들을 같은 버킷에 연결 리스트 등으로 연결하여 저장한다. Correct answer.

Explanation

체이닝은 동일한 해시 값을 갖는 원소들을 하나의 버킷에 연결 리스트나 트리 형태로 연결해 저장하는 충돌 해결 기법이다. 버킷 수를 고정한 채로 충돌을 처리할 수 있다.

Question 43정보처리기사 실기 (practical)

다음 자바 코드의 실행 결과로 옳은 것은? String s1 = "java"; String s2 = "java"; String s3 = new String("java"); System.out.println((s1 == s2) + "," + s1.equals(s3));

  1. false,false
  2. true,false
  3. true,true Correct answer.
  4. false,true

Explanation

문자열 리터럴 "java"는 상수 풀에서 동일한 객체를 공유하므로 s1 == s2는 참조 비교에서도 true이다. equals는 문자열 내용을 비교하므로 s1.equals(s3)도 true가 된다.

Question 44정보처리기사 실기 (practical)

다음 중 트랜잭션의 격리 수준(Isolation Level) 중 다른 트랜잭션이 커밋하지 않은 데이터를 읽는 현상인 더티 리드(Dirty Read)를 허용하는 수준은 무엇인가?

  1. REPEATABLE READ
  2. READ UNCOMMITTED Correct answer.
  3. SERIALIZABLE
  4. READ COMMITTED

Explanation

READ UNCOMMITTED는 가장 낮은 격리 수준으로, 다른 트랜잭션이 아직 커밋하지 않은 데이터까지 읽을 수 있어 더티 리드가 발생한다. 격리 수준이 높아질수록 동시성은 낮아지고 일관성은 높아진다.

Question 45정보처리기사 실기 (practical)

다음 중 결함 허용(Fault Tolerance) 기법에서 동일한 기능을 수행하는 여러 모듈이 동시에 동작하고, 그 결과를 비교하여 다수결로 올바른 결과를 선택하는 기법은 무엇인가?

  1. 스크립트 재시작(Script Restart)
  2. 복구 블록(Recovery Block)
  3. 체크포인트 재시작(Checkpoint Restart)
  4. N-버전 프로그래밍(N-Version Programming) Correct answer.

Explanation

N-버전 프로그래밍은 서로 독립적으로 개발된 N개의 버전을 동시에 실행한 뒤 다수결 투표로 결과를 결정하는 정적 결함 허용 기법이다. 공통 모드 실패를 줄이기 위해 버전을 독립적으로 개발하는 것이 중요하다.

Question 46정보처리기사 실기 (practical)

다음 SQL에서 T 테이블의 값이 10, NULL, 20일 때 실행 결과로 옳은 것은? SELECT SUM(COL) + AVG(COL) FROM T;

  1. 30
  2. 60
  3. 45 Correct answer.
  4. NULL

Explanation

집계 함수 SUM과 AVG는 NULL을 제외하고 계산하므로 SUM은 30, AVG는 (10+20)/2인 15가 된다. 따라서 결과는 30 + 15 = 45가 된다.

Question 47정보처리기사 실기 (practical)

다음 C 코드에서 출력되는 값으로 옳은 것은? int arr[4] = {1, 2, 3, 4}; int *p = arr + 3; printf("%d", *(p - 1) + arr[0]);

  1. 6
  2. 7
  3. 4 Correct answer.
  4. 5

Explanation

arr + 3은 인덱스 3의 원소를 가리키므로 p - 1은 인덱스 2를 가리키고 *(p - 1)은 3이다. 여기에 arr[0]인 1을 더하면 4가 출력된다.

Question 48정보처리기사 실기 (practical)

다음 자바 코드의 실행 결과로 옳은 것은? class P { static String name() { return "P"; } String call() { return name(); } } class C extends P { static String name() { return "C"; } } System.out.println(new C().call());

  1. null
  2. 컴파일 오류가 발생한다
  3. C
  4. P Correct answer.

Explanation

정적 메서드는 오버라이딩되지 않고 참조 변수의 타입에 따라 결정되며, P의 call() 안에서 호출되는 name()은 P 타입 기준으로 P.name()에 바인딩된다. 따라서 결과는 P가 된다.

Question 49정보처리기사 실기 (practical)

다음 중 분산 시스템에서 두 개의 노드가 서로를 기다리며 무한히 대기하는 교착상태(Deadlock)의 발생 필요 조건에 해당하지 않는 것은?

  1. 상호 배제(Mutual Exclusion)
  2. 환형 대기(Circular Wait)
  3. 선점 가능(Preemption) Correct answer.
  4. 점유와 대기(Hold and Wait)

Explanation

교착상태의 네 가지 필요 조건은 상호 배제, 점유와 대기, 비선점, 환형 대기이다. 자원을 강제로 회수할 수 있는 선점 가능은 교착상태를 방지하는 조건이지 발생 조건이 아니다.

Question 50정보처리기사 실기 (practical)

다음 중 소프트웨어 유지보수 유형에서 기존 시스템의 성능 개선이나 코드 리팩터링처럼 기능 변경 없이 구조를 개선하는 활동에 해당하는 것은 무엇인가?

  1. 예방 유지보수(Preventive)
  2. 수정 유지보수(Corrective)
  3. 적응 유지보수(Adaptive)
  4. 완전 유지보수(Perfective) Correct answer.

Explanation

완전 유지보수는 소프트웨어의 기능을 추가하거나 성능을 개선하는 활동으로, 사용자 요구 변화에 대응하거나 코드 품질을 높이는 작업을 포함한다. 리팩터링을 통한 구조 개선도 이 범주에 속한다.