-
GCP 방화벽 설정: 인그레스 규칙으로 포트 연결 오류 해결하기 🔐
들어가며 최근 GCP 환경에서 *Zabbix Agent를 설치하던 중 포트 연결 오류가 발생했습니다. 원인은 GCP 방화벽의 인그레스(ingress) 규칙이 설정되지 않아 Zabbix 서버가 Agent에 접근할 수 없었던 것이었습니다. 이 일을 계기로 방화벽 설정의 중요성을 다시 한번 깨달았습니다. 오늘은 GCP 방화벽의 개념과 방화벽 규칙 설정 방법에 대해 정리해보겠습니다. *Zabbix: 서버 및 네트워크의 상태를 실시간으로 모니터링할 수 있는 오픈소스 기반의 모니터링 툴 이 글에서는 다음 내용을 다룹니다.GCP 방화벽의 개념과 설정 방법방화벽 설정 시 주의사항 1. GCP 방화벽 개념 GCP 방화벽은 VPC(Virtual Private Cloud)안에서 동작합니다. VPC는 GCP 내에서 가상으로 ..
2025.03.30 23:05 -
BigQuery에서 Nested Data의 처리: Dremel 논문으로 이해하기②🕵️♀️
들어가며 지난 글에서는 Dremel 논문[1]을 통해서 Nested Data(중첩 데이터)를 저장하기 위한 아이디어인 반복 레벨과 정의 레벨에 대해 살펴보았습니다. 오늘은 논문의 뒷부분인 반복 레벨과 정의 레벨을 이용해 효율적으로 column stripe를 생성하는 방법과 이를 다시 레코드로 바꾸는 방법을 알아보도록 하겠습니다. 그리고 이렇게 만들어진 레코드를 어떻게 쿼리로 처리하는지까지 살펴보도록 하겠습니다.*column stripe: 컬럼 기반 저장 방식에서 데이터를 나누는 단위. ✅ 레코드 -> 컬럼 Google에서 사용하는 많은 데이터는 희소한(Sparse) 형태, 예를 들자면 수천 개의 필드 중 실제로 값이 존재하는 필드는 백개 정도에 불과하는 형태를 갖고 있었습니다. 때문에 사용되는 필..
2025.03.16 18:41 -
BigQuery에서 Nested Data의 처리: Dremel 논문으로 이해하기①🕵️♀️
들어가며 빅쿼리로 수집되는 서비스의 데이터를 보면 > 와 같은 데이터 타입을 자주 볼 수 있습니다. 복잡한 데이터 구조를 효율적으로 저장하고 처리하기 위해 이러한 타입이 사용되는데요, 지난주에도 평소와 같이 데이터를 조회하다가 문득 이런 생각이 들었습니다.컬럼 기반 스토리지에서는 중첩된 데이터를 어떻게 처리할까? 컬럼 기반 스토리지는 각 컬럼을 따로 저장해서 압축률을 높이고 조회 성능을 최적화하는데요, STRUCT나 ARRAY와 같이 중첩되고 반복되는 데이터는 단순한 구조가 아니어서 궁금증이 생겼습니다. 이를 이해하기 위해 BigQuery의 기반이 되는 Dremel이 어떻게 Nested Data를 다루는지 알아보았습니다. Dremel의 등장 : Nested Data를 다루는 방법 Dremel은 구글이 2..
2025.03.02 22:29 -
토스 SLASH 24 리뷰: 토스 증권의 DW 설계 및 운영에서 배운 점 (AU 파이프라인 개선 사례)
들어가며 작년부터 팀에서는 각 서비스의 주요 지표를 직접 생성하기 시작했습니다. 기존에는 마케팅, 사업부 등 각 부서의 요청에 따라 애드혹(Ad-hoc) 방식으로 데이터를 추출하거나 대시보드를 제공했지만, 현재 팀의 목표는 이에 더해 선제적으로 주요 지표를 제공하여 더 다양한 의사결정을 지원하는 것입니다. 이러한 변화 속에서 다른 화사들은 DW(Data Warehouse)를 어떻게 설계하고 운영하는지에 대한 궁금증이 많았습니다. 그러다 토스 SLASH 24의 전천후 데이터 분석을 위한 DW 설계 및 운영하기 발표를 접하게 되었는데요, 이번 글에서는 발표 내용을 정리하고 팀에 어떻게 적용할 수 있을지 생각해 본 내용을 적어보겠습니다. 토스 증권의 AU 파이프라인토스 증권에서는 다양한 패턴(방문 일자..
2025.02.16 23:24 -
Kafka와 BigQuery를 활용한 데이터 파이프라인을 개선해보자☘️ (feat. MERGE문)
들어가며 현재 제가 속한 데이터 팀에서는 준실시간 분석 요청에 대응하기 위해 Kafka와 BigQuery를 활용한 CDC 기반 데이터 파이프라인을 구축하고 있습니다. 그러나 Kafka 커넥터를 사용하는 과정에서 데이터 규모 증가로 인한 비용 문제 발생 가능성이 제기되었습니다. 이번 글에서는 Kafka 커넥터와 BigQuery MERGE 문을 사용한 기존 파이프라인의 한계를 살펴보고, 이를 개선하기 위해 테스트한 과정을 공유하고자합니다. ✔️ CDC(Change Data Capture) 이름 그대로 데이터 베이스의 변경 사항을 실시간으로 추적하고 캡처하는 기술입니다. 데이터 웨어하우스 등 시스템으로의 동기화에 사용됩니다. 실시간 분석, 이벤트 기반 아키텍처 등에 활용할 수 있습니다. 1. 기존 구조Ka..
2025.01.19 23:58 -
2024년 회고와 2025년의 계획: 어떻게 살 것인가
들어가며다사다난했던 12월도 어느덧 지나가 새해가 밝았습니다. 오늘은 지나간 2024년을 돌아보고, 2025년의 다짐을 담은 글을 작성해보겠습니다. 👀 2024년에는 무슨 일이 있었나?1. 이직 지난해 5월 이직을 했습니다. 팀의 규모는 이전보다 작아졌지만 조금 더 자유롭게 시도를 해볼 수 있는 환경입니다.BigQuery, Looker Studio와 SQL을 활용해 데이터 마트를 만들고 대시보드로 공유하는 작업을 많이 했습니다.다른 팀과 협업해야 하는 일이 생기면서 커뮤니케이션의 어려움을 느끼기도 했습니다. ✔️ 최근에 『상자 밖에 있는 사람』이라는 책을 읽으며 혹시 내가 협업을 할때 자기 배반을 하고 상자속에 있지는 않았는지 돌아보게 되었습니다(이와 관련된 생각은 나중에 별도의 포스팅으로 정리해보..
2025.01.05 09:37 -
데이터 분석의 경계에 선 엔지니어의 <인프런 BigQuery(SQL) 활용편>후기 (feat. 빠짝 스터디)🌱
들어가며 최근 업무에서 빅쿼리를 더 효과적으로 활용하는 방법을 고민하던 중 글또에서 성윤님(aka. 카일스쿨)의 인프런 강의 챌린지 소식을 듣게 되었어요. 일명 '빠짝 스터디'라는 이름으로 4주간 BigQuery 활용편 강의를 집중해 수강하는 프로그램이었는데요, 제가 관심있게 본 강의였고 30% 할인 쿠폰까지 제공되어 망설임 없이 신청했답니다.오늘은 강의를 선택한 이유와 스터디에서 배운 것들, 오프라인 모임에 다녀온 이야기까지 공유해보도록 할게요. 1. 강의를 듣게 된 이유 제가 속한 데이터 팀에는 분석가가 없어 직접 서비스의 지표를 구해야 하는 일이 종종 있어요. 일을 하다 보니 단순히 SQL 쿼리를 작성하는데 그치지 않고 데이터 분석의 개념과 흐름을 이해하고 싶은 생각이 들더라구요. 빅쿼리 활용편 ..
2024.11.24 22:21 -
PostgreSQL 핫 백업을 해보자 (feat. 젠킨스)
들어가며제가 속한 데이터 팀에서는 운영을 위한 별도의 PostgreSQL DB를 사용하고 있는데요, 지난 주 팀장님으로부터 DB의 백업 업무를 받게되었습니다. 오늘은 소중한 데이터를 불의의 사고(!)로 부터 지키기 위한 PostgreSQL 백업 방식과 이를 젠킨스로 자동화한 방법에 대해서 공유해보려고 합니다. 1. 콜드 백업과 핫 백업 처음 업무를 받았을 때 "콜드 백업이 아닌 핫 백업"으로 진행해달라는 요청이 있었습니다. RDB 백업은 처음이었기 때문에 용어부터 생소했던 기억이 나는데요 우선 개념을 알아보겠습니다. 1 ) 콜드 백업 데이터 베이스 서버를 내린 상태에서 진행하는 백업입니다. 오프라인 백업, 닫힌 백업이라고도 합니다. 주로 유지 관리 시간에 실행되며 백업을 하는 동안 서비스가 불가능합니다..
2024.11.10 21:12 -
이직 5개월 차의 BigQuery 최적화: 파티셔닝과 클러스터링으로 시작하기
들어가며 최근에 읽고 있는 『구글 빅쿼리 완벽 가이드』 7장 성능 및 비용 최적화에는 컴퓨터 과학자 도널드 커누스의 말이 나옵니다. "효율성은 향상시키려는 노력의 약 97%는 그 효과가 미비하므로 너무 집착해서는 안 된다. 성급한 최적화는 모든 문제의 근원만 될 뿐이다. 하지만 정말 중요한 3%의 최적화까지 포기해서는 안 된다." 빅쿼리를 사용한지도 어언 5개월입니다. 입사 초반에는 빅쿼리 UI에 뜨는 작은 바이트 수 변화 하나에도 집착하던 시기가 있었는데요, 아마 97%의 비효율적인 노력이 아니었나 싶습니다. 돌이켜보면 가장 빠르게 적용할 수 있고, 즉각적인 효과를 볼 수 있었던 3%의 가장 중요한 최적화는 파티셔닝과 클러스터링이었던 것 같아요. 오늘은 저와 같은 빅쿼리 초보자를 위한 파티셔닝과 ..
2024.10.27 23:51 -
글또 10기를 시작하며, 그간의 작은 변화들과 다짐들 ✍🏻
들어가며9월 말 글 쓰는 개발자 모임 글또(글 쓰는 또라이가 세상을 바꾼다)의 합격 메일을 받았습니다. 긴장되는 마음에 지원글을 몇 번이고 고친 기억이 나는데, 벌써 슬랙에 초대된 지도 2주 정도 시간이 흘렀네요. 첫 글이니 만큼 글또에 참여하는 이유에서부터 앞으로의 다짐을 작성해 보도록 하겠습니다! 1. 글또에 참여하는 이유- 꾸준히 글 쓰는 습관 만들기지난날을 돌아보니 적당한 에너지로 꾸준히 하는 것에는 늘 약했던 것 같아요. 블로그에 글을 쓰는 것도 마찬가지였습니다. 마음이 가는 날에만 글을 쓰다 보니 주기가 들쭉날쭉하더라구요. 글쓰기의 동력은 역시 마감기한과 독자라는 생각이 들었고, 글또에서 점점 나은 글을 써내려 가다 보면 두 가지 모두 얻을 수 있을 것 같았습니다. - 많은 개발자들을 만..
2024.10.13 13:15