[Data] #1 yfinance로 삼성전자 주가 데이터 수집하기
·
Data
이번 포스트에서는 yfinance를 이용해서 주가 데이터를 직접 수집하는 방법을 다룹니다. 들어가며그동안 포트폴리오는 구글 스프레드시트로 관리해왔는데, 일부 종목은 가격 데이터가 누락되거나 업데이트가 늦어 전체 포트폴리오를 일관된 기준으로 관리하기 어렵다는 문제가 있었다. 이 문제를 해결하기 위해, 외부 도구에 의존하기보다는 주가 데이터를 직접 수집하고 관리하는 방식을 시도해보기로 했다. 이번 글에서는 "일단 가장 간단한 형태"로, 주가 데이터를 직접 수집하고 1/3/6/12개월 수익률을 계산하는 스크립트를 만들어본다. 주가 데이터 수집 방식 선택주가 데이터를 수집하는 방법은 다양하다. 가장 대표적인 방법은 증권사 API를 사용하는 것인데, 안정성과 정확성 면에서는 장점이 있다. 다만, 인증 절차, 초기..
[Data] Data Engineering Zoomcamp 2주차
·
Data
이번 주는 워크플로우 오케스트레이션의 기본 개념을 배우고, Kestra라는 툴을 활용해 간단한 워크플로우를 만들어보는 실습을 진행했다. 단순히 ETL 코드를 작성하기보다는, 데이터 파이프라인을 언제, 어떤 순서로, 어떻게 실행하고 관리해야 하는지를 고민해볼 수 있었던 한 주였다. 이번 주에 배운 것들Kestra를 사용한 데이터 파이프라인 오케스트레이션변수와 표현식을 사용한 동적 워크플로우 구성과거 데이터를 처리하는 Backfill 개념과 구현타임존을 고려한 스케쥴 설정Airflow는 이전에 사용해봤지만, Kestra는 이번에 처음 접해봤다. 파이썬뿐 아니라 다양한 언어를 지원하고, 코드를 많이 작성하지 않아도 No Code 기반 워크플로우를 구성할 수 있다는 점이 특히 인상적이었다. 간단한 예제 위주..
[Data] Data Engineering Zoomcamp 1주차
·
Data
Data Engineering Zoomcamp 1주차 회고 회사에서 데이터 엔지니어링 라이프사이클의 일부만 경험하다 보니, 전체 흐름을 한 번은 처음부터 끝까지 직접 다뤄보고 싶다는 생각이 들었다. Data Engineering Zoomcamp는 이 과정을 경험할 수 있는 좋은 기회라고 느껴 수강하게 되었다. 1주차에서는 Docker, SQL, Terraform을 다뤘다. 특히 Docker Compose 네트워킹이 헷갈렸다. pgAdmin에서 localhost로 PostgreSQL에 연결되지 않는 이유를 정리해보면서, 컨테이너 간 통신은 서비스 이름과 내부 포트를 사용해야 한다는 기본 개념을 확인했다. Terraform은 대략적으로만 알고 있었는데, 가장 신기했다. UI에서 하나씩 설정하던 작업을 코드..
[Spark] 변환과 액션
·
Data/Spark
스파크에서의 변환과 액션에 대해 정리한 글입니다. 1. 들어가며스파크의 동작 원리를 이해하기 위해 유튜브의 PySpark - Zero to Hero 시리즈와 여러 자료를 보면서 내용을 정리하고 있습니다. 이번 글에서는 스파크의 변환(Transformation)과 액션(Action)에 대해 다뤄보겠습니다. 내용 중 부정확하거나 애매한 부분이 있다면, 편하게 알려주세요! 2. 스파크 데이터 처리의 기초2.1. 변환과 불변성스파크의 데이터프레임은 내부적으로 RDD(Resilient Distributed Dataset) 위에서 동작하는데, RDD는 한 번 생성되면 수정할 수 없는(immutable) 데이터 구조입니다. 그렇다면, 스파크에서는 어떻게 데이터를 가공할 수 있을까요? 스파크는 기존 데이터를 수정하지 ..