<가상화 기술>
[물리 시스템 가상화] : 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를 중복/통합/분리를 수행하는 과정
- 집계 테이블 추가 : 평균, 분산 등 집계데이터를 위한 테이블 추가
- 진행 테이블 추가 : 이력관리등 진행상황 파악을 위한 테이블 추가
- 특정 부분만 포함하는 테이블 추가 : 데이터가 많아 보기 힘들 때 일부만 보기위한 테이블 추가