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

151. 정규화의 유형

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

 

158. 뷰(View)

  • 뷰의 개념
    • 물리적으로 구현되는 테이블이 아님
    • 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 테이블로부터 유도된, 이름을 가지는 가상 테이블
    • FROM 절에 있는 하나의 뷰를 통해 뷰를 구성하는 복수의 테이블을 대체하는 단순성에 그 의의
  • 뷰의 생성, 삭제 : 데이터 정의어 (DDL) 사용
    • CREATE VIEW <View Name>(컬럼 목록) AS <뷰를 통해 보여줄 데이터 조회용 쿼리문>
    • DROP VIEW <View Name> {RESTRICT | CASCADE};
      • CASCADE : 뷰를 참조하는 다른 뷰나 제약조건까지 모두 삭제
      • RESTRICT : 뷰를 다른 곳에서 참조하고 있으면 삭제가 취소
  • 뷰의 특징
    • 저장 장치내에 물리적으로 존재하지 않음 : 가상 테이블
    • 데이터 보정 등 임시적인 작업을 위한 용도로 사용
    • 기본 테이블과 같은 형태의 구조로 조작이 거의 비슷
    • 삽입, 내용 갱신에 제약
    • 논리적 독립성 제공
    • 독자적인 인덱스 보유 불가
    • Create를 이용하여 뷰를 생성
    • 필요한 데이터만 골라 처리 가능
  • 뷰의 장단점
    • 장점
      • 논리적 독립성 제공 : 뷰는 논리테이블, 테이블의 구조가 변경되어도 뷰를 사용하는 응용프로그램은 변경 X
      • 사용자 데이터 관리 용이 : 복수 테이블에 존재하는 여러 종류의 데이터에 대해 단순한 질의어 사용 가능
      • 데이터 보안 용이 : 중요 보안 데이터를 저장중인 테이블에는 접근 불허, 해당 테이블의 일부만 뷰를 통해 허용하는 방식으로 데이터 접근 제어
    • 단점
      • 뷰 자체 인덱스 불가 : 인덱스는 물리적으로 저장된 데이터를 대상으로 함
      • 뷰 정의 변경 불가 : 뷰 정의 변경 시 뷰 삭제 후 재생성
      • 데이터 변경 제약 존재 : 뷰의 내용에 대한 삽입, 삭제, 변경 제약

 

163. Linux/Unix 운영체제의 기본 명령어

  • 사용자 : #id, #last, #who
  • 파일 처리 : #Is, #pwd, #rm, #cp, #mv, #tar
  • 프로세스 : #ps, #pmap, #kill pid, fork
  • 파일 permission : #chmod, #chown
  • 네트워크 : #ifcongfig, #dig, #host
  • 인스톨 : #yum, #rpm
  • 검색 : #grep, #find, #locate
  • 디렉토리 이동 / 생성 : #cd, #mkdir

 

  • 문제 풀이 (명령어 해설)
    • chmod
      • 파일이나 디렉토리의 접근권한을 변경하는 명령어
      • read, wirte, execute 권한을 추가, 제거
    • du
      • 현재 디렉토리 아래의 디스크 사용 현황을 출력하는 명령어
      • -B, -block-size=SIZE 옵션을 통해 블록의 크기 지정
      • -b, -bytes 옵션을 통해 바이트 크기로 출력
    • fork
      • 현재 프로세스에 대해 자식 프로세스를 생성하는 함수
    • cat
      • cat [파일명]을 통해 파일의 내용을 보는 명령어

 

164. OSI 7 계층의 의미 및 주요 프로토콜

  • 응용 계층 (Application Layer)
    • 사용자와 네트워크 간의 응용 서비스 연결, 데이터 생성
    • 주요 프로토콜 : HTTP, TELNET, DHCP, DNS, FTP, SSH, SMTP, SNMP
    • 단위 : Data
  • 표현 계층 (Presentation Layer)
    • 데이터의 형식 설정과 부호 교환, 암호화, 해독
    • 주요 프로토콜 : MIME, TLS, SSL, JPEG, MPEG, SMB, AFP
    • 단위 : Data
  • 세션 계층 (Session Layer)
    • 응용 프로세스 간의 연결 접속 및 동기 제어
    • 주요 프로토콜 : SSH, TLS, RPC
    • 단위 : Data
  • 전송 계층 (Transport Layer)
    • 프로세스 간 논리적 통신 서비스 제공
    • 패킷들의 전송 유효 확인, 실패한 패킷은 재전송하여 신뢰성 있는 통신 보장
    • 오류 검출과 복구, 흐름제어
    • 주요 프로토콜 : TCP (3-Way Handshake), UDP, SCTP, RTP
    • 단위 : Segment
  • 네트워크 계층 (Network Layer)
    • 단말 간 시스템끼리 Data를 전송하기 위한 최선의 통신 경로 선택 제공
    • 주요 프로토콜 : IP, ARP, ICMP, IGMP, IPsec
    • 단위 : Packet
  • 데이터링크 계층 (Data Link Layer)
    • 인접 시스템 간의 데이터 전송, 전송과 오류 제어 (Frame)
    • 오류 검출, 재전송, 흐름 제어
    • 주요 프로토콜 : Ethernet, ATM, PPP
    • 단위 : Frame
  • 물리 계층 (Pysical Layer)
    • 통신 회선으로 Data를 나타내는 '0'과 '1' 비트의 정보를 회선에 내보내기 위한 전기적 변환이나 기계적 작업을 담당
    • 주요 프로토콜 : RS-485, RS-232, X24/21
    • 단위 : Bit

 

165. 결합도

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

 

166. IP 

  • IP 주소체계
    • 클래스 타입 
      • IP 주소를 효율적으로 배정
      • A, B, C, D, E 클래스
        • D : 멀티캐스트 (Netid와 Hostid 없음)
        • E : 예비용
    • 네트워크 주소
      • 전체 네트워크를 좀 더 작은 네트워크로 분할하여 각 호스트가 속한 네트워크를 대표
      • 8비트, 16비트, 24비트
    • 호스트 주소
      • 네트워크 주소로 표현하는 네트워크 내부에서 각 호스트의 주소를 표현하는 역할
      • 전체 32비트에서 네트워크 주소를 제외한 나머지에 해당
  • IP 주소
    • 서브넷 마스크가 255.255.255.0이면 할당 가능한 총 Host ID는 2^8이므로 256개
    • 16개 동일 크기로 서브 네팅하면 각 영역은 16개의 호스트에 IP를 할당할 수 있음
    • 각 IP 영역별 첫 IP는 네트워크 주소, 마지막 IP 주소는 브로드캐스트 주소가 됨

 

170. 배치 프로그램의 필수 요소

  • 대용량 데이터 : 대용량의 데이터를 처리할 수 있어야 함
  • 자동화 : 심각한 오류 상황 외에는 사용자의 개입없이 동작해야 함
  • 견고함 : 유효하지 않은 데이터나 로직 수행의 경우에도 예외 처리를 해서 비정상적인 동작 중단이 발생하지 않아야 함
  • 안정성 : 어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 함
  • 성능 : 주어진 시간 내 처리를 완료할 수 있어야하고, 동시에 동작하고 있는 다른 어플리케이션을 방해하지 않아야 

 

176. HRN

  • SJF의 약점 보완 기법
  • 실행 시간이 긴 프로세스를 차별하고 짧은 프로세스를 지나치게 선호하는 점을 보강한 알고리즘
  • 각 프로세스의 우선순위를 서비스 시간만 아니고 서비스 대기 시간도 계산하는 스케줄링 기법
  • 우선 순위 계산식 = (대기시간 + 서비스 시간) / 서비스 시간

 

177. 시스템 소프트웨어

  • 운영체계 (Operating System) : 하드웨어와 소프트웨어 자원을 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 프로그램
  • 어셈블러 (Assembler) : 어셈 블리어를 기계어로 변환해주는 프로그램
  • 컴파일러 (Compiler, 언어 번역기) : 고급 언어로 작성한 원시 프로그램을 기계어인 목적 프로그램으로 바꾸어주는 프로그램
  • 인터프린터 (Interpreter) : 고급 언어나 코드화된 중간 언어를 입력받아 목적 프로그램 생성 없이 직접 기계어를 생성하여 실행해주는 프로그램
  • 전처리기 (Preprocessor) : 원시 프로그램을 번역하기 전에 미리 언어의 기능을 확장한 원시 프로그램을 생성하는 시스템 프로그램
  • 링커 (Linker) : 서로 독립적으로 작성되고 번역된 목적 프로그램을 호출 및 연계시키는 시스템 프로그램
  • 로더 (Loader) : 실행 Code를 주기억장치에 적재하여 실행 가능하도록 해주는 시스템 프로그램

 

181. 대칭키 암호화 종류

  • 스트림 암호 (Stream Cipher)
    • 하나의 bit, 바이트 단위로 암호화
    • 평문을 XOR로 1bit 단위로 암호화
    • 장점 : 실시간 암호, 복호화, 블록 암호화보다 빠름
    • 종류 : RC4, SEAL, OTP
  • 블록 암호 (Block Cipher)
    • 여러 개의 Bit를 묶어 블록 단위로 암호화
    • 블록 단위로 치환/대칭을 반복하여 암호화
    • 장점 : 대용량의 평문 암호화
    • 종류 : DES, 3DES, AES, IDEA, Blowfish, SEED

 

182. Putnam 모형

  • 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 이용해 비용산정을 하는 방법
  • 생명주기 예측 모형
  • 노력의 분포는 시간에 따른 함수로 표현되는 Rayleigh Norden 곡선의 노력 분포도를 기초로 함
  • 자동화 추정 도구 : SLIM

 

184. 정보보안의 3대 요소

  • 기밀성
    • 허가를 받은 사람만 정보를 이용할 수 있음
    • 기밀성 위협 : 데이터 가로채기, 네트워크 도청하기 등
  • 무결성
    • 정보가 원래의 내용으로 유지한다, 원래의 정보가 변환, 전송, 저장 중에 또는 그 이후에도 동일함을 유지
    • 무결성 위협 : 통신 도중의 정보 조작, 부정 접속에 따른 조작, 인위적으로 수정하거나 제거하는 행위
  • 가용성
    • 정보를 필요로 할 때 적절히 사용할 수 있는 상태
    • 가용성 위협 : 서비스 지연, DDoS 공격

 

187. 소프트웨어 개발 보안주기 생명 방법론

  • Seven Touchpoints
    • 마이크로 소프트에서 보안수준이 높은 안전한 소프트웨어를 개발하기 위해 자체 수립한 SDL 모델
    • 교육부터 대응까지 총 7단계로 구분
  • ClASP
    • 소프트웨어 개발 생명주기 초기 단계에 보안 강화를 목적으로 하는 정형화된 프로세스
    • 활동 중심/역할 기반의 프로세스로 구성된 집합체
    • 이미 운영중인 시스템에 적용하기 좋음

 

189. 기능점수(FP)법

  • FP법의 개념
    • 기능 점수를 구한 후 이를 이용해 비용을 산정하는 방식
    • 1979년 알란 알브레히트가 소개
    • 1986년 국제 기능 사용자 그룹의 발족으로 활성화
    • ISO/IEC 14143으로 소프트웨어 크기에 대한 국제 표준이 됨
    • 소프트웨어 개발, 유지 관리 및 운영을 위한 비용과 자원 소요 산정에 활용
    • 기능 점수의 기준이 되는 소프트웨어 기능은 크게 데이터 기능과 트랜잭션 기능으로 구분
  • 기능점수 산정 기법
    • 기능점수 유형
      • 내부 논리 파일 (ILF) : 사용자가 식별 가능한 논리적으로 연관된 데이터 그룹이나 제어 정보로 애플리케이션 경계 내에서 유지 관리 되어짐
      • 외부 연계 파일 (EIF) : 사용자가 식별 가능한 논리적으로 연관된 데이터 그룹이나 제어 정보로 애플리케이션에 의해 참조
      • 외부 입력 (EI) : 애플리케이션 경계 밖으로부터 들어온 데이터나 제어 정보를 처리하는 단위 프로세스
      • 외부 출력 (EO) : 애플리케이션 경계 밖으로 데이터나 제어 정보를 내보내는 단위 프로세스 (수학식 / 계산)]
      • 외부 조회 (EQ) : 애플리케이션 경계 밖으로 데이터나 제어 정보를 내보내는 단위 프로세스

 

190. Mashup(매시업)

  • 웹으로 제공하는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술
  • 구글 지도 + 부동산 매물 정보 : 구글의 하우징 맵스

 

191. 공개키 암호화 기법

  • Diffle Hellman
    • 최초의 공개키 알고리즘
    • 키 분배 전용 알고리즘
    • 원리 : 이산대수 문제
    • 장점 : 키 분배에 최적화, 키는 필요시에만 생성, 저장 불필요
    • 단점 : 암호화 또는 서명 사용하지 않음 (상대방에 대한 인증 기능 없음), 위조에 취약
  • RSA
    • 대표적 공개키 알고리즘
    • 원리 : 소인수 분해
    • 장점 : 여러 라이브러리 존재
    • 단점 : 컴퓨터 속도의 발전으로 키 길이 증가
  • DSA
    • 전자서명 알고리즘 표준
    • 원리 : 이산대수 문제
    • 장점 : 간단한 구조
    • 단점 : 전자서명 활용, 암호화, 키 교환 불가
  • ECC
    • 짧은 키로 높은 암호 강도
    • 원리 : 타원 곡선
    • 장점 : 오버헤드 적음
    • 단점 : 키 테이블 (20kbyte) 필요

 

194. DDoS 공격

  • 서비스에 대한 정당한 접근을 방해하고자 네트워크에 분산되어 있는 많은 좀비 PC의 Agent를 이용하여 공격 대상 서버에 동시에 과도한 서비스 요청을 발생시켜 시스템의 가용성을 방해하는 공격
  • 대표적인 방법 : Tribe Flood Network (TFN) 공격

 

196. 소프트웨어 재사용

  • 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것을 의미
  • 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법
  • 기존에 개발된 소프트웨어와 경험, 지식등을 새로운 소프트웨어에 적용
  • 재사용이 가능한 요소 : 전체 프로그램, 부분 코드, 응용 분야에 관한 지식, 논리적인 데이터 모형, 프로세스 구조, 시험 계획, 설계에 관한 결정, 시스템 구조에 관한 지식, 요구 분석, 문서화, 전문적인 기술과 개발 경험, 품질 보증, 응용 분야 지식 등
  • 소프트웨어 재사용 방법의 유형
    • 합성 중심 : 전자칩과 같은 소프트웨어 부품, 블록을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법, 블록 구성 방법
    • 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법, 패턴 구성 방법

 

199. SPICE

  • 소프트웨어 프로세스 평가를 위한 프레임 워크 제공
  • 정보 시스템 분야에 특화된 품질 표준이자 인증 규격
  • SPICE의 프로세스
    • 기초 프로세스
      • 고객-공급 프로세스 : 소프트웨어를 개발하여 고객에게 전달하는 것을 지원, 소프트웨어를 정확하게 운용하고 사용하는 프로세스로 구성 (프로세스 10개)
      • 공학 프로세스 : 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수 프로세스로 구성 (프로세스 9개)
    • 지원 프로세스 : 소프트웨어 생명주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성 (프로세스 8개)
    • 조직 프로세스
      • 관리 프로세스 : 소프트웨어 생명주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성 (프로세스 4개)
      • 조직 프로세스 : 조직의 업무 목적을 수립하고, 조직이 업무 목표를 달성하는데 도움을 주는 프로세스로 구성 (프로세스 9개)
  • SPICE의 프로세스 수행 능력 단계
    • 불완전 단계 : 미구현 또는 미달성
    • 수행 단계 : 프로세스 수행 및 목적 달성
    • 관리 단계 : 프로세스 수행 계획 및 관리
    • 확립 단계 : 정의된 표준 프로세스 사용
    • 예측 단계 : 프로세스의 정량적 이해 및 통제
    • 최적화 단계 : 프로세스를 지속적으로 개선

 

200. COCOMO 모델의 프로젝트 유형

  • 조직형 (Organic) 
    • 기관 내부에서 개발된 중소 규모의 소프트웨어
    • 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리용
    • 5만 라인 이하의 소프트웨어를 개발하는 유형
    • 사무처리, 업무, 과학 분야의 소프트웨어 개발에 적합
  • 반분리형 (Semi Detached)
    • 조직형과 내장형의 중단 정도
    • 트랜잭션 처리 시스템, 운영체제, 데이터베이스 관리 시스템
    • 30만 라인 이하의 소프트웨어 개발 유형
    • 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합한 모형
  • 내장형 (Embedded)
    • 최대 규모의 트랜잭션 처리 시스템이나 운영체제 등
    • 30만 라인 이상의 소프트웨어를 개발하는 유형
    • 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등
    • 시스템 프로그램 개발에 적합