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

251. SQL 부분범위 처리

  • SQL 부분범위 처리의 개념
    • 조건을 만족하는 전체의 범위를 처리하는 것이 아니라 일단 운반단위까지만 처리하여 추출하는 처리 방식
  • SQL 부분범위 처리의 목적
    • 스캔 범위를 나누어서 운반 단위를 가능한 빨리 채워서 처리 속도 향상
    • 일부 부분만 처리하고서도 Optimizer의 특성을 이용하여 정확한 결과 도출
    • 처리 범위가 넓더라도 빠른 속도를 얻도록 하기 위함
  • SQL 부분범위 처리 적용 원칙
    • 부분범위처리의 자격
      • 논리적으로 일부분만 처리한 결과가 전체범위를 읽어 추가적인 가공을 하지 않고도 처리한 결과와 동일하다면 자격이 있음
    • 부분범위처리를 할 수 없는 경우
      • Order By가 사용된 경우
      • UNION, MINUS, INTERSECT 등 조회 후 추가 연산을 사용한 경우
    • 부분범위처리를 할 수 없는 경우의 대체
      • Order by : Index를 이용하여 Order by를 하지 않아도 되는 형태로 대체
      • MINUS, INTERSECT : EXISTS, NOT EXISTS, IN, NOT IN 등으로 대체

 

253. 사용자 권한 제어

  • 무결성
    • COMMIT : 수행된 결과를 실제 물리적 디스크로 저장
    • ROLLBACK : 명령 수행 실패를 의미하며 수행된 결과를 원복시킴
    • SAVEPOINT (checkpoint) : 저장점 지정, 지정된 저장점부터 현재까지 일부만 ROLLBACK 가능
  • 데이터 보안
    • GRANT : 데이터베이스 사용자에게 사용 권한 부여
    • REVOKE : 데이터베이스 사용자에게 부여된 사용 권한 취소

 

254. 뷰

  • 뷰의 개념
    • 물리적으로 구현되는 테이블이 아니며 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 테이블로부터 유도된, 이름을 가지는 가상 테이블
    • FROM 절에 있는 하나의 뷰를 통해 뷰를 구성하는 복수의 테이블을 대체하는 단순성에 그 의의가 있음
  • 뷰의 장단점
    • 장점
      • 논리적 독립성 제공 : 뷰는 논리 테이블 (테이블의 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 됨)
      • 사용자 데이터 관리 용이 : 복수 테이블에 존재하는 여러 종류의 데이터에 대해 단순한 질의어 사용 가능
      • 데이터 보안 용이 : 중요 보안 데이터를 저장 중인 테이블에는 접근 불허하고, 해당 테이블의 일부 정보만 뷰를 통해 허용하는 방식으로 데이터에 대한 접근 제어 가능
    • 단점
      • 뷰 자체 인덱스 불가 : 인덱스는 물리적으로 저장된 데이터를 대상으로 하기에 논리적 구성인 뷰 자체는 인덱스를 가지지 못함
      • 뷰 정의 변경 불가 : 뷰의 정의를 변경하려면 뷰를 삭제하고 재생성
      • 데이터 변경 제약 존재 : 뷰의 내용에 대한 삽입, 삭제, 변경 제약
  • 뷰의 특징
    • 저장 장치 내에 물리적으로 존재하지 않음 (가상 테이블)
    • 데이터 보정 등 임시적인 작업을 위한 용도로 사용
    • 기본 테이블과 같은 형태의 구조로 조작이 거의 비슷
    • 삽입, 내용 갱신에 제약
    • 논리적 독립성 제공
    • 독자적인 인덱스를 가질 수 없음
    • Create를 이용하여 뷰를 생성
    • 필요한 데이터만 골라 뷰를 이용하여 처리

 

255. 데이터 모델에 표시할 요소

  • 데이터 구조 (Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현
  • 연산 (Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세, 데이터베이스를 조작하는 기본 도구
  • 제약조건 (Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

256. 함수종속성의 유형, 정규화의 유형

  • 함수종속성 유형
    • 완전 함수 종속 
      • 일반 속성이 식별자 전부에 종속
    • 부분 함수 종속 
      • 일반 속성이 식별자 일부에 종속
      • 제 2정규화 필요
    • 이행 함수 종속
      • 일반 속성 간 함수적 종속
      • 제 3정규화 필요
    • 결정자 함수 종속
      • 결정자가 후보키가 아닌 경우 존재, 후보키에 종속자 존재
      • 보이스/코드(BCNF) 정규화 필요
  • 정규화의 유형
    • 제1정규형(1NF) : 릴레이션 R의 모든 속성 값이 원자값을 가지는 릴레이션
    • 제2정규형(2NF) : 릴레이션 R이 제1정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때
    • 제3정규형(3NF) : 릴레이션 R이 제2정규형이고 기본키가 아닌 속성이 기본키에 비이행적 non-transitive으로 종속할 때 (직접 종속)
    • 보이스 / 코드 정규형(BCNF) : 릴레이션 R에서 함수 종속성 X -> Y가 성립할 때 모든 결정자 X가 후보키 일 때
    • 제4정규형(4NF) : 릴레이션 R에서 MVD A->>B가 존재할 때 R의 모든 애트리뷰트들이 A에 함수종속(FD)이면 R은 4NF (즉 R의 모든 애트리뷰트 X에 대해 A->X이고 A가 후보키)
    • 제5정규형(5NF) : 릴레이션 R에 존재하면 모든 조인 종속이 R의 후보키를 통해 성립되면, R은 5NF

 

259. 관계 데이터 모델의 구성

  • 속성 (Attributes) : 개체의 성질, 분류, 식별, 수량, 상태 등을 나타내는 세부 정보의 관리 요소로서 개체를 구성하는 항목
  • 튜플 (Tuple) : 릴레이션의 행을 구성하는 속성 값들의 집합, 행/레코드와 같은 개념
  • 차수 (Degree) : 속성들의 수
  • 카디널리티 (Cardinality) : 튜플들의 수
  • 도메인 (Domain) : 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합, 표현되는 속성 값의 범위를 나타냄
  • 릴레이션 인스턴스 (Relation Instance) : 릴레이션의 어느 시점에 들어 있는 튜플들의 집합 (동적인 성질), 튜플들의 집합으로 현재 들어가 있는 실제 데이터를 지침

 

260. OLAP  연산

  • Pivot : 차원테이블을 바꿔가면서 다양한 관점으로 분석 수행
  • Slicing & Dicing : 차원별로 큐브를 수직, 수평으로 잘라서 분석
  • Drill-up & down : 큐브를 상위 혹은 하위 레벨로 조회
  • Drill-Through : 원천 데이터 추적, ROLAP만 가능 
  • 보고서 / 차트 생성 : 다양한 형태의 보고서, 차트 생성

 

262. 논리주소(2, 176)

  • 논리 주소 2의 시작번호에서 176이 떨어진 물리 주소를 의미
  • 논리 주소 2의 시작 주소는 222, 해당 시작 주소에서 176번째 물리 주소는 222 + 176 = 398
  • 세그먼트 번호 2의 길이인 198(바이트)보다 더 멀리 떨어진 주소를 요청하면 에러가 발생
세그먼트번호 시작 주소 길이(바이트)
0 670 248
1 1752 422
2 222 198
3 996 604

 

266. 공통모듈의 재사용

  • 설계 측면
    • 모듈 : 설계 시 관련이 있는 기능을 한 부분에 모아 공통 라이브러리 형태로 사용
    • 컴포넌트 : 바이너리 형태의 재사용 가능한 실행 프로그램으로 인터페이스에 의해 호출하여 로직을 수행할 수 있는 모듈
    • 서비스 : Loosely-coupled 형태의 서비스를 제공하는 모듈 단위
  • 구현 측면
    • 매크로 : 프로그램 구현 시 반복되는 부분을 특정 이름으로 부여하고 이름을 호출하여 실행할 수 있도록 하는 프로그래밍 기법, 전처리기가 매크로가 사용된 모든 곳에 코드를 대체
    • 함수 : 프로그램 구현 시 커다란 프로그램의 일부 코드로 특정한 작업을 함수로 구현하고 상대적으로 다른 코드에 비해 독립적인 모듈임
    • 인라인 : 프로그램 구현 시 반복되는 부분을 특정 이름을 부여해 놓고 이름을 호출하여 실행할 수 있도록 하는 프로그램 기법, 컴파일러는 인라인이 사용된 모든 곳에 코드를 복사

 

269. 결합도

  • 자료 결합도 (Data Coupling) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 상호 작용이 일어남
  • 스탬프 결합도 (Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
  • 제어 결합도 (Control Coupling) : 단순처리할 대상인 값만 전달하는 것이 아니라 어떻게 처리해야 한다는 제어요소가 전달되는 경우
  • 외부 결합도 (External Coupling) : 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 경우로 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 때 주로 발생
  • 공통 결합도 (Common Coupling) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용
  • 내용 결합도 (Content Coupling) : 다른 모듈 내부에 있는 변수나 기능을 또 다른 모듈에서 사용하는 경우

 

270. 환경

  • 환경 변수 확인 및 설정 
    • 환경 변수 : 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임
  • Windows 환경
    • SET 명령어를 변수 없이 사용하면 모든 환경 변수와 그에 따른 모든 값을 보여 줌
    • $SET 변수 = 값 : Windows의 특정한 값에 변수를 설정하려면 다음과 같이 사용
    • $SET 변수 = : 해당 변수 자체가 지워짐
  • Unix나 Linux 환경
    • env, setenv, printenv 명령어 : 변수 없이 사용하면 모든 환경 변수와 그에 따른 모든 값을 보여줌
      • env, set : 환경 변수를 설정하는데 쓰임, 자주 쉘명령어에 직접 통합되기도 함
      • printenv : 변수 이름을 명령어에 단일 변수로 주면 하나의 단일 변수를 인쇄하는데 쓰임
    • Unix 명령어 사용 예시
      • $export 변수=값 : Bourne, bash, 다른 쉘 등에서 쓰임
      • $setenv 변수 값 : csh과 관련된 쉘에서 쓰임

 

273. 응집도

  • 응집도의 개념
    • 모듈 내부의 구성 요소 간 관계의 밀접 정도로 평가
    • 응집도가 높을수록 필요한 요소들로 구성되어 짐, 낮을수록 요소들 간의 관련성이 적은 요소들로 구성
    • 품질 측면의 단계 : 가장 낮은 품질 - 우연적 < 논리적 < 시간적 < 절차적 < 통신척 < 순차적 < 기능적 - 가장 높은 품질
  • 응집도의 종류
    • 기능적 응집도 (Functional Cohesion) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행
    • 순차적 응집도 (Sequential Cohesion) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용하는 경우
    • 통신적 응집도 (Communication Cohesion) : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
    • 절차적 응집도 (Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행하는 경우
    • 시간적 응집도 (Temporal Cohesion) : 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우
    • 논리적 응집도 (Logical Cohesion) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
    • 우연적 응집도 (Coincidential Cohesion) : 모듈 내부의 각 구성 요소들이 연관이 없는 경우

 

274. 언어별 변수 타입 및 크기

구분 타입 크기 범위
JAVA byte 1byte -128 ~ 127
short 2byte -32,768 ~ 32,787
int 4byte -2,147,483,648 ~ 2,147,483,647
long 8byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
C / C++ short 2byte -32,768 ~ 32,767
usigned short 2byte 0 ~ 65,535
int 2byte (or 4byte) -32,768 ~ 32,767 (or -2,147,483,648 ~ 2,147,483,647)
usigned int 2byte (or 4byte) 0~65,535 (or 0 ~ 4,294,967,295)
long 4byte -2,147,483,648 ~ 2,147,483,647
usigned long 4byte 0~4,294,967,295

275. Whell 스크립트 해석

  • who : 현재 시스템에 로그인한 유저의 목록
  • | (파이프) : 앞의 who 명령어의 출력 결과를 뒤의 grep 명령어로 전달
  • grep : 앞 who 명령문의 결과 중 wow 유저가 로그인 하면 그 결과를 필터링 하여 출력
  • sleep : 명령문 뒤의 숫자(초)만큼 수행을 대기

 

277. 파이썬의 리스트 슬라이싱

  • 형식 : 리스트명[초기 인덱스 : 종료 인덱스 : 증감값]
  • 리스트의 인덱스 : 0번째부터 시작, 리스트 안의 항목 번호
  • [a:b] : a번째 항목부터 b번째 항목 바로 전까지만 추출
  • 초기 또는 종료 인덱스를 생략할 경우 맨 앞 또는 맨 뒤까지 추출
  • a[:x:y] : a라는 리스트에서 0번째 항목부터 x-1번째 항목까지 y칸 간격으로 추출

 

279. PHP 연산자의 종류

  • 산술 연산자 : +, -, *, **, /, %
  • 관계 연산자 : ==, ===, !=, <>, !==, >, <, >=, <=
  • 대입 연산자 : =, +=, -=, *=, /=, %=
  • 증가/증감 연산자 : ++, --
  • 논리 연산자 : and, or, xor, &&, ||, !
  • 문자열 연산자 : . , .=
  • 비트 연산자 : &, |, ^, ~, <<, >>
  • 에러 제어 연산자 : @

 

283. 맵리듀스

  • 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년 발표한 소프트웨어 프레임워크
  • 페타바이트 이상의 대용량 데이터를 신뢰도가 낮은 컴퓨터로 구성된 클러스터 환경에서 병렬처리를 지원하기 위해서 개발
  • 함수형 프로그래밍에서 일반적으로 사용되는 Map과 Reduce라는 함수 기반으로 주로 구성

 

284. 접근통제

  • 접근통제의 개념
    • 보안 정책에 따라 접근 객체 (시스템 자원, 통신 자원 등)에 대한 접근 주체 (사용자, 프로세스 등)의 접근 권한 확인
  • 접근통제 정책의 유형
    • 임의 접근 통제 (DAC)
      • 시스템 객체에 대한 접근을 사용자 개인 또는 그룹의 식별자를 기반으로 제한하는 방법
      • 주체와 객체의 신분 및 임의적 접근 통제 규칙에 기초하여 객체에 대한 주체의 접근을 통제하는 기능
      • 통제 권한이 주체에 있음
      • 통제 권한을 배분하여 제어할 수 있음
    • 강제 접근 통제 (MAC)
      • 정보시스템 내에서 어떤 주체가 특정 객체에 접근하려 할 때 양쪽의 보안 레이블에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 접근을 제한하는 통제 방법
      • 통제 권한이 제3자에게 있음
      • 주체는 접근 통제 권한과 무관
    • 역할 기반 접근 통제 (RBAC)
      • 사용자가 주어진 역할에 대한 접근 권한을 부여받는 방식
      • 사용자가 바뀌어도 역할에는 변함없음
      • DB 작업 권한 통제
      • 운영체제 작업 권한 통제

 

295. 소프트웨어 비용 추정모형, PERT

  • 소프트웨어 비용 추정 모형의 종류 : COCOMO, Putnam, Function-Point
  • PERT (프로젝트 일정 관리 기법)
    • 프로젝트 지연을 방지하고 계획대로 진행될 수 있게 일정을 계획하는 것
    • 대단위 계획의 조직적인 추진을 위해 자원의 제약 하에 적게 사용하면서 초단 시간 내 계획 완성을 위한 프로젝트 일정 관리 방법

 

299. CMM 모델

  • CMM 모델
    • 조직의 프로세스에 대한 가이드이자 기준
    • '능력'과 '성숙도'로 조직의 프로세스를 측정하고 평가하는 모델의 통합 버전인 프로세스 개선 성숙도 모델
    • 시스템과 소프트웨어 영역을 하나의 프로세스 개선 툴로 통합시켜 기업의 프로세스 개선 활동에 광범위한 적용성을 제공하는 모델
    • 기존 CMM에 프로젝트 관리, Procurement, 시스템 엔지니어링 등의 요소를 추가한 모델
  • CMM 모델 레벨
    • 초기 단계 : 프로세스 없음, 예측/통제 불가능
    • 관리 단계 :규칙화된 프로세스, 기본적인 프로젝트 관리 체계 수립
    • 정의 단계 : 표준화된 프로세스, 조직 차원이 표준 프로세스를 통한 프로젝트 지원
    • 정량적 관리 단계 : 예측 가능한 프로세스, 정량적으로 프로세스가 측정 / 통제됨
    • 최적화 단계 : 지속적인 개선 프로세스, 프로세스 개선 활동