현재 선택한 빅데이터 분석 과정

빅데이터분석기사 필기 이론 학습

이론 목록으로 돌아가기

분석 도구와 환경 선택

데이터와 운영 요구에 맞는 분석 도구·실행 환경을 선택한다.

예상 읽기 12

핵심 요약

분석 도구 선택은 가장 최신 도구빅데이터 전용 도구를 고르는 일이 아니다. 먼저 데이터 형식, 수행할 연산, 작업 집합의 크기, 완료시간·응답시간·처리량, 보안과 운영 제약을 정의한다. 그다음 SQL 중심 처리, 단일 장비 통계·머신러닝, 분산 처리, GPU 가속 중 필요한 계층을 조합한다.

환경은 작은 기준 구성에서 시간, 최대 메모리, 처리량, 비용과 실패 복구를 측정한 뒤 확장한다. 데이터 행 수만으로 단일·분산 환경을 결정할 수 없고, 실시간 추론이 필요하다고 매 요청마다 모형을 다시 학습하는 것도 아니다.

학습 목표

  • 데이터 형식과 작업 유형에 맞는 분석 도구 범주를 선택한다.
  • 단일 장비의 수직 확장과 분산 환경의 수평 확장을 구분한다.
  • CPU와 GPU의 적합 조건 및 데이터 전송 병목을 설명한다.
  • 배치, 요청형 추론, 스트림 처리와 온라인 학습을 구분한다.
  • 성능 측정, 총비용, 재현성, 보안과 운영 역량을 종합해 환경을 결정한다.

0. 먼저 알아둘 용어

  • 작업 집합(working set): 한 작업을 수행하는 동안 메모리·장치 메모리·중간 저장공간에 실제로 필요한 데이터와 중간 결과의 범위다.
  • 수직 확장(scale-up): 한 장비의 메모리, CPU 또는 GPU 성능을 높인다.
  • 수평 확장(scale-out): 여러 노드에 데이터와 계산을 나눈다.
  • 지연시간(latency): 요청 또는 이벤트 하나가 결과를 받을 때까지 걸린 시간이다.
  • 처리량(throughput): 단위 시간에 완료하는 행·작업·요청 수다.
  • 동시성(concurrency): 같은 시점에 처리 중인 요청이나 작업의 수다.
  • SLA·SLO: 완료시간, 지연시간, 가용성처럼 지켜야 할 서비스 수준의 약속 또는 내부 목표다.

1. 분석 도구는 작업 유형에서 고른다

도구 이름보다 먼저 필요한 연산과 산출물을 정한다.

도구 범주적합한 작업선택 조건주의점
SQL·질의 엔진정형 데이터 조회, 조인, 집계, 품질 점검데이터가 테이블 중심이고 데이터 이동을 줄일 때복잡한 반복 학습·특수 알고리즘에는 제약이 있을 수 있음
단일 장비 분석 언어·라이브러리탐색, 통계분석, 전처리, 일반 머신러닝작업 집합이 장비 자원 안에 있고 빠른 실험이 중요할 때메모리 초과와 장시간 단일 작업을 측정해야 함
분산 데이터·연산 엔진대용량 조인·집계, 분할 가능한 반복 작업한 장비 한계를 넘고 병렬 이득이 통신비용보다 클 때셔플, 스케줄링, 장애 복구와 운영 복잡성 증가
GPU 가속 라이브러리대규모 행렬·텐서 연산, 지원되는 병렬 학습연산이 GPU에 맞고 장치 메모리와 전송비용을 감당할 때모든 알고리즘이 가속되는 것은 아니며 재현성 검증 필요

실제 선택에는 알고리즘 지원 여부, 데이터 형식, 기존 저장소와의 연결, 패키지 생태계, 접근통제, 팀의 유지보수 역량과 총비용을 포함한다. 탐색용 노트북이 편리하더라도 운영 반복 작업은 버전된 스크립트·파이프라인으로 옮겨 실행 이력과 실패 처리를 남긴다.

2. 데이터 크기보다 작업 집합과 병목을 본다

원본 파일 크기만으로 필요한 메모리를 판단하면 안 된다. 압축 해제, 자료형 변환, 조인, 정렬, 복사본, 특징 생성과 모형 학습 과정에서 중간 결과가 커질 수 있다. 반대로 열 일부만 읽거나 스트리밍 집계를 하면 원본 전체를 메모리에 올리지 않아도 된다.

2.1 단일 장비와 수직 확장

작업 집합이 메모리 또는 로컬 저장장치에서 처리되고 SLA를 만족하면 단일 장비가 우선 후보가 될 수 있다. 네트워크 셔플과 노드 관리가 없고 디버깅·재현이 비교적 단순하다. 메모리 증설, 더 빠른 저장장치, 병렬 스레드처럼 한 장비 안의 병목을 먼저 개선할 수 있다.

2.2 분산 처리와 수평 확장

다음 조건에서 분산 처리를 검토한다.

  • 데이터와 중간 결과가 현실적인 단일 장비 한계를 지속적으로 넘는다.
  • 작업을 독립된 파티션으로 나눌 수 있고 병렬 계산 비중이 크다.
  • 단일 장비로는 배치 완료시간 또는 처리량 목표를 충족하지 못한다.
  • 노드 장애, 재시도, 데이터 파티셔닝과 결과 병합을 운영할 역량이 있다.

분산 저장이 필요하다고 모든 계산을 분산할 필요는 없다. 필요한 데이터만 추출해 단일 장비에서 학습할 수도 있다. 반대로 데이터가 저장소에 들어가더라도 대규모 조인·정렬의 셔플과 중간 결과가 병목이면 분산 연산이 필요할 수 있다.

2.3 병렬화의 한계: 암달의 법칙

통신·스케줄링 비용을 제외한 이상적인 병렬 속도 향상은 다음처럼 나타낼 수 있다.

[ S(N)=\frac{1}{(1-p)+\frac{p}{N}} ]

  • (S(N)): 노드·처리장치 (N)개를 사용했을 때 단일 장치 대비 속도 향상 배수
  • (p): 전체 실행시간 중 병렬화 가능한 비율, (0\le p\le1)
  • (N): 동일한 성능을 가진 장치 수, 정수 (N\ge1)

정상 예로 (p=0.8), (N=4)이면 분모는 (0.2+0.8/4=0.4)이므로 이상적 속도 향상은 (S(4)=2.5)배다. 장치를 4개 쓴다고 자동으로 4배가 되지 않는다. 경계 예로 (p=0)이면 (N)과 관계없이 (S(N)=1)이고, (N=1)도 항상 1이다. 실제 환경은 네트워크·셔플·동기화 비용이 추가되므로 이론값보다 낮을 수 있다.

3. CPU와 GPU 선택

비교 기준CPU 중심 환경GPU 중심 환경
계산 특성복잡한 분기, 다양한 범용 작업같은 행렬·텐서 연산의 대량 병렬 수행
대표 작업정형 데이터 처리, 일반 통계, 작은·중간 모형심층신경망, 지원되는 대규모 텐서 학습
주요 메모리시스템 메모리와 캐시장치 메모리와 시스템-장치 간 전송
선택 판단범용성·단순성이 가속 이득보다 중요충분한 연산량이 전송·초기화 비용을 상쇄

GPU 사용 여부는 알고리즘 이름만으로 정하지 않는다. 실제 라이브러리가 해당 연산을 GPU에서 지원하는지, 배치 크기와 장치 메모리가 적절한지, 데이터 이동이 병목인지 측정한다. 작은 데이터나 짧은 작업은 초기화·전송비용 때문에 CPU가 더 빠를 수 있다.

일부 병렬 연산과 낮은 정밀도 계산은 실행 순서나 반올림 차이로 결과가 완전히 같지 않을 수 있다. 난수 시드만 고정하지 말고 하드웨어·라이브러리·결정론 설정을 기록하고, 필요한 경우 예측·지표의 허용 오차를 정한다.

4. 배치, 요청형 추론, 스트림 처리, 온라인 학습

처리 방식결과가 필요한 시점핵심 측정값예시
배치 처리정해진 마감 전전체 완료시간, 처리량, 재실행 가능성매일 새벽 고객 위험점수 생성
요청형 온라인 추론요청 직후지연시간 백분위수, 동시 요청량, 가용성결제 요청의 사기 확률 반환
스트림 처리·추론이벤트가 연속 도착할 때이벤트 지연, 처리량, 순서·중복 처리센서 이벤트별 이상 점수 계산
온라인 학습새 관측으로 모형을 점진 갱신할 때갱신 안정성, 개념 변화, 롤백 가능성순차 데이터로 모수 업데이트

실시간은 하나의 기술 이름이 아니라 업무가 허용하는 지연 목표다. 평균 지연만 보면 느린 일부 요청을 가릴 수 있으므로 요청형 서비스는 95번째·99번째 백분위수 같은 꼬리 지연과 최대 동시성도 본다.

배치로 학습한 모형을 요청형 서비스나 스트림에서 추론할 수 있다. 반대로 스트림으로 데이터가 들어와도 모형은 하루나 일주일에 한 번 배치 재학습할 수 있다. 데이터 수집 방식, 특징 계산 방식, 추론 방식과 학습 주기를 각각 분리해 결정한다.

5. 기준 환경에서 측정한다

5.1 요구사항과 측정값

요구사항측정값측정 시 주의점
배치 마감전체 경과시간, 실패 후 재실행시간입력·전처리·저장까지 종단 간 측정
요청 응답중앙값과 p95·p99 지연, 최대 동시성준비된 캐시와 비어 있는 캐시를 구분
자원 한계최대 메모리·장치 메모리, 저장 I/O, 네트워크평균만 보지 말고 최대 사용량 확인
처리 능력초당 행·이벤트·요청 수실제와 비슷한 데이터 분포·크기로 측정
비용·운영실행당 비용, 상시 비용, 복구시간, 인력계산·저장·전송·라이선스·유휴 자원 포함

벤치마크는 후보 간 같은 입력, 같은 결과 정확도와 같은 측정 범위를 사용한다. 한 번의 가장 빠른 결과만 고르지 말고 여러 번 실행해 변동을 확인한다. 전처리와 데이터 읽기를 빼고 모형 계산만 재면 실제 병목을 놓칠 수 있다.

5.2 선택 원칙

  1. 정확성·보안·필수 기능을 만족하는 후보만 남긴다.
  2. 대표 데이터와 실제 워크로드로 가장 단순한 기준 환경을 측정한다.
  3. CPU, 메모리, 저장 I/O, 네트워크, 셔플, GPU 사용률 중 병목을 찾는다.
  4. 병목을 직접 줄이는 수직 확장·코드 개선·분산 처리·GPU 가속을 비교한다.
  5. 성능 향상과 총비용·복잡성·복구 가능성을 함께 평가한다.

6. 재현성, 보안과 운영 연계

6.1 재현성 수준

  • 정확 재현: 같은 입력과 환경에서 비트 수준으로 같은 산출물이 나온다.
  • 수치 재현: 부동소수점 차이가 허용 오차 안에 있고 지표·결론이 같다.
  • 절차 재현: 동일한 데이터 추출, 전처리, 학습, 평가와 승인 절차를 다시 실행할 수 있다.

다음 정보를 함께 기록한다.

  • 소스 코드, 설정, 라이브러리, 실행환경과 하드웨어 버전
  • 데이터 스냅숏·해시, 추출 시점, 스키마와 계보
  • 난수 시드, 분할 규칙, 하이퍼파라미터와 학습 로그
  • 모형·전처리 산출물의 체크섬, 평가 결과와 승인 상태
  • 결정론 설정, 허용 오차, 실행 명령과 작업 식별자

컨테이너나 잠금 파일은 실행환경 재현에 도움을 주지만 데이터 변경, 외부 서비스, 하드웨어와 비결정적 연산까지 자동으로 고정하지는 않는다.

6.2 보안과 거버넌스

민감정보는 저장 위치, 전송 암호화, 최소권한, 로그 마스킹, 반출 승인, 보존·파기 기간을 확인한다. 원자료를 개인 장비로 복사하거나 승인되지 않은 외부 환경에 올리는 방식은 속도가 빨라도 선택할 수 없다.

실험환경과 운영환경의 입력 스키마, 특징 생성 코드, 접근권한과 라이브러리 차이를 줄인다. 실험에서만 접근 가능한 변수를 사용하면 훈련-서빙 불일치가 발생한다. 실패 시 이전 승인 모형으로 되돌릴 수 있도록 버전과 롤백 절차를 관리한다.

7. 환경 선택 흐름

MERMAID코드 영역 안에서 좌우로 이동할 수 있습니다.
flowchart TD
  A["데이터·작업·보안 요구 정의"] --> B["처리 방식과 SLA·SLO 확정"]
  B --> C["도구·단일 환경 후보 구성"]
  C --> D["종단 간 기준 성능 측정"]
  D --> E["병목·총비용·운영성 비교"]
  E --> F["필요한 부분만 단계적 확장"]

8. 사례 적용

상황: 하루 한 번 정형 거래 200만 건으로 고객 이탈점수를 만들고, 사용자가 앱을 열면 저장된 최신 점수를 조회한다.

요구사항: 학습은 주 1회, 점수 생성은 새벽 배치로 2시간 안에 끝나야 한다. 앱은 이미 계산된 점수를 짧은 지연으로 조회하며 원자료는 승인된 환경 밖으로 반출할 수 없다.

용량 확인: 행 수만으로 환경을 정하지 않는다. 모든 값이 8바이트인 수치형 변수 100개라고 단순 가정하면 원시 값의 하한은 2,000,000 × 100 × 8 = 1,600,000,000바이트, 즉 약 1.6GB다. 실제 작업 집합에는 자료구조 오버헤드, 결측·범주 표현, 복사본과 중간 결과가 더해지므로 스키마와 실행 중 최대 메모리를 측정한다.

판단 과정: SQL 계층에서 필요한 기간·열을 집계하고 승인된 단일 장비에서 CPU 기준 파이프라인의 종단 간 시간과 최대 메모리를 측정한다. 2시간 목표를 만족하면 분산·GPU를 추가하지 않는다. 메모리, 조인 셔플 또는 학습 계산이 병목일 때만 수직 확장, 분산 처리 또는 지원되는 GPU 가속을 각각 비교한다.

운영 구조: 주 1회 배치 학습과 매일 배치 점수 생성을 분리해 버전과 체크섬을 남긴다. 앱의 짧은 조회 지연은 저장된 점수를 제공하는 요청형 서비스의 요구이며, 매 요청 재학습이나 스트림 학습을 뜻하지 않는다.

결론: 정확성·보안을 통과한 가장 단순한 환경에서 SLA를 측정하고, 확인된 병목을 줄이는 방식으로만 확장한다.

데이터 규모와 처리 지연 요구가 낮고 높은 경우 단일·분산, 배치·스트림 환경의 적합 위치를 비교한 매트릭스
데이터 규모와 처리 지연 요구가 낮고 높은 경우 단일·분산, 배치·스트림 환경의 적합 위치를 비교한 매트릭스

환경은 유행하는 제품명이 아니라 데이터 규모·지연·동시성·보안·비용 요구로 선택한다. 분산·스트림은 복잡성과 운영 비용을 동반하므로 필요 조건이 없으면 자동 정답이 아니다.

버전 관리된 코드, 데이터 스냅샷, 의존성, 설정과 시드, 실행 로그를 층으로 쌓은 재현성 구조
버전 관리된 코드, 데이터 스냅샷, 의존성, 설정과 시드, 실행 로그를 층으로 쌓은 재현성 구조
재현 실행=f(코드 버전,데이터 스냅샷,의존성,설정·시드)
선택 축낮은 요구높은 요구
데이터 규모단일 노드 가능분산 저장·연산 검토
지연 허용배치 처리스트림·온라인 서빙
재현성로컬 기록만으로 부족버전·계보·실행 로그 필수

노트북 하나만 보관하면 입력 데이터와 라이브러리 변화 때문에 같은 결과를 보장할 수 없다.

시험 판단 포인트

  • 분석 도구는 데이터 형식, 연산, 알고리즘 지원, 운영 연결과 유지보수성을 기준으로 선택한다.
  • 원본 크기보다 중간 결과를 포함한 작업 집합과 실제 병목을 본다.
  • 수직 확장은 한 장비를 강화하고 수평 확장은 여러 노드에 계산을 나눈다.
  • 분산 처리의 병렬 이득은 순차 구간과 통신·셔플·스케줄링 비용 때문에 제한된다.
  • GPU는 지원되는 대규모 병렬 행렬·텐서 연산에서 유리하며 작은 작업은 전송비용이 더 클 수 있다.
  • 배치 학습, 요청형 추론, 스트림 처리와 온라인 학습은 서로 다른 선택 축이다.
  • 평균 성능뿐 아니라 꼬리 지연, 최대 메모리, 실패 복구와 총비용을 측정한다.

자주 틀리는 부분

  • 데이터가 많다는 이유만으로 분산 처리와 GPU를 동시에 선택하지 않는다.
  • 분산 저장소에 있다는 이유만으로 모든 계산을 분산 실행하지 않는다.
  • 장치 수를 늘리면 속도가 항상 장치 수에 비례한다고 보지 않는다.
  • 실시간 추론과 온라인 학습을 같은 의미로 보지 않는다.
  • 난수 시드나 컨테이너 하나만으로 데이터·하드웨어·외부 의존성까지 모두 재현된다고 보지 않는다.
  • 가장 빠른 단일 측정값만 보고 실제 데이터·비용·장애 복구 조건을 무시하지 않는다.
스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01정형 테이블의 대규모 조인·집계 후 작은 학습용 데이터를 만들려 한다. 가장 먼저 검토할 도구 범주는?
정답 및 해설

데이터가 있는 곳에서 실행하는 SQL·질의 엔진

정형 데이터의 조인·집계는 데이터가 있는 계층의 SQL·질의 엔진에서 먼저 처리하면 불필요한 이동을 줄이고 작은 학습용 결과를 만들 수 있다.

02실행시간의 80%가 병렬화 가능하고 장치 4개를 사용한다. 통신비용을 제외한 암달의 법칙상 이상적 속도 향상은?
정답 및 해설

2.5배

암달의 법칙에 (p=0.8), (N=4)를 대입하면 1 ÷ (0.2 + 0.8 ÷ 4) = 1 ÷ 0.4 = 2.5다.

03배치 학습과 실시간 추론의 관계를 올바르게 제시하시오.
정답 및 해설

배치로 학습한 모형을 요청 시 짧은 지연으로 호출할 수 있다.

학습 주기와 추론 지연은 독립적으로 설계할 수 있으므로 배치 학습한 모형을 요청형 서비스에서 짧은 지연으로 호출할 수 있다.

04하루 200만 건의 점수를 2시간 이내 생성해야 할 때 적절한 실행 환경과 선택 근거를 서술하시오.
정답 및 해설

승인된 기준 환경에서 종단 간 시간과 최대 메모리를 측정하고 병목이 있을 때 필요한 부분을 확장한다.

환경은 대표 데이터로 종단 간 성능과 자원 사용을 측정한 뒤 확인된 병목을 줄이는 방향으로 확장해야 한다.