본문 바로가기

📕정보 처리 기사/필기

2. 정보처리기사 2020 2회 필기 기출

6. UML에서 시퀀스 다이어그램의 구성 항목에 해당하지 않는 것은?    ① 생명선 ② 실행    ③ 확장 ④ 메시지
  • [해설]

    정답 - 3️⃣

    • 시퀀스 다이어그램의 구성 요소

      -액터(Actor) : 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미함

      -객체(Object) : 메시지를 주고받는 주체

      -라이프라인(Lifeline) : 객체가 메모리에 존재하는 기간

      -활성(실행) 상자(Activation Box) : 객체가 메시지를 주고받으며 구동(실행)되고 있음을 표현

      -메시지(Message) : 객체가 상호 작용을 위해 주고받는 메시지

      -객체 소멸 : 라이프라인 상에서 객체 소멸 표시를 만나면 해당 객체는 더 이상 메모리에 존재하지 않음을 의미

      -프레임(Frame) : 다이어그램의 전체 또는 일부를 묶어 표현

12. UML에서 활용되는 다이어그램 중, 시스템의 동작을 표현하는 행위(Behavioral) 다이어그램에 해당하지 않는 것은?     ① 유스케이스 다이어그램(Use Case Diagram)     ② 시퀀스 다이어그램(Sequence Diagram)     ③ 활동 다이어그램(Activity Diagram)     ④ 배치 다이어그램(Deployment Diagram)
  • [해설]

    정답 - 4️⃣

    • UML(Unified Modeling Language)
      • 구조적(Structural) 다이어그램의 종류

        -클래스 다이어그램(Class Diagram)

        -객체 다이어그램(Object Diagram)

        -컴포넌트 다이어그램(Component Diagram)

        -배치 다이어그램(Deployment Diagram)

        -복합체 구조 다이어그램(Composite Structure Diagram)

        -패키지 다이어그램(Package Diagram)

      • 행위적(Behavioral) 다이어그램의 종류

        -유스케이스 다이어그램(Use Case Diagram)

        -시퀀스 다이어그램(Sequence Diagram)

        -커뮤니케이션 다이어그램(Communication Diagram)

        -상태 다이어그램(State Diagram)

        -활동 다이어그램(Activity Diagram)

        -상호작용 개요 다이어그램(Interaction Overview Diagram)

        -타이밍 다이어그램(Timing Diagram)

19. CASE(Computer-Aided Software Engineering)도구에 대한 설명으로 거리가 먼 것은?     ① 소프트웨어 개발 과정의 일부 또는 전체를 자동화하기 위한 도구이다.     ② 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.     ③ 작업 과정 및 데이터 공유를 통해 작업자간 커뮤니케이션을 증대한다.     ④ 2000년대 이후 소개되었으며, 객체지향 시스템에 한해 효과적으로 활용된다.
  • [해설]

    정답 - 4️⃣

    • CASE(Computer Aided Software Engineering)

      -CASE는 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것

      -소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성함

      -소프트웨어 생명 주기의 전체 단계를 연결해 주고, 자동화해 주는 통합된 도구를 제공해 주는 기술

      -소프트웨어 개발 도구와 방법론이 결합된 것으로, 정형화된 구조 및 방법(메커니즘)을 소프트웨어 개발에 적용하여 생산성 향을 구현하는 공학 기법

      -소프트웨어 개발의 모든 단계에 걸쳐 일관된 방법론을 제공하는 자동화 도구(CASE Tool)을 지원하고, 개발자들은 이 도구를 사용하여 소프트웨어 개발의 표준화를 지향하며, 자동화의 이점을 얻을 수 있게 해줌

      -주요 기능 : 소프트웨어 생명주기 전 단계의 연결, 다양한 소프트웨어 개발 모형 지원, 그래픽 직원

2과목 : 소프트웨어 개발

28. 형상 관리 도구의 주요 기능으로 거리가 먼 것은?     ① 정규화(Normalization) ② 체크인(Check-in)     ③ 체크아웃(Check-out) ④ 커밋(commit)
  • [해설]

    정답 - 1️⃣

    • 소프트웨어의 버전 등록 관련 주요 용어

      -저장소(Repository)

      -가져오기(Import)

      -체크아웃(Check-Out)

      -체크인(Check-In)

      -커밋(Commit)

      -동기화(Update)

35. 물리데이터 저장소의 파티션 설계에서 파티션 유형으로 옳지 않은 것은?     ① 범위분할(Range Partitioning)     ② 해시분할(Hash Partitioning)     ③ 조합분할(Composite Partitioning)     ④ 유닛분할(Unit Partitioning)
  • [해설]

    정답 - 4️⃣

    • 파티션의 종류
      • 범위 분할(Range Partitioning)

        -지정한 열의 값을 기준으로 분할

        -일별, 월별, 분기별 등

      • 해시 분할(Hash Partitioning)

        -해시 함수를 적용한 결과 값에 따라 데이터를 분할

        -특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로, 데이터를 고르게 분산할 때 유용

        -특정 데이터가 어디에 있는지 판단할 수 없다.

        -고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적

      • 조합 분할(Composite Partitioning)

        -범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식

        -범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용

3과목 : 데이터베이스 구축

49. 분산 데이터베이스의 투명성(Transparency)에 해당 하지 않는 것은?     ① Location Transparency ② Replication Transparency     ③ Failure Transparency ④ Media Access Transparency
  • [해설]

    정답 - 4️⃣

    • 분산 데이터베이스(Distributed Database)

      -분산 데이터베이스는 논리적으로 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스로 목표는 다음과 같다.

      1. 위치 투명성(Location Transparency) : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 DB의 논리적인 명칭으로만 접근할 수 있음
      1. 중복 투명성(Replication Transparency) : 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행
      1. 병행 투명성(Concurrency Transparency) : 분산 DB와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않음
      1. 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행됨
54. 데이터베이스 로그(log)를 필요로 하는 회복 기법은?     ① 즉각 갱신 기법 ② 대수적 코딩 방법     ③ 타임 스탬프 기법 ④ 폴딩 기법
  • [해설]

    정답 - 1️⃣

    • 즉각 갱신 기법(Immediate Update)

      -트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 방영하는 방법

      -장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들은 Log에 보관

      -회복 작업을 할 경우에는 Redo와 Undo 모두 사용 가능하다

57. 관계대수의 순수관계 연산자가 아닌 것은?     ① Select ② Cartesian Product     ③ Division ④ Project
  • [해설]

    정답 - 2️⃣

    • 관계형 데이터베이스의 관계대수
      • 순수 관계 연산자
        1. Select : 수평 연산(행 추출), 기호는 시그마(σ)를 사용
        1. Project : 수직 연산자(열/속성 추출), 기호는 파이(π)를 사용
        1. Join : 기호는 ⨝를 사용
        1. Division : 기호는 ÷를 사용
      • 일반 집합 연산자
        1. Union(⋃)
        1. Intersection(⋂)
        1. Difference(-)
        1. Cartesian Product(x)
59. 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상을 의미하는 것은?     ① normalization ② rollback     ③ cardinality ④ anomaly
  • [해설]

    정답 - 4️⃣

    • 이상(Anomaly)

      -정규화를 거치지 않아 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상을 의미

      1. 삽입 이상(Insertion Anomaly)
      1. 삭제 이상(Deletion Anomaly)
      1. 갱신 이상(Update Anomaly)
    • Nomalization(정규화) : 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정으로, 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.
    • Rollback : 하나의 트랜잭션이 비정상 종료됐을 때, 일부가 정상적으로 처리됐더라도 트랜잭션의 원자성을 구현하기 위해 모든 연산을 취소시키는 연산
    • cardinality = 튜플의 수 = 기수 = 대응수

4과목 : 프로그래밍 언어 활용

67. 운영체제에 대한 설명으로 거리가 먼 것은?     ① 다중 사용자와 다중 응용프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당한다.     ② CPU, 메모리 공간, 기억 장치, 입출력 장치 등의 자원을 관리한다.     ③ 운영체제의 종류로는 매크로 프로세서, 어셈블러, 컴파일러 등이 있다.     ④ 입출력 장치와 사용자 프로그램을 제어한다.
  • [해설]

    정답 - 3️⃣

    • 운영체제(OS : Operating System)

      -컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임

      -컴퓨터 사용자와 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

      -프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입 · 출력 장치, 파일 및 정보 등의 자원을 관리한다.

      -자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.

      -사용자와 시스템 간의 편리한 인터페이스를 제공한다.

      -시스템의 각종 하드웨어와 네트워크를 관리 · 제어한다.

      -데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.

      -시스템의 오류를 검사하고 복구한다.

      -자원 보호 기능을 제공한다.

      -입 · 출력에 대한 보조 기능을 제공한다.

      -가상 계산기 기능을 제공한다.

      -종류 : Windows, Unix/Linux, MacOS, Android 등

68. 배치 프로그램의 필수 요소에 대한 설명으로 틀린 것은?     ① 자동화는 심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 한다.     ② 안정성은 어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 한다.     ③ 대용량 데이터는 대용량의 데이터를 처리할 수 있어야 한다.     ④ 무결성은 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다.
  • [해설]

    정답 - 4️⃣

    • 배치 프로그램의 필수 요소
      1. 대용량 데이터 : 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 함
      1. 자동화 : 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 함
      1. 견고성 : 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 함
      1. 안정성/신뢰성 : 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함
      1. 성능 : 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야 함
🌟
70. 다음이 설명하는 응집도의 유형은?
  • [해설]

    정답 - 4️⃣

    • 응집도(Cohesion)

      -정보 은닉 개념을 확장한 것으로, 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도를 의미

      -다양한 기준으로 모듈을 구성할 수 있으나 응집도가 강할수록 품직이 높고, 약할수록 품질이 낮다.

      -응집도의 종류(강함 → 순함)

      1. 기능적 응집도(Functional Cohesion) : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
      1. 순차적 응집도(Sequential Cohesion) : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
      1. 교환(통신)적 응집도(Communication Cohesion) : 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
      1. 절차적 응집도(Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
      1. 시간적 응집도(Temporal Cohesion) : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
      1. 논리적 응집도(Logical Cohesion) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
      1. 우연적 응집도(Coincidental Cohesion) : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

73. 메모리 관리 기법 중 Worst fit 방법을 사용할 경우 10K 크기의 프로그램 실행을 위해서는 어느 부분에 할당되는가?
  • [해설]

    정답 - 4️⃣

    • 배치(Placement) 전략
      1. 최초 적합(First-Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫번째 분할 영역에 배치시키는 방법
      1. 최적 적합(Best-Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
      1. 최악 접합(Worst-Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
79. UNIX에서 새로운 프로세스를 생성하는 명령어는?     ① ls ② cat     ③ fork ④ chmod
  • [해설]

    정답 - 3️⃣

    • Unix/Linux 기본 명령어

      -cat : 파일 내용을 화면에 표시

      -chdir : 현재 사용할 디렉터리의 위치를 변경

      -chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정

      -chown : 소유자를 변경

      -cp : 파일을 복사

      -exec : 새로운 프로세스를 수행

      -find : 파일을 찾음

      -fork : 새로운 프로세스를 생성함(하위 프로세스 호출, 프로세스 복제 명령)

      -fsck : 파일 시스쳄을 검사하고 보수함

      -getpid : 자신의 프로세스 아이디를 얻음

      -getppid : 부모 프로세스 아이디를 얻음

      -ls : 현재 디렉터리 내의 파일 목록을 확인

      -mount/unmount : 파일 시스템을 마운팅한다/마운팅 해제함

      -rm : 파일을 삭제

      -wait : fork후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림

5과목 : 정보시스템 구축관리

85. 블록 암호화 방식이 아닌 것은?     ① DES ② RC4     ③ AES ④ SEED
  • [해설]

    정답 - 2️⃣

    • 개인키 암호화(Private Key Encryption) 기법

      -개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화한다.

      -데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 개인키(Private Key)K를 이용하여 암호문 C로 바꾸어 저장시켜 놓으면 사용자는 그 데이터베이스에 접근하기 위해 복호화 알고리즘 D와 개인키 K를 이용하여 다시 평문의 정보 M으로 바꾸어 이용하는 방법이다.

      -개인키 암호화 기법은 대칭 암호 기법 또는 단일키 암호화 기법이라고도 한다.

      -개인키 암호화 기법은 한 번에 하나의 데이터 블록을 암호화하는 블록 암호화 방식과, 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 스트림 암호화 방식으로 분류된다.

      -종류

      1. 블록 암호화 방식 : DES, SEED, AES, ARIA
      1. 스트림 암호화 방식 : LFSR, PC4

      -장점 : 암호화/복호화 속도가 빠르며, 알고리즘이 단순하고, 공개키 암호 기법보다 파일의 크기가 작음

      -단점 : 사용자 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐.

91. DDoS 공격과 연관이 있는 공격 방법은?     ① Secure shell ② Tribe Flood Network     ③ Nimda ④ Deadlock
  • [해설]

    정답 - 2️⃣

    • DDoS 공격의 종류

      -Trin00 : 가장 초기 형태의 데몬으로, 주로 UDP Flooding 공격을 수행

      -TFN(Tribe Flood Network) : UDP Flooding뿐만 아니라 TCP SYN Flood 공격, ICMP 응답 요청, Smurfing 공격 등을 수행

      -Stacheldraht : 이전 툴들의 기능을 유지하면서, 공격자, 마스터, 에이전트가 쉽게 노출되지 않도록 암호화된 통신을 수행하며, 툴이 자동으로 업데이트되도록 설계됨

92. CPM 네트워크가 다음과 같을 때 임계경로의 소요기일은?
  • [해설]

    정답 - 3️⃣

    -임계경로는 최장 경로를 의미

🌟
95. 소프트웨어 개발 모델 중 나선형 모델의 4가지 주요 활동이 순서대로 나열된 것은?
  • [해설]

    정답 - 2️⃣

    • 나선형 모형(Spiral Model, 점진적 모형)

      -보헴(Boehm)이 제안한 것으로, 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형

      -나선을 따라 돌듯이 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 것으로, 점진적 모형이라고도 한다.

      -소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.

      -점진적으로 개발 과정이 반복되므로 누락되거나 추가된 요구사항을 첨가할 수 있고, 정밀하며, 유지보수 과정이 필요 없다.

      -수행 과정(반복) : 계획 및 정의 → 위험분석 → 공학적 개발 → 고객 평가

96. 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추는 방법으로 소프트웨어를 완성시키는 재사용 방법은?     ① 합성 중심 ② 생성 중심     ③ 분리 중심 ④ 구조 중심
  • [해설]

    정답 - 1️⃣

    • 재사용 방법
      1. 합성 중심(Composition-Based) : 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법, 블록 구성 방법
      1. 생성 중심(Generation-Based) : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법, 패턴 구성 방법
97. 다음 JAVA코드에서 밑줄로 표시된 부분에는 어떤 보안 약점이 존재하는가? (단, key는 암호화 키를 저장하는 변수이다.)
  • [해설]

    정답 - 3️⃣

    • 하드코드된 비밀번호

      -key라는 문자열 변수에 값이 직접 연결된 것은 하드코드된 암호화 키이다.

      -소스코드 유출 시 내부에 하드코드된 패스워드를 이용하여 관리자 권한을 탈취할 수 있다.

      -패스워드는 암호화하여 별도의 파일에 저장하고, 디폴트 패스워드나 디폴드 키의 사용을 피함으로써 방지할 수 있다.

🌟
98. 소프트웨어 개발 표준 중 소프트웨어 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준은?     ① SCRUM ② ISO/IEC 12509     ③ SPICE ④ CASE
  • [해설]

    정답 - 3️⃣

    • SPICE(Software Process Improvement and Capability dEtermination)

      -SPICE(소프트웨어 처리 개선 및 평가 기준)는 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준으로, 공식 명칭은 ISO/IEC 15504이다

      -SPICE의 목적

      -프로세스 개선을 위해 개발 기관이 스스로 평가하는 것

      -기관에서 지정한 요구조건의 만족여부를 개발 조직이 스스로 평가하는 것

      -계약 체결을 위해 수탁 기관의 프로세스를 평가하는 것

      -SPICE는 5개의 프로세스 범주와 40개의 세부 프로세스로 구성

      -SPICE는 프로세스 수행 능력 단계를 불완전, 수행, 관리, 확립, 예측, 최적화의 6단계로 구분