목록전체 글 (130)
imhamburger 님의 블로그

그로스 마케터 시절, 다양한 채널에서의 광고 성과 측정을 위해 UTM 파라미터를 적극 활용했다. 특히 퍼포먼스 마케팅 캠페인, 리타겟팅 광고, A/B 테스트 등에서 파라미터 기반 유입 분석을 통해 예산 효율성과 유입 품질을 모니터링하고 최적화하는 데 기여했다. 데이터 엔지니어로 커리어를 전환한 이후에는 UTM 파라미터가 데이터 흐름의 핵심 포인트로 작용함을 더욱 실감하게 되었다. 로그 데이터의 품질 관리, 분석 가능한 테이블 구성, 파이프라인 설계 측면에서 정확하게 치환된 UTM 값의 중요성을 뼈저리게 느끼고 있다. UTM 파라미터란?UTM(Urchin Tracking Module) 파라미터는 마케팅 캠페인 또는 외부 유입 경로 분석을 위해 URL에 붙이는 추적 정보이다. GA(Google Analyt..
APPROX_QUANTILES는 BigQuery에서 분위수를 계산하는 함수로, 대량의 데이터를 효율적으로 처리하기 위해 근사치를 반환한다. 사용법APPROX_QUANTILES(expression, number_of_quantiles) expression: 분위수를 계산할 숫자 열(예: 가격, 매출액 등)number_of_quantiles: 원하는 분위수 개수 (예: 5이면 0%, 25%, 50%, 75%, 100% 분위수 반환) 예시 1. 매출의 분위수 계산SELECT APPROX_QUANTILES(sales, 5) AS quantilesFROM sales_data; sales 열의 5개 분위수(0%, 25%, 50%, 75%, 100%)를 반환 2. 분위수별 매출 값 개별 출력SELECT q..

한 달간의 취준 끝에 3월 17일 회사에 입사하여 데이터 엔지니어로서의 업무를 시작했다. 새로운 환경에서의 적응 첫 출근 후, 가장 먼저 진행한 일은 팀원들과의 미팅 및 온보딩 과정이었다. 회사에서 사용하는 데이터 환경과 기술 스택을 익히는 것이 첫 번째 과제였다. 기존에 사용해보지 않았던 도구들과 내부 데이터 파이프라인 구조를 파악하는 데 집중하며 문서를 읽고 실습을 병행했다. 온보딩 과정에서 가장 크게 와닿았던 점은 데이터 엔지니어링의 역할이 단순히 데이터를 적재하고 변환하는 것을 넘어 비즈니스 요구사항을 반영하는 것이라는 점이었다. 데이터를 어떻게 설계하고 관리해야 하는지에 대한 고민이 업무의 핵심이라는 것을 다시금 깨달았다. 맡은 업무입사 후 처음으로 맡게 된 업무는 유관부서에서 원하는 지표를..

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상..

문제http://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다.CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, ..

Example 1: Input: s = "abcabcbb"Output: 3Explanation: The answer is "abc", with the length of 3.Example 2:Input: s = "bbbbb"Output: 1Explanation: The answer is "b", with the length of 1.Example 3:Input: s = "pwwkew"Output: 3Explanation: The answer is "wke", with the length of 3.Notice that the answer must be a substring, "pwke" is a subsequence and not a substring. Constraints:0 s consists of En..
먼저, 데이터베이스에서 데이터를 S3로 저장할 때, 삭제된 데이터를 추적할 수 있도록 is_deleted 컬럼을 추가해야 한다.그런 다음 데이터베이스에서 변경된 데이터(삭제 포함) 추출한다.SELECT id, name, updated_at, CASE WHEN deleted_at IS NOT NULL THEN TRUE ELSE FALSE END AS is_deletedFROM my_tableWHERE updated_at >= (SELECT MAX(updated_at) FROM my_s3_staging_table); deleted_at 값이 존재하면 is_deleted = TRUE로 표시 (Soft Delete)updated_at 기준으로 변경..

문제https://school.programmers.co.kr/learn/courses/30/lessons/132202#qna 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명다음은 종합병원의 진료 예약정보를 담은 APPOINTMENT 테이블 입니다.APPOINTMENT 테이블은 다음과 같으며 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다. 문제APPOINTMENT 테이블에서 2022년 5월에 예약한 ..

만약 초당 수천만개의 로그데이터가 생긴다고 상상했을 때, 데이터를 어떻게 처리해야할까?방법은 다양하겠지만, 내가 공부한 것을 토대로 적어보고자 한다. 우선 어떤 문제가 발생할까?1. 로그파일이 너무 많아 성능 저하2. 데이터를 읽어올 때 스캔 비용 증가3. 배치 처리 속도가 느림 이러한 문제들이 발생할 수 있다. 이에 따른 해결전략은??1. 로그파일이 너무 많아 성능 저하 -> Parquet 파일을 병합(Compaction) 하여 큰 파일로 변환2. 데이터를 읽어올 때 스캔 비용 증가 -> Partitioning + Clustering 3. 배치 처리 속도가 느림 -> Apache Spark로 분산처리 수천만개의 로그데이터가 S3 혹은 GCS 아니면 어느 별도의 데이터저장소에 저장되어 있다. 1. Pa..
데이터웨어하우스에서 데이터 모델링할 때 쓰이는 DBT를 연습해보았다.Raw data는 JSON파일인데 먼저 sql로 사용가능하게끔 데이터를 전처리해줘야한다!! Step 1. JSON을 Pandas DataFrame으로 변환import jsonimport pandas as pd# JSON 데이터 로드json_data = '''{ "order_id": "ORD123", "customer": { "user_id": 12345, "name": "John Doe", "email": "johndoe@example.com" }, "items": [ { "product_id": "P001", "name": "Laptop", "category": "Electron..