본문 바로가기

전체 글153

RDD (Resilient Distributed Dataset) RDD (Resilient Distributed Dataset)의 개념기본 데이터 구조: RDD는 Apache Spark의 가장 근간이 되는 핵심 데이터 구조입니다.분산 컬렉션: 클러스터 전체에 걸쳐 병렬로 처리할 수 있으며, 한 번 생성되면 변경할 수 없는(불변의) 객체들의 분산 컬렉션을 의미합니다.분산 컴퓨팅의 기반: 결함 허용(Fault Tolerance) 능력을 제공하며, Spark가 자랑하는 강력한 분산 컴퓨팅 기능을 지탱하는 뼈대 역할을 합니다.RDD의 5가지 핵심 특징 (Key Characteristics)1. 불변성 (Immutability)한 번 생성된 RDD는 절대로 수정하거나 형태를 바꿀 수 없습니다.RDD에 수정이나 필터링 같은 변형 연산(Transformations)을 적용하면 기.. 2026. 6. 7.
[Windows] PySpark Jupyter 설치 방법 Docker가 설치된 Windows 환경에서 Windows 터미널(CMD)을 통해 PySpark와 Jupyter Notebook 개발 환경을 구축한 전체 과정입니다. 보면서 설치 하기 쉽게 깔끔하게 정리했습니다. 1단계. 로컬 작업 디렉토리 생성컨테이너가 종료되거나 삭제되어도 작업한 소스 코드(.ipynb 파일)가 Windows 로컬 컴퓨터에 안전하게 보관되도록 전용 워크스페이스 폴더를 생성하고 이동합니다.[DOS] mkdir C:\pyspark_workspacecd C:\pyspark_workspace 2단계. Jupyter PySpark Docker 컨테이너 실행Jupyter 공식 가이드에서 제공하는 스택인 jupyter/pyspark-notebook 이미지를 다운로드하고 컨테이너를 구동합니다. 터미.. 2026. 6. 7.
분산 클러스터(Cluster) 1. 클러스터의 개념정의: 네트워크로 연결된 여러 대의 독립된 컴퓨터(노드)들이 하나의 통합된 단일 시스템처럼 작동하여 대량의 데이터나 복잡한 계산을 처리하는 컴퓨팅 구조를 뜻합니다.분산 컴퓨팅: 대규모 분산 계산 인프라의 중추를 이루며, 하나의 작업을 작은 단위로 쪼갠 뒤 여러 노드가 동시에 병렬로 실행하는 방식으로 동작합니다.용량 확장 예시:개별 워커 노드(Worker Node) 1대의 사양이 4 Cores / 32 GB 일 때,이를 10대 결합(x10)하면 전체 클러스터 총용량은 40 Cores / 320 GB 로 대폭 확장됩니다.2. 클러스터 인프라의 유형온프레미스 클러스터 (On-Premises Cluster)기업 내부 자체 데이터 센터에 구축한 물리 서버 기반의 클러스터입니다.수동 설정과 상시.. 2026. 6. 7.
Apache Spark란? 1. Apache Spark란 무엇인가?정의: Apache Spark는 대규모 데이터 처리를 빠르고 유연하게 수행할 수 있도록 설계된 오픈소스 분산 컴퓨팅 시스템입니다.통합 분석 엔진: 데이터 엔지니어링, 데이터 과학, 머신러닝 작업을 두루 처리할 수 있는 통합 환경을 제공합니다.2. Apache Spark를 사용하는 이유고성능 (High Performance)Spark의 인메모리(In-Memory) 컴퓨팅 능력은 기존의 디스크 기반 시스템인 Hadoop MapReduce보다 최대 100배 빠른 데이터 처리를 가능하게 합니다.여러 번 데이터를 반복해서 조회해야 하는 머신러닝 알고리즘이나 그래프 연산과 같은 반복 알고리즘 작업에 매우 이상적입니다.통합 플랫폼 (Unified Platform)배치(Batch.. 2026. 6. 7.
클라우드 컴퓨팅 클라우드 컴퓨팅인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 분석 및 AI 등의 컴퓨팅 서비스와 애프리케이션을 원할 때언제든지 사용한 만큼만 요금을 내는 서비스 클라우드 컴퓨팅 특징주문형 셀프 서비스광범위 네트워크 접근리소스 풀링빠른 탄력성서비스 측정서버 가상화하드웨어 성능을최적화해서 사용하기 위해 하나의 물리 장비위에 하이퍼바이저를통해 여러 대의 운영체제를 가상화해서 사용클라우드 컴퓨팅 장점민첩성 앱 요구 사항 변경 시 신속한 리소스 배포 및 구성글로벌 확장해외에 별도 인프라 구매 없이 수분 내에 글로벌 서비스 구현 가능확장성수직/수평 스케일링 가능고가용성선택한 SLA에따라 문제시에도 지속적인 사용 가능재해 복구재해 발생시에도 데이터 안전 유지 및 안정적 배포 가능운영비용 절감사.. 2025. 9. 21.
자료형 typeof변수의 자료형을 조회하는 연산자console.log(typeof 변수명);숫자형 자료형numberInfinity - 할당 가능, 100/0 같이 결과가 부정확할때 사용NaN - 할당 가능, 부정확한 연산의 결과BigInt - 2^53보다 큰 수 표현시 사용문자형 자료형string큰, 작은, 역 따옴표 사용해서 문자열 표현역 따옴표 - ``, ${변수명}으로 문자열에 할당 가능let name = '이름';let intro = `제 이름은 ${name} 입니다.`;console.log(intro); // 제 이름은 이름입니다. Nulllet num = null;console.log(num === null); // trueUndefined : 할당되지 않은 상태프로그램 실행중에 자료형이 .. 2025. 7. 29.
변수 변수명에는 $ 기호와 _ 기호를 제외한 다른 기호는 사용 할 수 없다.변수명의 맨 앞에는 숫자를 사용할 수 없다.변수명에는 예약어(let, for, var, if 등)를 사용할 수 없다.let 변수명 = 값; 형식으로 할당하고, 후에 재 선언하면 재 할당 할 수 있다. 상수const 상수명 = 값; 형식으로 선언하고, 후에 재선언을 해도 재 할당 되지 않는다. 2025. 7. 29.
비동기 방식 비동기를 활용하는 상황 동기방식으로 처리를 해야하는 작업이 아니라면 비동기 방식을 고민해보는 것도 좋지 않을까? 동기방식이 맞는 경우 결제 API 에서 pg사로 결제 요청을 한 경우 pg사에서 정상적으로 결제처리가 완료되었다는 응답을 받고 추가 작업을 진행하는 경우 사전 작업 완료가 된 후 이어서 다음 작업을 할 수 있는 경우 비동기방식을 활용해도 되는 경우 100명에 사용자에게 쿠폰 발송을 한다면 1번 사용자 발송이 완료되고 2번 사용자를 발송하고 이런 발송 처리 java completeFuture 를 활용한 비동기처리 캐싱과 인덱싱에 사용했던 공지사항 테이블을 사용 상황 : 공지사항 전체 데이터를 조회하고 그 만큼을 로그 발송 처리 발송을 → log 로 대체 발송처리에 드는 작업 시간을 → Threa.. 2024. 3. 10.