모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

25강 / 전체 25강

4과목 핵심 점검 20문항과 합격 전략

17분 읽기 조회 0

2027 출제기준 4과목을 과목당 5문항씩 새로 만든 20문항으로 점검하고, 과락·평균 60점 기준과 2시간 시간 배분, 과목별 복습 순서를 정리

🎯 이 점검의 사용법

마지막 강은 지금까지 24강에서 정리한 네 과목을 과목당 5문항, 모두 20문항으로 점검합니다. 실제 필기는 과목당 20문항이므로 이 점검은 모의고사가 아니라 「어느 과목이 아직 비어 있는가」를 찾는 진단표입니다.

  • 시간은 30분으로 잽니다. 실제 시험의 문항당 평균 시간(1분 30초)에 맞춘 값입니다.
  • 정답표와 해설을 가린 채 답만 표시하고, 모르는 문항은 표시만 하고 넘어갔다가 마지막에 돌아옵니다.
  • 채점 후 과목별로 맞힌 수를 적고, 3문항 이하인 과목은 아래 「합격 전략」의 복습 순서대로 해당 강을 다시 봅니다.
  • 코드·SQL·계산 문항의 정답은 모두 실제로 실행해 확인했습니다(gcc, java 단일 파일 실행, python3, python3 sqlite3).

📋 1과목 소프트웨어 개발 (1~5번)

  1. 주문 모듈이 출력 모듈을 호출하면서 mode 값을 넘긴다. 출력 모듈은 mode가 'A'이면 영수증을, 'B'이면 배송 송장을 출력하도록 내부 처리 흐름을 바꾼다. 두 모듈 사이의 결합도는?
    ① 자료 결합도 ② 제어 결합도 ③ 공통 결합도 ④ 내용 결합도
  2. 기존 결제 라이브러리는 pay(amount) 메서드만 제공하는데, 새 주문 시스템은 process(order) 형태의 인터페이스를 요구한다. 라이브러리를 고치지 않고 중간 클래스로 감싸 인터페이스를 맞추려 할 때 알맞은 디자인 패턴은?
    ① 싱글톤(Singleton) ② 옵서버(Observer) ③ 퍼사드(Facade) ④ 어댑터(Adapter)
  3. 블랙박스 테스트 기법이 아닌 것은?
    ① 기초 경로 검사 ② 동등 분할 ③ 경계값 분석 ④ 원인-결과 그래프
  4. 다음 중 비기능 요구사항에 해당하는 것은?
    ① 회원은 주문을 취소할 수 있다. ② 관리자는 월별 매출 보고서를 출력할 수 있다. ③ 상품 검색 결과는 2초 이내에 화면에 표시되어야 한다. ④ 사용자는 비밀번호를 재설정할 수 있다.
  5. LOC 기법으로 어떤 시스템의 코드 라인 수를 낙관치 6,000줄, 중간치 9,000줄, 비관치 18,000줄로 추정했다. 개발자 1인의 월평균 생산성이 500줄이고 4명이 투입될 때 개발 기간은?
    ① 4.5개월 ② 5개월 ③ 5.5개월 ④ 20개월

📋 2과목 데이터베이스 구축 (6~10번)

  1. 다음 SQL을 실행한 결과로 옳은 것은? (SQLite에서 실행)
    CREATE TABLE orders (id INTEGER PRIMARY KEY, region TEXT, amount INTEGER);
    INSERT INTO orders VALUES (1,'서울',300),(2,'부산',150),(3,'서울',200),(4,'대구',500),(5,'부산',250),(6,'서울',100),(7,'대구',NULL);
    SELECT region, COUNT(*) AS cnt, SUM(amount) AS total
    FROM orders
    WHERE amount >= 150 OR amount IS NULL
    GROUP BY region
    HAVING COUNT(amount) >= 2
    ORDER BY total DESC;
    ① (서울, 3, 600), (대구, 2, 500), (부산, 2, 400) ② (서울, 2, 500), (대구, 2, 500), (부산, 2, 400) ③ (서울, 2, 500) ④ (서울, 2, 500), (부산, 2, 400)
  2. 릴레이션 수강(학번, 과목코드, 학생이름, 성적)의 기본키는 {학번, 과목코드}이고, 함수 종속 {학번, 과목코드} → 성적, 학번 → 학생이름이 성립한다. 이 릴레이션의 정규형 판정과 원인을 바르게 짝지은 것은?
    ① 3NF — 이행 함수 종속이 없다 ② 2NF — 이행 함수 종속이 있다 ③ 1NF(2NF 위반) — 부분 함수 종속이 있다 ④ BCNF — 모든 결정자가 후보키이다
  3. 2단계 로킹(2PL) 규약에 대한 설명으로 옳은 것은?
    ① 직렬 가능성을 보장하지만 교착 상태는 막지 못한다. ② 잠금을 하나라도 푼 뒤에도 새 잠금을 얻을 수 있다. ③ 교착 상태가 절대 일어나지 않음을 보장한다. ④ 잠금을 쓰지 않고 타임스탬프 순서로만 실행 순서를 정한다.
  4. 「기본키를 구성하는 속성은 NULL이거나 중복된 값을 가질 수 없다」는 제약 조건은?
    ① 참조 무결성 ② 개체 무결성 ③ 도메인 무결성 ④ 사용자 정의 무결성
  5. COMMIT 전에도 변경 내용을 데이터베이스에 바로 기록하는 즉시 갱신 기법을 쓰는 시스템에 장애가 났다. 로그를 이용한 회복 작업으로 옳은 것은?
    ① 완료된 트랜잭션만 REDO하고 UNDO는 필요 없다. ② 미완료 트랜잭션만 UNDO하고 REDO는 필요 없다. ③ 로그만 있으면 아무 작업도 필요 없다. ④ 완료된 트랜잭션은 REDO, 미완료 트랜잭션은 UNDO한다.

📋 3과목 프로그래밍 언어 활용 (11~15번)

  1. 다음 C 프로그램의 출력은?
    #include <stdio.h>
    
    int main(void) {
        int a[5] = {3, 6, 9, 12, 15};
        int *p = a + 1;
        int sum = 0;
        for (int i = 0; i < 3; i++) {
            sum += *(p + i) % 4;
        }
        p += 2;
        printf("%d %d\n", sum, *p + p[-3]);
        return 0;
    }
    ① 3 18 ② 5 15 ③ 3 15 ④ 4 21
  2. 다음 Java 프로그램의 출력은?
    public class Q12 {
        public static void main(String[] args) {
            Base b = new Child();
            System.out.println(b.v + b.get() + b.tag());
        }
    }
    
    class Base {
        int v = 1;
        int get() { return v; }
        static String tag() { return "B"; }
    }
    
    class Child extends Base {
        int v = 2;
        @Override
        int get() { return v * 10; }
        static String tag() { return "C"; }
    }
    ① 21B ② 21C ③ 12C ④ 22B
  3. 다음 Python 코드의 출력은?
    nums = [4, 7, 1, 8, 5, 2]
    d = {}
    for i, n in enumerate(nums[1::2]):
        d[n % 3] = d.get(n % 3, 0) + i
    print(sorted(d.items()), nums[-2:0:-2])
    ① [(1, 1), (2, 2)] [5, 1] ② [(1, 0), (2, 3)] [2, 8] ③ [(1, 0), (2, 1)] [5, 1] ④ [(1, 0), (2, 3)] [5, 1]
  4. 다음 프로세스를 HRN 방식으로 스케줄링한다. 시각 0에 A가 먼저 실행되어 시각 6에 끝났을 때, 다음으로 선택되는 프로세스와 그 우선순위 값은? (우선순위 = (대기 시간 + 서비스 시간) ÷ 서비스 시간)
    A(도착 0, 실행 6), B(도착 1, 실행 3), C(도착 2, 실행 8), D(도착 3, 실행 2)
    ① D, 2.5 ② B, 약 2.67 ③ C, 1.5 ④ D, 4.0
  5. IP 주소 10.20.30.77/28이 속한 서브넷의 네트워크 주소와, 그 서브넷에서 호스트에 할당할 수 있는 주소 수를 바르게 짝지은 것은?
    ① 10.20.30.64, 16개 ② 10.20.30.72, 14개 ③ 10.20.30.64, 14개 ④ 10.20.30.79, 14개

📋 4과목 정보시스템 구축관리 (16~20번)

  1. 직원들이 웹 브라우저로 클라우드 사업자의 메일·문서 편집 서비스를 그대로 쓰고, 회사는 사용자 계정 설정과 데이터만 관리한다. NIST SP 800-145 기준의 서비스 모델은?
    ① SaaS ② PaaS ③ IaaS ④ 하이브리드 클라우드
  2. 국산 블록 암호 SEED에 대한 설명으로 옳은 것은?
    ① 64비트 블록을 16라운드로 처리한다. ② 키 길이 128·192·256비트에 따라 12·14·16라운드를 수행한다. ③ 128비트 블록·128비트 키를 쓰는 16라운드 Feistel 구조 암호이다. ④ 큰 수의 소인수분해 문제에 기반한 공개키 암호이다.
  3. 공격자가 출발지 IP를 피해자 주소로 위조한 작은 DNS 질의를 수많은 공개 DNS 서버에 보내, 훨씬 큰 응답들이 피해자에게 몰리게 했다. 이 공격은?
    ① Land ② Teardrop ③ 스니핑 ④ DRDoS
  4. 결제 승인 코드를 try { ... } catch (IOException e) { }처럼 작성해, 통신 예외가 나도 아무 처리 없이 「승인 완료」 화면으로 넘어간다. 구현단계 보안약점 기준으로 이 약점은?
    ① 오류 메시지 정보노출 ② 오류상황 대응 부재 ③ 취약한 API 사용 ④ 초기화되지 않은 변수 사용
  5. 네트워크 경로 위에 인라인으로 설치되어, 공격 트래픽을 탐지하는 즉시 해당 패킷을 차단하는 보안 솔루션은?
    ① IPS ② IDS ③ 허니팟 ④ SIEM

✅ 정답표

과목문항정답
1과목 소프트웨어 개발1 · 2 · 3 · 4 · 5② · ④ · ① · ③ · ②
2과목 데이터베이스 구축6 · 7 · 8 · 9 · 10④ · ③ · ① · ② · ④
3과목 프로그래밍 언어 활용11 · 12 · 13 · 14 · 15③ · ① · ④ · ② · ③
4과목 정보시스템 구축관리16 · 17 · 18 · 19 · 20① · ③ · ④ · ② · ①

🧾 해설

  1. 정답 ② — 호출하는 쪽이 넘긴 플래그가 호출받는 모듈의 내부 처리 흐름을 정하면 제어 결합도입니다. 호출자가 상대의 내부 논리를 알아야 하므로 정보 은닉이 깨집니다. 처리에 필요한 값만 넘기면 자료 결합도, 전역 변수를 함께 쓰면 공통 결합도, 남의 내부를 직접 참조·수정하면 내용 결합도입니다. 기능별로 모듈을 나누면 제어 결합도와, 짝을 이루는 논리적 응집도가 함께 사라집니다.
  2. 정답 ④ — 호환되지 않는 인터페이스를 변환해 함께 동작하게 하는 구조 패턴이 어댑터입니다. 퍼사드도 구조 패턴이지만 여러 하위 인터페이스를 하나로 「단순화·통합」하는 것이 목적이라 「변환」과 다릅니다. 싱글톤은 인스턴스를 하나로 제한하는 생성 패턴, 옵서버는 상태 변화를 구독자에게 알리는 행위 패턴입니다.
  3. 정답 ① — 기초 경로 검사는 McCabe의 순환 복잡도로 독립 경로 수를 구해 케이스를 만드는 화이트박스 기법입니다. 동등 분할·경계값 분석·원인-결과 그래프는 내부 구조를 보지 않고 명세로 설계하는 블랙박스 기법입니다.
  4. 정답 ③ — 「2초 이내」는 기능을 얼마나 잘 수행해야 하는지에 대한 성능 조건이므로 비기능 요구사항입니다. ①②④는 시스템이 「무엇을 하는가」를 적은 기능 요구사항입니다.
  5. 정답 ② — 예측치 = (6,000 + 4 × 9,000 + 18,000) ÷ 6 = 10,000줄입니다. 노력 = 10,000 ÷ 500 = 20인월, 기간 = 20 ÷ 4 = 5개월입니다(python으로 재계산). ①은 중간치 9,000줄만 쓴 값, ③은 세 값을 단순 평균(11,000줄)한 값이므로 가중 평균 공식의 「4 × 중간치」와 「÷ 6」을 빠뜨리지 않아야 합니다. ④ 20은 기간이 아니라 노력(인월)입니다.
  6. 정답 ④ — WHERE에서 서울 100이 빠져 서울은 300·200 두 행, 부산은 150·250 두 행, 대구는 500과 NULL 두 행이 남습니다. HAVING의 COUNT(amount)는 NULL을 세지 않으므로 대구는 1이 되어 제외됩니다. 결과는 (서울, 2, 500), (부산, 2, 400)이며 sqlite3로 실행해 확인했습니다. ②는 COUNT(*)와 COUNT(열)을 같게 본 함정이고, ①은 WHERE를 무시한 값입니다.
  7. 정답 ③ — 학생이름이 기본키 전체가 아니라 일부인 학번에만 종속되는 부분 함수 종속이 있으므로 2NF를 만족하지 못하고 1NF에 머뭅니다. 학생(학번, 학생이름)과 수강(학번, 과목코드, 성적)으로 나누면 해결됩니다. 이행 함수 종속은 3NF의 판정 기준이고, 2NF를 만족하지 못하니 3NF·BCNF일 수도 없습니다.
  8. 정답 ① — 2PL은 잠금을 얻기만 하는 확장 단계와 풀기만 하는 축소 단계로 나누어 직렬 가능성을 보장합니다. 그러나 서로 상대의 잠금을 기다리는 교착 상태는 막지 못합니다. 한 번 잠금을 풀면 새 잠금을 얻을 수 없으므로 ②는 틀리고, ④는 타임스탬프 순서 기법의 설명입니다.
  9. 정답 ② — 기본키는 NULL도 중복도 허용하지 않는다는 것이 개체 무결성이며 PRIMARY KEY로 구현합니다. 참조 무결성은 외래키 값이 참조 릴레이션의 기본키 값이거나 NULL이어야 한다는 규칙이라, 외래키의 NULL은 허용됩니다.
  10. 정답 ④ — 즉시 갱신은 미완료 트랜잭션의 변경도 DB에 들어갔을 수 있으므로 UNDO가 필요하고, 완료된 변경이 디스크에 반영되지 않았을 수 있으므로 REDO도 필요합니다(UNDO/REDO). ①은 COMMIT 전까지 DB에 쓰지 않는 지연 갱신(NO-UNDO/REDO)의 설명입니다.
  11. 정답 ③ — p는 a[1]을 가리키므로 반복문은 6 % 4 = 2, 9 % 4 = 1, 12 % 4 = 0을 더해 sum = 3입니다. p += 2 뒤 p는 a[3](12)을 가리키고, p[-3]은 a[0](3)이라 합은 15입니다. gcc -Wall -Wextra로 경고 없이 컴파일해 「3 15」를 확인했습니다. ①은 p[-3]을 a[1]로 착각한 값입니다.
  12. 정답 ① — 필드는 오버라이딩되지 않고 참조 변수의 선언 타입(Base)을 따르므로 b.v는 1입니다. 인스턴스 메서드 get()은 오버라이딩되어 실제 객체(Child)의 것이 실행되어 2 × 10 = 20입니다. 정수 1 + 20 = 21을 먼저 계산한 뒤 문자열과 이어 붙이며, static 메서드 tag()는 오버라이딩이 아니라 숨김이라 선언 타입 Base의 "B"가 호출됩니다. java로 실행해 「21B」를 확인했습니다.
  13. 정답 ④ — nums[1::2]는 인덱스 1·3·5인 [7, 8, 2]입니다. i = 0일 때 7 % 3 = 1이라 d[1] = 0, i = 1일 때 8 % 3 = 2라 d[2] = 1, i = 2일 때 2 % 3 = 2라 d[2] = 1 + 2 = 3입니다. nums[-2:0:-2]는 인덱스 4에서 시작해 2씩 거꾸로 가며 인덱스 0은 포함하지 않으므로 [5, 1]입니다. python3로 실행해 확인했습니다.
  14. 정답 ② — 시각 6에 B는 대기 5·실행 3이라 (5 + 3) ÷ 3 ≈ 2.67, C는 (4 + 8) ÷ 8 = 1.5, D는 (3 + 2) ÷ 2 = 2.5이므로 값이 가장 큰 B가 선택됩니다. 실행 시간이 가장 짧은 D를 고르는 것은 SJF의 판단이고, ④의 4.0은 B가 끝난 시각 9에서 D의 우선순위입니다. 전체 실행 순서는 A → B → D → C입니다(python으로 재계산).
  15. 정답 ③ — /28이면 호스트 비트가 4개라 블록 크기는 16입니다. 77은 64~79 블록에 속하므로 네트워크 주소는 10.20.30.64, 브로드캐스트 주소는 10.20.30.79이고, 이 둘을 빼면 16 − 2 = 14개를 할당할 수 있습니다(python ipaddress 모듈로 확인). ①은 2를 빼지 않았고, ④는 브로드캐스트 주소를 네트워크 주소로 착각했습니다.
  16. 정답 ① — 애플리케이션까지 제공자가 관리하고 사용자는 설정과 데이터만 다루면 SaaS입니다. PaaS는 사용자가 자기 애플리케이션을 배포하고, IaaS는 운영체제부터 사용자가 관리합니다. 하이브리드 클라우드는 서비스 모델이 아니라 배포 모델입니다.
  17. 정답 ③ — SEED는 KISA가 개발한 128비트 블록·128비트 키·16라운드 Feistel 암호입니다. ①은 DES(64비트 블록·16라운드), ②는 ARIA의 특징이고, ④는 RSA의 설명입니다.
  18. 정답 ④ — 출발지를 위조한 요청으로 제3의 공개 서버들이 피해자에게 응답하게 만드는 반사·증폭 공격이 DRDoS입니다. 대응은 위조 패킷을 걸러 내는 인그레스 필터링(BCP 38)과 불필요하게 열린 UDP 서비스 차단입니다. Land는 출발지와 목적지가 같은 패킷, Teardrop은 조각 오프셋 겹침, 스니핑은 도청입니다.
  19. 정답 ② — 예외를 잡고도 아무 처리를 하지 않아 실패를 성공처럼 진행하는 것이 오류상황 대응 부재입니다. 오류 메시지 정보노출은 스택 트레이스·SQL이 화면에 찍히는 경우이고, 취약한 API 사용과 초기화되지 않은 변수 사용은 각각 API 오용·코드오류 분류입니다.
  20. 정답 ① — 트래픽 경로에 직접(인라인) 놓여 탐지한 공격을 차단하는 것이 IPS입니다. IDS는 탐지·경보까지만 하고, 허니팟은 공격자를 끌어들이는 유인 시스템, SIEM은 여러 장비의 로그를 모아 상관 분석하는 통합 관제 도구입니다.

🧭 합격 전략

합격선부터 숫자로 바꿔 둡니다. 2027년 필기는 4과목·80문항(과목당 20)·2시간이고, 합격 기준은 과목당 40점 이상과 전 과목 평균 60점 이상을 함께 만족하는 것입니다. 한 문항이 5점이므로 과목 최저선은 8문항, 평균 60점은 80문항 중 48문항입니다. 두 조건은 「그리고」로 묶여 있어서 평균이 아무리 높아도 한 과목이 7문항 이하이면 불합격이고(과락), 과락이 없어도 합계가 47문항이면 1문항 차이로 떨어집니다. 그래서 목표를 「모든 과목 10문항 이상, 강한 과목에서 14~16문항」으로 잡아 실수할 여유를 만들어 두는 편이 안전합니다.

시간 배분. 2시간에 80문항이면 문항당 평균 1분 30초입니다. 용어 구분 문항은 30초 안팎에 끝나지만 코드 추적·SQL·스케줄링·서브넷 같은 계산 문항은 2~3분씩 걸립니다. 첫 바퀴에서는 바로 풀리는 문항만 답하고 계산 문항은 표시만 해 둔 뒤, 남은 시간으로 돌아오는 방식이 시간을 지키기 쉽습니다. 마지막 10분은 표시한 문항을 다시 보고 빈 답안이 없는지 확인하는 데 씁니다. 4지선다라 빈칸으로 두면 확률이 0이지만 찍으면 25%입니다.

과목별 공략. 1과목 소프트웨어 개발은 결합도·응집도, 블랙박스·화이트박스, 생성·구조·행위 패턴처럼 「비슷한 용어 두 개를 정확히 가르는」 문항이 많습니다. 2과목 데이터베이스 구축은 SQL 결과와 정규형을 직접 판정해야 하므로 손으로 풀어 보는 연습이 필요하고, 특히 NULL과 집계 함수의 관계(6번)가 자주 함정이 됩니다. 3과목 프로그래밍 언어 활용은 C·Java·Python 출력 추적과 운영체제·네트워크 계산이 핵심이며, 운영체제와 네트워크 기초가 4과목이 아니라 3과목 소속이라는 점도 기억하세요. 4과목 정보시스템 구축관리는 장비·암호·공격·솔루션의 약어가 가장 많으니 각 강의 「시험에 나오는 함정」 표를 반복해서 소리 내어 구분해 보는 것이 효율적입니다.

점검 결과에 따른 복습 순서. 이 점검에서 과목별로 맞힌 수가 3문항 이하라면 그 과목부터 다시 봅니다.

과목복습할 강먼저 볼 것
1과목 소프트웨어 개발2~7강3강 결합도·응집도, 4강 디자인 패턴, 7강 테스트 기법
2과목 데이터베이스 구축8~13강9강 정규화, 10·11강 SQL, 12강 트랜잭션·회복
3과목 프로그래밍 언어 활용14~20강17~19강 C·Java·Python 출력 추적, 20강 스케줄링·서브넷
4과목 정보시스템 구축관리21~24강21강 계산(RAID·가용성), 22~24강 함정 표

학습 순서는 출제기준 순서를 따르되, 관계 모델·정규화를 SQL보다 먼저, 데이터 타입·연산자를 C·Java·Python보다 먼저, 네트워크 기초(20강)를 네트워크 장비·공격(21·23강)보다 먼저 보는 의존 관계는 지키는 편이 효율적입니다. 틀린 문항은 정답 번호를 외우지 말고 해설의 「오답 선지가 틀린 이유」를 자기 말로 다시 적어 두세요. 4지선다 시험에서 점수를 만드는 것은 정답을 아는 것만큼이나 매력적인 오답을 지우는 능력입니다.

실제 시험과 같은 80문항 모의고사는 필기+실기 과정 혜택 교재 「정보처리기사 필기 완전정복 50강」의 49·50강에서 다룹니다. 시험 일정과 접수는 반드시 큐넷 공고로 확인하고, 이 점검표로 비어 있는 과목을 먼저 채우는 것부터 시작하세요.

📚 참고 자료

관련 주제

  • 정보처리기사 필기
  • 핵심 점검
  • 과목별 문제
  • 정답과 해설
  • 합격 기준
  • 과락
  • 시간 배분
  • 학습 순서
  • 자격증
  • 자격증 강의
  • 정보처리기사 필기 25강 — 2027 출제기준 핵심 요약
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

다음 단계

시리즈를 끝까지 읽으셨어요. 영상으로 직접 실습해 보세요

무료 강의로 개념을 먼저 보고, 실습이 필요할 때 선택하세요.

📚 시리즈 전체 공유

정보처리기사 필기 25강 — 2027 출제기준 핵심 요약

이 강의가 속한 시리즈는 총 25강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...