2020년 정보처리기사실기 2회차 기출문제 정답·해설 페이지

2020년-정보처리기사실기-2회차
    12020년-정보처리기사실기-2회차

    20-2

    아래 [MEMBER] 테이블의 MNAME 속성에 IDX_MNAME이라는 이름의 인덱스를 만드는 SQL 문을 작성하시오.

    [MEMBER]

    MIDMNAMEPOINTCITY
    501안소율320수원
    502백연우150청주
    503류태오480포항
    504진다솜90목포
    해설

    CREATE INDEX IDX_MNAME ON MEMBER(MNAME);


    [해설]

    인덱스를 생성하는 SQL 구문은 CREATE INDEX 인덱스명 ON 테이블명(컬럼명)이다.

    이 문항에서는 인덱스명에 IDX_MNAME, 테이블명에 MEMBER, 컬럼명에 MNAME을 넣는다. 그러면 CREATE INDEX IDX_MNAME ON MEMBER(MNAME);이 된다.

    혼동 주의: 중복을 막으려면 CREATE UNIQUE INDEX를 쓰고, 인덱스를 삭제할 때는 DROP INDEX를 쓴다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    22020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 GoF 디자인 패턴을 영문 전체 이름으로 적으시오.

    • 객체들 사이에 일대다(1:N) 의존 관계를 정의한다.
    • 한 객체의 상태가 바뀌면 그 객체를 구독하는 다른 객체들에게 알림이 가고 자동으로 갱신된다.
    • 상태를 가진 쪽과 알림을 받는 쪽이 서로의 구체 클래스를 몰라도 되도록 느슨하게 결합한다.
    해설

    Observer Pattern


    [해설]

    일대다 의존 관계에서 한 객체의 상태 변화를 구독자들에게 자동으로 알리는 GoF 행위 패턴은 Observer Pattern이다.

    관찰 대상(Subject)은 등록된 옵서버 목록만 알고, 상태가 바뀌면 각 옵서버의 갱신 메서드를 호출한다. 서로의 구체 클래스를 몰라도 되므로 느슨한 결합이 된다.

    GUI 이벤트 리스너나 발행-구독(Pub/Sub) 구조가 대표적인 활용 예다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    32020년-정보처리기사실기-2회차

    20-2

    빈칸 ( ㉮ )에 공통으로 들어갈 프로토콜의 이름을 적으시오.

    • ( ㉮ )는 XML 형식의 메시지를 HTTP·HTTPS·SMTP 등에 실어 주고받는 웹 서비스용 통신 규약이다.
    • 메시지는 봉투(Envelope), 헤더(Header), 본문(Body)으로 구성된다.
    • 구조가 무겁다는 단점 때문에 ( ㉮ ) 대신 RESTful 방식을 쓰는 경우가 많다.
    해설

    SOAP


    [해설]

    XML 메시지를 HTTP·HTTPS·SMTP 등에 실어 주고받는 웹 서비스 프로토콜은 SOAP(Simple Object Access Protocol)이다.

    메시지는 Envelope(전체를 감싸는 봉투)·Header(인증·트랜잭션 같은 부가정보)·Body(실제 요청·응답 데이터)로 이뤄진다. XML 봉투 구조가 무거워서, 실무에서는 HTTP 메서드와 URI만으로 자원을 다루는 REST를 더 많이 쓴다.

    혼동 주의: SOAP 서비스의 명세 언어는 WSDL이고, 서비스를 등록·검색하는 저장소는 UDDI다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    42020년-정보처리기사실기-2회차

    20-2

    트랜잭션 제어 명령 중 ROLLBACK의 의미를 서술하시오.

    해설

    트랜잭션 수행 중 오류 등으로 작업을 완료할 수 없을 때, 그때까지의 변경을 취소하고 트랜잭션 시작 전(또는 지정한 SAVEPOINT) 상태로 되돌리는 명령이다.


    [해설]

    ROLLBACK은 COMMIT·SAVEPOINT와 함께 트랜잭션 제어어(TCL)에 속하며, 트랜잭션의 원자성을 지키는 명령이다.

    오류 등으로 작업을 끝낼 수 없을 때 아직 확정되지 않은 변경을 모두 취소해 트랜잭션 시작 전 상태로 되돌린다.

    SAVEPOINT를 지정해 두었다면 ROLLBACK TO 저장점 이름으로 그 지점까지만 부분 취소할 수 있다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    52020년-정보처리기사실기-2회차

    20-2

    아래 Java 프로그램의 실행 결과를 적으시오.

    class Counter {
        private int base;
        public Counter(int base) {
            this.base = base * 3;
        }
        public void show() {
            System.out.println("base=" + base);
        }
    }
    
    class StepCounter extends Counter {
        public StepCounter(int base) {
            super(base + 2);
            super.show();
        }
        @Override
        public void show() {
            System.out.println("step");
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Counter c = new StepCounter(4);
        }
    }
    해설

    base=18


    [해설]

    자식 객체를 만들면 자식 생성자 첫 줄의 super(...)가 부모 생성자를 먼저 실행한다.

    StepCounter(4)는 super(4 + 2)를 호출하므로 부모 생성자에서 base가 정해진다.
    base = 6 × 3 = 18

    이어서 호출되는 super.show()는 재정의된 자식 show()가 아니라 부모 show()를 직접 부른다. 그래서 "step"이 아니라 base=18이 출력된다.

    혼동 주의: super. 없이 show()만 불렀다면 동적 바인딩 때문에 "step"이 출력된다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    62020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 웹 기술을 적으시오.

    • 브라우저에 내장된 XMLHttpRequest 객체로 서버와 데이터를 주고받는다.
    • 화면 전체를 다시 불러오지 않고, 바뀐 부분에 필요한 데이터만 받아 그 영역만 고친다.
    • 요청을 보낸 뒤 응답을 기다리지 않고 사용자가 계속 페이지를 조작할 수 있어, HTML만으로는 어려운 상호작용을 구현한다.
    해설

    AJAX


    [해설]

    XMLHttpRequest로 서버와 비동기 통신해 페이지 일부만 갱신하는 기술은 AJAX(Asynchronous JavaScript and XML)이다.

    비동기라서 응답을 기다리는 동안에도 사용자가 페이지를 계속 조작할 수 있고, 바뀐 영역만 고쳐 전체 새로고침이 필요 없다.

    검색어 자동 완성·새로고침 없는 댓글 등록이 대표 사례이며, 이름과 달리 오늘날에는 주로 JSON을 주고받는다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    72020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 소프트웨어 개발 방법론을 적으시오.

    • 문서와 절차보다 사람 사이의 소통과 협업을 중시한다.
    • 짧은 주기로 동작하는 결과물을 반복해서 내놓으며 요구사항 변화에 빠르게 대응한다.
    • 단계를 순서대로 한 번씩만 거치는 폭포수(Waterfall) 모형과 대비되는 경량 방법론이다.
    해설

    애자일(Agile)


    [해설]

    문서·절차에 앞서 사람 간 소통을 중시하고 짧은 주기로 반복·점진 개발하는 경량 방법론은 애자일(Agile)이다.

    애자일은 변화 대응을 계획 준수에 앞세우며, 동작하는 결과물을 자주 내놓는다.

    단계를 순서대로 한 번씩만 거치는 폭포수 모형과 정반대 성격이다.

    혼동 주의: 스크럼(Scrum)·XP·칸반은 애자일을 실천하는 구체 기법이지, 방법론 전체의 이름이 아니다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    82020년-정보처리기사실기-2회차

    20-2

    재해 복구 계획에서 쓰는 지표에 관한 설명이다. 아래 내용이 가리키는 용어를 영문 약어로 적으시오.

    • 화재·정전·서버 장애 같은 사고로 서비스가 멈춘 순간을 기점으로 한다.
    • 업무가 복구되어 정상 운영으로 돌아오기까지 허용되는 시간의 목표치다.
    • 이 값이 짧을수록 더 비싼 복구 체계(핫 사이트 등)가 필요하다.
    해설

    RTO(Recovery Time Objective)


    [해설]

    중단 시점부터 정상 가동까지의 목표 시간은 RTO(Recovery Time Objective, 목표 복구 시간)이다.

    함께 나오는 RPO(Recovery Point Objective)는 시간이 아니라 데이터를 어느 시점까지 되살릴지, 곧 허용 가능한 데이터 손실 구간을 뜻한다.

    RTO를 줄이려면 미러 사이트·핫 사이트처럼 대기 설비를 늘려야 하므로 비용과 맞바꾸는 관계다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    92020년-정보처리기사실기-2회차

    20-2

    [학생] 테이블은 학번(VARCHAR), 이름(VARCHAR), 학년(NUMBER), 전공(VARCHAR), 학점(NUMBER), 이메일(VARCHAR) 속성으로 이루어져 있다.

    [학생]

    학번이름학년전공학점이메일
    21301윤서진1경영학3.8sj@univ.ac.kr
    21452조하람2통계학4.1hr@univ.ac.kr
    21517남궁현3컴퓨터공학3.5nh@univ.ac.kr
    21689채유나4전자공학4.3yn@univ.ac.kr
    21744편도훈3수학3.9dh@univ.ac.kr

    아래 조건을 모두 만족하는 SQL 문을 작성하시오.

    • 3학년 또는 4학년인 학생의 학번과 이름을 조회한다.
    • 조건절에는 반드시 IN 연산자를 사용한다.
    해설

    SELECT 학번, 이름 FROM 학생 WHERE 학년 IN (3, 4);


    [해설]

    여러 값 중 하나와 일치하는지 검사할 때는 IN (값 목록)을 쓴다. 따라서 조건은 WHERE 학년 IN (3, 4)가 된다.

    이는 WHERE 학년 = 3 OR 학년 = 4와 결과가 같다. 위 표에서는 남궁현·채유나·편도훈 세 행이 조회된다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    102020년-정보처리기사실기-2회차

    20-2

    데이터베이스 설계 시 데이터 모델링은 아래 순서로 진행된다. 빈칸 ①~③에 들어갈 단계를 [보기]에서 골라 적으시오.

    요구사항 분석 → ( ① ) → ( ② ) → ( ③ )

    [보기] 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링

    해설

    ① 개념적 데이터 모델링

    ② 논리적 데이터 모델링

    ③ 물리적 데이터 모델링


    [해설]

    추상도가 높은 것부터 낮은 것 순서로 개념적 → 논리적 → 물리적 모델링을 거친다.

    • 개념적: 업무 요구를 엔터티·관계로 추상화해 E-R 다이어그램을 그린다(DBMS 무관).
    • 논리적: 관계 스키마로 변환하고 정규화를 수행한다(특정 DBMS 무관).
    • 물리적: 특정 DBMS에 맞춰 테이블·인덱스·저장 구조를 정의한다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    112020년-정보처리기사실기-2회차

    20-2

    웹 애플리케이션을 노리는 공격 기법 가운데 SQL 삽입(Injection)의 개념을 설명하시오.

    해설

    입력값 검증이 미흡한 응용 프로그램의 취약점을 이용해, 입력란 등에 악의적인 SQL 구문을 끼워 넣어 실행시킴으로써 데이터베이스의 정보를 빼내거나 조작하는 공격이다.


    [해설]

    SQL 삽입(SQL Injection)은 입력값이 SQL 문에 그대로 이어 붙는 입력값 검증 미흡 취약점을 노리는 웹 공격이다.

    공격자가 로그인 창 같은 입력란에 ' OR '1'='1 같은 구문을 넣으면 WHERE 조건이 항상 참이 된다. 그러면 인증을 우회하거나 DB 정보를 빼내고 조작할 수 있다.

    대응책은 PreparedStatement(바인딩 변수) 사용, 입력값 검증·특수문자 필터링, 오류 메시지 노출 제한이다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    122020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 용어를 영문 약어로 적으시오.

    • 누구나 자유롭게 쓸 수 있도록 공개된 데이터(Open Data)에, 웹상의 다른 데이터와 서로 연결되는 구조(Linked Data)를 결합한 개념이다.
    • 데이터마다 고유 URI를 부여하고 RDF 형식으로 표현해, 전 세계의 공개 정보를 하나의 거대한 데이터 망처럼 엮는다.
    해설

    LOD


    [해설]

    공개 데이터(Open Data)와 연결 데이터(Linked Data)를 합친 개념은 LOD(Linked Open Data)다.

    각 데이터에 고유 URI를 붙이고 주어-서술어-목적어 형태의 RDF 형식으로 기술해, 웹 전체를 하나의 데이터 망으로 잇는다.

    팀 버너스리가 시맨틱 웹을 구현하는 방법으로 제안한 개념이다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    132020년-정보처리기사실기-2회차

    20-2

    아래 Python 프로그램의 실행 결과를 적으시오.

    tags = {'서울', '대전', '부산'}
    tags.add('광주')
    tags.add('서울')
    tags.remove('대전')
    tags.update(['울산', '부산', '제주', '광주'])
    print(len(tags), sorted(tags))
    해설

    5 ['광주', '부산', '서울', '울산', '제주']


    [해설]

    세트(set)는 중복을 허용하지 않는 자료형이라 이미 있는 값을 add·update로 넣어도 한 번만 남는다.

    • 초기: {서울, 대전, 부산}
    • add('광주') → 4개, add('서울') → 이미 있어 변화 없음
    • remove('대전') → {서울, 부산, 광주}
    • update로 울산·제주만 새로 추가되고 부산·광주는 중복이라 무시 → 5개

    len은 5이다. 세트는 순서가 없으므로 sorted로 정렬한 리스트가 찍혀 ['광주', '부산', '서울', '울산', '제주']가 출력된다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    142020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 운영체제를 적으시오.

    • 리눅스 커널 위에서 동작하는 휴대용 기기용 소프트웨어 스택으로, 운영체제·미들웨어·사용자 인터페이스·기본 앱(웹 브라우저, 이메일, 문자 메시지 등)을 포함한다.
    • 개발자는 Java나 Kotlin으로 앱을 작성하며, 컴파일된 바이트코드를 실행하는 런타임과 라이브러리가 함께 제공된다.
    • 구글이 주도해 오픈 소스로 공개했다.
    해설

    안드로이드(Android)


    [해설]

    리눅스 커널 기반으로 구글이 오픈 소스로 공개한 모바일 소프트웨어 스택은 안드로이드(Android)이다.

    운영체제·미들웨어·UI·기본 앱을 함께 제공하며, Java·Kotlin으로 작성한 앱의 바이트코드는 ART(Android Runtime)에서 실행된다.

    혼동 주의: iOS는 리눅스가 아닌 다윈(XNU) 커널 기반이고 Swift·Objective-C를 쓴다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    152020년-정보처리기사실기-2회차

    20-2

    빈칸 ( ㉮ )에 공통으로 들어갈 용어를 적으시오.

    • 소프트웨어 개발 전 과정에서 산출물의 변경 사항을 식별·통제하고 이력을 추적하는 활동을 ( ㉮ )(이)라 한다.
    • ( ㉮ )를 지원하는 대표 도구로 Git, SVN, CVS 등이 있다.
    해설

    형상 관리(SCM)


    [해설]

    산출물의 변경을 식별·통제하고 이력을 추적하는 활동은 형상 관리(SCM, Software Configuration Management)이다.

    절차는 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록(보고) 순이다. Git은 분산형, SVN·CVS는 중앙 집중형 버전 관리 도구다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    162020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 테스트 도구의 종류를 적으시오.

    • 프로그램을 실행하지 않은 채 소스 코드 자체를 검사한다.
    • 코딩 표준 위반, 코딩 스타일, 코드 복잡도, 잠재 결함 등을 찾아낸다.
    • PMD, Checkstyle, SonarQube 등이 이에 속한다.
    해설

    정적 분석 도구


    [해설]

    프로그램을 실행하지 않고 소스 코드만 분석하는 테스트 도구는 정적 분석 도구(Static Analysis Tool)이다.

    코딩 표준 위반·복잡도·잠재 결함을 실행 전에 찾아내며 PMD, Checkstyle, SonarQube가 대표적이다.

    혼동 주의: 프로그램을 실제로 실행하며 메모리 누수·성능 병목을 찾는 것은 동적 분석 도구(Valgrind 등)이다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    172020년-정보처리기사실기-2회차

    20-2

    아래 Java 프로그램이 실행되면 "Ring"이 출력된다. 밑줄 친 빈칸에 들어갈 키워드를 적으시오.

    class Vehicle {
        public String sound() {
            return "...";
        }
    }
    
    class Bike extends Vehicle {
        @Override
        public String sound() {
            return "Ring";
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Vehicle v = ________ Bike();
            System.out.println(v.sound());
        }
    }
    해설

    new


    [해설]

    클래스로부터 객체(인스턴스)를 만들 때는 new 연산자로 생성자를 호출한다.

    Bike 객체를 부모 타입 변수 v에 담는 것은 업캐스팅이다. 변수 타입이 Vehicle이어도 실제 객체가 Bike이므로 재정의(오버라이딩)된 Bike.sound()가 실행되어 "Ring"이 출력된다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    182020년-정보처리기사실기-2회차

    20-2

    리눅스에서 a.txt 파일의 권한을 아래와 같이 설정하는 명령어를 한 줄로 작성하시오. 권한은 8진수 숫자로 지정한다.

    대상부여할 권한
    소유자읽기, 쓰기, 실행
    그룹읽기, 실행
    그 외 사용자실행
    해설

    chmod 751 a.txt


    [해설]

    권한 변경 명령은 chmod이며, 읽기 r=4, 쓰기 w=2, 실행 x=1을 더해 대상별 숫자를 만든다.

    • 소유자 rwx = 4+2+1 = 7
    • 그룹 r-x = 4+0+1 = 5
    • 그 외 --x = 0+0+1 = 1

    따라서 chmod 751 a.txt이며, 결과 권한 문자열은 rwxr-x--x이다. 소유자를 바꾸는 chown과 혼동하지 않는다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    192020년-정보처리기사실기-2회차

    20-2

    다음 설명에 해당하는 보안 프로토콜을 적으시오.

    • OSI 3계층, 즉 IP 계층에서 패킷 단위로 보안을 제공하는 표준 기술이다.
    • 인증 헤더(AH)로 무결성과 출처 인증을, 캡슐화 보안 페이로드(ESP)로 기밀성(암호화)을 보장한다.
    • 터널 모드와 전송 모드를 지원해 VPN 구축에 널리 쓰인다.
    해설

    IPSec


    [해설]

    AH와 ESP를 써서 IP 계층(네트워크 계층)에서 패킷 단위로 보안을 제공하는 표준은 IPSec(IP Security)이다.

    • AH(인증 헤더)는 무결성과 출처 인증을 제공하지만 암호화는 하지 않는다.
    • ESP(캡슐화 보안 페이로드)는 암호화로 기밀성을 제공한다.
    • 터널 모드는 IP 패킷 전체를 감싸고, 전송 모드는 페이로드만 보호한다.

    혼동 주의: SSL/TLS는 전송 계층 위에서 동작하고, IPSec은 그보다 아래인 3계층에서 동작한다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

    202020년-정보처리기사실기-2회차

    20-2

    UI(사용자 인터페이스) 설계 원칙을 정리한 것이다. 빈칸에 알맞은 원칙을 적으시오.

    • 직관성: 처음 보는 사용자도 쉽게 이해하고 조작할 수 있어야 한다.
    • ( ㉮ ): 사용자가 이루려는 목표를 정확하고 완벽하게 달성할 수 있어야 한다.
    • 학습성: 누구나 사용법을 쉽게 익히고 기억할 수 있어야 한다.
    • 유연성: 사용자의 요구를 최대한 받아들이고 실수를 최소화하며 대응할 수 있어야 한다.
    해설

    유효성


    [해설]

    사용자의 목적을 정확·완벽하게 이루게 하는 원칙은 유효성이다.

    UI 설계의 4대 원칙은 직관성·유효성·학습성·유연성으로 묶어 외운다. 쉽게 이해(직관성), 목표 달성(유효성), 쉽게 배움(학습성), 오류 수용(유연성)으로 구별한다.

    내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.

2020년 정보처리기사실기 2회차 시험지 PDF 다운로드·인쇄 →

전 회차를 한 권으로 — 정보처리기사 실기 기출문제 PDF 전자책(문제집·정답해설집) →

2020년 정보처리기사실기 2회차 정답과 해설은 무료인가요?

이 페이지의 20문항 정답과 해설은 로그인 없이 무료로 볼 수 있습니다. 무제한 풀이·실전 모의고사·PDF 출력·전자책 다운로드는 베이직 플랜에 포함됩니다.

이 회차를 CBT 로 직접 풀어볼 수 있나요?

정보처리기사 실기 기출문제 암기장에서 이 회차를 회차별·랜덤으로 풀고 오답노트에 자동으로 모을 수 있습니다. 정보처리기사 실기 기출문제 풀러 가기 →

시험지 PDF 나 전자책으로도 볼 수 있나요?

이 회차의 인쇄용 시험지 PDF 와, 전 회차를 문제집·정답해설집으로 묶은 PDF 전자책을 제공합니다. 정보처리기사 실기 기출문제 PDF 전자책 보기 →

2020년 정보처리기사실기 2회차 문항별 상세 페이지 전체 보기