CS 전공 문제 - 데이터베이스, 컴퓨터 구조, 운영체제, 네트워크, 자료 구조, Java, 알고리즘

데이터베이스

다음 중 SQL의 DDL(Data Definition Language)에 속하지 않는 명령어는?

1. DROP
2. ALTER
3. INSERT
4. CREATE

트랜잭션의 ACID 속성 중 여러 트랜잭션이 동시에 실행되더라도 각 트랜잭션이 독립적으로 실행되는 것처럼 보이는 속성은?

1. Consistency
2. Atomicity
3. Durability
4. Isolation

데이터베이스 트랜잭션의 특성을 나타내는 약어로, 원자성, 일관성, 고립성, 지속성을 의미하는 것은?

1. CAP
2. ACID
3. BASE
4. RAID

데이터베이스 인덱스에서 가장 널리 사용되는 자료구조는?

1. Red-Black Tree
2. B-tree
3. AVL Tree
4. Binary Tree

동시성 제어 기법 중 읽기 작업이 쓰기 작업을 차단하지 않도록 하는 방식은?

1. Timestamp Ordering
2. Strict 2PL
3. 2PL
4. MVCC

대규모 데이터베이스에서 데이터를 여러 서버에 분산 저장하는 수평적 분할 기법은?

1. Sharding
2. Partitioning
3. Replication
4. Mirroring

데이터베이스에서 검색 속도를 향상시키기 위해 특정 열에 대해 생성하는 자료 구조는?

1. 트랜잭션
2. 조인
3. 인덱스
4. 정규화

여러 개의 디스크를 하나의 논리적 단위로 사용하여 데이터의 안정성과 성능을 높이는 기술은?

1. RAID
2. SSD
3. SAN
4. NAS

SQL에서 데이터베이스 테이블에서 데이터를 조회하는 데 사용되는 명령어는?

1. INSERT
2. UPDATE
3. SELECT
4. DELETE

데이터베이스에서 각 엔티티를 고유하게 식별하는 속성을 무엇이라고 하는가?

1. 외래 키(Foreign Key)
2. 후보 키(Candidate Key)
3. 복합 키(Composite Key)
4. 기본 키(Primary Key)

데이터베이스에서 중복 데이터를 제거하고 데이터 일관성을 유지하기 위한 프로세스는?

1. 트랜잭션(Transaction)
2. 인덱싱(Indexing)
3. 정규화(Normalization)
4. 클러스터링(Clustering)

SQL에서 두 개 이상의 테이블에서 데이터를 결합하는 데 사용되는 연산은?

1. INTERSECT
2. UNION
3. JOIN
4. DISTINCT

데이터베이스에서 데이터의 무결성을 유지하기 위해 테이블에 설정하는 규칙은?

1. 제약 조건(Constraint)
2. 인덱스(Index)
3. 트리거(Trigger)
4. 뷰(View)

데이터베이스에서 제1정규형(1NF)의 조건은 무엇인가?

1. 이행적 종속성이 없어야 한다
2. 모든 비주요 속성이 기본키에 완전 함수적 종속이어야 한다
3. 모든 결정자가 후보키여야 한다
4. 각 열이 원자값을 가져야 한다

다음 중 제2정규형(2NF)의 정의로 가장 적절한 것은?

1. 모든 열이 원자값을 가져야 한다
2. 1NF이며, 부분적 함수 종속성이 없어야 한다
3. 1NF이며, 이행적 종속성이 없어야 한다
4. 모든 비주요 속성이 후보키에 직접 종속되어야 한다

데이터베이스에서 'ACID'의 'I'가 나타내는 특성은 무엇인가?

1. Integrity (무결성)
2. Immutability (불변성)
3. Idempotence (멱등성)
4. Isolation (격리성)

트랜잭션 격리 수준(transaction isolation level) 중 'dirty read'를 방지할 수 있는 가장 낮은 수준은?

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

다음 SQL 쿼리의 실행 결과와 그 이유를 설명하시오: SELECT department_id, COUNT(*) as emp_count FROM employees e LEFT JOIN departments d ON e.department_id = d.department_id WHERE d.department_name LIKE 'S%' GROUP BY department_id HAVING COUNT(*) > 5 ORDER BY emp_count DESC;

1. 모든 부서 중 직원이 5명 초과인 부서의 ID와 직원 수를 직원 수 내림차순으로 표시하며, S로 시작하는 부서명을 가진 부서만 포함한다.
2. S로 시작하는 부서명을 가진 부서 중 직원이 5명 이상인 부서의 ID와 직원 수를 직원 수 내림차순으로 표시한다.
3. S로 시작하는 부서명을 가진 부서의 ID와 직원 수를 모두 표시하고, 직원 수가 5명 초과인 부서를 직원 수 내림차순으로 정렬한다.
4. S로 시작하는 부서명을 가진 부서 중 직원이 5명 초과인 부서의 ID와 직원 수를 직원 수 내림차순으로 표시한다.

다음 시나리오에서 가장 적절한 해결 방법을 선택하시오: '대규모 데이터베이스 시스템에서 여러 트랜잭션이 동시에 실행되며, 각 트랜잭션은 여러 테이블에 대한 잠금(lock)을 요구합니다. 시스템 모니터링 결과, 주기적으로 데드락이 발생하여 전체 시스템 성능이 저하되고 있습니다.'

1. 모든 트랜잭션에 대해 2단계 잠금 프로토콜(2PL)을 엄격히 적용하여 동시성을 완전히 제거한다.
2. 낙관적 동시성 제어(Optimistic Concurrency Control) 방식으로 전환하여 잠금 사용을 완전히 제거한다.
3. 타임아웃과 재시도 메커니즘을 구현하고, 트랜잭션의 잠금 획득 순서를 일관되게 유지한다.
4. 데드락 감지 알고리즘을 주기적으로 실행하고, 감지된 모든 데드락에 대해 관련된 모든 트랜잭션을 롤백한다.

다음 중 데이터베이스의 이상 현상(Anomaly)에 대한 설명으로 가장 적절한 것은?

1. 이상 현상은 데이터베이스 정규화를 통해 대부분 해결되지만, 때로는 반정규화를 통해 성능을 개선하면서 이상 현상을 완전히 제거할 수 있다.
2. 갱신 이상은 데이터 수정 시 일부 튜플만 변경되어 데이터의 불일치가 발생하는 현상으로, 중복 데이터의 존재로 인해 발생할 수 있다.
3. 삭제 이상은 새로운 데이터 삽입 시 불필요한 NULL 값을 함께 저장해야 하는 현상으로, 주로 복합 키를 사용할 때 해결된다.
4. 삽입 이상은 데이터 삭제 시 연관된 다른 정보가 과도하게 삭제되는 현상으로, 주로 1:N 관계의 테이블에서 발생한다.

INNER JOIN과 OUTER JOIN에 대한 설명 중 틀린 것은?

1. RIGHT OUTER JOIN은 오른쪽 테이블의 모든 데이터와 왼쪽 테이블과 일치하는 데이터를 반환합니다.
2. INNER JOIN은 두 테이블 간 공통된 데이터를 반환합니다.
3. LEFT OUTER JOIN은 왼쪽 테이블의 모든 데이터와 오른쪽 테이블과 일치하는 데이터를 반환합니다.
4. FULL OUTER JOIN은 공통된 데이터만 반환합니다.

다음 데이터베이스의 특성 중 잘못된 설명은?

1. 데이터베이스는 조직체의 공용정보로 여러 사용자가 동시에 공유할 수 있다.
2. 데이터베이스는 사용자의 요청에 따라 실시간으로 서비스되므로 실시간 접근성을 띤다.
3. 저장된 데이터는 데이터 값이 아니라 데이터의 물리적인 위치에 따라 참조된다.
4. 추가, 갱신, 삭제 등을 통해 최신의 데이터를 유지한다.

다음 중 보기 내용의 범주에 해당하는 SQL 명령어로 옳지 않은 것은? 보기 : 테이블의 구조를 생성, 변경, 삭제하는 등 데이터 구조를 정의하는데 사용되는 명령어

1. GRANT
2. ALTER
3. CREATE
4. DROP

하나의 속성이 가질 수 있는 값을 총칭하여 무엇이라고 하는가?

1. 튜플
2. 도메인
3. 엔티티
4. 릴레이션

다음 중 UNION에 대한 설명으로 올바른 것은?

1. 두 테이블에 모두 포함된 행을 검색한다.
2. 두 테이블에 모두 포함된 행을 제거한다.
3. 정렬 작업을 수행하지 않는다.
4. 중복된 데이터를 제거한다.

다음 중 ADMIN 사용자가 다음 작업을 수행할 수 있도록 권한을 부여하기 위한 DCL로 올바른 것은? UPDATE A_USER SET ID = 'ADMIN' WHERE NO = 100;

1. GRANT SELECT, UPDATE ON A_USER TO ADMIN;
2. REVOKE UPDATE ON A_USER TO ADMIN;
3. GRANT UPDATE TO ADMIN;
4. REVOKE SELECT ON A_USER FROM ADMIN;

다음 보기 중에서 데이터베이스 모델링에 대한 특성으로 옳은 것은?

1. ㄱ - 개념적, ㄴ - 물리적
2. ㄱ - 논리적, ㄴ - 개념적
3. ㄱ - 개념적, ㄴ - 논리적
4. ㄱ - 논리적, ㄴ - 물리적

하나 이상의 테이블을 합하여 만든 가상의 테이블을 가리키는 용어는 무엇인가?

1. 저장프로시저
2. 뷰
3. 사용자 함수
4. 트리거

다음 중 SELECT 문장의 실행 순서를 올바르게 나열한 것은?

1. FROM - SELECT - WHERE - GROUP BY - HAVING - ORDER BY
2. FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
3. FROM - WHERE - GROUP BY - ORDER BY - SELECT
4. SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY

다음 중 NULL값에 대한 설명으로 가장 부적절한 것은?

1. 값의 부재를 의미한다.
2. NULL과의 모든 비교(IS NULL 제외)는 알 수 없음(Unknown)을 반환한다.
3. 정의되지 않는 값을 의미한다.
4. 공백문자(Empty String) 혹은 숫자 0을 의미한다.

여러개의 테이블을 연결하여 조회하는 과정을 조인이라고 한다. 이때 동등조건에 의한 테이블 조인방식은 무엇인가?

1. OUTER JOIN
2. CROSS JOIN
3. SELF JOIN
4. INNER JOIN
컴퓨터 구조

캐시 메모리의 지역성 원리 중 하나로, 최근에 접근한 메모리 위치와 인접한 메모리 위치에 곧 접근할 가능성이 높다는 원리는?

1. 순차 지역성
2. 논리 지역성
3. 시간 지역성
4. 공간 지역성

조건문의 결과를 예측하여 파이프라인의 효율을 높이는 CPU 구성요소는?

1. Interrupt Handler
2. Branch Predictor
3. Cache Controller
4. Memory Management Unit

하나의 명령어 사이클에 여러 개의 명령어를 동시에 실행할 수 있는 프로세서 구조는?

1. SIMD
2. MIMD
3. Superscalar
4. VLIW

가상 주소를 물리 주소로 빠르게 변환하기 위해 사용되는 캐시는?

1. L1 Cache
2. L2 Cache
3. Main Memory
4. TLB

CPU에서 명령어 실행 단계를 중첩시켜 처리 속도를 높이는 기법은?

1. 파이프라이닝
2. 멀티태스킹
3. 멀티스레딩
4. 병렬 처리

간단하고 최적화된 명령어 세트를 사용하여 성능을 향상시키는 프로세서 설계 철학은?

1. EPIC
2. CISC
3. VLIW
4. RISC

CPU에서 가장 기본적인 데이터 처리 단위는?

1. 워드(Word)
2. 레지스터(Register)
3. 비트(Bit)
4. 바이트(Byte)

CPU의 주요 구성 요소가 아닌 것은?

1. 제어 장치
2. 산술 논리 장치(ALU)
3. 레지스터
4. 하드 디스크

다음 중 휘발성 메모리는?

1. ROM
2. 플래시 메모리
3. 하드 디스크
4. RAM

다음 중 입력 장치가 아닌 것은?

1. 마우스
2. 프린터
3. 키보드
4. 스캐너

CPU의 성능을 나타내는 단위로 가장 적절한 것은?

1. Pixel (픽셀)
2. Hz (헤르츠)
3. Decibel (데시벨)
4. Byte (바이트)

캐시 메모리(Cache Memory)의 주요 목적은?

1. 그래픽 처리 속도를 높이는 것
2. CPU와 주 메모리 사이의 속도 차이를 줄이는 것
3. 하드 디스크의 용량을 늘리는 것
4. 네트워크 통신 속도를 향상시키는 것

RISC와 CISC 아키텍처의 차이점으로 올바르지 않은 것은?

1. RISC는 복잡한 명령어 세트를 사용하고, CISC는 단순한 명령어 세트를 사용한다
2. RISC는 레지스터 기반 연산을 주로 사용하고, CISC는 메모리 기반 연산을 더 많이 사용한다
3. RISC는 고정 길이 명령어를 사용하고, CISC는 가변 길이 명령어를 사용한다
4. RISC는 적은 수의 어드레싱 모드를 가지고, CISC는 많은 수의 어드레싱 모드를 가진다

다음 중 폰 노이만 구조의 특징이 아닌 것은?

1. 데이터와 명령어를 같은 형식으로 메모리에 저장한다
2. 순차적으로 명령어를 실행한다
3. 데이터와 프로그램을 별도의 메모리에 저장한다
4. 프로그램 내장 방식을 사용한다

패리티 비트(Parity Bit)의 주요 용도는?

1. 데이터 전송 오류 검출
2. 데이터 암호화
3. 데이터 정렬
4. 데이터 압축

CPU의 명령어 실행 사이클(Instruction Cycle)의 주요 단계를 순서대로 설명하고, 각 단계에서 일어나는 일을 간략히 서술하시오.

1. CPU는 명령어 실행 사이클 없이 모든 작업을 동시에 처리한다.
2. Fetch, Decode, Execute, Store 순서로 진행되며, 각 단계에서 명령어 가져오기, 해석, 실행, 결과 저장이 이루어진다.
3. Execute, Fetch, Decode, Store 순서로 진행된다.
4. Fetch, Execute, Decode, Store 순서로 진행된다.

MMU(Memory Management Unit)의 주요 기능과 가상 메모리 관리에서의 역할을 설명하시오.

1. MMU는 네트워크 패킷의 라우팅을 담당하는 장치이다.
2. MMU는 그래픽 처리를 위한 전용 프로세서이다.
3. MMU는 CPU의 산술 연산만을 담당하는 하드웨어 유닛이다.
4. MMU는 가상 주소를 물리 주소로 변환하고, 메모리 보호와 캐시 관리를 담당한다.
운영체제

다음 중 교착상태(Deadlock)의 필요조건이 아닌 것은?

1. 상호 배제
2. 점유와 대기
3. 선점
4. 순환 대기

가상 메모리 관리에서 사용되는 기법이 아닌 것은?

1. 페이징
2. 스와핑
3. 세그멘테이션
4. 인덱싱

CPU가 현재 실행 중인 프로세스를 중단하고 다른 프로세스를 실행하기 위해 상태를 저장하고 복원하는 과정은?

1. Segmentation
2. Context Switching
3. Virtual Memory
4. Paging

페이지 폴트가 지나치게 자주 발생하여 실제 작업보다 페이지 교체에 더 많은 시간을 소비하는 현상은?

1. Fragmentation
2. Race Condition
3. Starvation
4. Thrashing

프로세스 fork 시 메모리 복사를 지연시켜 효율성을 높이는 기법은?

1. Page Replacement
2. Swapping
3. Copy-on-Write
4. Demand Paging

여러 프로세스가 공유 자원에 접근할 때, 접근 가능한 프로세스의 수를 제한하는 동기화 도구는?

1. Spinlock
2. Semaphore
3. Mutex
4. Monitor

가상 메모리 시스템에서 필요한 페이지를 메모리로 가져오고 사용하지 않는 페이지를 디스크로 내보내는 과정은?

1. 페이징
2. 스와핑
3. 프레이밍
4. 세그먼테이션

각 프로세스에 동일한 시간 할당량을 부여하고 순환 순서대로 실행하는 CPU 스케줄링 알고리즘은?

1. 최단 작업 우선
2. FIFO
3. 라운드 로빈
4. 우선순위 기반

다음 중 가장 효율적이면서 실제 구현 가능한 페이지 교체 알고리즘은 무엇인가?

1. FIFO (First-In-First-Out)
2. LRU (Least Recently Used)
3. Optimal
4. Clock

세마포어(Semaphore)와 뮤텍스(Mutex)의 차이점으로 가장 적절한 것은?

1. 뮤텍스는 여러 프로세스의 접근을 허용할 수 있지만, 세마포어는 오직 하나의 프로세스만 접근을 허용한다.
2. 세마포어는 항상 이진 값을 가지지만, 뮤텍스는 여러 개의 값을 가질 수 있다.
3. 세마포어와 뮤텍스는 동일한 기능을 하며, 이름만 다르다.
4. 세마포어는 여러 프로세스의 접근을 허용할 수 있지만, 뮤텍스는 오직 하나의 프로세스만 접근을 허용한다.

운영체제에서 프로세스의 기본적인 상태 전이를 올바르게 나타낸 것은?

1. 초기화(Initialize), 처리(Process), 대기(Wait), 완료(Complete)
2. 시작(Start), 실행(Running), 일시중지(Pause), 종료(End)
3. 준비(Ready), 실행(Running), 대기(Waiting), 종료(Terminated)
4. 생성(Create), 실행(Execute), 중단(Interrupt), 삭제(Delete)

운영체제의 주요 기능 중 하나로, 여러 프로그램이 동시에 실행되는 것처럼 보이게 하는 기능은?

1. 멀티태스킹
2. 메모리 보호
3. 파일 관리
4. 가상화

프로세스의 현재 상태, 다음에 실행할 명령어의 주소 등의 정보를 저장하는 자료 구조는?

1. 디렉토리
2. 페이지 테이블
3. 프로세스 제어 블록(PCB)
4. 파일 디스크립터

운영체제에서 프로세스 간 통신을 위해 사용되는 메커니즘이 아닌 것은?

1. 공유 메모리
2. 메시지 큐
3. 가상 메모리
4. 파이프

운영체제에서 프로세스나 스레드에 CPU 시간을 할당하는 방법을 결정하는 알고리즘은?

1. 파일 할당 알고리즘
2. 페이지 교체 알고리즘
3. 디스크 스케줄링 알고리즘
4. CPU 스케줄링 알고리즘

운영체제에서 프로세스가 실행되는 동안 필요한 자원을 할당받지 못해 더 이상 진행할 수 없는 상태는?

1. 기아 상태(Starvation)
2. 임계 구역(Critical Section)
3. 경쟁 상태(Race Condition)
4. 교착 상태(Deadlock)

운영체제에서 프로세스의 주소 공간을 동일한 크기의 블록으로 나누는 메모리 관리 기법은?

1. 세그먼테이션
2. 페이징
3. 프래그먼테이션
4. 스와핑

운영체제에서 디스크의 저장 공간을 관리하고 파일에 대한 접근을 제어하는 소프트웨어 계층은?

1. 디바이스 드라이버
2. 커널
3. 쉘
4. 파일 시스템

운영체제에서 프로세스보다 더 작은 실행 단위로, 같은 프로세스 내에서 자원을 공유하는 것은?

1. 페이지
2. 스레드
3. 세그먼트
4. 프레임

운영체제에서 PCB(Process Control Block)의 역할과 주요 구성 요소를 설명하시오.

1. PCB는 그래픽 처리 장치의 작업 큐를 관리하는 구조로, 렌더링 작업의 우선순위를 결정한다.
2. PCB는 프로세스 관리를 위한 데이터 구조로, 프로세스 상태, 프로그램 카운터, CPU 레지스터 등의 정보를 포함한다.
3. PCB는 파일 시스템 관리를 위한 구조로, 파일 권한과 디렉토리 구조 정보를 저장한다.
4. PCB는 네트워크 프로토콜 스택을 구현하는 데 사용되며, IP 주소와 포트 번호 정보를 관리한다.

페이지 교체 알고리즘 중 LRU(Least Recently Used)와 FIFO(First-In-First-Out)의 차이점과 각각의 장단점을 설명하시오.

1. LRU와 FIFO는 동일한 알고리즘이며, 페이지 교체 순서에 차이가 없다.
2. LRU는 가장 오래 사용되지 않은 페이지를 교체하고, FIFO는 가장 먼저 들어온 페이지를 교체한다. LRU가 더 효율적이지만 구현이 복잡하다.
3. LRU는 랜덤하게 페이지를 교체하고, FIFO는 페이지 크기에 따라 교체한다.
4. LRU는 가장 최근에 사용된 페이지를 교체하고, FIFO는 가장 나중에 들어온 페이지를 교체한다.

다음 중 데드락(Deadlock) 해결 방법으로 가장 적절하지 않은 것은?

1. 자원에 우선순위를 부여하고 순서대로 할당한다.
2. 프로세스가 필요한 모든 자원을 한 번에 요청하도록 한다.
3. 자원 할당 그래프를 사용하여 순환 대기를 감지하고 해제한다.
4. 모든 프로세스에 무한한 자원을 할당한다.

스레드(Thread)와 프로세스(Process)의 차이점으로 옳지 않은 것은?

1. 스레드는 항상 프로세스보다 더 많은 메모리를 사용한다.
2. 스레드는 프로세스보다 컨텍스트 스위칭 비용이 적게 든다.
3. 프로세스는 독립된 메모리 공간을 가지지만, 스레드는 같은 프로세스 내에서 메모리를 공유한다.
4. 프로세스 간 통신은 스레드 간 통신보다 일반적으로 더 복잡하다.

다음 중 프로세스 간 통신(IPC) 메커니즘에 대한 설명으로 가장 적절한 것은?

1. 공유 메모리는 높은 대역폭을 제공하지만, 동기화 메커니즘의 추가 구현이 필요할 수 있다.
2. 파이프는 네트워크 상의 원격 프로세스 간 통신에 주로 사용되며, 양방향 통신을 기본으로 지원한다.
3. 메시지 큐는 실시간 시스템에서 가장 빠른 IPC 방법으로, 대용량 데이터 전송에 적합하다.
4. 소켓은 로컬 프로세스 간 통신에만 사용되며, 연결 지향적 통신만을 지원한다.

운영체제의 인터럽트(Interrupt)에 대한 설명 중 가장 부적절한 것은?

1. 하드웨어 인터럽트는 I/O 장치에 의해 발생할 수 있으며, 소프트웨어 인터럽트는 예외 상황이나 시스템 호출로 인해 발생할 수 있다.
2. 인터럽트 처리 중에는 다른 인터럽트가 발생할 수 있으며, 이를 관리하기 위해 인터럽트 우선순위 체계가 사용될 수 있다.
3. 인터럽트 처리 루틴은 일반적으로 사용자 모드에서 실행되어 시스템의 보안을 강화한다.
4. 인터럽트는 CPU가 폴링 방식으로 계속 체크하는 것보다 효율적이며, 실시간 응답이 필요한 시스템에서 중요한 역할을 한다.

운영체제의 선점(Preemptive)과 비선점(Non-preemptive) 스케줄링에 대한 설명 중 가장 부적절한 것은?

1. 선점 스케줄링은 우선순위가 높은 프로세스에 CPU를 신속히 할당할 수 있어 실시간 시스템에서 응답성을 개선하며, 이는 시스템의 처리량 향상으로 직결된다.
2. 비선점 스케줄링에서는 프로세스가 자발적으로 CPU를 반환하기 전까지 실행을 계속하므로, 중요 작업의 대기 시간이 길어질 수 있지만 문맥 교환 빈도가 낮아 오버헤드가 감소한다.
3. Round Robin 스케줄링은 선점 방식의 대표적 예로, 각 프로세스에 일정 시간 할당량을 부여해 공평성을 제공하나, 시간 할당량 설정에 따라 문맥 교환 빈도와 응답 시간이 변동될 수 있다.
4. FCFS(First-Come, First-Served)는 비선점 스케줄링의 한 형태로, 구현이 단순하고 기아 현상을 방지할 수 있으나, 실행 시간이 긴 프로세스로 인해 평균 대기 시간이 증가할 수 있다.

프로세스의 크기가 123KB일 때, 10KB 단위로 페이징하여 메모리에 할당하는 상황에서 발생할 수 있는 단편화와 관련하여 옳은 설명은?

1. 프로세스의 크기와 페이지 크기가 동일하지 않으므로 페이징할 때 외부 단편화가 발생한다.
2. 페이징 방식에서는 메모리 블록들이 연속적으로 배치되므로 내부 단편화나 외부 단편화가 발생하지 않는다.
3. 프로세스의 크기가 123KB이고, 10KB 단위로 페이징하여 할당할 경우, 마지막 페이지에 최대 7KB의 남는 공간이 발생할 수 있어 내부 단편화가 생길 가능성이 있다.
4. 프로세스 크기가 페이지 크기의 정수배로 나뉘어지므로 어떤 단편화도 발생하지 않는다.
네트워크

OSI 7계층 모델에서 HTTP, FTP, SMTP 등의 프로토콜이 동작하는 계층은?

1. Data Link Layer
2. Transport Layer
3. Network Layer
4. Application Layer

다음 중 비연결지향적이며 신뢰성이 없는 전송 프로토콜은?

1. TCP
2. HTTP
3. UDP
4. IP

TCP 연결 설정 과정에서 사용되는 프로세스는?

1. 2-way handshake
2. 4-way handshake
3. 3-way handshake
4. 1-way handshake

이더넷에서 사용되는 매체 접근 제어 방식으로, 충돌 감지 기능이 있는 것은?

1. CDMA
2. TDMA
3. FDMA
4. CSMA/CD

인터넷 서비스 제공자(ISP) 간의 라우팅에 주로 사용되는 프로토콜은?

1. BGP
2. OSPF
3. RIP
4. EIGRP

사설 IP 주소를 공인 IP 주소로 변환하는 기술은?

1. DNS
2. NAT
3. DHCP
4. ARP

IP 주소에서 네트워크 부분과 호스트 부분을 구분하는데 사용되는 것은?

1. 서브넷 마스크
2. 게이트웨이
3. DHCP
4. DNS

네트워크 통신을 7개의 계층으로 나누어 설명하는 참조 모델은?

1. OSI 모델
2. TCP/IP 모델
3. FTP 모델
4. HTTP 모델

TCP의 3-way handshake 과정은 무엇인가?

1. IP 주소를 할당받는 과정
2. 네트워크 계층에서 라우팅 경로를 설정하는 과정
3. SYN, SYN-ACK, ACK 순서로 진행되는 연결 설정 과정
4. 데이터 전송을 위한 암호화 과정

IP 주소를 MAC 주소로 변환하는 프로토콜은?

1. DNS
2. ICMP
3. DHCP
4. ARP

웹 페이지를 전송하는 데 주로 사용되는 프로토콜은?

1. SMTP
2. FTP
3. HTTP
4. TCP

네트워크 장치 중 여러 개의 네트워크 세그먼트를 연결하는 장치는?

1. 스위치
2. 리피터
3. 허브
4. 모뎀

인터넷 통신의 기본이 되는 프로토콜 스위트는?

1. SMTP/POP3
2. FTP/SFTP
3. HTTP/HTTPS
4. TCP/IP

이메일을 보내는 데 사용되는 프로토콜은?

1. IMAP
2. SMTP
3. HTTP
4. POP3

네트워크 계층에서 패킷의 경로를 결정하는 과정을 무엇이라고 하는가?

1. 필터링
2. 브리징
3. 스위칭
4. 라우팅

다음 중 신뢰성 있는 연결 지향적 프로토콜은?

1. ICMP
2. TCP
3. IP
4. UDP

네트워크에서 동적으로 IP 주소를 할당하는 프로토콜은?

1. SNMP
2. DNS
3. NAT
4. DHCP

도메인 이름을 IP 주소로 변환하는 시스템은?

1. ARP
2. NAT
3. DHCP
4. DNS

TCP의 혼잡 제어 알고리즘 중, 네트워크 혼잡이 감지되면 전송 속도를 절반으로 줄이고, 혼잡이 해소되면 선형적으로 증가시키는 방식은?

1. AIMD (Additive Increase/Multiplicative Decrease)
2. Slow Start
3. Fast Retransmit
4. Congestion Avoidance

다음 중 비연결형 프로토콜인 UDP가 제공하지 않는 기능은?

1. 멀티캐스팅
2. 흐름 제어
3. 포트 번호
4. 체크섬

TLS/SSL 프로토콜의 주요 목적이 아닌 것은?

1. 데이터 기밀성
2. 데이터 압축
3. 데이터 무결성
4. 인증

다음 중 DDoS(Distributed Denial of Service) 공격의 특징이 아닌 것은?

1. 봇넷(Botnet)을 이용하여 공격의 규모를 확장할 수 있다.
2. 다수의 컴퓨터나 디바이스를 이용하여 동시에 공격한다.
3. 대상 서버나 네트워크의 자원을 고갈시켜 서비스를 마비시킨다.
4. 공격자의 IP 주소를 쉽게 추적하여 즉시 차단할 수 있다.

대칭키 암호화와 공개키 암호화에 대한 설명 중 가장 적절한 것은?

1. 대칭키 암호화는 디지털 서명에 주로 사용되며, 공개키 암호화는 세션 키 교환에 사용된다.
2. 공개키 암호화는 단일 키를 사용하여 보안성이 높고, 키 배포가 간단하여 대규모 네트워크에서 효율적이다.
3. 대칭키 암호화는 암호화와 복호화에 서로 다른 키를 사용하여 키 관리가 용이하지만, 암호화 속도가 느리다.
4. 공개키 암호화는 키 배포 문제를 해결하지만, 대칭키 암호화에 비해 연산 속도가 느려 대용량 데이터 암호화에는 적합하지 않을 수 있다.

OSI 7계층 모델에서 각 계층의 데이터 단위에 대한 설명 중 가장 부적절한 것은?

1. 데이터 링크 계층에서는 프레임(frame)을 사용하여 데이터를 전송하며, 에러 검출과 수정 기능을 제공한다.
2. 전송 계층에서는 데이터가 세그먼트(segment)로 나뉘어 전송되며, 흐름 제어나 오류 제어를 담당한다.
3. 물리 계층에서는 실제로 전송되는 비트(bit)로 데이터를 처리한다.
4. 네트워크 계층에서는 데이터 전송 시 세그먼트(segment)를 사용하여 데이터를 전송한다.

다음 중 ARP (Address Resolution Protocol)에 대한 설명으로 가장 적절한 것은?

1. ARP는 IP 주소를 이용해 해당 IP 주소에 대응하는 MAC 주소를 찾기 위해 사용되는 프로토콜이다.
2. ARP는 응용 계층에서 사용되는 프로토콜로, 데이터 전송의 신뢰성을 보장한다.
3. ARP는 MAC 주소를 이용해 해당 MAC 주소에 대응하는 IP 주소를 찾기 위해 사용되는 프로토콜이다.
4. ARP는 네트워크 계층에서 IP 주소를 라우팅하기 위해 사용되는 프로토콜이다.

RARP (Reverse Address Resolution Protocol)에 대한 설명으로 가장 부적절한 것은?

1. RARP는 IP 주소를 이용해 MAC 주소를 찾는 프로토콜이다.
2. RARP는 주로 로컬 네트워크에서 IP 주소를 할당받지 않은 장치가 자신의 IP 주소를 알아내기 위해 사용된다.
3. RARP는 네트워크 초기에 사용되었으나, 지금은 BOOTP나 DHCP로 대체되었다.
4. RARP는 MAC 주소를 이용해 IP 주소를 찾는 프로토콜로, 주로 디스크 없는 클라이언트가 자신의 IP 주소를 찾기 위해 사용한다.

다음 중 네트워크 장치인 리피터, 브리지, 게이트웨이, 라우터에 대한 설명 중 가장 부적절한 것은?

1. 라우터는 네트워크 계층에서 작동하며, IP 주소를 기반으로 데이터를 다른 네트워크로 라우팅하는 역할을 한다.
2. 브리지는 두 개의 네트워크를 연결하여 트래픽을 필터링하고 충돌 도메인을 분리하는 역할을 한다.
3. 게이트웨이는 동일한 네트워크 내의 장치들 간의 데이터 전송을 중계하는 장치로, 주로 물리 계층에서 작동한다.
4. 리피터는 신호를 증폭하거나 재생성하여 신호 손실을 방지하고 물리적 거리를 확장하는 역할을 한다.

다음 중 데이터 전송에서 오류 제어 방법에 대한 설명으로 가장 부적절한 것은?

1. 순환 중복 검사(CRC)는 블록 단위의 오류 검출을 위한 효율적인 방법으로, 여러 비트 오류를 효과적으로 감지할 수 있다.
2. 패리티 비트(parity bit)는 여러 비트 오류를 동시에 감지할 수 있는 강력한 오류 검출 방법이다.
3. 자동 재전송 요청(ARQ)은 오류가 발생한 패킷을 재전송하는 방식으로, 신뢰성 있는 데이터 전송을 보장한다.
4. 해밍 코드(Hamming Code)는 데이터 전송 중 발생하는 단일 비트 오류를 검출하고 교정할 수 있는 방법이다.

다음 중 네트워크 공격 방식에 대한 설명으로 가장 부적절한 것은?

1. 피싱(Phishing)은 신뢰할 수 있는 기관으로 가장해 사용자의 개인 정보를 빼내기 위한 소셜 엔지니어링 기법이다.
2. DDoS 공격은 하나의 컴퓨터에서 발생하며, 주로 특정 서버에 집중적인 요청을 보내 서버의 자원을 고갈시키는 공격이다.
3. 맨 인 더 미들(Man-in-the-Middle, MITM) 공격은 공격자가 통신 경로에 개입하여 양측의 데이터를 가로채거나 변조하는 방식이다.
4. 스니핑(Sniffing)은 네트워크 상의 데이터를 가로채어 민감한 정보를 수집하는 공격 방식이다.

다음 중 3-way Handshaking 과정에서 발생할 수 있는 상황에 대한 설명으로 가장 부적절한 것은?

1. 클라이언트가 SYN 패킷을 보낸 후 일정 시간이 지나도 응답이 없으면, 타임아웃이 발생하고 SYN 패킷을 다시 보낸다.
2. 3-way Handshaking이 완료되면 클라이언트와 서버 간의 연결이 정상적으로 설정되어 데이터를 주고받을 수 있다.
3. 서버가 SYN-ACK 패킷을 보낸 후 클라이언트로부터 ACK 응답을 받지 못하면 일정 시간이 지나 재전송을 시도한다.
4. SYN 패킷이 손실된 경우, 수신자는 자동으로 ACK 패킷을 전송하여 연결 설정을 마무리한다.

다음 중 사용자가 브라우저에 www.example.com을 입력했을 때 일어나는 과정의 순서로 가장 적절한 것은?

1. 1. DNS 서버 조회 -> 2. IP 주소 반환 -> 3. 라우터를 통해 경로 설정 -> 4. 서버에 요청 전송
2. 1. 라우터를 통해 경로 설정 -> 2. DNS 서버 조회 -> 3. IP 주소 반환 -> 4. 서버에 요청 전송
3. 1. 서버에 요청 전송 -> 2. 라우터를 통해 경로 설정 -> 3. DNS 서버 조회 -> 4. IP 주소 반환
4. 1. IP 주소 반환 -> 2. DNS 서버 조회 -> 3. 서버에 요청 전송 -> 4. 라우터를 통해 경로 설정

다음 중 CDN(Content Delivery Network)과 관련된 설명으로 가장 부적절한 것은?

1. CDN은 전 세계에 분산된 캐시 서버를 사용하여 사용자에게 더 가까운 위치에서 콘텐츠를 제공함으로써 응답 속도를 향상시킨다.
2. CDN을 사용하면 트래픽이 증가하는 상황에서도 안정적인 콘텐츠 전달이 가능하며, 특히 대규모 사용자 요청을 효율적으로 처리할 수 있다.
3. CDN은 주로 클라이언트가 요청할 때마다 원본 서버에서 데이터를 직접 가져오므로, 서버 부하를 줄이는 데 큰 기여를 하지 못한다.
4. CDN은 서버 부하를 분산시키고 네트워크 트래픽을 최적화하여 웹 사이트의 성능을 향상시킨다.

다음 중 DHCP(Dynamic Host Configuration Protocol)의 동작 과정과 관련하여 가장 부적절한 것은?

1. DHCP 서버는 클라이언트로부터 요청을 받은 후, 클라이언트에게 사용 가능한 IP 주소를 할당하고 리스 기간을 함께 전달한다.
2. DHCP 프로세스에는 클라이언트와 DHCP 서버 간의 IP 할당을 위해 DISCOVER, OFFER, REQUEST, ACKNOWLEDGE 네 가지 단계가 포함된다.
3. 클라이언트가 네트워크에 연결되면, DHCP 서버에 IP 주소 요청을 보내기 전에 먼저 할당받을 IP 주소를 직접 설정해야 한다.
4. DHCP는 클라이언트가 IP 주소를 재사용하지 않도록 리스 기간이 만료되면 IP 주소를 회수하여 다른 클라이언트에 할당할 수 있게 한다.

다음 중 웹 서핑을 할 때 사용되는 프로토콜이 아닌 것은 어느 것인가?

1. DNS
2. SMTP
3. HTTP
4. TCP

다음 중 인터넷상 시스템을 유일하게 식별할 수 있게 해주는 주소는 어느 것인가?

1. 127.0.0.1
2. 172.16.2.200
3. 191.168.10.100
4. 10.100.100.200

다음 중 IP Addressing에서 A, B, C 클래스 등과 같이 클래스 네트워크를 구분하기 위해 사용하는 것은?

1. 서브넷마스크(subnet mask)
2. 디폴트넷마스크(default netmask)
3. 와일드카드 마스크(wildcard mask)
4. 슈퍼넷 마스크(supernet mask)

NAT를 사용하는 목적으로 올바르지 않은 것은?

1. 사설 네트워크를 공중망에 연결하기 위해
2. 내부 네트워크를 보호하기 위해
3. 공인 IP 주소를 절약하기 위해
4. 사설 네트워크 간에 통신을 위해

다음 중 원격 네트워크 간에 안전하게 암호화된 데이터 통신이 가능하도록 하는 기술은 무엇인가?

1. SWITCHING
2. ROUTING
3. VPN
4. NAT

UDP 프로토콜을 이용해서 원격 시스템까지의 경로를 확인하는 명령은 어느 것인가?

1. nslookup
2. traceroute
3. ping
4. netstat

주어진 네트워크가 192.168.10.128/25일 때 게이트웨이 주소로 사용할 수 있는 것은?

1. 192.168.10.1
2. 192.168.10.255
3. 192.168.10.150
4. 192.168.10.128

다음 중 서비스 프로토콜과 전송계층 프로토콜, 기본 포트번호가 잘못 연결된 것은?

1. DNS - UDP 53번
2. SSH - TCP 22번
3. FTP - TCP 21번
4. SMTP - UDP 25번

다음 프로토콜 중 수신된 패킷을 경로 배정하여 목적지 방향으로 보내기 위해 사용하는 장비는 무엇인가?

1. Repeater
2. Router
3. Switch
4. Hub

SSH 서비스를 이용할 때 키를 통한 인증을 하려고 한다. 이때 서버와 클라이언트에 각각 어떤 키가 있어야 하는가?

1. 서버: 개인키 - 클라이언트: 공개키
2. 서버: 개인키 - 클라이언트: 대칭키
3. 서버: 공개키 - 클라이언트: 개인키
4. 서버: 대칭키 - 클라이언트: 대칭키
자료 구조

키-값 쌍을 저장하고 평균 O(1) 시간 복잡도로 검색할 수 있는 자료 구조는?

1. 이진 트리
2. 힙
3. 그래프
4. 해시 테이블

자가 균형 이진 탐색 트리로, 어떤 노드의 왼쪽과 오른쪽 서브트리의 높이 차이가 최대 1인 트리는?

1. 레드-블랙 트리
2. AVL 트리
3. 이진 검색 트리
4. B-트리

데이터베이스 인덱싱과 파일 시스템에서 자주 사용되는, 삽입과 삭제 연산이 효율적인 자가 균형 이진 탐색 트리는?

1. AVL 트리
2. B-트리
3. 레드-블랙 트리
4. 이진 힙

해시 테이블에서 충돌 해결을 위해 각 버킷에 연결 리스트를 사용하는 방법은?

1. 체이닝(Chaining)
2. 선형 탐사(Linear Probing)
3. 이차 탐사(Quadratic Probing)
4. 더블 해싱(Double Hashing)

스택(Stack) 자료구조가 따르는 원칙은?

1. FIFO (First In First Out)
2. FILO (First In Last Out)
3. LILO (Last In Last Out)
4. LIFO (Last In First Out)

Array, ArrayList, LinkedList에 대한 설명 중 가장 적절한 것은?

1. ArrayList는 내부적으로 배열을 사용하여 인덱스 기반 접근이 빠르지만, 중간 요소의 삽입과 삭제 시 성능이 저하될 수 있다.
2. LinkedList는 요소 간 연결을 통해 데이터를 저장하여 메모리 사용이 효율적이며, 모든 위치에서의 삽입과 삭제가 ArrayList보다 빠르다.
3. Array는 크기가 가변적이어서 동적으로 요소를 추가하거나 제거할 수 있으며, 객체와 기본 타입 모두를 저장할 수 있다.
4. ArrayList와 LinkedList는 모두 스레드 안전하여 멀티스레드 환경에서 동기화 없이 사용할 수 있으며, 정렬된 데이터 유지에 최적화되어 있다.
Java

Java에서 'Hello, World!'를 출력하는 올바른 문장은?

1. print("Hello, World!");
2. console.log("Hello, World!");
3. echo "Hello, World!";
4. System.out.println("Hello, World!");

Java의 기본 데이터 타입이 아닌 것은?

1. String
2. char
3. int
4. boolean

Java에서 클래스의 인스턴스를 생성하는 키워드는?

1. instance
2. make
3. new
4. create

Java에서 배열의 첫 번째 요소의 인덱스는?

1. 0
2. 배열에 따라 다르다
3. 1
4. -1

Java에서 클래스 내의 메소드나 변수에 접근하기 위해 사용하는 키워드는?

1. current
2. my
3. this
4. self

Java에서 상속을 구현할 때 사용하는 키워드는?

1. implements
2. extends
3. super
4. inherit

Java에서 예외 처리를 위해 사용되는 키워드 조합으로 올바른 것은?

1. attempt, catch, eventually, throw, throws
2. try, catch, finally, throw, throws
3. try, catch, lastly, throw, thrown
4. try, except, finally, raise, raises

Java에서 인터페이스(interface)와 추상 클래스(abstract class)의 차이점으로 올바르지 않은 것은?

1. 인터페이스의 모든 메소드는 기본적으로 public abstract이다.
2. 추상 클래스는 생성자를 가질 수 있지만, 인터페이스는 생성자를 가질 수 없다.
3. Java 8 이후, 인터페이스는 default 메소드를 가질 수 있다.
4. 인터페이스는 다중 상속을 지원하지 않지만, 추상 클래스는 다중 상속을 지원한다.

Java의 컬렉션 프레임워크에서, 중복을 허용하지 않고 순서를 유지하지 않는 자료구조는?

1. TreeSet
2. LinkedList
3. ArrayList
4. HashSet

Java에서 스레드를 생성하는 두 가지 방법은?

1. Threaded 클래스 상속과 Callable 인터페이스 구현
2. Thread 클래스 상속과 Callable 인터페이스 구현
3. Thread 클래스 상속과 Runnable 인터페이스 구현
4. Threaded 클래스 상속과 Runnable 인터페이스 구현

Java의 접근 제어자 중 가장 제한적인 것은?

1. public
2. default (package-private)
3. private
4. protected

다음 중 Java의 람다식(Lambda Expression)에 대한 설명으로 올바르지 않은 것은?

1. 람다식은 모든 인터페이스에 사용할 수 있다.
2. 람다식은 함수형 인터페이스를 구현하는 데 사용된다.
3. 람다식은 Java 8부터 도입되었다.
4. 람다식은 코드를 더 간결하게 만들 수 있다.

Java에서 String 객체의 특징으로 올바르지 않은 것은?

1. String 객체는 가변(mutable)이다.
2. String 객체는 불변(immutable)이다.
3. String 객체는 String Pool에 저장될 수 있다.
4. String 객체는 문자열 리터럴로 생성할 수 있다.

StringBuffer와 StringBuilder의 차이점으로 가장 적절한 것은?

1. StringBuilder는 동기화되어 있어 스레드 안전하지만, StringBuffer는 그렇지 않다.
2. StringBuffer는 동기화되어 있어 스레드 안전하지만, StringBuilder는 그렇지 않다.
3. StringBuilder는 Java 5 이전 버전에서만 사용 가능하다.
4. StringBuffer는 가변적이지만, StringBuilder는 불변이다.

다음 중 JVM(Java Virtual Machine)의 주요 구성 요소가 아닌 것은?

1. Runtime Data Area
2. Class Loader
3. Java Compiler
4. Execution Engine

JVM의 메모리 영역 중, 객체와 배열이 생성되는 영역은?

1. Heap
2. Stack
3. PC Register
4. Method Area

다음 중 String 객체를 생성하는 방법으로 String Pool을 사용하지 않는 것은?

1. String str = "Hello".intern();
2. String str = "Hello";
3. String str = new String("Hello");
4. String str = "Hel" + "lo";

JVM의 가비지 컬렉션(Garbage Collection)에 대한 설명으로 올바르지 않은 것은?

1. 가비지 컬렉션은 주로 힙 메모리를 대상으로 한다.
2. 프로그래머가 직접 가비지 컬렉션을 실행할 수 있다.
3. 더 이상 참조되지 않는 객체의 메모리를 회수한다.
4. 가비지 컬렉션이 실행되는 동안 애플리케이션의 실행이 일시적으로 중단될 수 있다.

Java의 Garbage Collection에서 'Stop-the-World' 현상을 최소화하기 위한 방법으로 적절하지 않은 것은?

1. G1 (Garbage First) GC를 사용한다.
2. 객체 풀링(Object Pooling)을 활용하여 객체 생성을 최소화한다.
3. System.gc()를 주기적으로 호출하여 GC를 직접 제어한다.
4. 힙 크기를 적절히 조정하여 Full GC 빈도를 줄인다.

Java의 ThreadLocal에 대한 설명으로 옳지 않은 것은?

1. ThreadLocal 사용 시 메모리 누수에 주의해야 한다.
2. ThreadLocal 변수는 모든 스레드 간에 공유된다.
3. 각 스레드는 ThreadLocal 변수의 자체 복사본을 가진다.
4. ThreadLocal은 스레드 안전성을 제공한다.

Java의 Reflection API를 사용할 때의 단점으로 가장 적절하지 않은 것은?

1. Reflection은 컴파일 시점 타입 검사를 우회한다.
2. Reflection은 일반적인 메소드 호출보다 성능이 떨어진다.
3. Reflection은 항상 런타임 에러를 발생시킨다.
4. Reflection을 사용하면 캡슐화가 깨질 수 있다.

Java의 Concurrent 패키지에서 제공하는 Lock 인터페이스와 synchronized 키워드의 차이점으로 옳지 않은 것은?

1. Lock은 tryLock() 메소드로 비차단 락 획득을 지원한다.
2. Lock은 항상 synchronized보다 더 나은 성능을 제공한다.
3. Lock은 공정성 정책을 지원할 수 있다.
4. Lock은 락 획득 시도를 중단할 수 있는 기능을 제공한다.

Java의 Fork/Join 프레임워크에 대한 설명으로 옳지 않은 것은?

1. Fork/Join 프레임워크는 단일 코어 시스템에서 가장 효과적으로 동작한다.
2. 분할 정복(divide and conquer) 알고리즘 구현에 적합하다.
3. RecursiveTask와 RecursiveAction 클래스를 제공한다.
4. work-stealing 알고리즘을 사용하여 작업 분배를 최적화한다.

Java의 ClassLoader에 대한 설명으로 옳지 않은 것은?

1. ClassLoader는 클래스의 동적 로딩을 가능하게 한다.
2. 모든 ClassLoader는 항상 부모 ClassLoader에게 클래스 로딩을 위임한다.
3. Bootstrap ClassLoader는 Java의 핵심 클래스를 로드한다.
4. 사용자 정의 ClassLoader를 구현할 수 있다.

Java에서의 메서드 호출 방식과 관련하여 Call By Value와 Call By Reference에 대한 설명 중 가장 부적절한 것은?

1. Java에서 기본 데이터 타입(int, float 등)을 메서드의 인자로 전달할 때는 값의 복사본이 전달되어 Call By Value로 동작하며, 메서드 내에서 매개변수 값을 변경해도 호출자의 원본 변수에는 영향을 주지 않는다.
2. Java에서 String 객체를 메서드의 인자로 전달할 때, String의 불변성으로 인해 메서드 내에서 새로운 String 객체를 할당하는 경우 호출자의 원본 String 객체는 변경되지 않아 Call By Value와 유사한 동작을 보인다.
3. Java에서 객체를 메서드의 인자로 전달할 때 참조의 복사본이 전달되므로, 이는 순수한 Call By Reference로 볼 수 있으며 메서드 내에서 객체의 상태를 변경하면 원본 객체에도 항상 영향을 미친다.
4. Java에서 배열을 메서드의 인자로 전달할 때 배열의 참조가 복사되어 전달되므로, 메서드 내에서 배열 요소의 값을 변경하면 원본 배열에도 반영되지만, 새로운 배열을 할당하는 경우에는 원본 참조에 영향을 주지 않는다.

다음 중 자바 프로그램의 컴파일과 실행 과정의 올바른 순서를 고르시오.

1. 1) 소스 파일을 작성한다, 2) 자바 컴파일러를 사용해 바이트 코드(.class 파일)로 변환한다, 3) JVM이 바이트 코드를 실행한다.
2. 1) 자바 컴파일러로 바로 실행한다, 2) 소스 파일을 작성한다, 3) JVM이 결과를 실행한다.
3. 1) 소스 파일을 작성하고, 2) JVM이 소스 파일을 바로 실행한다, 3) 실행 결과를 확인한다.
4. 1) 자바 컴파일러로 바이트 코드를 작성한다, 2) 소스 파일을 실행한다, 3) JVM이 컴파일한다.

다음 중 자바에서 String 객체가 불변(immutable)인 이유로 올바른 설명을 고르시오.

1. String 객체는 불변성이 보장되어 보안성, 메모리 효율성, 멀티스레드 환경에서 안전하게 사용될 수 있다.
2. String 객체는 프로그램 성능을 높이기 위해 매번 새로 생성된다.
3. String 객체는 수정이 자주 일어나므로 불변으로 만들어졌다.
4. String 객체는 기본 타입이기 때문에 불변으로 정의되어 있다.

다음 중 자바의 접근 제어자에 대한 설명으로 올바르지 않은 것은?

1. protected 접근 제어자는 같은 패키지 내와 다른 패키지의 모든 클래스에서 접근이 가능하다.
2. private 접근 제어자는 선언된 클래스 내에서만 접근이 가능하다.
3. public 접근 제어자는 어떤 클래스에서도 접근이 가능하다.
4. default 접근 제어자는 같은 패키지 내에서만 접근이 가능하다.

다음 중 JVM(Java Virtual Machine) 구조의 구성 요소와 그 역할에 대한 설명으로 올바르지 않은 것은?

1. 클래스 로더는 자바 클래스 파일을 로드하고, 이를 메모리에 배치하는 역할을 한다.
2. JIT 컴파일러는 바이트코드를 직접 실행하는 방식으로, 자바 애플리케이션의 실행 속도를 높인다.
3. 메모리 영역 중 힙(Heap) 영역은 객체와 인스턴스 변수가 저장되는 공간이다.
4. 실행 엔진은 바이트코드를 기계어로 변환하여 CPU가 이해할 수 있도록 한다.

다음 중 Java의 Garbage Collection(GC)에 대한 설명으로 올바르지 않은 것은?

1. G1 GC는 큰 힙 메모리와 짧은 지연 시간을 목표로 설계된 GC 방식이다.
2. Parallel GC는 멀티 스레드를 활용하여 GC 성능을 향상시킨다.
3. GC는 사용되지 않는 객체를 메모리에서 자동으로 제거한다.
4. GC는 메모리 관리 중 애플리케이션이 항상 중단 없이 동작하도록 보장한다.

다음 중 자바의 추상 클래스와 인터페이스에 대한 설명으로 옳은 것은?

1. 추상 클래스는 상수만 가질 수 있으며, 인터페이스는 상수와 메서드만 가질 수 있다.
2. 인터페이스는 다중 구현이 가능하지만, 추상 클래스는 다중 상속이 불가능하다.
3. 추상 클래스와 인터페이스 모두 변수를 가질 수 있다.
4. 인터페이스는 구체적인 메서드를 가질 수 없으며, 모든 메서드는 추상적이다.
알고리즘

다음 중 정렬 알고리즘에 대한 설명으로 옳은 것은?

1. 버블 정렬은 항상 O(n log n)의 시간 복잡도를 가진다.
2. 병합 정렬은 추가 메모리를 사용하지 않는 제자리(in-place) 정렬 알고리즘이다.
3. 선택 정렬은 안정적(stable) 정렬 알고리즘이다.
4. 퀵 정렬의 평균 시간 복잡도는 O(n log n)이지만, 최악의 경우 O(n^2)가 될 수 있다.
해설 보기
Chat GPT 4o mini
메인화면