[정처기]정보처리기사 실기정리2

 

<가상화 기술>

[물리 시스템 가상화] : CPS, 디지털트윈

  • CPS(Cyber Physical System) : 인간 개입없이 센서나 액츄에이터 등 물리 요소를 제어하는 가상 물리 시스템
  • Digital Twin : 물리 요소와 완전히 동일하게 SW적으로 가상화하여 사고 시뮬레이션이나 최적화 수행

[데이터센터 가상화] : SDDC

  • SDDC : SW Defined Data Center :: 모든 HW를 가상화하여 풀(Pool)을 구성한 가상 데이터 센터

<SDDC 구성요소> : 컴네스프

  • 컴퓨팅 : SDC(SW Defined Computing) :: 가상 컴퓨팅 기술
  • 네트워크 : SDN(SW Defined Network) :: 오픈플로우 기반의 가상 네트워크 기술
  • 스토리지 : SDS(SW Defined Storage) :: 가상 스토리지 기술
  • 프로비저닝 : 프로비저닝 :: 자원 할당관리 기술
  • 오픈플로우 : 네트워크의 Control Plane과 Data Plane을 연동해주는 OSI(Open Standard Interface, 개방형 표준 인터페이스).(OSI 7계층은 Open System Interconnection(개방형 시스템 상호연결 모델))

[자바 가상화] : JVM

[실행환경 가상화] : Docker

  • Docker : 윈도우 기반의 하이퍼바이저 없이 리눅스 컨테이너(LXC)를 이용하여 앱 실행환경 가상화 솔루션

[리눅스 가상화] : Kubernetes(쿠버네티스)

  • Kubernetes(쿠버네티스) : 리눅스/오픈소스 기반의 컨테이너화 된 앱 관리 시스템

[SW 가상화] : HyperVisor

  • HyperVisor : 1개의 호스트에서 다수의 OS를 구동시킬 수 있는 가상머신(KVM, VMWare 등)

[데이터 백업 가상화] : VTL, 가상화 백업

  • VTL :: Virtual Tape Library :: 데이터를 가상 테이프로 소산(분산)하여 백업하는 방식(대용량 백업에 좋음)
  • 가상화 백업 : 하이퍼바이저의 VM 이미지 파일을 백업하는 방식(SW+HW 한번에 VM 이미지 파일로 백업됨)

[네트워크 가상화] : SDN, NFV

  • SDN : SDDC에서 사용하는 네트워크 가상화 기술
  • NFV : Network Function Virtualization :: 범용 HW의 네트워크 기능(Network Function)을 가상화하여 실물 HW가 없어도 다른 장비들과 네트워크 가능

 

<정보패키징 방법> : 공대전

  • 공개키 기반구조(PKI) : 인증기관에서 공개키 기반의 전자 인증서를 발급받아 비밀통신
  • 대칭&비대칭 암호화 : 알고리즘을 이용해 직접 암/복호화
  • 전자서명 : 열람자가 전자문서에 서명후 정보 개봉

 

<형상관리 절차> : 식통감기

  • 형상식별 : 형상관리대상 식별
  • 형상통제 : CCB 운영
  • 형상감사 : BL 무결성 평가
  • 형상기록 : 형상결과보고서 작성

 

<단위모듈 구현원리> : 정분데모

  • 정보은닉 : 모듈을 타모듈에게 은폐
  • 분할과 정복 : 문제는 모듈 내에서 해결
  • 데이터 추상화 : 자료구조 은폐
  • 모듈 독립성 : 낮은 결합도(외부) & 높은 응집도(내부)
 

<신기술>

  • 스마트그리드 : 전력망을 지능화하여 에너지 효율 극대화
  • WI-SUN :(802.15.4g) 스마트그리드를 연계한 전기/수도/가스 관리하는 무선통신기술
  • BEMS : 빌딩 에너지 관리 시스템 :: 건물에 IT 기술 접목하여 에너지 최적화 및 건물 수명 연장시키는 시스템

 

<코드 재활용 방법> : 재역재

  • 재공학 : Reengineering :: 코드 개선해서 재사용
  • 역공학 : Reverse Engineering :: 기술습득을 위하여 역으로 재구성
  • 재개발 : Redevelopment :: 다뿌시고 다시

 

<코드 재활용 유형>

  • 합성 중심(Composition-Based) :(절차지향) 모듈을 끼워맞춰 SW 만듬
  • 생성 중심(Generation-Based) :(객체지향) 패턴방식으로 추상화된 명세를 구체화하여 SW 만듬

 

<형상관리방법>

<모니터링툴 종류>

  • APM : App Performance Management :: 인터페이스 모니터링 툴
  • 스카우터 : DB, 인터페이스 모니터링 툴
  • 제니퍼 : PLM 모니터링 툴

 

  • TCP 핸드셰이킹 : 송수신간 TCP 커넥션 및 전송보장을 위한 TCP Flag 기반의 TCP통신 접속규약

 

<TCP 특징> : 신연희(신연흐혼)

  • 신뢰성 보장
  • 연결 지향적 특징
  • 흐름제어(Flow Control)
  • 혼잡 제어(Congestion Control)

 

<주요 무선랜 표준>

  • 802.11ac : 다중단말 무선랜 1Gb/s
  • 802.11ad : 60GHz 실시간 동영상 스트리밍용
  • 802.11ax : 1AP:다디바이스 지원
 

 

<클라우드>

[클라우드 관련 기술]

  • 오픈스택 : 아파치 라이선스로 제공되는 리눅스 기반/IaaS 형태의 오픈소스 클라우드 플랫폼
  • 클라우드 컴퓨팅 : 자신의 컴퓨터가 아닌 다른 컴퓨터의 자원으로 처리하는 기술
  • 인터클라우드 컴퓨팅 : 단일 클라우드를 넘어 타 클라우드에서 자원 빌려쓰는 중첩 클라우드 서비스
  • 메타클라우드 : 개발자 개발환경 맞춤으로 클라우드 환경 제공
  • 멀티클라우드 : 2개이상 클라우드 벤더에서 퍼블릭으로 클라우드 사용
  • CASB : Cloud Access Security Broker :: 사용자-클라우드 사이에서 보안기능을 수행하는 중개시스템(브로커)

[클라우드 컴퓨팅 유형]

  • IaaS : Infra as a Service :: 서버/스토리지 등 인프라 자원을 클라우드로 제공받는 서비스
  • PaaS : Platform as a Service :: 개발을 위한 플랫폼을 클라우드로 제공받는 서비스
  • SaaS : SW as a Service :: SW 라이센스를 클라우드로 제공받는 서비스
  • SECaaS : Security as a Service :: 보안솔루션을 클라우드 형태로 제공받는 서비스

[클라우드 공급 대상]

  • Private Cloud : 개인(1:1) 또는 기업내부 제공
  • Public Cloud : 모두에게 제공
  • Hybrid Cloud : 짬뽕
 

<DB 장애 유형> : 실트시미

  • 실행 장애 : 데이터 발견 X, 연산 실패
  • 트랜잭션 장애 : Tx 내부 오류
  • 시스템 장애 : HW 오동작(메모리 교착상태 등)
  • 미디어 장애 : DB 손상

 

<프로세스 상태전이>

  • 디스패치(Dispatch) : 프로세스 상태 전이시 프로세스 선정(스케줄링) 후 CPU 할당하는 동작
  • 문맥교환(Context Switching) : 우선순위에 의해 할당 뺏기는 것, PCB(프로세스제어블록)에 이전 프로세스와 다음 프로세스의 문맥(Context)이 교환되는 것

 

<소프트웨어 법칙>

  • 브룩스법칙 : 사공이 많으면 배가 산으로 간다
  • 파레토법칙 : 20%모듈이 80%결함 내포
  • 롱테일법칙 : 80%다수가 20%엘리트보다 낫다(파레토 반대)
  • 리틀의법칙 : IT 서비스의 성능척도로 L(평균고객수)=λω(시간당대기열수X1인당 사이트에 머무르는 시간). 예를 들어 식당 점심시간에 시간당 100명(λ)이 방문하는데, 평균 30분(ω)동안 머무른다. 그럼 점심시간 1시간동안 평균 고객수(L) = 100명 X 0.5 = 50명이 방문하므로, 점심시간에 사람들을 다 받으려면 4인테이블 최소 13개이상 필요하다.
 

자바문제 출력결과는?

class car(string model, string color, int yyyy) {

this.model = model;

this.color = color;

this.yyyy = yyyy;

sysout.print("model : " + model);

}

 

public class Myclass {

public static void main(string args[]){

int yyyy=2020;

car c = new car("SUV", "흰색“, yyyy+);

sysout.print(", year : " + c.yyyy);

}

}

 

<배치프로그램> : 이온정

  • 배치 프로그램 : 사용자와 상호작용 없이 일련의 작업들을 작업단위로 묶어 일괄 처리하는 SW 프로그램
  • 이벤트 배치 : 이벤트 발생시 배치 실행
  • 온디맨드 배치 : 명시적 요구가 있으면 배치 실행
  • 정기 배치 : 정기적으로 실행
 

 

<빅데이터 기술>

[빅데이터 SWFW]

  • 하둡(Hadoop) : 오픈 소스 기반의 분산 컴퓨팅 플랫폼으로, 가상화된 대형 스토리지를 형성하고 그 안에 저장된 대용량 데이터셋을 병렬처리 할 수 있도록 개발된 자바 SW 프레임워크
  • 맵리듀스(Map Reduce) : 대용량 데이터 셋을 <키-값> 쌍으로 구성하여 병렬 컴퓨팅하기 위한 목적으로 만들어진 SW 프레임워크

[빅데이터 아키텍처]

  • 람다아키텍처(배스서) : 배치레이어(Batch)+스피드레이어+서빙레이어로 구성된 실시간 빅데이터 처리 아키텍처
  • 람다아키텍처(스서) : 스피드레이어+서빙레이어로 구성된 실시간 빅데이터 처리 아키텍처

[빅데이터 수집기술]

  • 척와(Chuckwa) :(척보고 하는거) 비정형 데이터 수집기술로 에이전트에서 HDFS에 저장하는 기술
  • 스쿱(Sqoop) :(스쿱으로 정확하게 떠) 정형 데이터 수집기술로 RDBMS에서 HDFS에 저장하는 기술
  • HDFS : Hadoop Distributed File System :: 대용량 파일을 분산 서버에 저장하고 그 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 저장 시스템

[빅데이터 가공기술]

  • 피그(Pig) : 하둡기반 빅데이터 분석 플랫폼. 피그라틴이라는 스크립트 언어를 사용.
  • 하이브(Hive) : 하둡기반 SQL. HiveQL이라는 쿼리를 사용.

[빅데이터 분석기술]

  • 데이터 마이닝 : 대량의 데이터를 분석하여 그 속에 있는 상호관계를 규명하고 일정 패턴을 찾아내는 기법

 

자바문제 출력결과는?

class Parent {

int a = 0;

 

Parent() {

a++;

System.out.print(a);

}

Parent(int c) {

System.out.print(7);

}

}

class Child extends Parent {

int b = 0;

Child() {

System.out.print(99);

}

Child(int a) {

this.b = a;

System.out.print(a++);

}

}

public class HelloWorld {

public static void main(String[] args) {

Parent pa = new Child(5);

}

}

15(해설: new오른쪽 child 생성자 실행 -> 상속되어있으므로 부모클래스 읽어들임. 클래스와 이름/인자 같은 메서드 있으므로 이 또한 생성자이므로 읽어들임 -> 1출력 -> new 오른쪽 child 생성자와 포맷 같은 메서드 있으므로 이 또한 생성자이므로 읽어들임 -> 5 출력)

 

파이썬문제 출력 결과는?

def soojebi(num):

if num <2:

print(num, end='')

else:

soojebi(num//2)

print(num%2, end='')

soojebi(20)

 

더보기

10100(해설: 2진수변환문제. 20//2 = 10..0, 10//2 = 5..0, 5//2 = 2..1, 2//2 = 1..0으로 마지막 몫이 제일 먼저 프린트되고 이후는 나머지들이 프린트되므로 10100이 된다.)

 

<Tx 상태의 종류> : 활부완실철

활동상태(Active),부분완료상태(Partially Committed),완료상태(Committed),실패상태(Failed),철회상태(Aborted)

 

<릴레이션의 차수와 카디널리티> : dact!

  • Degree=n(Attribute) & Cardinality=n(Tuple)

예시)

A B C D
1 2 3 4
5 6 7 8
9 10 11 12

Degree = n(Attribute) = 4

Cardinality = n(Tuple) = 3

 

 

<럼바우의 객체지향 분석 절차> : 객동기

  • 객체 모델링 : 시스템의 정적구조 표현
  • 동적 모델링 : 객체의 상호작용 표현
  • 기능 모델링 : 데이터값의 상태변화 표현
 

<파티셔닝 종류> : 레헤리컴

  • Range Partitioning : 범위로 나눠
  • Hash Partitioning : 해시값으로 나눠
  • List Partitioning : 리스트(목록)로 나눠
  • Composite Partitioning : 2개이상 짬뽕해서 나눠

 

<백업 방법> : 전차증

  • 전체 백업 : Full Backup :: 전체 백업
  • 차등 백업 : Differential Backup :: 바뀐것만 백업
  • 증분 백업 : Incremental Backup :: 바뀐거 이력관리 백업

 

<성능 테스트 종류> : 부스스내

  • 부하 테스트: 임계점찾기
  • 스트레스 테스트 : 임계점이상 로드가해보기
  • 스파이크 테스트 : 짧은시간동안 강한 부하
  • 내구성 테스트 : 오랜시간 강한부하

 

<SAP 유형> : 계클파브모

  • SAP : SW 아키텍쳐 패턴
  • 계층화 패턴 : 각각의 서브 시스템들이 계층 구조를 이루며 서로 마주보는 두 계층끼리만 상호작용하는 패턴
  • 클라이언트-서버 패턴 : 1서버:N클라이언트 구조로 클라이언트는 서버에 서비스 요청하면 서버가 응답하는 패턴(TCP/IP)
  • 파이프-필터 패턴 :(HQS) 서브시스템이 입력 데이터를 처리 후 결과를 다음 서브시스템으로 넘겨주는 패턴
  • 브로커 패턴 : 클라이언트 - 서버 사이에서 브로커가 서비스 요청 및 제공(Publish)을 중개(Redirection)하는 패턴
  • MVC 패턴 : 대화형 APP을 Model(핵심기능&데이터 보관), View(사용자에게 정보표시), Controller(사용자 요청 처리)로 구조화한 패턴으로 각 서브시스템은 서로 독립적인 패턴

 

<DB 데이터 특징> : 통저공운

  • 통합된 데이터(Integrated Data) : 중복이 제거된 데이터
  • 저장된 데이터(Stored Data) : 저장매체에 저장된 데이터
  • 공용 데이터(Shared Data) : 시스템/앱들이 공동으로 사용하는 데이터
  • 운영 데이터(Operational Data) : 업무 수행에 필요한 데이터

 

<고가용성(HA) 유형> : 핫뮤컨

  • 고가용성 : High Availability :: 2개 이상의 시스템을 하나의 클러스터로 구성하여 1개가 고장났을 때 다른 1개가 대체작동(Fail Over)하는 기술
  • Hot Standby : 1개 가동/1개는 스탠바이하다가 문제생기면 스탠바이가 출동
  • Mutual Take-Over : 2개가 각각 할 일 하다가 문제 생기면 Fail Over처리하고 상대꺼까지 일 다함
  • Concurrent Access : 여러 개가 여러 일을 병행처리해서 1개 문제생겨도 Fail Over 불필요
  • 페르소나 : 요구사항 도출을 위한 가상의 사용자

 

자바문제 출력결과는?

class Parent {

String className = "Parent";

public void info() {

System.out.print(className);

}

}

class Child extends Parent {

String className = "Child";

public void info() {

super.info();

System.out.print(className);

}

}

public class HelloWorld {

public static void main(String[] args) {

Parent p = new Child();

p.info();

}

}

 

ParentChild(해설: new 오른쪽 Child 생성자 실행 -> 부모클래스 있으므로 부모클래스 생성자 실행, className까지만 정의(멤버메서드 중에는 생성자 없음) -> 자식클래스 생성자 실행 className까지만 정의(멤버메서드 중에는 생성자 없음) -> p.info()에서 Child의 info() 실행 ->super로 부모 실행, parent출력->다음줄 실행 child 출력)

 

<컴퓨터 용어>

  • 프로세스 : CPU에 의해 처리되는 실행중인 프로그램(Job 또는 Task라고 함)
  • 쓰레드 : 프로세스보단 가벼운, 실행 단위의 순차적 제어의 흐름
  • 런타임 : 응용프로그램이 실제 동작되는 시점(엔터친 시점 아님)
  • 라이브러리 : SW 개발시 공통으로 사용될 수 있는 특정 목적의 기능을 모듈화 한 것(lib/dll)
  • 정적라이브러리(lib) : 컴파일 시 라이브러리 자체를 합쳐서 빌드(lib 수정시 재빌드 필요, 같이배포 불필요)
  • 동적라이브러리(dll) : 필요시에만 dll파일 실행해서 사용(dll 수정시 재빌드 불필요, 같이배포 필요)
 

<프로세스 교착상태>

[교착상태 정의 및 종류]

  • 교착상태 정의(Deadlock) : 다중 프로세싱 환경에서 자원 할당을 못받아 프로세스가 무한대기하는 상황
  • 상호배제(Mutex) : Mutual Exclusion :: 한놈이 계속 자원독점해서 다른놈이 무한대기
  • 점유와 대기(Hold&Wait) : 한놈이 A자원점유 + B자원 요청 후 대기중이어서 다른놈이 A자원 무한대기

[회피기법]

  • Banker's Algorithm : 프로세스가 사원에 필요 자원 수 고시 후 OS가 안정한 상태일때만 자원할당(은행처럼)

 

<원거리통신(WAN) 연결방식> : 전회패

  • 전용회선방식(Dedicated Line) : PPP, HDLC 프로토콜로 통신업자랑 계약한 1:1 또는 1:다 끼리만 통신
  • 회선교환방식(Circuit Switching) : ISDN 프로토콜로 물리적 전용망으로 고정된 대역폭으로 안정적으로 송신(집인터넷)
  • 패킷교환방식(Packet Switching) : 대용량 데이터를 노드가 수용가능한 사이즈의 패킷으로 잘라 송신

 

<개발 보안 용어> : 자위취위

  • 자산(Asset) : 가치를 부여한 대상
  • 위협(Threat) : 악영향을 끼칠 수 있는 사건/행위
  • 취약점(Vulnerability) : 위협이 발생하는 사전조건, 시스템 보증을 낮추는 약점
  • 위협(Risk) : 위협이 자산손실로 이어질 가능성

 

<응답 성능 지표> : 처응경자

  • 처리량(Throughput) : 단위시간당 처리가능한 Tx 수
  • TPS(Tx Per Sec) : 초당 Tx 처리 건수
  • 응답시간(Response Time) : 엔터~출력시작 시간
  • 경과시간(Turnaround Time) : 엔터~출력끝 시간(결과를 산출하기까지 시간)
  • 자원사용률(Resource Usage) : Tx 처리하는 동안 자원(CPU,메모리,네트워크) 사용률

 

자바문제 출력결과는?

class Parent{

String name="Parent";

public Parent(){

sysout.print(this.name);

}

}

class Child extends Parent{

public Child(String name){

sysout.print(this.name);

}

}

public class Soojebi{

public static void main(string[] args) {

Child c = new Child("Soojebi");

}

}

ParentParent(child 생성자 실행 -> 상속있으므로 parent 클래스 생성자 실행 -> parent에 인자없는 같은 이름의 메서드 있으므로 생성자이므로 같이 읽음, Parent 출력되는 동시에 this에 parent 저장 -> 자식클래스 생성자 실행 -> new 구문 우측이랑 동일한 포맷의 메서드 있으므로 생성자이므로 같이 읽음 -> this출력하는거이므로 Parent 출력)

 

<옵티마이저 종류>

  • 옵티마이저 : SQL 쿼리의 최적처리경로를 생성해주는 DBMS 핵심엔진
  • 비용기반 옵티마이저(CBO) : Cost Based Optimizer :: 비용(처리시간)이 가장 낮은 최적경로 생성
  • 규칙기반 옵티마이저(RBO) : Rule Based Optimizer :: 사전에 정해놓은 규칙(우선순위)에 따라 최적경로 생성

 

<관계형 DB의 정보정의언어>

  • 관계 대수 :(How?) 원하는 정보 정의 & 유도과정을 정의하는 절차적 언어 - 일집연, 순관연이 있다.
  • 관계 해석 :(What?) 원하는 정보만 정의하는 비절차적 언어

 

<일반집합연산자> : 합교차카

  • 합집합 A∪B
  • 교집합 A∩B
  • 차집합 A-B : A에는 존재, B에는 미존재하는 튜플로 릴레이션 생성
  • 카티션 프로덕트 A×B : A,B의 모든 튜플 곱으로 릴레이션 생성(A,B 튜플이 각각 6개라면 6X6=36개 생성됨)

 

<순수관계연산자> : 셀프조디

  • select(σ) : 조건만족하는 튜플 반환
  • project(π) : 특정 속성의 튜플 반환
  • Join(▷◁) : R ▷◁ S : 내용 합치기
  • division(÷) : R / S : 나누기

 

<반정규화기법> : 집진특

  • 반정규화(역정규화) : 성능을 향상시키기 위해 정규화된 DB를 중복/통합/분리를 수행하는 과정
  • 집계 테이블 추가 : 평균, 분산 등 집계데이터를 위한 테이블 추가
  • 진행 테이블 추가 : 이력관리등 진행상황 파악을 위한 테이블 추가
  • 특정 부분만 포함하는 테이블 추가 : 데이터가 많아 보기 힘들 때 일부만 보기위한 테이블 추가

출처: https://halfmoon.tistory.com/436