분류 전체보기 123

BigQuery Merge Query 설명 및 사용 사례

이번 글에서는 Merge 쿼리에 대한 설명과 Merge문의 대표적 사용 사례인 Merge쿼리를 사용해서 MySQL BigQuery 간에 데이터 웨어하우징에 사용하는 사례를 함께 기록해 보려고 합니다. 계속 변경되는 데이터 소스를 기존의 데이터셋에 정기적으로 통합해야 할 때 자주 사용됩니다. Merge 쿼리 BigQuery에서 MERGE 쿼리는 SQL의 MERGE 문을 기반으로 하며, 두 개의 테이블을 결합하여 대상 테이블에 소스 테이블의 데이터를 삽입, 업데이트, 또는 삭제하는데 사용됩니다. 이것은 일종의 "upsert" 작업으로 보일 수 있으며, 즉 존재하지 않는 행은 삽입하고 존재하는 행은 업데이트하는 기능을 제공합니다. 위에서 설명한 것처럼 조건에 따라 삽입, 업데이트, 또는 삭제가 가능하기 때문에..

Django CORS 관련 설정하기 / django-cors-headers

웹 개발을 하다보면 CORS(Cross-Origin Resource Sharing)와 같은 보안 이슈들이 흔히 발생합니다. 이는 브라우저가 서로 다른 호스트(도메인) 간의 자원 공유를 제한함으로써, 웹 애플리케이션의 보안을 강화하는 중요한 기능입니다. 이러한 제한의 근본적인 이유는 보안 취약점을 방지하기 위함인데, 예를 들어, CSRF(Cross-Site Request Forgery)와 같은 공격에서는 악의적인 웹사이트가 사용자의 브라우저에 저장된 인증 정보를 이용하여 다른 사이트에 요청을 보내는 행위를 막기 위함입니다. 데이터 엔지니어로 전향한 후에 오랜만에 서버 개발을 하려고 했더니 개념이 정확히 기억도 안 나고 사실 오랜만에 세션으로 인증을 구현할 일이 있어서 조금 헤맸습니다. CORS, CSRF,..

뉴올리언스 전쟁박물관 (WWII Museum) / 루크

뉴올리언스 첫 째날은 여독을 풀기위해서 바로 취침을 했지만 둘째 날에는 제대로 뉴올리언스를 여행했다. 시차에 아직 완변하게 적응하지 못해서 새벽 5시에 일어나서 6시에 나와서 근처 식당에서 간단하게 식사를 하기 위해 구글링을 하다가 오믈렛과 커피를 주문했는데 생각보다는 아쉬웠다... 미국에서는 구글 맵 리뷰 못 믿겠어....;; 아침 식사를 한 후에 주위를 둘러보다가 숙소로 들어와 1시간 정도 낮잠을 즐기고 오후에 무엇을 할지 계획을 세웠다.(나 P야..) 근처에 세계 2차전쟁 박물관이 있어서 오전에 들렸다가 식사를 한 후 베네좀 먹고 프렌치쿼터에 가서 대성당을 둘러보지 머 이 정도의 계획을 세우고 출발! 전쟁 박물관은 가는데 도보로 20분 정도인데 가는길에 노숙자 분들이 계셔서 살짝 무서웠지만 걸어가봤..

Traveling/미국 2023.10.29

삼성동 대장 카페 키헤이커피 / 삼성중앙역 카페

오늘은 제가 평일 매일 아침에 가는 카페인 키헤이커피를(KIHEI) 소개하려고 합니다. 삼성동은 맛이 좋은 카페가 많은 곳인데요. 제가 좋아하는 커피 볶는집도 있고요. 하지만, 요즘은 키헤이 커피만 주로 가고 있습니다. 키헤이커피는 우연히 회사 사무실이 이 근처로 이사오면서 알게된 카페로 커피 맛이 좋아 리프를 통해 구독까지 하게 됐습니다. 카페 구독서비스인 리프에 대한 소개는 이전 포스팅에서 확인하실 수 있습니다. 그럼 이제 본격적으로 키헤이 커피를 소개 해드리겠습니다! 키헤이는 하와이 마우이 남서부 해안, 햇빛이 가장 찬란하고 가장 건조해 해변에서 보물을 찾기 좋은 섬 끝 마을의 이름으로 키헤이에서 행복한 추억을 일상에서 전달 하고 싶어서 키헤이커피라고 가게 이름을 지으셨다고 합니다. 이 내용은 카페..

일상/정보 2023.09.16

의존성 역전 원칙(DIP) 예제 코드 및 설명

의존성 역전 원칙(DIP ) 의존성 역전 원칙(Dependency Inversion Principle, DIP)은 객체 지향 설계 원칙 중 하나로, 시스템의 고수준 모듈이 저수준 모듈에 직접적으로 의존하는 것을 피하고, 대신 둘 모두가 추상화에 의존하도록 설계해야 한다는 원칙입니다. 이 원칙은 SOLID 원칙 중 하나로, 특히 대규모 소프트웨어 시스템의 유지 보수성과 확장성을 향상시키는 데 중요한 역할을 합니다. DIP의 주요 내용은 다음과 같습니다: 고수준 모듈은 저수준 모듈에 의존해서는 안 됩니다. 둘 다 추상화에 의존해야 합니다. 추상화는 세부 사항에 의존해서는 안 됩니다. 세부 사항이 추상화에 의존해야 합니다. DIP를 지키지 않았을 때의 문제 문제점: 코드의 재사용성이 떨어진다. 인터페이스(추상..

카페 구독서비스 리프 후기

우연히 회사 근처에 카페에 갔다가 리프(rife)라는 카페 구독 서비스를 발견해서 구독해봤습니다. 다양한 새로운 서비스를 써보는 것을 좋아하는 편이고, 하루에 한 잔 한 달에 42900원이라는 가격과 커피 맛이 괜찮은 키헤이카페라는 점에서 합리적으로 보여서 설치해봤습니다. 키헤이 카페는 평일만 열어서 하루에 한 잔 20잔을 마신다고 하면 한 잔에 2000원 정도 가격에 커피를 마실 수 있습니다. 지하철 정기권과 비슷한 느낌입니다..! 마침 일주일 체험권도 받을 수 있어서 만족하면서 월요일 부터 오늘까지 하루에 한 잔 마셔본 결과 맛 좋은 커피와 합리적인 가격에 만족합니다. 내일은 태풍으로 재택을 할 예정이라...아쉽지만 패스... 문제는 휴가가 많은 분이나 재택이 많으신 분은 차라리 집 근처 좋아하는 카..

일상 2023.08.09

뉴올리언스 여행 /뉴올리언스 Q&C 호텔

2022년 10월에 뉴올리언스를 Coalesce2022를 참가하기 위해서 출장으로 다녀왔다. 10월 14일에 입국해서 10월 22일에 출국하는 일정으로 주말이 3일 정도 있어서 틈틈히 여행을 했다. 다녀온 것을 잊기 전에 블로그에 포스팅할 예정이다. Let's go! 아침 9시 20분 비행기여서 늦을 것 같아서 밤새려고 밤 10시에 공항을 갔다. 도착해서 밥 먹고 공항코딩을 했다. 이상하게 공항에서 코딩하면 집중이 잘 되고 재밌다.. 그냥 공항가고 싶어서 그런건가.. 갈 것 같지 않은 새벽이 지나고 피곤한 몸을 이끌고 비행기 타러 갔다. 비행기는 대한항공을 타고 Atlanta에서 환승해서 루이 암스트롱 뉴올리언스 국제공항에 도착했다. 비행기에서 스토브리그를 봤는데 꽤 재밌게 봤다 ㅎㅎ 생각보다 몇시간 안..

Traveling/미국 2023.07.23

Jordan

소개 안녕하세요. 스타트업에서 개발하고 있는 평범한 개발자입니다. 대학 졸업 후 LG에서 회로설계로 커리어를 시작한 후 소프트웨어 엔지니어로 전향했습니다. 전향 후에는 Ateamvenutres, Sendbird, Chai, Quotabook등 다양한 크고 작은 스타트업에서 서버엔지니어, 데이터 인프라 엔지니어, 데이터 엔지니어로 일했습니다. 다양한 직무를 경험하면서 분야에 경계 없이 비즈니스 및 기술 문제를 해결하고 있습니다. 시간을 내서 종종 오픈소스에도 기여하려고 노력 중입니다. 최근에는 좋은 데이터 플랫폼을 만드는 데 관심이 많습니다. 블로그에는 제가 공부한 내용과 저의 일상이나 여행기가 주로 포스팅됩니다. 블로그에 붙어있는 광고는 받게 되면 곧장기부라는 서비스를 이용해서 $100이 쌓을 때마다 기..

About/Me 2023.07.23

Airflow KubernetesPodOperator 예제 코드 및 설명

KubernetesPodOperator는 Kuberntes cluster에서 Airflow가 실행중일 때 사용자가 원하는 docker image에서 task를 실행하는 task를 만드는 Operator입니다. Airflow는 여러 가지 서비스들을 Orchestration할 수 있다는 강점을 가지고 있습니다. 직접 데이터를 처리하는 서비스들을 여러 개 만들수도 있는데 이 때 각각의 서비스의 의존성이 다를 수 있는데 이 때 KubernetesPodOperator 를 사용하면 독립적인 컨테이너 환경에서 서비스를 실행할 수 있습니다. Install KubernetesPodOperator 를 위해 필요한 kubernetes provider 패키지 설치 pip install apache-airflow[cncf.ku..

차원 모델링이란 / Dimensional modeling

차원 모델링(Dimensional Modeling)은 매우 일반적인 데이터 모델링 기법으로, 데이터 웨어하우스에서 특히 널리 사용됩니다. 차원 모델링은 사업에 대한 이해를 도모하고, 데이터를 조직하고, 빠르게 정보를 검색하는 데 중점을 두고 설계됩니다. Dimension, Facts 테이블로 나눠서 모델링해서 조금 더 효율적이고 편하게 데이터를 분석이 가능해집니다. 1.차원(Dimensions) : 데이터의 특정 관점을 나타내며, 데이터를 분류하고 표시하는 데 사용됩니다. 예를 들어, 시간(날짜, 분기, 연도 등), 위치(도시, 국가 등), 제품(제품 ID, 제품 이름, 카테고리 등)과 같은 정보가 차원에 포함될 수 있습니다. 2.측정값(Facts): 관측된 사업적 성과를 나타내며, 일반적으로 수치적인 ..

반응형