UUID(Universally Unique Identifier)란?
·
Data Engineer
UUID는 128비트 길이의 고유 식별자로, 중앙 관리 시스템 없이도 전 세계적으로 유일한 ID를 생성할 수 있도록 설계되었습니다.RFC 4122 표준으로 정의되어 있으며, 일반적으로 다음과 같은 형태로 표현됩니다`550e8400-e29b-41d4-a716-446655440000`8-4-4-4-12 형식의 16진수로 구성되며, 하이픈으로 구분된 5개의 그룹으로 이루어집니다. UUID의 구조UUID는 총 128비트(16바이트)로 구성되며, 다음과 같이 분해할 수 있습니다.`xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`time_low (32비트): 타임스탬프의 하위 32비트time_mid (16비트): 타임스탬프의 중간 16비트time_hi_and_version (16비트): 타임스탬프..
XAMPP MySQL이 “shutdown unexpectedly” — 포트 문제인 줄 알았는데, 진짜 원인은 mysql.global_priv 손상이 원인 (해결)
·
Data Engineer
오늘 오후 중에 윈도우 서버 컴퓨터가 강제 종료가 되버리는 증상이 발생하였습니다.기존의 돌리던 프로그램들은 거의 다 Linux 환경으로 옮겨놨고, 남아있던게 MySQL이랑 Apache였는데 작업 도중 서버가 다운이 되버렸습니다. 다시 부팅을 하고 XAMPP로 기존의 프로그램을 실행했는데 Apache는 잘 돌아가는 반면 MySQL의 경우에는 기존의 사용하던 3306 Port로 열리지 않고 3307로 자동으로 Port가 변경되어 열리는 현상이 발생하였습니다. [mysql] Error: MySQL shutdown unexpectedly.This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdo..
CDC 파이프라인이란? 실시간 데이터 동기화의 핵심 기술
·
Data Engineer
현대의 분산 시스템 환경에서 데이터는 여러 시스템과 데이터베이스에 분산되어 저장됩니다.이때 데이터의 일관성을 유지하고 실시간으로 동기화하는 것은 매우 중요한 과제입니다.CDC(Change Data Capture)파이프라인은 이러한 문제를 해결하기 위한 핵심 기술로, 데이터베이스의 변경사항을 실시간으로 감지하고 다른 시스템으로 전파하는 역할을 합니다.CDC란 무엇인가?CDC(Change Data Capture)는 데이터베이스에서 발생하는 모든 변경사항(INSERT, UPDATE, DELETE)을 실시간으로 감지하고 캡처하는 기술입니다.전통적인 배치 처리 방식과 달리, CDC는 데이터 변경이 발생하는 즉시 이를 감지하여 스트리밍 방식으로 처리합니다. CDC의 핵심 개념트랜잭션 로그 기반 감지대부분의 CDC ..
왜 우리는 유도된 선택을 할 수밖에 없는가
·
Why?
선택의 착각과 설계된 자유의지"오늘 저녁 무엇을 먹을까?" 우리는 매일 수백 가지 선택을 한다고 합니다. 레스토랑에서 메뉴를 고르고, 쇼핑몰에서 옷을 선택하고, 온라인에서 상품을 주문하죠. 그런데 정말 우리가 "선택"하고 있는 걸까요? 선택 설계의 숨겨진 손소비자는 본인이 선택했다고 느끼지만, 그 선택지가 어떻게 만들어졌는지 놓치는 경우가 많습니다.실제로는 유도된 선택을 하는 경우가 많기 때문이죠. 마케팅에서는 이것을 선택 설계 [Choice Architecture] 라고 부릅니다. 예를 들어:스타벅스에 가서 아메리카노를 주문할 때를 생각해보세요. "사이즈는 어떻게 하시겠어요?"라는 질문을 받으면, 우리는 톨(Tall), 그란데(Grande), 벤티(Venti) 중에서 선택한다고 생각합니다.하지만 실제로..
Apache Airflow란?
·
Data Engineer
"매일 오전 9시에 데이터를 추출해서 변환하고, 문제가 있으면 알림을 보내고, 성공하면 리포트를 생성해서" 이런 반복적인 작업을 수동으로 처리하고 계신가요? 개발자라면 누구나 한 번쯤은 복잡한 배치 작업들을 자동화하고 싶어했을 것입니다. Apache Airflow가 바로 이런 고민을 해결해주는 강력한 솔루션입니다. Apache Airflow란?Apache Airflow는 워크플로우를 프로그래밍 방식으로 작성, 스케줄링, 모니터링할 수 있게 해주는 오픈소스 플랫폼입니다. 2014년 Airbnb에서 복잡한 데이터 파이프라인을 관리하게 위해 개발되었고, 2016년 Apache Software Foundation에 기부되어 현재는 데이터 엔지니어링 분야의 사실상 표준으로 자리잡았습니다. 왜 Airflow가 필요..
Data Driven 이란?
·
Data Engineer
"우리는 Data Drvien 회사입니다." 이제는 이말을 하지 않는 회사가 없을 정도다.10년 전만 해도 Data Driven은 구글이나 넷플릭스 같은 빅테크 기업들만의 전유물이었다.하지만 이제는 스타트업부터 전통 기업까지, 모든 곳에서 Data Driven을 말한다. 문제는 이제 Data Drvien이 너무 당연한 말이 되버렸다는 것이다.마치 "고객을 생각합니다." 처럼 누구나 하는 말이되었다.데이터가 중요한 이유현대 사회에서 데이터의 중요성은 더 이상 설명이 필요 없을 정도다.특히 디지털 환경에서는 모든 행동이 데이터로 기록된다. 사용자가 언제 들어왔는지, 어떤 페이지를 봤는지, 얼마나 머물렀는지, 어디서 이탈했는지까지 모든 것이 숫자로 남는다. 이런 데이터들은 고객의 진짜 모습을 보여준다. 설문조..
SBOM[Software Bill of Materials]란?
·
Computer Science
현대 소프트웨어 개발에서 우리는 수많은 오픈소스 라이브러리와 서드파이 컴포넌트에 의존하고 있습니다.하나의 애플리케이션이 수백 개의 외부 의존성을 가지는 것은 이제 일반적인 일이 되었습니다.이러한 복잡한 소프트웨어 공급망 속에서 SBOM [ Software Bill of Materials ] 이 왜 중요한 보안 도구로 주목받고 있는지 살펴보겠습니다. SBOM이란?SBOM을 가장 쉽게 이해하려면 도시락을 생각해보면 됩니다. 누군가 도시락을 싸왔습니다.안에는 닭가슴살, 고구마, 브로콜리, 삶은 달걀, 김치가 들어있습니다.이 도시락은 깨끗하고 건강한 식단처럼 보여도 만약 누군가 김치에 이상한 첨가물이 있었다고 발표를 한다면그 김치가 어떤 도시락에 들어갔는지 기록이 없다면? 모든 도시락을 전부 폐기해야 합니다. ..
Python에서 JavaScript 실행하기: V8 엔진 임베딩 실무 경험기
·
python
실무에서 Python 애플리케이션을 개발하다 보면 예상치 못한 요구사항을 마주할 때가 있습니다.저 역시 그런 상황에서 "Python에서 JavaScript를 실행해야 한다"는 과제를 받게 되었습니다.처음에는 막막했지만, V8 JavaScript 엔진을 임베딩해서 해결하는 과정에서 많은 것을 배울 수 있었습니다. 이번 글에서는 그 경험을 공유해보고자 합니다. 왜 Python에서 JavaScript를 실행해야 했을까?실무에서 이런 요구사항이 생기는 경우는 생각보다 다양하다고 생각을 합니다.기존 JavaScript 자산 재활용 : 이미 작성된 JavaScript 로직을 Python 환경에서 사용동적 설정 처리 : 복잡한 조건부 로직이 포함된 설정 파일비개발자 친환경 스크립팅 : 상대적으로 접근하기 쉬운 Jav..
대응표본 t-test
·
Data Analysis
한 다이어트 식품 업체가 제품을 출시했습니다.30명의 참가자에게 2주간 제품을 복용하게 했고,그들의 체중을 복용 전과 복용 후에 측정했습니다. 측정 결과는 이렇습니다."평균 체중이 70.2kg 에서 68.7kg로 줄었어요!"근데 이게 진짜 효과일까요? 아니면 단순한 우연한 차이일까요?" 바로 이럴 때 사용하는 검정이 대응표본 t-test (Paried t-test) 입니다. 대응표본 t-test란?같은 대상이 두 번 측정된 경우, 그 전후 평균 차이가 통계적으로 유의한지를 검정하는 방법입니다.상황 예시설명다이어트 전/후 체중같은 사람을 두 번 측정교육 전/후 시험 점수같은 학생이 두 번 시험약 복용 전/후 혈압 측정같은 환자의 두 시점 비교 일반 t-test와의 차이항목독립표본 t-test대응표본 t-..
t-test와 p-value
·
Data Analysis
이건 진짜 효과일까, 아니면 그냥 우연일까?어떤 마케팅 팀이 새로 만든 광고 배너를 테스트하고 있습니다.A그룹은 기존 광고를, B그룹은 새 광고를 본 뒤, 클릭률을 비교했더니B그룹의 클릭률이 더 높게 나왔습니다. 그럼 이 질문이 생각이 납니다:"이건 진짜 광고 효과일까?" 아니면 단순히 운 좋게 높게 나온 걸까? 이럴 때 우리는 느낌이 아니라 '통계적 증거' 가 필요합니다.바로 이럴 때 쓰는 도구가 가설검정(hypothesis testing) 입니다. 가설검정이란?가설검정은 "눈에 보이는 차이"가 실제로 통계적으로 유의미한 차이인지를 판단하는 방법입니다. 통계에서는 두 가지 가설을 세웁니다.가설 종류의미귀무가설 (H₀)두 그룹 사이에 차이가 없다대립가설 (H₁)두 그룹 사이에 차이가 있다 예를 들어H₀:..