전체 글 350

DAG란?

Directed Acyclic Graph→ 방향성이 있는 비순환 그래프 DAG의 구성 요소Dagster에서 DAG는 다음과 같은 요소로 구성됩니다: Dagster에서의 DAGDagster는 모든 자산(asset)과 작업(op)을 내부적으로 DAG 형태로 구성합니다.그래서 Definitions(...)에 자산들을 등록하면,Dagster는 자동으로 각 자산의 의존 관계를 분석해서 DAG을 생성합니다.예:@assetdef raw_data(): ...@assetdef clean_data(raw_data): # 👈 raw_data를 입력으로 받음 ... 위 구조는 다음과 같은 DAG이 됩니다:raw_data ───▶ clean_data 요약Dagster에서 DAG는 자산 또는 작업들 사이의 의존..

Dagster에서 Definitions와 merge는 왜 쓸까?

Dagster로 ETL, 데이터 파이프라인을 구성하다 보면Definitions(...)와 Definitions.merge(...)라는 구조를 자주 보게 됩니다.이번 글에서는 이 두 가지 키워드가 무엇을 의미하고, 왜 쓰이는지 간단하게 살펴봅니다. Definitions란?Dagster에서 자산(asset), 작업(op), 리소스(resource) 등을 한 곳에 정의하고 모아서 등록하는 컨테이너입니다.from dagster import Definitionsdefs = Definitions( assets=[etl_asset], resources={"s3": s3_resource},)이처럼 Definitions는 하나의 파이프라인 단위를 구성하는 핵심 블록이에요.정리하면:Dagster 앱의 구성요소를..

자산 팩토리란? 반복되는 자산을 함수로 자동화하기

Dagster로 데이터 파이프라인을 개발하다 보면, 비슷한 구조의 자산(asset)을 여러 개 만들어야 하는 상황을 자주 마주치게 됩니다.예를 들어, 서로 다른 파일에 CSV 데이터를 저장하는 자산을 만들 때, 자산 정의만 반복되는 경우가 생기죠.이럴 때 유용한 패턴이 바로 **자산 팩토리(asset factory)**입니다. 자산 팩토리란?📌 자산(asset)을 생성하는 함수를 만들어, 유사한 자산을 반복적으로 생성하는 구조즉, 자산 정의를 함수화해서 매개변수만 바꿔 여러 자산을 만들어낼 수 있도록 하는 패턴입니다. 예시: CSV 저장 자산을 반복 생성하는 팩토리from dagster import asset, Definitions, AssetExecutionContextfrom typing impo..

"로직"이란 정확히 무슨 뜻일까?

프로그래밍을 하다 보면 “이 로직 수정해야겠는데?”, “데이터 저장하는 로직이야” 같은 표현을 자주 듣습니다.그런데 막상 "로직이 정확히 뭘 의미하는지" 물어보면 막연하게 느껴지기도 하죠.오늘은 이 흔하게 쓰이는 단어 **"로직(logic)"**의 정확한 의미를 간단하게 정리해보려 합니다. 로직이란?📌 로직이란, 어떤 작업을 수행하기 위해 설계된 코드의 흐름, 절차, 구조를 뜻합니다.예를 들어,CSV 파일을 저장하는 로직은 이렇게 생겼을 수 있어요:df = get_df_fn()df.to_csv("data/output.csv", index=False) 이 두 줄의 코드가 **“CSV를 저장하는 로직”**입니다.즉, 어떤 목적(저장)을 위해 무엇을 어떻게 할지 정의한 구체적인 코드 흐름이 바로 로직이죠...

실행은 운영체제가 한다 – 실행파일의 뒷이야기

컴퓨터는 전기만 들어오면 자동으로 돌아갈까?컴퓨터 부품들은 전기만 넣는다고 혼자 알아서 움직이는 마법 같은 존재가 아닙니다.이들을 제대로 작동시키기 위해서는 운영체제라는 관리자, 즉 중재자가 필요합니다.운영체제는 각 프로그램과 하드웨어 자원 사이를 중재하고 관리하는 시스템 소프트웨어입니다. 운영체제는 모든 것을 통제한다예를 들어, 새로운 프로그램(게임)을 실행할 때 운영체제는 이렇게 물어봅니다.“이걸 실행하려면 어디에 적재해야 하지?”“어떤 메모리 주소를 써야 하지?”운영체제는 메모리를 직접 관리하며, 어떤 프로그램이 어디에 로드될지를 결정합니다.실행이 끝나면 자원을 회수하기도 하죠. CPU까지 관리하는 운영체제운영체제는 단지 메모리만이 아니라 CPU 자원도 배분합니다.누가 먼저, 얼마나 오래 CPU..

운영체제 2025.06.09

실행 파일은 왜 만들어질까? – 운영체제에게 부탁하려고!

프로그래밍을 배우다 보면 이런 흐름을 자연스럽게 익히게 됩니다.1. C 코드 작성 → 2. 컴파일 → 3. 실행 파일 생성 → 4. 실행그런데 한 번쯤은 이런 의문이 들 수 있어요."굳이 실행파일을 왜 만들지?""바로 실행하면 안 되나?"오늘은 이 질문에 대한 아주 본질적인 답을 이야기해보려 합니다. 컴퓨터는 뭘 실행해야 할까?운영체제(OS)는 컴퓨터의 모든 자원(CPU, 메모리, 저장장치 등)을 관리합니다.그리고 운영체제가 일을 처리하는 방식은 아주 명확해요:❗ "운영체제는 기계어(바이너리)로 된 실행파일만 실행할 수 있습니다."즉, 사람이 쓴 printf("hello"); 같은 고수준 언어는 운영체제가 이해하지 못합니다.그래서 우리는 운영체제가 이해할 수 있는 형식인 '실행 파일'을 만들어야 ..

운영체제 2025.06.09

RAID 이해하기: 성능과 안정성을 동시에 잡는 저장 장치 구성 방식

RAID는 여러 개의 하드 디스크를 묶어 하나의 논리적 장치처럼 사용하는 기술입니다. 예를 들어 1TB 하드디스크 네 개를 RAID로 구성하면, 단순히 4TB 하드디스크 한 개를 사용하는 것보다 더 나은 성능과 안정성을 기대할 수 있습니다. RAID의 정의RAID(Redundant Array of Independent Disks)는 하드 디스크 혹은 SSD 여러 개를 하나의 논리적인 장치처럼 사용하는 기술입니다. 주된 목적은 다음 두 가지입니다:데이터 안전성 확보입출력 속도 향상즉, 다섯 개의 1TB 디스크를 하나의 5TB 저장장치처럼 쓸 수 있다는 개념입니다. RAID 0: 성능에 집중한 구성 단순 저장 방식RAID 0은 데이터를 단순히 나누어 저장하는 방식입니다. 4개의 1TB 하드 디스크가 ..

컴퓨터 구조 2025.06.08

RAID 완벽 가이드: 개념부터 RAID 0/1/4까지 한눈에 정리!

RAID는 데이터 저장의 신뢰성과 속도를 높이기 위한 기술입니다. 이번 글에서는 RAID의 개념, 종류(RAID 0, RAID 1, RAID 4), 각각의 장단점을 그림과 함께 쉽게 설명해드릴게요. RAID란 무엇인가?**RAID(Redundant Array of Independent Disks)**는 여러 개의 물리적 디스크를 논리적으로 하나처럼 묶어 사용하는 기술입니다.이렇게 묶으면 성능 향상이나 안정성 강화가 가능합니다.예시:1TB 하드디스크 4개 → RAID 구성단일 4TB 디스크보다 더 높은 성능과 안정성을 기대할 수 있습니다. RAID 0: 빠른 속도를 위한 스트라이핑RAID 0은 데이터를 여러 디스크에 **분산 저장(스트라이핑)**하는 방식입니다.단순히 데이터를 나눠 쓰므로 속도가 빠릅니다..

카테고리 없음 2025.06.08

플래시 메모리의 구조와 동작 원리 완전 정리

플래시 메모리는 전자기기를 저장 장치로 활용할 수 있게 해주는 핵심 기술입니다. 이번 포스트에서는 플래시 메모리의 기본 개념부터 저장 단위, 종류, 동작 방식까지 이미지와 함께 알기 쉽게 설명해드리겠습니다. 플래시 메모리란? 플래시 메모리는 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치입니다.범용성이 매우 넓어 단순히 보조기억장치로만 보기 어렵습니다. USB, SSD, 스마트폰 저장공간 등 다양한 형태로 사용됩니다. 데이터 저장의 최소 단위 - 셀(cell) 플래시 메모리에서 데이터를 저장하는 가장 작은 단위는 **셀(Cell)**입니다.셀 하나하나가 모여 MB, GB, TB 단위의 저장 장치를 구성하게 됩니다. 셀에 저장 가능한 비트 수에 따라 나뉘는 메모리 유형 SLC (Sin..

컴퓨터 구조 2025.06.08

저장 장치의 이해: 하드 디스크와 플래시 메모리

우리는 일상 속에서 데이터를 저장하고 불러오는 다양한 장치를 사용하고 있습니다. 그 중에서도 대표적인 보조기억장치인 하드 디스크와 플래시 메모리에 대해 알아보겠습니다. 하드 디스크 vs 플래시 메모리위 그림은 보조기억장치의 대표적인 예를 보여줍니다.**하드 디스크(HDD)**는 자기 디스크를 회전시키며 데이터를 읽고 쓰는 방식입니다.**플래시 메모리(SSD, USB, SD카드)**는 전자적으로 데이터를 저장하는 방식으로, 기계적 움직임 없이 빠른 접근이 가능합니다. 하드 디스크의 저장 단위하드 디스크는 다음과 같은 구조로 데이터를 저장합니다:플래터: 원판 형태로, 여러 장이 겹쳐 있음트랙(Track): 플래터의 원형 트랙섹터(Sector): 트랙을 다시 나눈 조각, 데이터 저장 최소 단위블록(Block..

컴퓨터 구조 2025.06.08