포스트

정보처리기사 / 22.04 필기 모의고사 정리


2022년 4월 기출문제


1과목 : 소프트웨어 설계


17. UI의 종류로 멀티 터치(Multi-touch), 동작 인식(Gesture Recognition) 등 사용자의 자연스러운 움직임을 인식하여 서로 주고받는 정보를 제공하는 사용자 인터페이스를 의미하는 것은?

1
2
3
4
1. GUI(Graphical User Interface)
2. OUI(Organic User Interface)
3. NUI(Natural User Interface)
4. CLI(Command Line Interface)
입력한 답 : 2
  • 이유 : 단순히 영단어로 생각했을 때 Organic이 유기체라는 뜻이 있었기 때문에 동작 인식과 어울린다고 생각함
정답 : 3
  • 사용자 인터페이스의 구분
  • CLI(Command Line Interface) : 텍스트 형태 인터페이스
  • GUI(Graphical User Interface) : 마우스로 선택하여 작업하는 그래픽 환경 인터페이스
  • NUI(Natural User Interface) : 사용자의 말이나 행동으로 기기 조작하는 인터페이스
  • VUI(Voice User Interface) : 사람의 음성으로 기기 조작하는 인터페이스
  • OUI(Organic User Interface) : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스


18. 소프트웨어 모델링과 관련한 설명으로 틀린 것은?

1
2
3
4
1. 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 없다.
2. 구조적 방법론에서는 DFD(Data Flow Diagram), DD(Data Dictionary) 등을 사용하여 요구 사항의 결과를 표현한다.
3. 객체지향 방법론에서는 UML 표기법을 사용한다.
4. 소프트웨어 모델을 사용할 경우 개발될 소프트웨어에 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움이 된다.
입력한 답 : 3
  • 이유 : 1번이 영향을 줄 수 있다로 잘못 봄. UML 표기법이 뭔지 몰라서.
정답 : 1
  • 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있음.
  • ex) 유스케이스 명세로부터 필요한 요소들을 가져와 도메인 모델로 정리할 수 있음.
  • UML 표기법 : 객체지향 소프트웨어 개발과정에서 산출물을 명세화, 시각화, 문서화 할 시 사용되는 모델링 기준과 방법론을 통합한 표준 범용 모델링 언어.


19. 유스케이스 다이어그램(Use Case Diagram)에 관련된 내용으로 틀린 것은?

1
2
3
4
1. 시스템과 상호작용하는 외부시스템은 액터로 파악해서는 안된다.
2. 유스케이스는 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술한다.
3. 시스템 액터는 다른 프로젝트에서 이미 개발되어 사용되고 있으며, 본 시스템과 데이터를 주고받는 등 서로 연동되는 시스템을 말한다.
4. 액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 파악해서는 안된다.
입력한 답 : 2
  • 이유 : 2번이 올바른 말인 것을 인지했지만 ‘액터’의 정의에 대해 알지 못해 그나마 액터가 적혀있지 않은 선택지를 고름.
정답 : 1
  • 액터: 시스템과 상호작용하는 모든 외부요소(사람, 기계, 시스템 등)


20. 소프트웨어 아키텍처 모델 중 MVC(Model-View-Controller)와 관련한 설명으로 틀린 것은?

1
2
3
4
1. MVC 모델은 사용자 인터페이스를 담당하는 계층의 응집도를 높일 수 있고, 여러 개의 다른 UI를 만들어 그 사이에 결합도를 낮출 수 있다.
2. 모델(Model)은 뷰(View)와 제어(Controller) 사이에서 전달자 역할을 하며, 뷰마다 모델 서브시스템이 각각 하나씩 연결된다.
3. 뷰(View)는 모델(Model)에 있는 데이터를 사용자 인터페이스에 보이는 역할을 담당한다.
4. 제어(Controller)는 모델(Model)에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.
입력한 답 : 1
  • 이유 : ‘응집도’에 대해 헷갈림.
정답 : 2
  • 한 개의 모델에 대해 여러 개의 뷰를 만들 수 있음
  • 모델은 서브 시스템의 핵심 기능과 데이터를 보관하며 MVC 패턴에서는 여러 개의 뷰를 만들 수 있으므로 한 개의 모델에 대해 여러 개의 뷰를 필요로 하는 대화형 어플리케이션에 적합하다.
  • 전달자 역할은 모델(Model)이 아닌 제어(Controller)이다.
  • MVC 모델에서의 응집도는 결합도와 달리 캡슐화를 의미함





2과목 : 소프트웨어 개발


21. 통합 테스트(Integration Test)와 관련한 설명으로 틀린 것은?

1
2
3
4
1. 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트하는 것이다.
2. 하향식 통합 테스트의 경우 넓이 우선(Breadth First) 방식으로 테스트를 할 모듈을 선택할 수 있다.
3. 상향식 통합 테스트의 경우 시스템 구조도의 최상위에 있는 모듈을 먼저 구현하고 테스트한다.
4. 모듈 간의 인터페이스와 시스템의 동작이 정상적으로 잘되고 있는지를 빨리 파악하고자 할 때 상향식 보다는 하향식 통합 테스트를 사용하는 것이 좋다.
입력한 답 : 4
  • 이유 : 상향식과 하향식에 대한 개념을 알지 못함
정답 : 3
  • 상향식 통합 테스트 (Bottom Up Intergration Test)
    • 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합
    • 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)필요
  • 하향식 통합 테스트 (Top Down Intergration Test)
    • 상위 모듈에서 하위 모듈 방향으로 통합
    • 깊이 우선 통합법, 넓이 우선 통합법 사용
    • 초기부터 사용자에게 시스템 구조를 보여줌


23. 소프트웨어 공학에서 워크스루(Walkthrough)에 대한 설명으로 틀린 것은?

1
2
3
4
1. 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시코드, 테스트 케이스 등에 적용할 수 있다.
2. 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용하다.
3. 인스펙션(Inspection)과 동일한 의미를 가진다.
4. 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것이다.
입력한 답 : 2
  • 이유 : 워크스루가 어떤 개념인지 모름.
정답 : 3
  • 요구사항 검증 방법
    • 워크스루: 요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함을 발견
    • 인스펙션: 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견
    • 동료검토 : 요구사항 명세서 작성자가 명세서 내용을 직접 설명하고 동료들이 이를 들으면서 결함을 발견


25. 테스트 케이스와 관련한 설명으로 틀린 것은?

1
2
3
4
1. 테스트의 목표 및 테스트 방법을 결정하기 전에 테스트 케이스를 작성해야 한다.
2. 프로그램에 결함이 있더라도 입력에 대해 정상적인 결과를 낼 수 있기 때문에 결함을 검사할 수 있는 테스트 케이스를 찾는 것이 중요하다.
3. 개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력 값과 실행 조건, 예상 결과의 집합으로 볼 수 있다.
4. 테스트 케이스 실행이 통과되었는지 실패하였는지 판단하기 위한 기준을 테스트 오라클(Test Oracle)이라고 한다.
입력한 답 : 4
  • 이유 : Test Oracle 이 무엇인지 모름
정답 : 1
  • 테스트케이스(Test Case)
    • 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서를 의미한다.
    • 테스트의 목표 및 테스트 방법을 결정하고 테스트 케이스를 작성해야 한다
  • Test Oracle
    • 테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참 값을 대입하여 비교하는 소프트웨어 테스트 기법·활동
    • 모든 테스트 항목 적용 불가
    • 테스트 수행시 수학적 기법을 이용, 오라클 값을 구할 수 있음
    • 테스트 대상 프로그램의 실행, 결과 비교, 커버리지 측정 등


28. 위험 모니터링의 의미로 옳은 것은?

1
2
3
4
1. 위험을 이해하는 것
2. 첫 번째 조치로 위험을 피할 수 있도록 하는 것
3. 위험 발생 후 즉시 조치하는 것
4. 위험 요소 징후들에 대하여 계속적으로 인지하는 것
입력한 답 : 3
  • 이유 : 모니터링 한다는 것이 위험 발생을 지켜보고 있다가 즉시 조치하는 것이라 생각함
정답 : 4
  • 위험 모니터링의 의미
    • 위험 요소 징후들에 대하여 계속적으로 인지하는 것


29. 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구는?

1
2
3
4
1. RCS(Revision Control System)
2. RTS(Reliable Transfer Service)
3. RPC(Remote Procedure Call)
4. RVS(Relative Version System)
입력한 답 : 4
  • 이유 : 합치거나 변경 내용을 추적한대서 관계형 버전 시스템이라고 생각함
정답 : 1
  • RCS(Revision Control System)
    • CVS와의 차이점은 소스 파일의 수정을 한 사람만으로 제한한다.
    • 다수의 사용자가 동시에 파일 수정을 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구이다.
    • 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.
  • RPC(Remote Procedure call)
    • 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신
  • RTS(Reliable Transfer Service)
    • OSI 기본 참조 모델의 응용 계층 제7계층으로, 각 통신 업무에 공통으로 표준화된 응용 서비스 요소(ASE)의 하나.
    • 메시지 통신 시스템/메시지 지향 문서 교환 시스템(MHS/MOTIS)의 메시지 전송 에이전트(MTA) 간의 메시지 전송에 사용
  • RVS
    • 소프트웨어 개발에서 사용되는 버전 관리 시스템으로, 이전 버전과의 상대적인 차이점을 추적하여 관리하는 시스템


30. 화이트박스 테스트와 관련한 설명으로 틀린 것은?

1
2
3
4
1. 화이트박스 테스트의 이해를 위해 논리흐름도(Logic-Flow Diagram)를 이용할 수 있다.
2. 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당한다.
3. 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.
4. 테스트 데이터를 선택하기 위하여 검증기준(Test Coverage)을 정한다.
입력한 답 : 2
  • 이유 : 화이트박스 테스트의 개념이 없음
정답 : 3
  • 프로그램 구조를 고려하지 않는 것은 블랙박스 테스트


33. 다음은 인스펙션(Inspection) 과정을 표현한 것이다. (가)~(마)에 들어갈 말을 보기에서 찾아 바르게 연결한 것은?

1
2
3
4
1. (가) - ㉡, (나) - ㉢
2. (나) - ㉠, (다) - ㉢
3. (다) - ㉢, (라) - ㉤
4. (라) - ㉣, (마) - ㉢
입력한 답 : 1
  • 이유 : 순서대로 사전 교육 → 인스펙션 회의 → 준비 → 수정 → 후속조치 라고 생각함
정답 : 2
  • 인스펙션 과정
    • 가 - 사전교육
    • 나 - 준비
    • 다 - 인스펙션 회의
    • 라 - 수정
    • 마 - 후속조치


37. 아래 Tree 구조에 대하여 후위 순회(Postorder) 한 결과는?

1
2
3
4
1. a → b → d → c → e → g → h → f
2. d → b → g → h → e → f → c → a
3. d → b → a → g → e → h → c → f
4. a → b → d → g → e → h → c → f
입력한 답 : 3
  • 이유 : 후위 순회가 좌 → 우 순으로 순회하는 것으로 알고 있어서
정답 : 2
  • Root가 최후순위로 밀리기 때문에 하위 노드 전부 방문 후 뿌리를 방문함
  • pre_order (전위순회) : 뿌리 먼저 방문 => Root, Left, Right 순서
  • in_order (중위순회) : 왼쪽 하위 노드 방문 후 뿌리 방문 => Left, Root, Right 순서
  • post_order (후위순회) : 하위 노드 모두 방문 후 뿌리 방문 => Left, Right, Root 순서


40. 다음 중 단위 테스트 도구로 사용될 수 없는 것은?

1
2
3
4
1. CppUnit
2. JUnit
3. HttpUnit
4. IgpUnit
입력한 답 : 2
  • 이유 : 단위 테스트 도구가 어떤 것인지 묻는 질문인줄 암. 아는 것이 JUnit 밖에 없었음
정답 : 4
  • CppUnit : C++ 프로그래밍 언어용 단위 테스트 도구
  • JUnit : 자바 프로그래밍 언어용 단위 테스트 도구
  • HttpUnit : 웹 브라우저 없이 웹 사이트 테스트를 수행하는 데 사용되는 오픈 소스 소프트웨어 테스트 프레임워크
  • IgpUnit은 존재하지 않는 유닛





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


41. 다음 조건을 모두 만족하는 정규형은?

1
2
3
4
1. BCNF
2. 제1정규형
3. 제2정규형
4. 제3정규형
입력한 답 : 3
  • 이유 : 원자값만으로 구성되어 있다는 것에서 1정규화인지 2정규화인지 헷갈림. 아직 DB 정규화에 대해 완벽히 외우지 못함
정답 : 1
  • 1NF : 모든 도메인이 자 값으로만 구성
  • 2NF : 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, 분적 함수 종속을 제거한 정규형
  • 3NF : 기본키가 아닌 모든 속성이 기본키에 대해 행적 함수 종속 관계를 만족하지 않는 정규형
  • BCNF : 모든 정자가 후보키인 정규형, 종속성 보존X
  • 4NF : 치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
  • 5NF : 모든 인 종속이 R의 후보키를 통해서만 성립되는 정규형
  • 원부이결다조
  • 결정자라는 키워드가 있기 때문에 BCNF가 정답
  • 정규화라는 것은 단계적으로 설계하는 것이기 때문에 마지막 조건이 중요함


46. 물리적 데이터베이스 구조의 기본 데이터 단위인 저장 레코드의 양식을 설계할 때 고려 사항이 아닌 것은?

1
2
3
4
1. 데이터 타입
2. 데이터 값의 분포
3. 트랜잭션 모델링
4. 접근 빈도
입력한 답 : 2
  • 이유 : 데이터 베이스 설계시에 분포를 고려했었는지 기억이 안남. 생각해보니 문제에 물리적 구조라고 하였기 때문에 개념적 설계에 포함되는 트랜잭션이 정답인 것을 뒤늦게 깨달음
정답 : 3
  • 저장 레코드 양식 설계 시 고려 사항
    • 데이터 타입, 데이터 값의 분포, 접근 빈도
  • 트랜잭션 모델링
    • 트랜잭션을 개념적 시스템 독립적으로 정의한다.
    • 트랜잭션의 입출력 기능, 형태만 정의한다.
    • 검색, 갱신, 혼합(검색, 갱신)
  • 트랜잭션 모델링은 개념적 설계 단계


47. SQL의 기능에 따른 분류 중에서 REVOKE문과 같이 데이터의 사용 권한을 관리하는데 사용하는 언어는?

1
2
3
4
1. DDL(Data Definition Language)
2. DML(Data Manipulation Language)
3. DCL(Data Control Language)
4. DUL(Data User Language)
입력한 답 : 1
  • 이유 : REVOKE 문이 무엇인지 몰랐고 DDL 언어 밖에 몰랐음
정답 : 3
  • DCL 종류 (데이터 제어어)
    • COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
    • ROLLBACK : 명령어로 수행을 실패하였음을 알리고, 수행된 결과를 원상복구시킨다.
    • GRANT : 데이터베이스 사용자에게 사용 권한 부여한다.
    • REVOKE : 데이터베이스 사용자로부터 사용 권한 취소한다.
  • DDL 종류 (데이터 정의어)
    • CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
    • ALTER : TABLE에 대한 정의를 변경하는 데 사용
    • DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제
  • DML 종류 (데이터 조작어)
    • SELECT : 테이블에서 조건에 맞는 튜플을 검색
    • INSERT : 테이블에 새로운 튜플을 삽입
    • DELETE : 테이블에서 조건에 맞는 튜플을 삭제
    • UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경


50. 데이터베이스에서의 뷰(View)에 대한 설명으로 틀린 것은?

1
2
3
4
1. 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.
2. 뷰는 일종의 가상 테이블이며, update에는 제약이 따른다.
3. 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다.
4. 뷰는 논리적으로 존재하는 기본 테이블과 다르게 물리적으로만 존재하며 카탈로그에 저장된다.
입력한 답 : 1
  • 이유 : 데이터 베이스의 뷰에 대해 알지 못함
정답 : 4
  • DB의 view : 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
  • 뷰는 논리적으로만 존재한다.


56. 데이터 모델의 구성 요소 중 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업을 의미하는 것은?

1
2
3
4
1. Relation
2. Data Structure
3. Constraint
4. Operation
입력한 답 : 2
  • 이유 : 개념 세계를 보고서 데이터 구조의 얘기인 것으로 파악함
정답 : 4
  • 데이터 모델의 구성 요소
    • 구조(Structure):논리적인 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현
    • 연산(Operation):실제 데이터를 처리하는 작업에 대한 명세로, 조작하는 기본 도구
    • 제약 조건(Constraint):DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건


59. 관계 데이터 모델에서 릴레이션(Relation)에 포함되어 있는 튜플(Tuple)의 수를 무엇이라고 하는가?

1
2
3
4
1. Degree
2. Cardinality
3. Attribute
4. Cartesian product
입력한 답 : 3
  • 이유 : 튜플의 의미를 정확히 알지 못함
정답 : 2
  • 튜플 : 관계형 데이터베이스에서 릴레이션을 구성하는 각각의 행을 말하며 속성의 모임으로 구성 (= 레코드)
  • Cardinality : 튜플의 수(기수)
  • Attribute : 속성
  • Degree : 속성의 수





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


62. 다음 C언어 프로그램이 실행되었을 때, 실행 결과는?

1
2
3
4
1. 0
2. 2
3. 5
4. 14
입력한 답 : 3
  • 이유 : Java와 달리 C언어에서 논리 연산 후 리턴되는 값은 0과 1인 것을 모름.
정답 : 2
  • C언어 연산자에서 0이 아닌 모든값은 1(TRUE)
  • 부정 연산자는 자바와 동일하나 true가 아니기 떄문에 0


63. 다음 C언어 프로그램이 실행되었을 때, 실행 결과는?

1
2
3
4
1. 30
2. 60
3. 80
4. 120
입력한 답 : 1
  • 이유 : 배열을 생성한 것까지는 파악했으나 사용 방식이 약간 달라 헤맴
정답 : 2
  • 첫 번째 for문
    1
    2
    
    ob1.c = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    ob2.c = 0, 2, 4, 6, 8, 10, 12, 14, 16, 18
    
  • 두 번째 for문
    1
    2
    
    ob1.a = 0, 2, 4, 8, 10
    ob2.a = 0, 4, 8, 12, 16
    
  • 합은 60
  • 첫 번째 for문에서 배열에 값을 삽입하고
  • 두 번째 for문에서는 i+2 인덱스의 값을 저장함


64. IP 프로토콜에서 사용하는 필드와 해당 필드에 대한 설명으로 틀린 것은?

1
2
3
4
1. Header Length는 IP 프로토콜의 헤더 길이를 32비트 워드 단위로 표시한다.
2. Packet Length는 IP 헤더를 제외한 패킷 전체의 길이를 나타내며 최대 크기는 232-1비트이다.
3. Time To Live는 송신 호스트가 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간을 지정한 것이다.
4. Version Number는 IP 프로토콜의 버전번호를 나타낸다.
입력한 답 : 3
  • 이유 : 전부 맞는 말 같았고 TTL에 종료라는 키워드가 없었어서.
정답 : 2
  • IP 헤더 및 데이터를 포함한 IP 패킷 전체 길이는 2의 16승 -1임 (16비트)


65. 다음 Python 프로그램의 실행 결과가 [실행결과]와 같을 때, 빈칸에 적합한 것은?

1
2
3
4
1. either
2. elif
3. else if
4. else
입력한 답 : 3
  • 이유 : Java의 경우를 생각함
정답 : 2
  • python에는 else if가 없고 elif를 사용함


67. 다음에서 설명하는 프로세스 스케줄링은?

1
2
3
4
1. FIFO 스케줄링
2. RR 스케줄링
3. HRN 스케줄링
4. MQ 스케줄링
입력한 답 : 1
  • 이유 : 우선 순위는 결국 대기한 시간 만큼이기 때문에 먼저 들어간 데이터가 먼저 빠져나가는 FIFO 방식을 생각함
정답 : 3
  • HRN 스케줄링 방식
    • 비선점 스케줄링
      • 실행시간이 긴 프로세스에 불리한 SJF를 보완하기 위해 대기시간 및 서비스 시간을 사용해 긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다.
      • 우선순위를 계산 숫자가 높은것부터 낮은순으로 순위 부여
      • (대기시간 + 서비스시간) / 서비스시간 = 우선순위값) 값이 클수록 우선순의가 높다.
  • SJF 기법의 약점을 보완 → HRN 스케쥴링


68. UNIX 운영체제에 관한 특징으로 틀린 것은?

1
2
3
4
1. 하나 이상의 작업에 대하여 백그라운드에서 수행이 가능하다.
2. Multi-User는 지원하지만 Multi-Tasking은 지원하지 않는다.
3. 트리 구조의 파일 시스템을 갖는다.
4. 이식성이 높으며 장치 간의 호환성이 높다.
입력한 답 : 1
  • 이유 : UNIX 운영체제를 정확히 모르지만 CLI OS로 생각함. 그래서 상반된 1번 혹은 2번이 정답일 것이라 생각함
정답 : 2
  • UNIX 운영체제
    • 주로 서버용 컴퓨터에서 사용됨
    • time sharing system을 위해 설계된 대화식 운영체제
    • c언어로 작성되어 이식성 높고, 장치간 호환성 높다.
    • Multi user, Multi tasking 모두 지원
    • 트리 구조의 파일시스템


69. UDP 프로토콜의 특징이 아닌 것은?

1
2
3
4
1. 비연결형 서비스를 제공한다.
2. 단순한 헤더 구조로 오버헤드가 적다.
3. 주로 주소를 지정하고, 경로를 설정하는 기능을 한다.
4. TCP와 같이 트랜스포트 계층에 존재한다.
입력한 답 : 1
  • 이유 : 비신뢰성으로 빠른 전송을 위한 것이 UDP로 알고 있었는데, 다시 생각해보니 비연결성도 맞는 말임
정답 : 3
  • UDP (User Datagram Protocol)
    • 비연결형 및 비신뢰성 전송 서비스를 제공한다.
    • 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다.
    • 수신된 데이터의 순서 재조정 기능을 지원하지 않는다.
    • 복구 기능을 제공하지 않는다.
  • 3번 내용은 IP protocol


70. Python 데이터 타입 중 시퀀스(Sequence) 데이터 타입에 해당하며 다양한 데이터 타입들을 주어진 순서에 따라 저장할 수 있으나 저장된 내용을 변경할 수 없는 것은?

1
2
3
4
1. 복소수(complex) 타입
2. 리스트(list) 타입
3. 사전(dict) 타입
4. 튜플(tuple) 타입
입력한 답 : 3
  • 이유 : 주어진 순서에 따라 저장한다해서 사전 순으로 정렬하는 것을 생각함
정답 : 튜플
  • 시퀀스 - 리스트 - 순서 있음, 가변 [1,2,3]
  • 시퀀스 - 튜플 - 순서 있음, 불변 (1,2,3)
  • 세트 - 세트 - 순서 없음, 중복x {1,2,3}
  • 맵 - 딕셔너리 - 순서 없음, key-value쌍 {‘a’:1,’b:2,’c’:3}


74. 다음 C언어 프로그램이 실행되었을 때, 실행 결과는?

1
2
3
4
1. 0
2. 1
3. 2
4. 3
입력한 답 : 3
  • 이유 : 논리 연산자가 C언어에서는 무엇으로 리턴되는지 모름
정답 : 2
1
2
3
4
5
r1 = 참 || 거짓 = 1
r2 = false = 0
r3 = 거짓 && 참 = 0

0 - 0 + 1


75. IP 프로토콜의 주요 특징에 해당하지 않는 것은?

1
2
3
4
1. 체크섬(Checksum) 기능으로 데이터 체크섬(Data Checksum)만 제공한다.
2. 패킷을 분할, 병합하는 기능을 수행하기도 한다.
3. 비연결형 서비스를 제공한다.
4. Best Effort 원칙에 따른 전송 기능을 제공한다.
입력한 답 : 3
  • 이유 : 비연결형은 UDP 특징이라고 알고 있음
정답 : 1
  • IP 프로토콜
    • 데이터 체크섬은 제공하지 않고, 헤더 체크섬만 제공
    • 패킷을 분할, 병합하는 기능을 수행
    • 비신뢰성, 비연결형 ↔ TCP = 신뢰형, 연결형
    • Best Effort 원칙에 따른 전송 기능을 제공


76. 4개의 페이지를 수용할 수 있는 주기억장치가 있으며, 초기에는 모두 비어 있다고 가정한다. 다음의 순서로 페이지 참조가 발생할 때, LRU 페이지 교체 알고리즘을 사용할 경우 몇 번의 페이지 결함이 발생하는가?

1
2
3
4
1. 5회
2. 6회
3. 7회
4. 8회
입력한 답 : 2
  • 이유 : 반복되는 순서가 바뀌는 6회 째라고 생각함
정답 : 1
  • LRU(Least Recently USed) 알고리즘
    • LRU알고리즘은 가장 오랫동안 사용하지 않은 페이지를 교체
    • 결함 : 주기억장치의 페이지가 변동 되는것
1
2
3
4
5
6
7
페이지참조순서
1  2  3  1 2 4 1 2 5
결 결 결      결    결
1  1  1  1 1 1 1 1 1
   2  2  2 2 2 2 2 2
   3  3  3 3 3 3 3 5
             4 4 4 4


77. 사용자 수준에서 지원되는 스레드(thread)가 커널에서 지원되는 스레드에 비해 가지는 장점으로 옳은 것은?

1
2
3
4
1. 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.
2. 동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.
3. 각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.
4. 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.
입력한 답 : 3
  • 이유 : 사용자 수준이면 사용자가 핸들링하기 편할거라 생각해 독립적인 스케쥴링이 떠오름
정답 : 4
  • 1,2 = 커널 스레드의 장점
  • 3 = 커널, 사용자 수준 둘 다에서 지원되는 기능
  • 4 = 사용자 수준 스레드의 장점
  • 사용자 수준 스레드
    • 운영체제에서 스레드를 지원할 필요가 없음
    • 스케줄링 결정이나 동기화를 위해 커널을 호출하지 않기 때문에 인터럽트가 발생할 때 커널 레벨 스레드보다 오버헤드가 적음
    • 커널은 사용자 수준 스레드의 존재 조차 모르기 때문에 모드 간의 전환이 없고 성능 이득이 발생
  • 커널 스레드 장점
    • 프로세스의 스레드들을 몇몇 프로세서에 한꺼번에 디스패치 할 수 있기 때문에 멀티프로세서 환경에서 매우 빠르게 동작
    • 다른 스레드가 입출력 작업이 다 끝날 때까지 다른 스레드를 사용해 다른 작업을 진행 가능
    • 커널이 각 스레드를 개별적으로 관리
    • 커널이 직접 스레드를 제공해 주기 때문에 안정성과 다양한 기능이 제공됨
  • 커널 : 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 제어(control)함


79. a[0]의 주소값이 10일 경우 다음 C언어 프로그램이 실행되었을 때의 결과는? (단, int 형의 크기는 4Byte로 가정한다.)

1
2
3
4
1. 14, 10
2. 14, 14
3. 18, 10
4. 18, 14
입력한 답 : 1
  • 이유 : 30, 배열이 답일거라고 밖에 생각이 안듬. C 언어를 잘 모름
정답 : 3
1
2
3
4
5
6
7
      {14           ,22,          30,           38         }
주소값 10,11,12,13 / 14,15,16,17 / 18,19,20,21 / 22,23,24,25
자리값 a(0)           a(1)         a(2)          a(3)
*1개의 주소값 : 1Byte

printf("%u, ", &a[2];      a[2]자리의 첫번째 주소값   18
printf("%u", a);           a[0]자리의 첫번째 주소값   10


80. 모듈화(Modularity)와 관련한 설명으로 틀린 것은?

1
2
3
4
1. 시스템을 모듈로 분할하면 각각의 모듈을 별개로 만들고 수정할 수 있기 때문에 좋은 구조가 된다.
2. 응집도는 모듈과 모듈 사이의 상호의존 또는 연관 정도를 의미한다.
3. 모듈 간의 결합도가 약해야 독립적인 모듈이 될 수 있다.
4. 모듈 내 구성 요소들 간의 응집도가 강해야 좋은 모듈 설계이다.
입력한 답 : 4
  • 이유 : 응집도 = 의존성이라고 생각함
정답 : 2
  • 응집도 ↔ 결합도
  • 응집도 : 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성 척도
  • 독립적인 모듈이 되기 위해서는 응집도가 강해야 함





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


81. 소프트웨어 개발에서 정보보안 3요소에 해당 하지 않는 설명은?

1
2
3
4
1. 기밀성 : 인가된 사용자에 대해서만 자원 접근이 가능하다.
2. 무결성 : 인가된 사용자에 대해서만 자원 수정이 가능하며 전송중인 정보는 수정되지 않는다.
3. 가용성 : 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능하다.
4. 휘발성 : 인가된 사용자가 수행한 데이터는 처리 완료 즉시 폐기 되어야 한다.
입력한 답 : 3
  • 이유 : 가용성은 부차적인 요소라 생각함
정답 : 4
  • 정보보안 3요소 : 무결성,기밀성,가용성


82. 어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고, 그 반대의 경우에는 거부할 수 있는 접근제어 유틸리티는?

1
2
3
4
1. tcp wrapper
2. trace checker
3. token finder
4. change detector
입력한 답 : 3
  • 이유 : 접근 인가 여부 점검이 token을 통해 이루어진다고 생각함
정답 : 1
  • tcp wrapper : 어떤 외부 컴퓨터가 접속되면 접속 인가 여부를 점검해서 인가된 경우에는 접속이 허용되고, 그 반대의 경우에는 거부할 수 있는 접근제어 유틸리티
  • tcp/ip 통신의 3-way handshake 중 확인


83. 기기를 키오스크에 갖다 대면 원하는 데이터를 바로 가져올 수 있는 기술로 10㎝ 이내 근접 거리에서 기가급 속도로 데이터 전송이 가능한 초고속 근접무선통신(NFC : Near Field Communication) 기술은?

1
2
3
4
1. BcN(Broadband Convergence Network)
2. Zing
3. Marine Navi
4. C-V2X(Cellular Vehicle To Everything)
입력한 답 : 1
  • 이유 : 통신에 사용하는 기술을 broadband 라고 알고 있었으며 변환 = 근거리 통신으로 라고 생각함
정답 : 2
  • Zing
  • 가까이 대면 지이잉(zing)


84. 취약점 관리를 위한 응용 프로그램의 보안 설정과 가장 거리가 먼 것은?

1
2
3
4
1. 서버 관리실 출입 통제
2. 실행 프로세스 권한 설정
3. 운영체제의 접근 제한
4. 운영체제의 정보 수집 제한
입력한 답 : 4
  • 이유 : 정보 수집과는 관련 없다고 생각함
정답 : 1
  • 응용프로그램 취약점 관리
    • 패치 관리 : 응용프로그램에 대한 패치 또는 서비스 팩 적용
    • 응용프로그램 실행권한의 제한 필요
    • 운영체제의 접근 제한
    • 정보 수집 제한
    • 불필요한 서비스 및 악성 프로그램의 확인 및 제거
    • 시스템 무결성 검사 : 주요 파일을 검사하여 변경 내역 확인
  • 취약점 분석
    • 환경 및 시설: 도난, 정전-오작동, 천재지변
    • 하드웨어: 고장-오작동, 데이터 유실
    • 소프트웨어: 소프트웨어 장애, 정보유출, 데이터 소실


87. 다음 내용이 설명하는 기술로 가장 적절한 것은?

1
2
3
4
1. Virtual Local Area Network
2. Simple Station Network
3. Mesh Network
4. Modem Network
입력한 답 : 4
  • 이유 : 대용량을 빠르고 안전하게 라는 것이 어떤 기기를 통해 한다고 생각해 모뎀 네트워크를 선택함
정답 : 3
  • 그물 = mesh


90. 다음 설명에 해당하는 공격기법은?

1
2
3
4
1. Ping of Death
2. Session Hijacking
3. Piggyback Attack
4. XSS
입력한 답 : 4
  • 이유 : 디도스라고 생각했는데 선택지에 없었고, ping 을 찍어보는 느낌의 설명이라 1번하려했는데 4번이 애매해서 찍음
정답 : 1
  • XSS (크로스 사이트 스크립팅) : 웹사이트에 악성 스크립트를 주입하는 행위. 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것
  • Piggyback Attack(피그백 공격) : 공격자가 다른 사용자의 연결에서 계정을 사용하지 않는 비활성 기간(비활성 간격)을 이용하여 시스템에 액세스(접근)함. (= 간선(회선 간) 공격)
  • Session Hijacking(세션 가로채기) : 컴퓨터 시스템의 정보나 서비스에 무단으로 접근하기 위해 유효한 컴퓨터 세션(세션 키라고도 함)을 이용하는 것 일반적인 예로 두 컴퓨터 간에 활성화된 상태(즉, 로그인된 상태)에서 공격자가 피공격자의 로그인 정보를 활용하여 자신에게 필요한 행위를 하는 것을 뜻함


93. 대칭 암호 알고리즘과 비대칭 암호 알고리즘에 대한 설명으로 틀린 것은?

1
2
3
4
1. 대칭 암호 알고리즘은 비교적 실행 속도가 빠르기 때문에 다양한 암호의 핵심 함수로 사용될 수 있다.
2. 대칭 암호 알고리즘은 비밀키 전달을 위한 키 교환이 필요하지 않아 암호화 및 복호화의 속도가 빠르다.
3. 비대칭 암호 알고리즘은 자신만이 보관하는 비밀키를 이용하여 인증, 전자서명 등에 적용이 가능하다.
4. 대표적인 대칭키 암호 알고리즘으로는 AES, IDEA 등이 있다.
입력한 답 : 3
  • 이유 : 비대칭과 대칭 헷갈림
정답 : 2
  • 대칭 암호화 알고리즘은 키 교환이 필요하기 때문에 키를 교환하는 중 키가 탈취될 수 있다는 문제가 있음


95. 접근 통제 방법 중 조직 내에서 직무, 직책 등 개인의 역할에 따라 결정하여 부여하는 접근 정책은?

1
2
3
4
1. RBAC
2. DAC
3. MAC
4. QAC
입력한 답 : 4
  • 이유 : QAC의 Q가 Qualified의 줄임인 것으로 파악함
정답 : 1
  • MAC (Mandatory Access Control)
    • 강제 접근 통제
    • 미리 정해진 자원의 보안 레벨과 사용자에게 허락된 접근 권한 비교
  • DAC (Discretionary Access Control)
    • 임의적 접근통제
    • 자원에 대한 접근을 사용자나 그룹의 신분에 따라 제한
    • 자원의 소유권을 가진 사람이 다른 사람의 접근을 허용하거나 제한할 수 있음
  • RBAC (Role Based Access Control)
    • 사용자 역할에 따른 접근 통제
    • 개별적인 신분이 아니라 조직 내 그룹 / 역할에 따라 부여


96. COCOMO(Constructive Cost Model) 모형의 특징이 아닌 것은?

1
2
3
4
1. 프로젝트를 완성하는데 필요한 man-month로 산정 결과를 나타낼 수 있다.
2. 보헴(Boehm)이 제안한 것으로 원시코드 라인 수에 의한 비용 산정 기법이다.
3. 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델이며 중소 규모 소프트웨어 프로젝트 비용 추정에 적합하다.
4. 프로젝트 개발유형에 따라 object, dynamic, function의 3가지 모드로 구분한다.
입력한 답 : 3
  • 이유 : 비용 산정을 큰 규모에서 하는 것인줄 암
정답 : 4
  • COCOMO 모형
    • 원시 프로그램 규모(LOC)에 의한 비용 산정 기법
    • 보헴(Boehm)이 제안
    • 비교적 작은 규모의 프로젝트들을 통계 분석한 결과를 반영한 모델 -> 중소 규모 소프트웨어 프로젝트 비용 추정에 적합
    • 비용 산정 결과는 Man-Month로 표현
      • 소프트웨어 개발유형에 따른 분류
        • 조직형(Organic)
          • 5만 라인 이하
          • 사무 처리용, 업무용, 과학용 소프트웨어 개발에 적합
        • 반분리형(Semi-Detached)
          • 30만 라인 이하
          • 컴파일러, 인터프리터 개발에 적합
        • 내장형(Embedded)
          • 30만 라인 이상
          • 미사일 유도 시스템, 실시간 처리 시스템 개발에 적합
  • 4번은 럼바우(Rumbaugh)


98. 시스템의 사용자가 로그인하여 명령을 내리는 과정에 대한 시스템의 동작 중 다음 설명에 해당하는 것은?

1
2
3
4
1. Aging
2. Accounting
3. Authorization
4. Authentication
입력한 답 : 3
  • 이유 : 3번과 4번을 반대로 생각함
정답 : 4
  • Authorization : 인가
  • Authentication : 인증





아예 공부 안한 상태에서 처음 봤는데 그래도 합격에 가까워서 불가능은 아니라 생각한다.

필기는 오답노트 쓰면서 외우고 실기부터 준비할 생각이다.





추가

3. 익스트림 프로그래밍에 대한 설명으로 틀린 것은?

1
2
3
4
1. 대표적인 구조적 방법론 중 하나이다.
2. 소규모 개발 조직이 불확실하고 변경이 많은 요구를 접하였을 때 적절한 방법이다.
3. 익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어 올리는 것이다.
4. 구체적인 실천 방법을 정의하고 있으며, 개발 문서 보다는 소스코드에 중점을 둔다.
입력한 답 : 2
  • 이유 : 대규모 조직인줄 암
정답 : 1
  • 구조적 방법론이 아니라 애자일 방법론 중 하나


35. 단위 테스트(Unit Test)와 관련한 설명으로 틀린 것은?

1
2
3
4
1. 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
2. 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
3. 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
4. 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
입력한 답 : 2
  • 이유 : 구조를 헷갈림
정답 : 3
  • 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 드라이버(test driver)라고 한다. 반대로 테스트 스텁(test stub)은 인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할을 한다.


66. RIP 라우팅 프로토콜에 대한 설명으로 틀린 것은?

1
2
3
4
1. 경로 선택 메트릭은 홉 카운트(hop count)이다.
2. 라우팅 프로토콜을 IGP와 EGP로 분류했을 때 EGP에 해당한다.
3. 최단 경로 탐색에 Bellman-Ford 알고리즘을 사용한다.
4. 각 라우터는 이웃 라우터들로부터 수신한 정보를 이용하여 라우팅 표를 갱신한다.
입력한 답 : 3
  • 이유 : 벨맨 포드 알고리즘에 대해 모름
정답 : 2
  • RIP(Routing Information Protocol)
    • 최단 경로 탐색에는 Bellman-Ford 알고리즘을 사용하는 거리 벡터 라우팅 프로토콜
    • 라우팅 프로토콜을 IGP와 EGP로 분류했을 때 IGP에 해당한다.
    • 최단경로탐색에는 Bellman-Ford 알고리즘을 사용한다.
    • 최적의 경로를 산출하기 위한 정보로서 홉(거리 값)만을 고려하므로, RIP을 선택한 경로가 최적의 경로가 아닌 경우가 많이 발생할 수 있다.
    • 소규모 네트워크 환경에 적합하다.
    • 최대 홉 카운트를 15홉 이하로 한정하고 있다.
이 블로그는 저작권자의 CC BY 4.0 라이센스를 따릅니다.