ETL의 개념 및 기능 (추출, 변형, 적재), ETL의 작업 과정
ODS의 개념 및 특징(실시간, 원자성을 지닌 데이터들을 처리), ODS의 구성단계(인터페이스 단계, 데이터스테이징단계, 데이터 프로파일링 단계, 데이터클렌징 단계, 데이터 인티그레이션 단계, 익스포트단계)
데이터 웨어하우스란?̊̈ 특징(주제 중심성, 영속성 비휘발성, 통합성, 시계열성), 스타스키마와 스노우 플레이크 스키마가 무엇인지, 장단점은 무엇인지
ODS와 DW의 비교
CDC의 개념 및 특징과 구현기법(Time Stamp on Rows, Version Numbers on Rows, Status on Rows등등 ), 구현방식(푸시, 풀)
EAI란 무엇인가 개념과 특징. hub and spoke방식으로 연계한다는 점을 기억 EAI는 실시간으로 통합연계, ETL은 배치프로세스중심
기존 데이터 연계방식은 PTP인데 EAI 는 Hub and spoke임. EAI의 구성요소는 어떻고 유형은 어떤지 EAI의 활용효과
EAI와 ESB의 차이점에 대해 기능, 통합관점, 로직연동, 아키텍처 부분에서
로그데이터 수집시스템의 예(아파치 Flume-NG, 페이스북 Scribe, 아파치 Chukwa)
비정형 데이터 수집 시스템의 특징(초고속 수집 성능과 확장성, 데이터 전송 보장 매커니즘,다양한 수집과 저장 플러그인, 인터페이스 상속을 통한 애플리케이션 기능 확장)
하둡이란 무엇인지 하둡의 특징(선형적인 성능과 용량 확장, 고장감내성, 핵심 비즈니스 로직에 집중, 에코 시스템), 하둡 에코시스템에서 수집, 연동, 질의 등에 쓰이는 각각의 기술들이 무엇인지
비정형데이터 수집(척와, 플럼, 스크라이브), 정형데이터 수집(스쿱, 히호), 분산데이터 저장 HDFS, 분산데이터베이스 Hbase, 분산데이터 처리 맵리듀스, 리소스관리 얀, 인메모리처리 아파치 스파크, 데이터가공 피그와 하이브, 데이터마이닝 머하웃, 실시간 SQL질의 임팔라와 타조, 워크플로우 관리 우지, 분산코디네이션에 주키퍼, 데이터 연동 기술인 스쿱이란 무엇인지, 대용량 질의 기술 이란 무엇인지 Hive에 대해, SQL on 하둡에는 어떤것들이 있는지 정확하게 숙지
GFS을 설계할 때의 가정에 대한 문제(서버의 고장이 빈번히 발생할 수 있음. 대용량이라고 가정. 톺은처리율이 더 중요함)
HDFS의 특징(하나의 네임노드, 다수의 데이터노드, 한번 쓰이면 변경되지 않는다고 가정, 순차적 스트리밍방식, 배치작업에 적합, 높은 데이터 처리량)
HDFS의 파일 읽기 쓰기과정에 대한 문제가 출제 가능함. 과정을 숙지해야함.
데이터베이스 클러스터의 종류와 특징을 숙지해야함. 클러스터를 구성하는 방식 중 공유디스크와 무공유 클러스터의 특징과 장단점을 이해해야함. 각 종류별 특징을 알아야함. Oracle RAC는 공유디스크 방식이라는 점과 MySQL의 구성요소를 알아둬야함.
MySQL의 특징에 대해 알아둬야함.
여러대의 데이터베이스 서버를 묶어 클러스터링 한 후 하나의 데이터베이스를 구성하는 NoSQL의 개념 및 특징을 이해해야함.
NoSQL의 한 종류인 구글 빅테이블의 특징에 대해 숙지해야함. 공유디스크방식
HBase에 관해 알아둬야함. 관계형구조가 아니며 SQL을 지원하지 않음
아마존 Simple DB데이터 모델의 구성요소를 관계형 데이터 베이스의 구성요소와 매칭할 수 있어야함. 도메인 아이템 attribute value로 구성되며 스키마가 없음.
맵리듀스에 대해 개념과 특징을 알고있어야함. 맵리듀스 작업은 맵태스크 하나가 1개의 블록을 대상으로 연산을 수행한다는 점을 숙지해야함.
하둡 맵리듀스에 대한 아키텍처와 실행절차, 워드카운트예제수행과정의 순서에 대해 알고있어야함 스플릿, 맵, 컴바인, 파티션, 셔플, 소트, 리듀스 등
아파치 하이브의 특징에 대해 알아야함.
SQL on 하둡의 특징과 종류에 대해 알아야함. 임팔라에 대해 알아야함.
서버 가상화 기술의 효과에는 어떤것이 있는지 알아야함 가상머신 사이의 데이터 보호, 장애로부터 보호, 공유자원에 대한 강제사용의 거부, 서버통합, 자원할당에 대한 증가된 유연성, 테스팅, 서버사이징, 시스템관리
하이퍼바이저의 개념과 특징
CPU가상화에서 사용되는 다양한 가상화 기법들의 개념 및 특징, 완전가상화, 하드웨어지원 완전가상화, 반가상화, Monolithic vs Microkernel, 하이퍼바이저 기반 가상화 기술을 비교한 내용에 대한 문제 출제 가능, 호스트 기반 가상화, 컨테이너 기반 가상화,
메모리가상화 VMware기법의 개념과 특징, 가상머신 메모리 할당의 문제해결을 위한 방법들을 기억해야함.
ADP 필기 2과목 「데이터 처리 기술 이해」 핵심 압축 요약
공식 범위: 1장 데이터 처리 프로세스(ETL·CDC·EAI·통합연계·비정형처리) / 2장 데이터 처리 기술(분산저장·분산컴퓨팅·클라우드 인프라)
★ = 기출 포인트
제1장 데이터 처리 프로세스
1-1. ETL (Extraction, Transformation and Load)
-
개념: 데이터의 이동과 변환 절차. 데이터 원천에서 데이터를 추출·변형하여 ODS/DW/DM(Data Mart)에 적재
-
3대 기능 ★
기능 내용 Extraction(추출) 데이터 원천들로부터 데이터 획득 Transformation(변형) 클렌징·형식 변환·표준화·통합, 비즈니스 룰 적용 Load(적재) 변형 완료된 데이터를 DW·DM 등 대상 시스템에 적재 -
작업 과정(5단계): ①Interface(인터페이스) → ②Staging(스테이징: 원천에서 추출해 스테이징 테이블에 저장) → ③Profiling(프로파일링: 특성·품질 측정) → ④Cleansing(클렌징: 보정) → ⑤Integration(인티그레이션: 충돌 해소·통합) → (⑥Denormalizing 비정규화)
-
특징: 배치(Batch) 프로세스 중심, 대용량 데이터 교환에 활용 ★(EAI=실시간과 대비됨)
1-2. ODS (Operational Data Store, 운영 데이터 스토어)
-
개념: 추가 작업을 위해 다양한 원천으로부터 데이터를 추출·통합한 DB. 실시간(근접 실시간) 트랜잭션, 원자성(개별성)을 지닌 낮은 단위(수준)의 데이터를 처리 ★
-
이후 DW로 이관되어 보고서 생성·분석에 활용
-
구성 6단계 (인터페이스 → 스테이징 → 프로파일링 → 클렌징 → 인티그레이션 → 익스포트) ★
단계 내용 ①인터페이스 다양한 이기종 원천(관계형 DB, 스프레드시트, 웹, XML 등)으로부터 데이터 획득. OLEDB·ODBC·FTP 등 프로토콜 사용 ②데이터 스테이징 원천에서 트랜잭션 데이터 추출 → 스테이징 테이블 저장. 정규화 배제, 스키마는 원천 구조에 의존적. 매핑은 1:1 또는 1 . 적재 시 타임스탬프·체크섬 등 통제 정보 추가. 정기 ETL과 실시간 ETL 혼용 가능 ★ ③데이터 프로파일링 데이터 특성·품질 측정(범위·도메인·유일성 확보 등). “선진 프로파일링 → 결과 리뷰” 절차 ④데이터 클렌징 프로파일링 결과 기반 오류 데이터 보정(클렌징 스테이징 테이블) ⑤데이터 인티그레이션 클렌징된 데이터 충돌 해소·통합(인티그레이션 스테이징 테이블) ⑥익스포트 통합된 데이터를 익스포트 규칙·보안 규칙 적용 후 DW·DM 등 타 시스템으로 전송
1-3. DW (Data Warehouse, 데이터 웨어하우스)
-
개념: ODS를 거친 정제·통합 데이터가 적재되는 의사결정 지원용 DB
-
4대 특징 ★ (주·영·통·시)
특징 내용 주제 중심성(Subject-Oriented) 업무 기능이 아닌 주제(고객·상품 등) 중심으로 구성 영속성·비휘발성(Non-volatile) 적재 후 읽기 전용, 삭제·갱신되지 않음 통합성(Integrated) 여러 원천의 데이터를 일관된 형식으로 통합 시계열성(Time-Variant) 시간에 따른 이력(스냅샷) 데이터 보관 -
테이블 모델링(스키마) ★★
구분 스타 스키마(Star Schema) 스노우 플레이크 스키마(Snowflake) 특징 조인 스키마라고도 함. 가장 단순. 사실(Fact) 테이블=제3정규형, 차원(Dimension) 테이블=제2정규형 스타 스키마의 차원 테이블을 제3정규형으로 정규화한 형태 장점 복잡도 낮음·이해 쉬움·쿼리 작성 용이·조인 테이블 적음 중복 제거 → 적재 시간 단축 단점 데이터 중복 → 적재 시 많은 시간 소요 복잡성↑·조인 테이블↑·쿼리 난이도↑ -
ODS vs DW 비교 ★
구분 ODS DW 데이터 실시간·원자성(트랜잭션) 낮은 수준 요약·통합된 이력 데이터 갱신 지속적 갱신(현재 상태) 비휘발성(갱신 X, 스냅샷 누적) 목적 운영·현재 업무 지원 중장기 분석·의사결정 지원
1-4. CDC (Change Data Capture, 변경 데이터 캡처)
-
개념: DB 내 데이터의 변경(삽입·갱신·삭제)을 식별해 필요한 후속 처리(전달·가공·적재)를 자동화하는 기술. 실시간/근접 실시간 데이터 통합에 활용
-
구현 기법 ★★
기법 내용 Time Stamp on Rows 마지막 변경 시점 타임스탬프 칼럼 → 이전 시점 이후 변경 식별 Version Numbers on Rows 변경 시 버전 번호 증가. 레코드 최신 버전을 기록·관리하는 참조 테이블 함께 운영 ★ Status on Rows 변경 여부를 불리언 상태 칼럼으로 표시. 타임스탬프·버전넘버 기법의 보완 용도로 활용 가능 ★(기출: “활용될 수 없다” → 오답) Time/Version/Status on Rows 위 세 기법 결합, 정교한 관리 Triggers on Tables DB 트리거로 변경 시 이벤트 처리. 단, 시스템 관리 복잡도 증가·성능 저하 유발 Event Programming 애플리케이션에 변경 식별 코드 구현. 개발 부담·복잡도 증가하나 다양한 조건의 CDC 구현 가능 ★ Log Scanner on Database DB 트랜잭션 로그 스캔·해석. 장점: DB·애플리케이션 영향 최소화, 변경 식별 지연 최소화, 트랜잭션 무결성 영향 최소화, 스키마 변경 불필요 ★(단, “관리 복잡도 증가”는 특징 아님—기출) -
구현 방식 ★: 푸시(Push) = 원천에서 변경을 식별해 대상에 통보 / 풀(Pull) = 대상에서 원천을 주기적으로 확인
1-5. EAI (Enterprise Application Integration, 기업 애플리케이션 통합)
-
개념: 기업 내/기업 간 이질적 정보 시스템들의 데이터를 연계·통합하는 소프트웨어·아키텍처 프레임워크. 프로세스·메시지 차원에서 통합 관리
-
연계 방식 ★★: 기존 = PTP(Point-to-Point) 1:1 연결(복잡도·유지보수비용↑) → EAI = Hub and Spoke (허브라는 단일 접점을 통한 중앙집중식 연결. 연결 개수 감소)
-
EAI = 실시간 통합·연계 / ETL = 배치 프로세스 중심 ★★
-
구성요소: ①어댑터(Adapter: 각 시스템 연결) ②버스(Bus: 전송 통로) ③브로커(Broker: 라우팅·변환 조정) ④트랜스포머(Transformer: 데이터 형식 변환)
-
구현 유형 ★: Mediation(중개, Publish/Subscribe Model — 이벤트 발생 시 관련 시스템에 전달) / Federation(연합, Request/Reply Model — 요청을 취합해 응답)
-
활용 효과 ★(기출: “CDC 메커니즘 구현”은 효과 아님): 개발·유지보수 비용 절감 / 정보 시스템의 지속적 발전 기반 / 협력사·파트너·고객과 상호 협력 프로세스 연계 / 웹서비스 등 인터넷 비즈니스 토대 / 지역적으로 분리된 시스템 간 데이터 동기화 / 그룹·지주회사 계열 간 데이터 표준화 기반
-
EAI vs ESB(Enterprise Service Bus) ★★
구분 EAI ESB 기능 미들웨어(Hub)로 비즈니스 로직 중심 Application 통합·연계 미들웨어(Bus)로 서비스 중심 시스템 유기적 연계 통합 관점 Application Process(서비스) 로직 연동 개별 Application에서 수행 ESB에서 수행 아키텍처 허브를 이용한 중앙집중식 연결 버스 형태의 느슨하고 유연한(Loosely-coupled) 연결
1-6. 대용량 비정형 데이터 처리 (수집)
- 로그 데이터 수집 시스템 예 ★: 아파치 Flume-NG(소스 서버에 에이전트 설치, 에이전트로부터 데이터를 받는 콜렉터로 구성) / 페이스북 Scribe(중앙집중 서버로 전송) / 아파치 Chukwa(분산 환경 데이터를 HDFS에 안정적으로 저장) (+Kafka도 비정형 수집 기술 ★)
- 비정형 데이터 수집 시스템 특징 4가지 ★: ①초고속 수집 성능과 확장성 ②데이터 전송 보장 메커니즘(전송 단계별 신호 교환으로 유실 방지) ③다양한 수집·저장 플러그인 ④인터페이스 상속을 통한 애플리케이션 기능 확장
- 정형 데이터 수집(연동): Sqoop(스쿱), Hiho(히호) — 하둡 ↔ 관계형 DB 간 데이터 연동 솔루션(오픈소스). Import(RDB→하둡)와 Export(하둡→RDB) 모두 가능 ★(기출: “하둡→RDB 불가능” → 오답)
1-7. 하둡(Hadoop)과 에코시스템
-
하둡: 대용량 데이터의 분산 저장(HDFS)·분산 처리(MapReduce)를 위한 오픈소스 프레임워크
-
특징 4가지 ★: ①선형적인 성능과 용량 확장(노드 추가만으로 확장) ②고장 감내성(데이터 3중 복제, 작업 오류 시 다른 서버에서 자동 재실행) ③핵심 비즈니스 로직에 집중(고장 감내·복구를 시스템이 알아서 수행) ④풍부한 에코시스템
-
하둡 에코시스템 기술 총정리 ★★★ (기능-기술 매칭 문제 최다 출제)
기능 기술 비정형 데이터 수집 척와(Chukwa), 플럼(Flume), 스크라이브(Scribe) 정형 데이터 수집(연동) 스쿱(Sqoop), 히호(Hiho) 분산 데이터 저장 HDFS 분산 데이터베이스 HBase 분산 데이터 처리 맵리듀스(MapReduce) 리소스 관리 얀(YARN) — 맵리듀스 단점 극복 위해 시작, 분산 애플리케이션용 자원 관리 프레임워크 ★ 인메모리 처리 아파치 스파크(Spark) 데이터 가공 피그(Pig: Pig Latin 언어로 복잡한 MapReduce 프로그래밍 대체—100줄→10~20줄 ★), 하이브(Hive) 데이터 마이닝 머하웃(Mahout) — 하둡 기반 데이터 마이닝 알고리즘 오픈소스 라이브러리 실시간 SQL 질의 임팔라(Impala), 타조(Tajo) 워크플로우 관리 우지(Oozie: 하둡 작업 관리 워크플로우·코디네이터), 아즈카반(Azkaban) 분산 코디네이션 주키퍼(Zookeeper)
제2장 데이터 처리 기술
2-1. 분산 데이터 저장 기술
(1) GFS (Google File System) 설계 가정 ★
①서버(컴포넌트)의 고장이 빈번히 발생할 수 있다고 가정 ②대용량(수 GB 이상) 파일이라고 가정 ③대부분 순차 접근(추가 쓰기 중심), 한 번 쓰인 데이터는 잘 변경 안 됨 ④낮은 응답 지연시간보다 높은 처리율이 더 중요
- 구조: 마스터(1) + 청크서버(다수), 파일은 64MB 청크로 분할·3중 복제
(2) HDFS (Hadoop Distributed File System)
- 아파치 너치(Nutch) 검색엔진용으로 개발, GFS 아키텍처·사상을 그대로 구현한 클로닝 프로젝트
- 특징 ★★: ①하나의 네임노드(NameNode=GFS 마스터 격) + 다수의 데이터노드(DataNode=청크서버 격) ②파일을 블록(청크) 단위로 분할해 분산·복제 저장(파일 단위 저장 X ★) ③한 번 쓰이면 변경되지 않는다고 가정(2.0알파부터 append 가능) ④순차적 스트리밍 방식 저장·조회, 배치 작업에 적합 ⑤낮은 접근 지연보다 높은 데이터 처리량에 중점 ⑥통신은 TCP/IP 기반 RPC(Remote Procedure Call) 사용
- 파일 읽기 과정 ★: 클라이언트 → ①네임노드에 파일의 블록 위치 요청 → ②네임노드가 블록을 가진 데이터노드 목록(가까운 순) 반환 → ③클라이언트가 데이터노드에서 직접 블록을 읽음(데이터가 네임노드를 거치지 않음)
- 파일 쓰기 과정 ★: 클라이언트 → ①네임노드에 생성 요청(네임스페이스 등록) → ②저장할 데이터노드 목록 할당받음 → ③첫 데이터노드에 블록 전송 → ④데이터노드들이 파이프라인 방식으로 복제본 전달(1→2→3) → ⑤완료(ack) 보고
(3) 데이터베이스 클러스터
-
개념: 하나의 DB를 여러 서버(가상 서버)에 구축. 파티셔닝·클러스터링으로 성능·가용성 향상
-
파티셔닝 효과: 병렬처리, 고가용성(특정 파티션 장애에도 서비스 지속), 성능 향상
-
공유 디스크 vs 무공유(Shared Nothing) ★★
구분 무공유 디스크 공유 디스크 특징 각 노드가 분리된 데이터 서브집합의 소유권을 갖고 자기 데이터만 처리 모든 노드가 데이터 파일을 논리적으로 공유, 모든 데이터 접근 가능 장점 노드 확장에 제한 없음 높은 폴트톨러런스(장애 허용) 단점 장애 대비 별도 폴트톨러런스 구성 필요 클러스터가 커지면 디스크 병목 발생 대표 MySQL Cluster, MS SQL Server 등 Oracle RAC(Real Application Cluster) ★★ -
Oracle RAC: 대표적 공유 디스크(공유 클러스터) 방식 ★. 모든 노드가 데이터 공유, 하나의 DB처럼 동작. 장점: 가용성(장애 시 다른 노드가 지속), 확장성, 부하분산
-
MySQL 클러스터 구성요소 3가지 ★: ①관리 노드(클러스터 관리·설정) ②데이터 노드(데이터 저장, 무공유) ③MySQL(SQL) 노드(애플리케이션의 접근 창구, 쿼리 처리)
- 특징: 무공유 방식, 데이터는 디스크 기반+인덱스는 메모리 유지, 파티셔닝으로 병렬 처리
(4) NoSQL (Not only SQL)
-
개념: 여러 대의 DB 서버를 묶어(클러스터링) 하나의 DB를 구성. 관계형 모델·SQL을 벗어나 스키마 없이(Schema-less) 유연하게 대용량 데이터를 저장·처리. 수평 확장 용이
-
구글 빅테이블(BigTable) ★: GFS 위에 구축된 공유 디스크 방식(모든 노드가 GFS 데이터 공유) 분산 데이터 저장소. (row key, column key, timestamp) 기반 정렬된 다차원 맵. SQL on Hadoop의 원조가 아님 — NoSQL 기술 ★(기출)
-
HBase ★★: HDFS 기반 칼럼 지향(칼럼 기반) 분산 DB. 파워셋(Powerset)이 구글 빅테이블을 모델로 개발
- 관계형 구조 아님, SQL 미지원 ★ / 비구조화 데이터에 적합, 대규모 실시간 읽기/쓰기 / 노드 추가로 선형 확장 / 복제 제공 / 단일 행 트랜잭션 보장 / 로우키(row key) 인덱싱만 지원 / Zookeeper로 고가용성 보장
-
아마존 SimpleDB ★: 스키마 없음. 구성요소와 RDB 매칭 필수
SimpleDB 관계형 DB 대응 도메인(Domain) 테이블 아이템(Item) 레코드(행) Attribute 칼럼(속성) Value 값
2-2. 분산 컴퓨팅 기술
(1) MapReduce (맵리듀스)
- 개념: 구글이 분산 병렬 컴퓨팅으로 대용량 데이터를 처리하기 위해 만든 소프트웨어 프레임워크. 분할정복(Divide & Conquer) 방식 병렬 프로그래밍 모델. 복잡성을 추상화해 개발자는 핵심 기능에만 집중
- 맵 태스크 1개 = 블록(스플릿) 1개 대상 연산 ★★
- 하둡 맵리듀스: 구글 논문 기반 아파치 오픈소스, Java로 구현. 아키텍처: 잡트래커(JobTracker: 작업 관리) + 태스크트래커(TaskTracker: 실제 수행)
- 실행 절차(워드카운트 예제 순서) ★★:
스플릿(Split) → 맵(Map) → 컴바인(Combine) → 파티션(Partition) → 셔플(Shuffle) → 소트(Sort) → 리듀스(Reduce)
- Split: 입력을 블록 단위로 분할 / Map: (키, 값) 쌍 생성 / Combine: 맵 결과를 로컬에서 미리 집계(네트워크 부하↓, 선택적) / Partition: 키 기준으로 리듀서 배정 / Shuffle: 맵 출력을 리듀서로 전송 / Sort: 키 기준 정렬 / Reduce: 최종 집계
(2) 아파치 하이브(Hive)
- 하둡 기반 데이터 웨어하우스. 테이블 단위 데이터 저장과 HiveQL(SQL 유사 쿼리) 제공 ★
- 페이스북에서 개발. HiveQL은 내부적으로 맵리듀스 잡으로 변환되어 실행 → 배치 기반, 실시간 질의엔 부적합(이를 극복한 것이 SQL on Hadoop)
(3) SQL on Hadoop
- 개념 ★: 하둡에 저장된 대용량 데이터를 대화형(Interactive) SQL 질의로 처리·분석하는 기술. 하둡(맵리듀스)의 실시간 처리 제약을 극복하려는 시도. 원조 기술 = 임팔라 ★(빅테이블 아님)
- 임팔라(Impala) ★★: 클라우데라(Cloudera) 주도. SQL on Hadoop 중 먼저 대중에 공개. 분석과 트랜잭션 처리 모두 지원 목표. C++ 사용, 맵리듀스를 사용하지 않고 실행 중 최적화된 코드를 생성해 처리(MPP: Massively Parallel Processing, 대규모 병렬 처리). 하둡·HBase 데이터에 SQL 질의 가능 ★. 구성요소: 클라이언트·메타스토어·임팔라 데몬·스테이트 스토어·스토리지
- 기타 종류 ★: 드릴(Drill): 맵알(MapR) 주도, 구글 드레멜(Dremel)의 오픈소스 구현 / 스팅거(Stinger): 호튼웍스 주도, 기존 하이브 코드를 최대한 이용해 성능 개선 / 샤크(Shark): 인메모리 DW, 하이브 호환(HiveQL·UDF 사용 가능) / 타조(Tajo): 고려대 시작, 국내 그루터(Gruter) 참여, 아파치 프로젝트 / 프레스토(Presto): 페이스북 개발, 하둡 기반 DW 엔진 / 호크(HAWQ): EMC(피보탈) 개발
2-3. 클라우드 인프라 기술
-
클라우드 컴퓨팅: 동적으로 확장 가능한 가상화 자원들을 인터넷으로 서비스하는 기술
유형 풀네임 내용 IaaS Infrastructure as a Service 서버·스토리지·네트워크 등 인프라 자원 대여 (서버 가상화 기술 주로 활용) PaaS Platform as a Service 개발·구현에 필요한 플랫폼 제공 (아마존 S3·EC2가 최초 실현 ★) SaaS Software as a Service 소프트웨어를 웹에서 사용하게 해주는 서비스
(1) 서버 가상화
- 개념 ★: 물리적 서버와 운영체제 사이에 적절한 계층을 추가해 사용자에게 물리적 자원은 숨기고 논리적 자원만 보여주는 기술
- 효과 8가지 ★: ①가상머신 사이의 데이터 보호(격리) ②장애로부터 보호(한 VM 장애가 다른 VM에 영향 X) ③공유 자원에 대한 강제 사용의 거부(자원 독점 방지) ④서버 통합(활용률↑, 비용↓ — 가장 일반적 효과) ⑤자원 할당에 대한 증가된 유연성 ⑥테스팅(운영 영향 없이 테스트) ⑦정확하고 안전한 서버 사이징 ⑧시스템 관리(마이그레이션 등 용이)
(2) 하이퍼바이저(Hypervisor)
- 개념 ★: 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼. 물리 서버 위 가상화 레이어를 통해 OS 수행에 필요한 하드웨어 환경을 가상으로 제공 (VMM: Virtual Machine Monitor)
- ※ 컨테이너 기반 가상화의 지원 계층은 하이퍼바이저가 아니라 ‘가상 운영환경’ ★(기출)
(3) CPU 가상화 기법 비교 ★★
| 기법 | 내용 |
|---|---|
| 완전가상화(Full-Virtualization) | 하드웨어를 완전히 가상화. 어떤 OS든 수정 없이 설치 가능 ★. CPU의 특권 명령을 하이퍼바이저가 바이너리 변환(트랩) 처리 → 성능 저하 |
| 하드웨어 지원 완전가상화 | Intel VT-x, AMD-V 등 CPU의 가상화 기술 지원을 받아 완전가상화 성능 개선 |
| 반가상화(Para-Virtualization) | 게스트 OS를 수정(하이퍼콜 사용)해 하이퍼바이저와 직접 통신 → 성능 우수, 단 OS 수정 필요 (Xen 계열) |
| Monolithic vs Microkernel | Monolithic: 디바이스 드라이버를 하이퍼바이저 내부에 포함(예: VMware ESX) / Microkernel: 드라이버를 관리 OS(부모 파티션) 에 둠, 하이퍼바이저는 최소 기능(예: Hyper-V) |
| 호스트 기반 가상화 | 기존 호스트 OS 위에 가상화 SW 설치 후 게스트 OS 구동(예: VMware Workstation, VirtualBox). 호스트 OS 장애에 취약, 주로 테스트용 |
| 컨테이너 기반 가상화 | 호스트 OS 위 가상 운영환경(컨테이너) 만 제공, OS 전체를 가상화하지 않음 → 오버헤드 적고 빠름, 단 호스트와 같은 OS만 가능. 격리 수준 낮음 |
- 하이퍼바이저 기반(베어메탈: 완전·반가상화) vs 호스트 기반 vs 컨테이너 기반의 구조 차이 비교 출제 가능 ★
(4) 메모리 가상화 (VMware 기법) ★
-
VMkernel: VMware 하이퍼바이저의 핵심 모듈. Service Console·디바이스 드라이버 영역을 제외한 전체 메모리를 관리하며 가상머신에 할당
-
Shadow Page Table: 하이퍼바이저 내에 별도로 두어 가상 메모리 주소 ↔ 물리 메모리 주소의 중간 변환 과정을 가로챔(변환 오버헤드 제거)
-
메모리 할당 문제 해결 방법 3가지 ★★
기법 내용 Memory Ballooning 예약보다 많은 메모리를 쓰는 VM의 메모리 영역을 빈 값으로 강제로 채워 게스트 OS가 자체적으로 스와핑(swapping) 하도록 유도 Transparent Page Sharing 여러 VM에 할당된 메모리 중 동일한 내용의 페이지는 물리 메모리에 하나만 존재시키고 공유 Memory Overcommitment 물리 메모리보다 많은 메모리를 VM들에 할당(예: 2GB 장비에 512MB VM 5개). 가능하지만 성능 저하 유발로 권장하지 않음
⚡ 시험 직전 핵심 총정리
- ETL = 추출·변형·적재, 배치 중심 ↔ EAI = 실시간, Hub and Spoke(기존 PTP 대체)
- ODS 6단계: 인터페이스→스테이징→프로파일링→클렌징→인티그레이션→익스포트
- DW 특징: 주제중심·비휘발·통합·시계열 / 스타(단순·중복↑)↔스노우플레이크(정규화·복잡↑)
- CDC 구현: 타임스탬프·버전넘버·상태·트리거·이벤트프로그래밍·로그스캐너(영향 최소화 4종) / 방식: 푸시·풀
- EAI(Hub·비즈니스로직·개별App연동·중앙집중) vs ESB(Bus·서비스중심·ESB연동·느슨한 구조)
- 수집: 비정형=척와·플럼·스크라이브(+카프카) / 정형=스쿱·히호(Import/Export 모두 가능)
- 에코시스템: 저장 HDFS / DB HBase / 처리 맵리듀스 / 자원 YARN / 인메모리 스파크 / 가공 피그·하이브 / 마이닝 머하웃 / 실시간질의 임팔라·타조 / 워크플로우 우지 / 코디네이션 주키퍼
- GFS 가정: 고장 빈번·대용량·높은 처리율 중시
- HDFS: 네임노드 1 + 데이터노드 다수, 블록 단위, 한번 쓰면 변경 X, 순차 스트리밍·배치 적합, 높은 처리량
- 클러스터: 무공유(확장 무제한·폴트톨러런스 별도) vs 공유(Oracle RAC, 폴트톨러런스↑·디스크 병목) / MySQL = 관리·데이터·SQL 노드
- NoSQL: 빅테이블(공유디스크) / HBase(칼럼 기반, SQL 미지원, 로우키 인덱스, Zookeeper) / SimpleDB(도메인=테이블, 아이템=행, Attribute=칼럼, Value=값, 스키마 없음)
- 맵리듀스: 맵 태스크 1개=블록 1개, 순서 = 스플릿→맵→컴바인→파티션→셔플→소트→리듀스
- SQL on Hadoop 원조 = 임팔라(클라우데라, C++, 맵리듀스 미사용, MPP) / 스팅거=하이브 개선 / 타조=국내
- 가상화: 하이퍼바이저=다수 OS 실행용 논리 플랫폼 / 컨테이너 계층=가상 운영환경 / 완전가상화=OS 수정 불필요, 반가상화=OS 수정
- 메모리: 벌루닝(강제 스와핑 유도)·페이지 공유(중복 1개만)·오버커밋(가능하나 비권장)