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

351. 순수 관계 연산자

  • Select : 시그마( σ )
    • 릴레이션에 존재하는 튜플(행) 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 만듦
    • 릴레이션의 행(가로)에 해당하는 튜플을 구하는 것 : 수평 연산
    • 표기 형식 : σ<조건>(R) 
  • Project : 파이 (π)
    • 주어진 릴레이션에서 속성 List에 제시된 속성만을 추출하는 연산
    • 릴레이션의 열에 해당하는 Attribute를 추출하는 것 (수직 연산자)
    • 표기 형식 : π <아트리뷰트 리스트>(R) 
  • Join :  
    • 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
    • 표기형식 : R ⋈ 키 속성 r = 키 속성 s S
  • Division : ÷ 
    • X ↄ Y인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
    • 표기 형식 : R [속성  r ÷  속성 s] S

 

352. SQL 명령어의 종류

  • 데이터 질의어 (DQL)
    • 데이터베이스에 저장된 데이터를 검색하는데 사용하는 질의어
    • 명령어 : SELECT
  • 데이터 조작어 (DML)
    • 데이터베이스에 저장된 데이터를 수정, 삭제, 추가하는 명령어
    • 명령어 : INSERT, UPDATE, DELETE
  • 데이터 정의어 (DDL)
    • 데이터베이스 객체를 생성하고 수정, 삭제하는 명령어
    • 데이터베이스의 스키마를 정의, 스키마에 대한 명세는 시스템 카탈로그에 저장
    • 명령어 : CREATE, ALTER, DROP
  • 데이터 제어어 (DCL)
    • 데이터베이스의 규정이나 기법을 정의하고 제어하는 언어
    • 사용자 권한 부여/취소, 트랜잭션 제어
    • 명령어 : GRANT, REVOKE, COMMIT, ROLLBACK

 

361. 응집도

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

 

366. 교착상태

  • 교착상태의 개념
    • 다중 프로세스 환경 하에 서로 다른 프로세스가 각자 자신이 소유한 자원을 포기하지 않고, 상대 프로세스의 자원을 무한 대기하고 있는 상태
  • 교착상태 발생 구조


  • 교착상태 발생 조건
    • 상호 배제 (Mutual Exclusive) : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없음
    • 점유와 대기 (Hold & Wait) : 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
    • 비선점 (Non Preemption) : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만 해제 가능
    • 환형 대기 (Circular wait) : 두 개 이상의 프로세스간 자원의 점유와 대기가 하나의 원형을 구성한 상태
  • 교착상태 해결 방안
    • 예방 (Prevention)
      • 상호배제 조건, 점유와 대기 조건, 비선점 조건 및 환형 대기 조건의 부정
    • 회피 (Avoidance)
      • Banker's Algorithm (은행가 알고리즘), Wait-die, wound-wait 알고리즘
    • 발견 (Detection)
      • 시스템의 상태를 감시 알고리즘을 통해 교착상태 검사
      • 자원할당 그래프, Wait for Graph
    • 회복 (Recovery)
      • Deadlock이 없어질 때까지 프로세스를 순차적으로 Kill하여 제거
      • 프로세스 종료비용 최소화 : 우선순위, 진행비용, 복귀비용 등
      • 자원의 우선순위 할당 : 희생자 선택, 복귀, 기아상태

 

 

368. 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 Handshaking), UDP, SCTP, RTP
    • 단위 : Segment
  • 네트워크 계층 (Network Layer)
    • 단말 간 시스템끼리 Data를 전송하기 위한 최선의 통신 경로 선택을 제공
    • 주요 프로토콜 : IP, ARP, ICMP, IGMP, IPsec
    • 단위 : Packet
  • 데이터링크 계층 (Data Link Layer)
    • 인접 시스템 간의 데이터 전송, 전송 오류 제어 (Frame)
    • 오류 검출, 재전송, 흐름 제어
    • 주요 프로토콜 : Ethernet, ATM, PPP
    • 단위 : Frame
  • 물리 계층 (Physical Layer)
    • 통신회선으로 Data를 나타내는 '0'과 '1'의 비트의 정보를 회선에 내보내기 위한 전기적 변환이나 기계적 작업을 담당
    • 주요 프로토콜 : RS-485, RS-232, X25/21
    • 단위 : Bits

 

370. System.out.printin()

  • System.out.printIn()   : 모니터에 전달된 데이터를 출력한 후 줄 바꿈을 수행하는데, 데이터에 표현에 따라 출력되는 형식이 달라짐
  • + 기호 : 문자열의 연결을 처리, 괄호 안의 정수와 수식을 표현하게 되면 연산을 수행
  • 보기 소스 코드 : System.out.printIn("5 + 2" + 3 + 4); / System.out.printIn("5 + 2" + (3 + 4));
    • System.out.printIn("5 + 2" + 3 + 4); : 3과 4를 String 데이터로 처리하여 34로 출력 = "5+2=34"
    • System.out.printIn("5 + 2" + (3 + 4)); : 괄호 안의 연산식을 수행하므로 3과 4의 더하기를 수행하여 7을 출력 = "5+2=7"

 

373. 결합도

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

 

374. 가상메모리 관리 기법 유형

  • 페이징 (Paging)
    • 같은 크기의 페이지로 편성 운영하는 기법
    • 문제점 : Page Fault, 내부 단편화
  • 세그먼트 (Segmentation)
    • 크기가 다른 논리적 단위의 세그먼트로 분할 및 할당
    • 블록 크기가 가변적으로 외부 단편화 발생 가능

 

379. 파이썬의 반복문

  • 반복문
    • while 문
      • 주어진 조건 식에 따라 일련의 명령문들을 반복해서 실행할 때 사용하는 명령
      • 조건문이 참인 동안 : while 문 아래의 문장이 반복해서 수행
      • 조건문이 거짓이면 : while 문 안에 포함된 명령문을 한 번도 실행하지 않음
      • 형식

        while <조건문>:
           <실행 문장1>
           <실행 문장2>
           <실행 문장3>
    • for 문
      • 리스트나 배열, 튜플 문자열의 첫번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 "수행할 문장1", "수행할 문장2" 등이 순서대로 수행
      • 형식

        for 변수 in 리스트 (또는 튜플, 문자열):
           실행 문장1
           실행 문장2
  • 보기 소스코드 해설 

    while(True) : 
       print( 'A' )
       print( 'B' )
       print( 'C' )
       continue
       print( 'D' )
    • while(True) : while문의 조건식이 참이므로 while문이 수행
    • print('A') : A 출력
    • print('B') : B 출력
    • print('c') : C 출력
    • continue : A 출력 문장을 출력하는 2번 줄로 이동 후 4번 줄까지 문장을 반복 수행
    • print('D) : 실행되지 않음

 

380. WAS 서버

  • 웹 서비스를 동적으로 제공하기 위한 어플리케이션이 설치되는 서버
  • WAS 엔진을 설치하고 서비스 처리에 관련된 비즈니스 로직이 구현되는 서버
    • WAS 엔진 : Weblogic, Jeus, Tomcat, JBoss, Resin 등

 

381. 해시 함수

  • 해시 함수의 개념
    • 하나의 문자열을 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 것
    • 단방향 암호화 방식
    • 정보의 위변조(정보의 무결성)을 확인하기 위한 방법
    • 전자서명, 부인방지, 전자봉투 등에 활용
  • 해시 함수 유형
    • SHA-1
      • 160비트 암호화 해시 함수
      • 1993년 미국 NIST에서 개발
      • 보안 강도가 약해 SHA-256이나, SHA-512로 대체되고 있음
      • 활용 : 전자서명
    • MD5
      • 128비트 기반 암호화 해시함수
      • 결과 값이 16개 문자열
      • 설계상 결함으로 사용이 줄어드는 추세
      • 활용 : 메시지 무결성 검사
    • HAVAL
      • MD5를 변형하여 만든 해시 함수
      • 128비트에서 256비트까지 다양한 크기가 가능
      • 활용 : MD5 단점 보완
    • Tiger
      • 64비트 CPU에 최적화
      • 32비트 CPU에도 빠르게 동작 가능
      • 활용 : 64비트 CPU의 해시

 

385. 접근통제

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

 

389. 블록체인 클라우드 서비스

  • 블록체인 클라우드 서비스 (Blockchain Cloud Service), 바스 (BaaS)
  • 퍼블릭 블록체인 위에서 기업별, 기관별, 서비스별 프라이빗 블록체인을 운영할 수 있도록 해주는 서비스
  • 다양한 블록체인 기술 인프라를 지원하여 빠르고 편리하게 블록체인을 도입할 수 있도록 도와주는 클라우드 서비스
  • 블록체인 도입을 위해서는 복잡한 인프라 구축, Web3, 스마트 컨트랙트, PKMS, 각종 보안 이슈 등 블록체인 특유의 복잡한 서비스 개발 과정이 필요
  • 간편하고 편리하게 사용할 수 있는 개발 환경을 제공하여 블록체인 개발 시간을 단축 시키고 유지 비용을 절감시켜줌

 

392. 스마트 그리드

  • 전기 및 정보통신 기술을 활용하여 전력망을 지능화, 고도화함으로써 고품질의 전력 서비스를 제공하고 에너지 이용효율을 극대화하는 전력망을 의미
  • 에너지 효율 향상에 의해 에너지 낭비를 절감하고, 신재생 에너지에 바탕을 둔 분산전원의 활성화를 통해 에너지 해외 의존도 감소 및 기존의 발전 설비에 들어가는 화석 연료 사용 절감을 통한 온실가스 감소 효과로 지구 온난화도 막을 수 있음

 

394. 대칭키 암호화 종류

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

 

399. 사회적 공격 기법

  • Evil Twin Attack
    • 사회 관계망에서 공격 대상의 지인 또는 특정 유명인으로 위장해 공격 대상으로부터 중요한 정보를 획득하는데 사용되는 공격 기법
  • Phishing
    • 전자우편 또는 메신저를 사용해서 신뢰할 수 있는 사람 또는 기업이 보낸 메시지인것처럼 가장
    • 비밀번호 및 신용카드 정보와 같이 기밀을 요하는 정보를 부정하게 얻으려는 공격 기법
  • Logic Bomb
    • 응용 프로그램 시작 또는 특정 날짜 / 시간에 도달하는 등 이벤트에 대한 응답으로 트리거되는 멀웨어
    • 공격자는 다양한 방법으로 논리 폭탄을 사용할 수 있음
  • Cyberbullying
    • 사이버 왕따
    • 특정인을 사이버공간에서 집단적으로 따돌리거나 집요하게 괴롭히는 행위