포스트

[정보처리기사] 2020 정보처리기사 필기 문제풀이 (2)

Computer Science / 정보처리기사

정보처리기사 필기 대비 문제풀이 (데이터베이스 구축, 프로그래밍 언어 활용)

view

Question #1

SQL의 분류 중 DDL에 해당하지 않는 것은?

지문

  1. UPDATE
  2. ALTER
  3. DROP
  4. CREAT

풀이

문제 풀이 접기/펼치기
  1. DDL (Data Definition Language)

    정의: 데이터베이스 구조(테이블, 스키마)를 정의/변경하는 명령어

    • ALTER: 테이블 구조 변경 (예: 컬럼 추가)

    • DROP: 테이블/뷰 삭제

    • CREATE: 테이블/뷰 생성

  2. DML (Data Manipulation Language)

    정의: 데이터 조회/수정/삭제를 위한 명령어

    • UPDATE: 데이터 수정 → DML에 해당
  3. 기타 SQL 분류

    DCL (Data Control Language): 권한 관리 (GRANT, REVOKE)

    TCL (Transaction Control Language): 트랜잭션 관리 (COMMIT, ROLLBACK)

  • DDL vs DML

    구분DDLDML
    용도구조 정의데이터 조작
    예시CREATE, ALTER, DROPSELECT, INSERT, UPDATE
    특징자동 COMMIT (롤백 불가)명시적 COMMIT 필요

Question #2

정규화 과정 중 1NF에서 2NF가 되기 위한 조건은?

지문

  1. 1NF를 만족하고 모든 도메인이 원자값이어야 한다.
  2. 1NF를 만족하고, 키가 아닌 모든 애트리뷰트들이 기본키에 이해적으로 함수 종속되지 않아야 한다.
  3. 1NF를 만족하고 다치 종속이 제거되어야 한다.
  4. 1NF를 만족하고 키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족해야 한다.

풀이

문제 풀이 접기/펼치기
  • 제1정규형(1NF)

    조건: 모든 도메인이 원자값(Atomic Value)이어야 함

    • 예시

      1
      2
      
      비정규화 테이블: (학생ID, {과목1, 과목2}) → 중복 그룹 존재
      1NF 변환: (학생ID, 과목) → 원자값으로 분해
      
  • 제2정규형(2NF)

    • 조건

      1. 1NF를 만족

      2. 부분 함수 종속 제거 (모든 키가 아닌 모든 속성이 기본키에 완전 함수적 종속)

    • 예시

      1
      2
      3
      4
      5
      6
      7
      
      테이블: (학생ID, 과목ID, 성적, 과목명)
      기본키: (학생ID, 과목ID)
      문제점: '과목명'은 과목ID에만 종속 → 부분 종속 존재
      
      2NF 변환:
      - (학생ID, 과목ID, 성적)
      - (과목ID, 과목명)
      
  1. 1NF를 만족하고 모든 도메인이 원자값이어야 한다.

    1NF의 조건을 재언급 (2NF와 무관)

  2. 1NF를 만족하고, 키가 아닌 모든 애트리뷰트들이 기본키에 이해적으로 함수 종속되지 않아야 한다.

    “이해적 함수 종속”은 비표현 용어

  3. 1NF를 만족하고 다치 종속1이 제거되어야 한다.

    다치 종속 제거는 4NF의 조건

  4. 1NF를 만족하고 키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족해야 한다.

Question #3

데이터 무결성 제약조건 중 “개체 무결성 제약” 조건에 대한 설명으로 맞는 것은?

지문

  1. 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야 한다.
  2. 기본키에 속해 있는 애트리뷰트는 NULL 값이나 중복 값을 가질 수 없다.
  3. 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
  4. 외래키 값은 참조 릴레이션의 기본키 값과 동일해야 한다.

풀이

문제 풀이 접기/펼치기
  1. 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야 한다.

    • 도메인 무결성(Domain Integrity)

      모든 속성 값은 정의된 도메인(데이터 타입, 범위)을 준수해야 함

  2. 기본키에 속해 있는 애트리뷰트는 NULL 값이나 중복 값을 가질 수 없다.

    • 개체 무결성(Entity Integrity)

      기본키(Primary Key)는 NULL이 될 수 없으며, 중복 값을 가질 수 없습니다.

      모든 릴레이션은 기본키를 통해 각 튜플을 고유하게 식별해야 합니다.

  3. 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.

    • 참조 무결성(Referential Integrity)

      외래키는 참조하는 테이블의 기본키 값이거나 NULL이어야 함

  4. 외래키 값은 참조 릴레이션의 기본키 값과 동일해야 한다.

    외래키는 기본키 값 또는 NULL일 수 있음 (반드시 동일할 필요 없음)

Question #4

데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL은?

지문

  1. 트리거(Trigger)
  2. 무결성(Integrity)
  3. 잠금(Lock)
  4. 복귀(Rollback)

풀이

문제 풀이 접기/펼치기
  1. 트리거(Trigger)

    특정 이벤트(INSERT, UPDATE, DELETE 등)가 발생할 때 자동으로 실행되는 절차형 SQL

    조건과 동작을 미리 정의해 두고, 이벤트 발생 시 DBMS가 자동 호출

    • 주요 용도

      데이터 무결성 강화 (예: 외래키 참조 시 자동 검사)

      로깅 또는 감사(Audit) 목적 (예: 변경 이력 기록)

      복잡한 비즈니스 규칙 자동화

  2. 무결성(Integrity)

    데이터 정확성을 보장하는 규칙 (제약조건)

  3. 잠금(Lock)

    동시성 제어를 위한 메커니즘

  4. 복귀(Rollback)

    트랜잭션 취소 (TCL 명령어)

Question #5

데이터베이스의 논리적 설계(Logical Design) 단계에서 수행하는 작업이 아닌 것은?

지문

  1. 레코드 집중의 분석 및 설계
  2. 논리적 데이터베이스 구조로 매핑(mapping)
  3. 트랜잭션 인터페이스 설계
  4. 스키마의 평가 및 정제

풀이

문제 풀이 접기/펼치기
  • 논리적 설계의 핵심 작업

    1. 논리적 데이터베이스 구조 매핑: ERD → 관계형 스키마 변환 (테이블, 키 정의)

    2. 스키마 평가 및 정제: 정규화, 성능 검토

    3. 트랜잭션 인터페이스 설계: 사용자 인터페이스, 즉 트랜잭션을 통해 데이터베이스에 접근하고 조작하는 방식을 설계

  1. 레코드 집중의 분석 및 설계

    데이터 접근 빈도, 저장 공간 계산 등 물리적 저장 구조 최적화와 관련됨

  2. 논리적 데이터베이스 구조로 매핑(mapping)

  3. 트랜잭션 인터페이스 설계

  4. 스키마의 평가 및 정제

Question #6

E-R 모델의 표현 방법으로 옳지 않은 것은?

지문

  1. 개체타입 : 사각형
  2. 관계타입 : 마름모
  3. 속성 : 오각형
  4. 연결 : 선

풀이

문제 풀이 접기/펼치기
  • E-R 모델의 표기법 정리

    요소표기법설명
    개체타입사각형예: 학생, 강의
    관계타입마름모예: 수강, 소속
    속성타원예: 학번, 이름
    연결개체-관계-속성 간 연결

    ⚠️ 오각형은 E-R 모델에서 공식적으로 사용되지 않는 표기법

Question #7

병행제어의 로킹(Locking) 단위에 대한 설명으로 옳지 않은 것은?

지문

  1. 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
  2. 로킹 단위가 작아지면 로킹 오버헤드가 감소한다.
  3. 로킹 단위가 작아지면 데이터베이스 공유도가 증가한다.
  4. 한꺼번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다.

풀이

문제 풀이 접기/펼치기
  • 로킹 단위의 정의

    한꺼번에 로킹할 수 있는 객체의 크기 (예: 전체 DB, 테이블, 행, 필드)

    데이터베이스, 파일, 레코드 등이 단위로 사용됨

  • 로킹 단위와 성능 관계

    로킹 단위장점단점
    大 (DB)오버헤드 ↓ (락 수 적음)공유도 ↓ (병행성 ↓)
    小 (행)공유도 ↑ (병행성 ↑)오버헤드 ↑ (락 수 많음)

    로킹 단위가 작아지면 공유도는 증가 (더 많은 트랜잭션이 동시 접근 가능)

    로킹 단위가 작아지면 락 수가 증가 (오버헤드 증가)

    공유도(병행성)과 오버헤드는 반비례 관계

Question #8

뷰(View)에 대한 설명으로 옳지 않은 것은?

지문

  1. 뷰는 CREATE 문을 사용하여 정의한다.
  2. 뷰는 데이터의 논리적 독립성을 제공한다.
  3. 뷰를 제거할 때에는 DROP 문을 사용한다.
  4. 뷰는 저장장치 내에 물리적으로 존재한다.

풀이

문제 풀이 접기/펼치기
  • 뷰의 정의

    가상 테이블로, 하나 이상의 테이블에서 논리적으로 추출한 데이터 집합

    물리적으로 저장되지 않으며, 쿼리 실행 시점에 정의된 SQL 문이 재계산됨

    정리: SELECT FROM으로 조회한 결과를 데이터베이스에 테이블 형식으로 저장한 객체

  1. 뷰는 CREATE 문을 사용하여 정의한다.

    CREATE VIEW 문으로 정의

    예: CREATE VIEW emp_dept AS SELECT * FROM employees, departments

  2. 뷰는 데이터의 논리적 독립성을 제공한다.

    기본 테이블 구조 변경 시 뷰를 통해 응용 프로그램과의 결합도를 낮춤

  3. 뷰를 제거할 때에는 DROP 문을 사용한다.

    DROP VIEW 문으로 제거

    예: DROP VIEW emp_dept

  4. 뷰는 저장장치 내에 물리적으로 존재한다.

    뷰는 메타데이터(정의)만 저장되며, 데이터는 원본 테이블에서 실시간 조회

Question #9

하나의 애트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 것은?

지문

  1. 도메인
  2. 튜플
  3. 엔터티
  4. 다형성

풀이

문제 풀이 접기/펼치기
  1. 도메인

    애트리뷰트(속성)가 가질 수 있는 모든 가능한 원자값(Atomic Value)의 집합

    데이터 타입과 제약조건을 포함 (예: INT, VARCHAR(20), 0 ≤ age ≤ 120)

  2. 튜플

    릴레이션(테이블)의 한 행

  3. 엔터티

    데이터로 표현할 대상 (예: 학생, 강의)

  4. 다형성

    객체지향 프로그래밍의 개념 (오버로딩 등)

Question #10

문제 작성

지문

  1. π
  2. σ

풀이

문제 풀이 접기/펼치기
  1. ⨝ (Natural Join, 자연 조인)

    두 릴레이션의 공통 속성을 기준으로 합쳐 새로운 릴레이션 생성

    • 특징

      중복 속성 제거 후 결과 출력

      예: Student ⨝ Department학생ID가 공통 속성일 때 사용

    자연 조인: 공통 속성의 값이 동일한 튜플만 결합

    세타 조인: 임의의 조건(==, >, <)으로 결합

  2. ⊃ (Division)

    “모든” 조건을 만족하는 튜플 선택

    예: 모든 과목을 수강한 학생

  3. π (Projection)

    특정 속성만 추출

    예: π_이름(Student)

  4. σ (Selection)

    조건에 맞는 튜플 선택

    예: σ_성적='A'(Student)

Question #11

다음 설명의 ( )안에 들어갈 내용으로 적합한 것은?

후보키는 릴레이션에 있는 모든 튜플에 대해 유일성과 ( )을 모두 만족시켜야 한다.

지문

  1. 중복성
  2. 최소성
  3. 참조성
  4. 동일성

풀이

문제 풀이 접기/펼치기
  1. 중복성

    데이터 중복 허용 (후보키는 중복 불가)

  2. 최소성

    후보키(Candidate Key)의 조건

    • 유일성 (Uniqueness)

      모든 튜플을 고유하게 식별할 수 있어야 한다.

      예: 학생 테이블에서 학번은 중복되지 않음

    • 최소성 (Minimality)

      꼭 필요한 속성만으로 구성되어야 한다.

      예: {학번, 이름}은 유일성은 만족하지만, 학번 단독으로도 식별 가능 → 최소성 위반

  3. 참조성

    외래키와의 관계 (참조 무결성 관련)

  4. 동일성

    값의 일치 여부 (관계 X)

Question #12

데이터 제어언어(DCL)의 기능으로 옳지 않은 것은?

지문

  1. 데이터 보안
  2. 논리적, 물리적 데이터 구조 정의
  3. 무결성 유지
  4. 병행수행 제어

풀이

문제 풀이 접기/펼치기
구분언어주요 명령어기능
DCL데이터 제어GRANT, REVOKE권한 관리, 트랜잭션 제어
DDL데이터 정의CREATE, ALTER, DROP구조 정의/변경
DML데이터 조작SELECT, INSERT, UPDATE데이터 검색/수정
  1. 데이터 보안

    접근 권한 제어 (GRANT, REVOKE)

  2. 논리적, 물리적 데이터 구조 정의

    DDL(Data Definition Language)의 기능 (예: CREATE, ALTER, DROP)

  3. 무결성 유지

    트랜잭션의 원자성/일관성 보장 (COMMIT, ROLLBACK)

  4. 병행수행 제어

    동시성 관리 (LOCK)

Question #13

참조 무결성을 유지하기 위하여 DROP문에서 부모 테이블의 항목 값을 삭제할 경우 자동적으로 자식 테이블의 해당 레코드를 삭제하기 위한 옵션은?

지문

  1. CLUSTER
  2. CASCADE
  3. SET-NULL
  4. RESTRICTED

풀이

문제 풀이 접기/펼치기
  1. CLUSTER

    물리적 저장 구조 최적화 (참조 무결성과 무관)

    예: ON DELETE CASCADE

  2. CASCADE

    부모 테이블의 레코드 삭제 시 자식 테이블의 관련 레코드도 함께 삭제

    예: ON DELETE SET NULL

  3. SET-NULL

    부모 테이블의 레코드 삭제 시 자식 테이블의 외래키를 NULL로 설정

  4. RESTRICTED

    자식 테이블에 참조되는 경우 부모 테이블 삭제 거부 (기본값)

    예: ON DELETE RESTRICT

Question #14

트랜잭션의 특성 중 다음 설명에 해당하는 것은?

트랜잭션의 연산은 데이터베이스에 모두 반영되는지 아니면 전혀 반영되지 않아야 한다.

지문

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

풀이

문제 풀이 접기/펼치기
  • 트랜잭션의 ACID 특성

    특성의미예시 
    Atomicity (원자성)트랜잭션은 모두 실행되거나 전혀 실행되지 않아야 함 (All or Nothing)계좌 이체 (출금+입금이 한 묶음으로 처리) 
    Consistency (일관성) 트랜잭션 후에도 데이터 무결성 규칙이 유지되어야 함잔고는 음수가 될 수 없음
    Isolation (격리성)동시 실행 트랜잭션은 서로 간섭하지 않아야 함동시 이체 시 잔고 오류 방지 
    Durability (지속성)완료된 트랜잭션 결과는 영구적으로 저장되어야 함시스템 장애 후에도 결과 유지 

    ⚠️ Share는 존재하지 않음

Question #15

UNIX의 셀(Shell)에 관한 설명으로 옳지 않은 것은?

지문

  1. 명령어 해석기이다.
  2. 시스템과 사용자 간의 인터페이스를 담당한다.
  3. 여러 종류의 쉘이 있다.
  4. 프로세스, 기억장치, 입출력 관리를 수행한다.

풀이

문제 풀이 접기/펼치기
  1. 명령어 해석기이다.

    사용자 명령을 커널이 이해할 수 있게 변환 (예: ls → 시스템 호출)

  2. 시스템과 사용자 간의 인터페이스를 담당한다.

    터미널에서 사용자와 시스템 간 중개자

  3. 여러 종류의 쉘이 있다.

    Bash, Zsh, Ksh 등 (각각 기능/스크립팅 방식이 다름)

  4. 프로세스, 기억장치, 입출력 관리를 수행한다.

    이는 커널(Kernel)의 역할

    셀은 단지 명령을 전달할 뿐, 직접 자원을 관리하지 않음

Question #16

TCP/IP 프로토콜 중 전송계층 프로토콜은?

지문

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

풀이

문제 풀이 접기/펼치기

해당 내용에 관련한 자세한 내용은 [Network] TCP/IP 4계층 모델 게시글을 참고

  1. HTTP (HyperText Transfer Protocol)

    계층: 응용 계층(Application Layer)

    웹 브라우저와 서버 간의 데이터 통신에 사용되며, 웹 페이지를 요청하고 응답받는 데 쓰임

  2. SMTP (Simple Mail Transfer Protocol)

    계층: 응용 계층(Application Layer)

    이메일을 전송할 때 사용되는 프로토콜로, 메일 서버 간 통신을 담당

  3. FTP (File Transfer Protocol)

    계층: 응용 계층(Application Layer)

    파일을 업로드하거나 다운로드할 때 사용되는 프로토콜

  4. TCP (Transmission Control Protocol)

    계층: 전송 계층(Transport Layer)

    데이터의 신뢰성 있는 전송을 보장하는 프로토콜로, 연결 지향적이며 흐름 제어와 오류 복구 기능을 제공

Question #17

C언어에서 비트 논리연산자에 해당하지 않는 것은?

지문

  1. ^
  2. ?
  3. &
  4. ~

풀이

문제 풀이 접기/펼치기
  • C언어 비트 논리연산자

    비트 단위로 연산을 수행하며, 정수형 데이터(int, char 등)에 사용

    연산자설명예시시험 출제 포인트
    &AND (둘 다 1이면 1)a & b마스킹, 특정 비트 추출
    |OR (하나라도 1이면 1)a | b비트 설정
    ^XOR (다르면 1)a ^ b비트 토글, 암호화
    ~NOT (비트 반전)~a1의 보수 계산
    • ⚠️ ? (삼항 연산자)

      비트 연산자 X

      논리 연산자로 분류되며, 비트 단위 연산과 무관

Question #18

시스템에서 모듈 사이의 결합도(Coupling)에 대한 설명으로 옳은 것은?

지문

  1. 한 모듈 내에 있는 처리요소 사이의 기능적인 연관 정도를 나타낸다.
  2. 결합도가 높으면 시스템 구현 및 유지보수 작업이 쉽다.
  3. 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상된다.
  4. 자료결합도는 내용결합도보다 결합도가 높다.

풀이

문제 풀이 접기/펼치기
  • 결합도(Coupling)의 정의

    모듈 간 상호 의존성 정도를 나타soa

    결합도가 약할수록(낮을수록) 모듈의 독립성유지보수성이 향상

  1. 한 모듈 내에 있는 처리요소 사이의 기능적인 연관 정도를 나타낸다.

    내용 결합도(Content Coupling)에 대한 설명

    문제에서는 모듈 사이의 관계를 물었지만, 이 선택지는 모듈 내부 요소의 연관성을 설명

  2. 결합도가 높으면 시스템 구현 및 유지보수 작업이 쉽다.

    결합도가 높으면 시스템 수정이 어렵고, 유지보수 비용이 증가

    낮은 결합도가 구현과 유지보수에 용이

  3. 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상된다.

    결합도를 약하게 하면 모듈이 서로 덜 의존하게 되어 독립성이 높아짐

  4. 자료결합도는 내용결합도보다 결합도가 높다.

    • 결합도 강도 순서

      내용결합도 > 공통결합도 > 외부결합도 > 제어결합도 > 스탬프결합도 > 자료결합도

    자료결합도는 내용결합도보다 결합도가 낮음

Question #19

스레드(Thread)에 대한 설명으로 옳지 않은 것은?

지문

  1. 한 개의 프로세스는 여러 개의 스레드를 가질 수 없다.
  2. 커널 스레드의 경우 운영체제에 의해 스레드를 운용한다.
  3. 사용자 스레드의 경우 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.
  4. 스레드를 사용함으로써 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.

풀이

문제 풀이 접기/펼치기
  • 스레드 기본 개념

    정의: 프로세스 내의 독립적인 실행 흐름 단위

    • 특징

      스택 영역을 제외한 코드/데이터/힙 영역 공유

      생성/문맥 교환 비용이 프로세스보다 낮음

      멀티코어 CPU에서 병렬 처리 가능

  1. 한 개의 프로세스는 여러 개의 스레드를 가질 수 없다.

    현대 OS는 멀티스레딩 지원 (예: 크롬 브라우저)

  2. 커널 스레드의 경우 운영체제에 의해 스레드를 운용한다.

    Windows, Linux 등에서 스케줄링 관리

  3. 사용자 스레드의 경우 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.

    POSIX 스레드(pthread) 등

  4. 스레드를 사용함으로써 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.

    자원 공유로 효율성 ↑

  • 커널 스레드 vs 사용자 스레드

    구분커널 스레드사용자 스레드
    관리 주체OS사용자 라이브러리
    장점멀티코어 활용오버헤드 적음
    단점문맥 교환 비용이 큼하나의 스레드 블록 시 전체 블록

Question #20

C언어에서 배열 b[5]의 값은?

1
static int b[9] = {1, 2, 3};

지문

  1. 0
  2. 1
  3. 2
  4. 3

풀이

문제 풀이 접기/펼치기
  • C언어 배열 초기화 규칙

    명시적 초기화: {1, 2, 3}b[0]=1, b[1]=2, b[2]=3

    나머지 요소의 경우, 정적(static) 배열은 자동으로 0으로 초기화

    b[3] ~ b[8]까지 0이 할당되며, b[5]도 0

  1. 0

    초기화되지 않은 정적 배열 요소는 0

  2. 1

    b[0]의 값

  3. 2

    b[1]의 값

  4. 3

    b[2]의 값

Question #21

은행가 알고리즘(Banker’s Algorithm)은 교착상태의 해결 방법 중 어떤 기법에 해당하는가?

지문

  1. Avoidance
  2. Detection
  3. Prevention
  4. Recovery

풀이

문제 풀이 접기/펼치기
  • 은행가 알고리즘 핵심 개념

    목적: 교착상태(Deadlock)를 사전에 방지하기 위해 자원 할당을 안전하게 관리

    • 동작 원리

      프로세스가 자원을 요청할 때 안전 상태(Safe State)를 유지할 수 있는지 검사

      불안전 상태 예측 시 자원 할당을 거부 → 교착상태 회피

  1. Avoidance

    은행가 알고리즘으로 안전 상태를 유지하며 자원 할당

    예: 프로세스 시작 전 검증

    • 은행가 알고리즘의 3가지 자료 구조

      Available: 현재 사용 가능한 자원

      Max: 각 프로세스가 최대로 필요로 하는 자원

      Allocation: 현재 할당된 자원

    • 안전 순서(Safe Sequence)

      교착상태 없이 모든 프로세스가 완료될 수 있는 순서

  2. Detection

    자원 할당 그래프 등을 이용해 교착상태 발생 여부를 주기적 검사

    예: 타임아웃 설정

  3. Prevention

    교착상태 4가지 필요 조건(상호 배제, 점유 대기, 비선점, 순환 대기) 중 하나를 제거

    예: 자원의 즉시 선점 허용

  4. Recovery

    교착상태 발생 후 프로세스 종료 또는 자원 선점으로 복구

    예: 우선순위 낮은 프로세스 강제 종료

Question #22

IEEE 802.11 워킹 그룹의 무선 LAN 표준화 현황 중 QoS 강화를 위해 MAC 지원 기능을 채택한 것은?

지문

  1. 802.11a
  2. 802.11b
  3. 802.11g
  4. 802.11e

풀이

문제 풀이 접기/펼치기
  1. 802.11a

    5GHz 대역, 최대 54Mbps

    QoS 지원 여부: ❌

  2. 802.11b

    2.4GHz 대역, 최대 11Mbps

    QoS 지원 여부: ❌

  3. 802.11g

    2.4GHz 대역, 최대 54Mbps (b와 호환)

    QoS 지원 여부: ❌

  4. 802.11e

    MAC 계층 QoS 강화 (EDCA/HCCA)

    QoS2 지원 여부: ⭕

    • 802.11e의 핵심 기능

      • EDCA (Enhanced Distributed Channel Access)

        트래픽 우선순위에 따라 4개의 큐 (Voice, Video, Best Effort, Background)를 관리

      • HCCA (Hybrid Coordination Function Controlled Channel Access)

        중앙 제어 방식으로 지연 시간 보장이 필요한 실시간 트래픽 지원

Question #23

TCP/IP 네트워크에서 IP 주소를 MAC 주소로 변환하는 프로토콜은?

지문

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

풀이

문제 풀이 접기/펼치기
  1. UDP

    비연결형 전송 계층 프로토콜

    주소 변환 X

  2. ARP

    • ARP (Address Resolution Protocol)의 역할

      IP 주소 → MAC 주소 변환 (예: 192.168.1.100-1A-2B-3C-4D-5E)

      • 동작 원리

        1. ARP 요청(Request): 목적지 IP의 MAC 주소를 브로드캐스트로 질의

        2. ARP 응답(Reply): 해당 IP를 가진 장치가 자신의 MAC 주소를 회신

    ⚠️ RARP (Reverse ARP): MAC → IP 주소 변환 (반대 기능)

  3. TCP

    연결형 전송 계층 프로토콜

  4. ICMP

    네트워크 진단용 (예: ping)

Question #24

HRN(Highest Response-ratio Next) 스케줄링 방식에 대한 설명으로 옳지 않은 것은?

지문

  1. 대기 시간이 긴 프로세스일 경우 우선순위가 높아진다.
  2. SJF 기법을 보완하기 위한 방식이다.
  3. 긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다.
  4. 우선순위를 계산하여 그 수치가 가장 낮은 것부터 높은 순으로 우선순위가 부여된다.

풀이

문제 풀이 접기/펼치기
  • HRN 스케줄링 핵심 개념

    목적: SJF(Shortest Job First)의 기아 현상(Starvation) 을 해결하기 위해 설계됨

    계산식: $Response \, Ratio = \frac{대기 시간 + 실행 시간}{실행 시간}$

    높은 응답 비율(HRN) 을 가진 프로세스가 우선 실행

  1. 대기 시간이 긴 프로세스일 경우 우선순위가 높아진다.

    공식에 따라 대기 시간이 길수록 응답 비율 증가

  2. SJF 기법을 보완하기 위한 방식이다.

    SJF의 단점(기아 현상)을 보완

  3. 긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다.

    대기 시간을 고려해 불평등 완화

  4. 우선순위를 계산하여 그 수치가 가장 낮은 것부터 높은 순으로 우선순위가 부여된다.

    응답 비율이 높은 프로세스가 우선 실행됨

  • RN vs SJF vs FCFS 비교

    스케쥴링특징단점
    FCFS (First-Come-First-Served)도착 순서대로 실행 (선착순)호위 효과 (Convoy Effect, 긴 작업이 짧은 작업 지연)
    SJF (Shortest Job First)실행 시간 짧은 작업 우선기아 현상3 (긴 작업 무한 대기)
    HRN (Highest Response-ratio Next)대기 시간 + 실행 시간 고려계산 오버헤드 발생 가능

Question #25

교착 상태(Deadlock) 발생의 필요충분조건이 아닌 것은?

지문

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

풀이

문제 풀이 접기/펼치기
조건설명
1. 상호 배제한 번에 하나의 프로세스만 자원을 사용할 수 있음 (예: 프린터)
2. 점유와 대기프로세스가 자원을 점유한 채 다른 자원을 대기
3. 환형 대기프로세스들이 순환 형태로 자원을 요구 (P1 → P2 → P3 → P1)
4. 비선점다른 프로세스가 강제로 자원을 빼앗을 수 없음 (선점 불가)

답: 4. 선점 (Preemption)

Question #26

다음 페이지 참조 열에 대해 FIFO(선입선출) 페이지 교체 알고리즘을 사용할 때 페이지 부재(Page Fault) 횟수는? (단, 할당된 페이지 프레임 수는 3이고, 처음에는 모든 프레임이 비어 있다.)

<페이지 참조열>
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0

지문

  1. 13
  2. 14
  3. 15
  4. 20

풀이

문제 풀이 접기/펼치기
  1. FIFO 알고리즘 동작 방식

    • 규칙

      1. 새로운 페이지가 들어오면 가장 먼저 로드된 페이지를 교체한다.
      2. 페이지 부재(Page Fault)는 프레임에 페이지가 없을 때 발생한다.
  2. 페이지 참조 열 시뮬레이션

    참조 페이지프레임 상태 (FIFO 순서)페이지 부재 여부
    7[7]Fault (1)
    0[7, 0]Fault (2)
    1[7, 0, 1]Fault (3)
    2[0, 1, 2] (7 교체)Fault (4)
    0[0, 1, 2]Hit
    3[1, 2, 3] (0 교체)Fault (5)
    0[2, 3, 0] (1 교체)Fault (6)
    4[3, 0, 4] (2 교체)Fault (7)
    2[0, 4, 2] (3 교체)Fault (8)
    3[4, 2, 3] (0 교체)Fault (9)
    0[2, 3, 0] (4 교체)Fault (10)
    3[2, 3, 0]Hit
    2[2, 3, 0]Hit
    1[3, 0, 1] (2 교체)Fault (11)
    2[0, 1, 2] (3 교체)Fault (12)
    0[0, 1, 2]Hit
    1[0, 1, 2]Hit
    7[1, 2, 7] (0 교체)Fault (13)
    0[2, 7, 0] (1 교체)Fault (14)
  • ⚠️ FIFO의 Belady 현상

    프레임 수를 늘려도 페이지 부재가 증가할 수 있음 (예: 프레임 4일 때 부재 횟수 ↑)

  • 다른 알고리즘 비교

    LRU (Least Recently Used): 가장 오래전에 사용된 페이지 교체.

    OPT (Optimal): 미래 참조를 예측해 최적의 페이지 교체 (이론적 기준)

Question #27

C언어에서 사용할 수 없는 변수명은?

지문

  1. student2019
  2. text-color
  3. _korea
  4. amount

풀이

문제 풀이 접기/펼치기
  • C언어 변수명 규칙

    1. 허용되는 문자

      • 알파벳 대소문자 (A-Z, a-z)

        amount → 알파벳 대소문자 변수명 가능

      • 숫자 (0-9), 단 첫 글자로는 사용 불가

        student2019 → 숫자가 끝에 위치하여 사용 가능

      • 밑줄 (_)

        _korea → 밑줄로 시작하여 사용 가능

    2. 금지 사항

      • 공백 또는 하이픈(-) 포함

        text-color → 하이픈(-) 포함 불가능

      • C언어 예약어 (예: int, if) 사용
      • 특수문자 (예: @, #)

Question #28

IPv6에 대한 설명으로 옳은 것은?

지문

  1. 128비트의 주소 공간을 제공한다.
  2. 인증 및 보안 기능을 포함하고 있다.
  3. 패킷 크기가 64Kbyte로 고정되어 있다.
  4. IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이하다.

풀이

문제 풀이 접기/펼치기
  • IPv6의 주요 특징

    특징설명
    128비트 주소 체계IPv4(32비트) 대비 4배 더 큰 공간 (3.4 x 10³⁸개 주소)
    내장 보안 (IPsec)인증/암호화 기능을 기본 지원
    확장 헤더기능 추가를 위해 헤더를 유연하게 확장 가능
    단순화된 헤더IPv4 대비 필드 수 감소로 처리 효율성 ↑
    패킷 크기고정되지 않으며, 최대 전송 단위(MTU)에 가변적

    ⚠️ 패킷 크기가 64Kbyte로 고정되어 있다지 않으며, 최대 전송 단위에 따라 가변적

Question #29

프로세스 상태의 종류가 아닌 것은?

지문

  1. Ready
  2. Running
  3. Request
  4. Exit

풀이

문제 풀이 접기/펼치기
  • 프로세스의 기본 상태
    1. 생성 (New): 프로세스가 생성된 상태
    2. 준비 (Ready): CPU 할당을 기다리는 상태
    3. 실행 (Running): CPU를 점유 중인 상태
    4. 대기 (Waiting): I/O 작업 등으로 인해 대기 중인 상태
    5. 종료 (Exit): 프로세스 실행이 완료된 상태

⚠️ 3. Request의 경우, 프로세스 상태가 아니며, 시스템 호출 또는 자원 요청 시 사용되는 용어

Question #30

IPv6의 주소체계로 거리가 먼 것은?

지문

  1. Unicast
  2. Anycast
  3. Broadcast
  4. Multicast

풀이

문제 풀이 접기/펼치기
  1. Unicast

    단일 송신자 → 단일 수신자 (1:1 통신)

    기본 통신 방식

    ✅ 지원

  2. Anycast

    단일 송신자 → 그룹 중 가장 가까운 수신자 (1:1)

    서버 로드 밸런싱 등에 활용

    ✅ 지원

  3. Broadcast

    단일 송신자 → 네트워크 내 모든 호스트 (1:All)

    ❌ 미지원 (IPv4에서만 사용, IPv6는 Multicast로 대체)

    예: IPv4의 ARP(Broadcast) → IPv6의 Neighbor Discovery(Multicast)

  4. Multicast

    단일 송신자 → 특정 그룹의 모든 수신자 (1:N)

    효율적인 그룹 통신

    ✅ 지원

Question #31

응집도가 가장 낮은 것은?

지문

  1. 기능적 응집도
  2. 시간적 응집도
  3. 절차적 응집도
  4. 우연적 응집도

풀이

문제 풀이 접기/펼치기
  • 응집도(Cohesion)의 종류와 강도

    응집도 유형설명강도
    기능적 응집도모듈이 단일 기능을 수행 (예: 로그인 처리)最高
    순차적 응집도출력 데이터가 다음 입력으로 연결 (예: 파일 읽기 → 처리)
    통신적 응집도동일한 데이터를 사용하는 작업 (예: 회원 정보 조회/수정)
    절차적 응집도특정 순서로 실행되는 작업 (예: 초기화 → 설정 → 실행)
    시간적 응집도동시에 수행되는 작업 (예: 시스템 시작 시 초기화)
    논리적 응집도유사한 범주의 작업 (예: 모든 입력 처리)
    우연적 응집도연관성 없는 작업의 묶음 (예: 로그인 + 파일 백업)最低

Question #32

스크립트 언어가 아닌 것은?

지문

  1. PHP
  2. Cobol
  3. Basic
  4. Python

풀이

문제 풀이 접기/펼치기
스크립트 언어 (Scripting Languages)
  • 특징: 인터프리터(Interpreter) 방식으로 실행, 동적 타이핑, 빠른 개발 용이
  • 주요 용도: 웹 개발, 자동화, 데이터 분석, 시스템 관리
  • 대표 언어
    • Python: AI, 데이터 과학, 웹 백엔드(Django/Flask/FastAPI)
    • JavaScript: 웹 프론트엔드(React/Vue), 백엔드(Node.js)
    • PHP: 웹 서버 측 개발 (WordPress, Laravel)
    • Ruby: 웹 개발 (Ruby on Rails)
    • Perl: 텍스트 처리, 시스템 스크립팅
    • Bash/Shell Script: 리눅스/유닉스 시스템 자동화
    • Basic: 초기에는 컴파일 언어였으나, 현대 버전(예: VBScript)은 스트립트로 사용 (교육용, 초기 마이크로컴퓨터)
컴파일 언어 (Compiled Languages)
  • 특징: 컴파일러로 기계어 변환 후 실행, 정적 타이핑, 고성능
  • 주요 용도: 시스템 프로그래밍, 게임, 임베디드
  • 대표 언어
    • C: 운영체제, 하드웨어 제어 (Linux 커널)
    • C++: 게임 개발(Unreal), 고성능 애플리케이션
    • Java: 엔터프라이즈 애플리케이션 (JVM 기반)
    • Go: 분산 시스템, 클라우드 서비스
    • Rust: 메모리 안전성 요구 시스템 (블록체인, OS)
    • Cobol: 금융/공공 분야 레거시 시스템
    • Fortran: 과학계산, 수치 시뮬레이션

Question #33

OSI-7계층에서 종단 간 신뢰성 있고 효율적인 데이터 전송을 위해 오류 검출 및 복구, 흐름 제어를 수행하는 계층은?

지문

  1. 전송 계층
  2. 세션 계층
  3. 표현 계층
  4. 응용 계층

풀이

문제 풀이 접기/펼치기

해당 내용에 관련한 자세한 내용은 [Network] 네트워크 OSI 7계층 게시글을 참고

  1. 전송 계층

    • 전송 계층의 역할
      • 주요 기능 신뢰성 있는 데이터 전송 (TCP) 오류 검출 및 복구: 체크섬, 재전송 흐름 제어: 슬라이딩 윈도우 기법 혼잡 제어: 네트워크 과부하 방지
    • 대표 프로토콜
      • TCP (Transmission Control Protocol): 연결 지향적, 신뢰성 보장
      • UDP (User Datagram Protocol): 비연결형, 실시간 스트리밍 등에 사용
  2. 세션 계층

    통신 세션 관리 (연결 설정/종료)

    세션 관리만 수행

    예: NetBIOS, SSH

  3. 표현 계층

    데이터 형식 변환 (암호화/압축)

    데이터 표현 변환

    예: JPEG, ASCII, TLS/SSL

  4. 응용 계층

    사용자 서비스 제공

    최상위 서비스 계층

    예: HTTP, FTP, SMTP


  1. 어떠한 조건을 만족하는 튜플이 릴레이션 안에 있을 것을 요구하는 일종의 제약 조건 ↩︎

  2. QoS (Quality of Service): 네트워크에서 트래픽 우선순위, 대역폭, 지연 시간 등을 보장하는 기술 ↩︎

  3. 기아 현상(Starvation): 특정 프로세스가 자원을 할당받지 못하고 무한히 대기하는 현상으로, RN은 대기 시간을 우선순위에 반영해 이를 방지 ↩︎

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.