본문 바로가기

...34

코끼리 쥬기기 포스팅 과정에서 코끼리는 한마리도 다치지 않았습니다 😂PostgreSQL 퐅🫘아보기https://github.com/boolYikes/elephant-in-the-room✅ 쥰비1. Setup컴포즈로 커피 마심 코끼리13, 프로메테우스, 그라파나 띄우기2. DatasetNYC Taxi Trip Duration약 140만 로우, 11개 컬럼 (csv)passenger_count, store_and_fwd_flag를 제외하고 카디널리티가 높음스키마 정의 후 COPY FROM CSVDDL논리적 스키마에 해당, 실제 저장되는 방식(물리적 스키마)은 PostgreSQL 내부 엔진에 의해 관리.COPY : 대량 데이터를 효율적으로 적재 →INSERT 의 고속 버전🧠 개념1. 개념적 스키마 (Conceptual.. 2025. 5. 1.
캐시, 지역성, 코딩 지역성프로그램이 메모리에 접근할 때, 가까운 메모리 주소들이 접근될 가능성이 높는 점을 활용,캐시 메모리 효율 향상, 그에따른 성능 향상시간적 지역성 (Temporal Locality): 최근 접근한 데이터를 다시 접근할 가능성이 높음공간적 지역성 (Spatial Locality): 인접한 데이터가 함께 접근될 가능성이 높음콤퓨우타는 이걸로 예측해서 캐시를 채워두는데, 지역성에 반하는 접근이 발생하면 캐시 미스가 낫다구 함캐시 종류위치크기속도용도L1 캐시코어 내부매우 작음갓갓굿가장 자주 접근하는 데이터 저장L2 캐시코어 내부중간굿굿L1 미스 시 대체L3 캐시코어간 공유큼긋…?코어 간 데이터 공유, L2 미스 시 사용RAM (메인 메모리)CPU 외부GB단위느려프로그램 상차🚚CPU는 L1 → L2 → L3.. 2025. 4. 25.
Spark 최적화 어떻게 물리 실행 단에서 최적화를 수행하나… 어떤 점에서 다른 엔진과 차별화 되나?사실 DW와 Lakehouse 벤치마크 비교를 하려고 했는데 시간이 후달렸음... 고로 이번 글도 스터디에 조금 가미한 것...개요Spark 2.x 이후 Tungsten 프로젝트 도입으로 실행 계획 최적화, 메모리 효율성, CPU 사용 최적화 → Spark의 성능 UP → 단순한 분산처리 엔진 이상.Unresolved → Resolved → Optimized (Catalyst) → physical plan → code gen(Tungsten)1. Unresolved Logical Plan: 서브밋한 것을 그대로 받아들임. 컬럼 이름같은 것도 매핑이 안 되어있음.2. Resolved Logical Plan: 메타 조회, 스키.. 2025. 4. 13.
해시와 해시충돌 쓸 시간 없어서 스터디 발표 내용 복사해온건 안 비밀General해시 생성 원리? …sha256인풋을 받아서 (스트링, 숫자, 파일 등) 일정한 크기의 digest(숫자, 스트링 또는 둘다)를 만듬.512bit가 되도록 패딩16개의 32bit 청크(”words”)로 쪼갬초기 해시 값 init청크별로 64단계의 랜덤 연산 수행 (비트연산, modular연산, 논리연산-majority와 choice function)초기 값에 청크별 결과값을 누적 업데이트 +=결과 리턴더보기코드로 미믹해봄import textwrapdef str_to_bin(msg): """Convert string to binary string""" # binary, 8 digits of 0.. 2025. 4. 6.
TLS, 통신, 무념무상 MinIO를 오퍼레이터 helm chart를 사용해서 클러스터에 deploy하다가 signing에 관한 용어와 많이 부딪힘그래서, 외부 앱에서 서버로 요청을 보낼 때 TLS가 어떻게 작동하는지 궁금해짐.TLS가 SSL을 계승했고, 용어는 그냥 혼용해서 쓴다고 함.📡 OSI 계층에서 보았을 때L7: 요청 보내고 받고 로직을 수행L5~L6: 보안 세션 유지, 암호화L4: 암호화된 데이터 TCP로 전송🤝 TLS 악수 과정 1. SYN, SYN-ACK, ACK 악수가 끝나면,2. ClientHello, ServerHello를 통해서 각자의 TLS 버전, cipher suite 정보를 교환함.3. 서버는 CA(certificate authority) 시그니처와 퍼블릭키를 사용해서 디지털 서명 (k8s는 ca... 2025. 3. 28.
Airflow Design Patterns 댁을 작성하면서 반성하면서 생각한 주제에어플로 센서와 DAG 작성에 관한 이야기이하 DAG는 에어플로 DAG를 칭함Deferrable Operator기존의 오퍼레이터는, 실행되면 CPU와 리소스를 끝날 때까지 점유.👉🏿 Polling을 하는 등 대기하는 작업에는 쥐약...👉🏿 Deferrable Operator는 작업이 바로 끝나지 않더라도, Triggerer 프로세스로 제어권 넘기고, 리소스 반환.👉🏿 특정 이벤트가 발생하거나 polling 결과가 변화했을 때 컨티뉴.👉🏿 HttpSensor, S3KeySensor, SQLSensor 요런거.👉🏿 비동기 방식으로 리소스 사용을 최적화.👉🏿 커스텀 트리거를 만들어서, 커스텀 오퍼레이터에서 사용하면 커스텀 센서를 만들 수 잇다. exe.. 2025. 3. 25.
API (Application Punching Interface) API(Application Programming Interface)앱간 상호작용 인터페이스. REST, gRPC, SOAP, GraphQL, WebSocket.... 또 있나?REST와 RPC HTTP를 사용하는gRPC와 REST(Representational State Transfer)에 대해 알아보쟈Remote Procedure Call이름에서 보이듯, 원격에 있는 함수를 로컬에서 사용할 수 있게 하는 프로토콜.gRPC타겟이 되는 엔터티는 프로시저(함수). HTTP 2.0 사용. 데이터는 함수들 뒤에 있음.HTTP에서는 타겟 엔터티가 resource(즉, 데이터 엔터티 또는 모델)이고 그 뒤에 프로시저가 따라오는 것과는 상반됨.인터페이스 정의 언어로 Protocol Buffer를 사용. hands-.. 2025. 3. 17.
위상 정렬과 DAG 에어플로💨는 태스크 의존성을 어떻게 인식할까?🎄 위상 정렬(Topological Sorting)?Directed Graph에서 의존 관계를 유지하면서 순서를 정하는 방법. 위상 정렬이 가능하려면 사이클이 없어야 함❌. 즉, DAG(Directed Acyclic Graph)여야 함.👽 Ex?  요런 태스크가 잇다구 가정하자      Inorder 인 Khan's Algorithm이란게 있나보다😮... 적용해보면,from collections import deque# n = 노드 갯수, edges = (노드, 자식)으로 구성된 리스트def topological_sort(n, edges): # 이웃 리스트, in order 리스트 adj = {i: [] for i in range(n).. 2025. 3. 12.