[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 301 ~ 350 오답정리

301. 리눅스 기본 명령어

  • 파일 
    • Is (list) : 현재 위치의 파일 목록 조회
    • tourch : 파일의 용량이 0인 파일 생성, 날짜 변경
    • cp (copy) : 파일 복사
    • mv (move) : 파일 이동
    • rm (remove) : 파일 제거
    • cat (catenate) : 파일의 내용을 화면에 출력하거나 파일을 생성
    • redirection : 화면에 출력되는 결과를 파일로 저장
  • 디렉토리
    • cd (change directory) : 디렉토리를 이동
    • mkdir (make directory) : 디렉토리를 생성
    • pwd (print working directory) : 현재 작업중인 디렉토리 정보 출력
  • 운영체제
    • uname : 커널명/버전, 호스트명, 리눅스 버전 등 운영체제 정보 조회

 

305. 미들웨어의 유형

  • DB 접속 미들웨어
    • 데이터베이스 제품 제작업체에서 제공하는 어플리케이션과 데이터베이스를 연결해주는 미들웨어
  • RPC (Remote Procedure Call)
    • 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어
  • MOM (Message Oriented Middle ware)
    • 메시지 기반의 비동기형 메시지 전달 방식 미들웨어
    • 서로 다른 이기종 분산 데이터 시스템의 데이터 동기를 위하여 주로 사용
  • TP - 모니터 (TP - Monitor)
    • 온라인 업무에서 트랜잭션을 처리, 감시하는 미들웨어
    • 사용자 수가 증가하여도 빠른 응답 속도
  • ORB (Object Request Broker)
    • 코바 (CORBA) 표준 스펙을 구현한 객체지향 미들웨어
    • 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어
  • WAS (Web Application Server)
    • 웹 환경을 구현하기 위한 미들웨어
    • HTTP 세션 처리를 위한 웹서버 기능뿐만 아니라 민감한 기업 업무까지 JAVA, EJB 컴포넌트 기반으로 구현 가능

 

307. 객체지향 분석 방법론

  • Rumbaugh 방법 (OMT, Object Modeling Technique)
    • 객체모델링 (Object Modeling)
      • 정보 모델링
      • 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계 규정
      • 실세계 문제 영역으로부터 객체와 클래스를 추출해 그들 간의 관계를 연관화, 집단화, 일반화 중심으로 규명
      • 클래스의 속성과 연산을 함께 표현함으로써 시스템의 정적 구조 생성
    • 동적모델링 (Dynamic Modeling)
      • 상태 다이어그램을 사용하여 시스템의 행위 기술
    • 기능모델링 (Function Modeling)
      • 자료 흐름도 (DFD) 이용
      • 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정 표현
      • 어떤 데이터를 입력하면 어떤 결과를 구할 것인지 표현
  • Booch 방법
    • 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 포함하여 사용
    • Use Case를 강조하여 사용하는 분석 방법
    • 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산 정의
    • 클래스와 객체의 의미를 식별, 클래스와 객체들의 관계를 식별, 클래스와 객체를 구현
    • 각 작업에 대한 다이어그램, 클래스 계층 정의, 클래스들의 클러스터링 작업 수행
  • Coad-Yourdon 방법
    • 객체지향 분석 방법론 중 E-R 다이어그램 사용
    • 객체의 행위 모델링
    • 객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성

 

309. 현행 시스템 분석 시 고려 사항

  • DBMS 분석 : 데이터베이스 생성, 조회, 변경 등의 관리 사항 분석
  • 네트워크 분석 : 네트워크 상호 연결 구조, 프로토콜, 통신 용량, 성능 분석
  • 운영체제 분석 : 정보 시스템 구축 시 운영 체제 관련 요구사항 분석

 

313. 유스케이스 관계

  • 연관 (Association)
    • 실선으로 연결
    • usecase와 actor 간의 상호작용이 있음을 표현
  • 포함 (Include)
    • 점선으로 <<include>> 표기
    • 두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 별도로 분리하여 새로운 유스케이스로 만든 경우 적용
    • 포함되는 usecase는 포함하는 usecase를 실행하기 위해 반드시 실행되어야 하는 유스케이스
    • 포함하는 usecase에서 포함되는 usecase 방향으로 화살표를 점선으로 연결
  • 확장 (Extend)
    • 점선으로 <<extend>> 표기
    • 확장 기능 usecase와 확장 대상 usecase 사이에 형성 되는 
  • 일반화 (Generalization)
    • 실선, 빈 삼각형 표기
    • 유사한 액터나 유스케이스를 하나의 그룹으로 묶고 싶을 때 그보다 일반적인 액터나 유스케이스를 만들어 이들을 연결하여 표현하는 관계
    • 하위 액터나 유스케이스가 상위 액터나 유스케이스로 일반화하는 관계
    • 상위 액터나 유스케이스가 하위 액터나 유스케이스로 구체화되는 관계
    • 하위 액터나 유스케이스가 상위에게 역할이나 기능을 상속 받는 관계

 

319. UML 다이어그램의 종류

  • 구조적 다이어그램 (Structural)
    • Class
      • 시스템 내 클래스들의 정적 구조 표현
      • 객체들의 집합
      • 구성 : 속성, 동작
    • Object
      • 클래스의 여러 Object 인스턴스를 나타내는 대신 실제 클래스를 사용
      • 관계 있는 모든 인스턴스 표현
    • Component
      • 코드 컴포넌트에 바탕을 둔 코드의 물리적 구조 표현
      • 논리적 클래스, 클래스 자신의 구현에 대한 정보를 포함, 실질적인 프로그래밍 작업에 사용
    • Deployment
      • 시스템 하드웨어와 소프트웨어 간의 물리적 구조를 표현
      • 실질적인 컴퓨터와 Device 간의 관계를 표현하는데 이용
      • 컴포넌트 사이의 종속성 표현
    • Package (UML 2.0에서 추가)
      • 시스템 계층 구조 표현
      • 클래스들로 이루어진 패키지와 그들 간의 의존 관계를 보여줌
    • Composite Structure (UML 2.0에서 추가)
      • 전체 클래스 안에 각 컴포넌트 클래스 표현
      • 클래스 내부 구조 파악에 용이
  • 행위 다이어그램 (Behavioral)
    • Use Case
      • 사용자의 입장에서 본 시스템의 행동을 표현
      • 시스템의 기능적인 요구 정의
    • State
      • 클래스의 객체가 가질 수 있는 모든 가능한 상태와 상태 간의 전이 표현
      • 진입 조건, 탈출 조건, 상태 전이에 필요한 사건 등 자세한 사항이 기술
      • 설계 단계에서 클래스 객체의 동적인 행동 방식을 표현하는데 사용
    • Activity
      • 행위의 순서적 흐름 표시
      • 순서도나 병렬적인 처리를 요하는 행위를 표현할 때 사용
  • 상호작용 다이어그램 (Interaction)
    • Sequence
      • 객체와 객체간 상호작용을 메시지 흐름으로 표시
      • 오브젝트 사이에 메시지를 보내는 시간 또는 순서를 보여주기 위해 사용
    • Communication
      • 상호작용에 참여하는 객체/컴포넌트 간의 관계를 명시적으로 표현
    • Interaction Overview (UML 2.0에서 추가)
      • Activity Diagram과 Sequence Diagram의 혼합
      • 상호 작용에 대한 제어 흐름을 표현
    • Timing (UML 2.0에서 추가)
      • 시간적 제약과 객체 상태 변화 표현
      • 인스턴스 간의 상태 전이와 상호 작용을 시간 제약으로 표현

 

322. 선택 정렬 (Selection Sort)

  • 정렬되지 않은 값 중 가장 작은 값을 선택 후 정렬되지 않는 첫 번째 요소와 바꾸는 방법

 

323. 통합테스트 - 임시모듈

  • 스텁 (Stub) : 하위 모듈 제공 - 상위 모듈은 있지만 하위 모듈은 없는 경우 사용하는 기법 
  • 드라이버 (Driver) : 상위 모듈 제공 - 하위 모듈은 있지만 상위 모듈은 없는 경우 사용하는 기법 

 

331. 블랙박스 검사 기법

  • 사용자 관점에서 원시 코드는 보지 않고 목적 코드를 데이터 중심의 입출력 기준으로 수행하여 결함을 찾는 테스트 기법
  • 종류 : 동등 분할 테스팅, 경계값 분석, 의사 결정 테이블 테스팅, 페어와이즈 테스팅, 유즈케이스 테스팅, 분류 트리 테스팅, 상태 전이 테스팅

 

334. 테스트 케이스

  • 테스트 케이스의 개념
    • 특정한 프로그램의 일부분 또는 경로에 따라 수행하거나 특정한 요구사항을 준수하는지 확인하기 위해 설계된 입력 값, 테스트 데이터, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서
  • 테스트 케이스의 구성 요소
    • 식별자 : 항목 식별자, 일련번호
    • 테스트 항목 : 테스트 대상 - 모듈 또는 기능
    • 입력 명세 : 입력 데이터 또는 테스트 조건
    • 출력 명세 : 테스트 케이스 수행 시 예상되는 출력 결과
    • 환경 설정 : 필요한 하드웨어나 소프트웨어의 환경
    • 특수 절차 요구 : 테스트 케이스 수행 시 특별히 요구되는 절차

 

337. 퀵 정렬

  • 퀵 정렬 
    • 배열을 두 부분으로 나눈 후 부분 배열에 독립적인 정렬을 순환적으로 적용하여 정렬 알고리즘
    • 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방식
    • 평균 실행 시간 O(nlogn), 최악의 경우 O(n2)
  • 삽입 정렬 : 가장 간단한 정렬 방식, 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬
  • 쉘 정렬 : 상빙 정렬 확장 개념, 입력 파일을 매개 변수 값으로 서브 파일을 구성하고, 각 서브 파일을 삽입 정렬 방식으로 순서 배열하는 과정을 반복하는 정렬
  • 선택 정렬 : n의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 n-1 개 중에서 다시 최소 값을 찾아 두 번재 레코드 위치에 놓는 방식을 반복하는 정렬
  • 버블 정렬 : 주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식
  • 힙 정렬 : 전이진 트리를 이용한 정렬 방식
  • 기수 정렬 : 낮은 자리 수 부터 비교하여 정렬해 간다는 것을 기본 개념으로 하는 정렬 알고리즘

 

338. 해싱 함수

  • 제곱법 (mid-Square)
    • 키 값을 제곱한 값의 중간 부분 값을 선택하여 레코드 주소로 결정하는 방법
    • 예 : h (265) - 70255의 중간값 022
  • 숫자 분석법  (Digit Analysis)
    • 키 값을 구성하는 숫자의 분포를 파악하여 분포가 비교적 고른 자리부터 필요한 자리만큼 선택하여 레코드 주소를 결정하는 방법
  • 제산법 (Division)
    • 키를 임의의 양의 정수로 나눈 나머지를 그 키의 레코드를 저장하는 주소로 결정하는 방법
    • 키를 K, 양의 정수를 n이라고 할 때 해시 함수는 h(k) = K mod n, 이때 0 <= h(k) < n을 만족
  • 폴딩 (Folding)
    • 키를 여러 부분으로 나누고, 나누어진 각 부분의 값을 모두 더하거나 보수를 취해 더하여 레코드 주소를 결정하는 방법
  • 기수 변환 (Radix Transformation)
    • 주어진 키 값을 어떤 특정한 진법의 수로 간주하여 다른 직법으로 변환한 후 레코드 주소를 구하는 방법

 

342. 스키마

  • 외부 스키마 
    • 각 사용자나 응용 프로그래머가 접근하는 데이터베이스
    • 하나의 데이터 베이스에 여러 개의 외부 스키마 존재
    • 여러 개 존재
    • 서브 스키마, 뷰
  • 개념 스키마 
    • 범 기관적 입장에서 데이터베이스
    • 모든 응용 시스템과 사용자가 필요로 하는 데이터를 통합한 데이터베이스
    • 모든 개체, 관계, 제약조건, 접근 권한, 보안, 무결성 규칙 포함
    • 하나만 존재
  • 내부 스키마 (Internal Schema)
    • 저장 장치 측면에서의 데이터베이스 저장 구조
    • 내부 레코드 형식, 인덱스 유무, 내부 레코드 순서 등
    • 물리적 스키마

 

346. 병행 제어의 로킹 단위

  • 데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
  • 트랜잭션은 갱신할 때는 반드시 로킹(Lock) -> 실행(Execute) -> 해제(Unlock)의 규칙을 따라 실행
  • 로킹 단위 : 병행 제어에서 한 번에 잠금할 수 있는 단위로 데이터베이스, 테이블, 레코드, 필드 등에 사용
    • 로킹 단위가 클 경우 : 로킹 수가 작아 관리 용이, 공유성 수준이 낮아짐
    • 로킹 단위가 작을 경우 : 로킹 수가 많아 관리하기 복잡, 공유성 수준이 높아짐
  • 병행 제어 기법 : 2단계 로킹 기법, 검증 기법, 타임스탬프 순서

 

347. 뷰

  • 물리적으로 구현되는 테이블이 아닌 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 테이블로부터 유도된, 이름을 가지는 가상 테이블
  • FROM 절에 있는 하나의 뷰를 통해 뷰를 구성하는 복수의 테이블을 대체하는 단순성에 그 의의가 있음
  • DDL 명령어를 이용하여 생성, 삭제
  • 장점
    • 논리적 독립성 제공
    • 사용자 데이터 관리 용이
    • 데이터 보안 용이
  • 단점
    • 뷰 자체 인덱스 불가
    • 뷰 정의 변경 불가
    • 데이터 변경 제약 존재