목록분류 전체보기 (92)
새벽을 밝히는 붉은 달
나는 테라폼에 대해서 이야기를 들어보기만 하고, 실제로 사용해보기는 커녕 테라폼을 사용하기 위해 작성된 코드조차 한 번도 봤던 적이 없던 사람이다. 테라폼이 굉장히 핫하다는건 알고있었으나 테라폼까지 사용해보기에는 다른 것들을 습득하느라 바쁘기도 했고, 프로젝트를 진행할 때도 도커, 쿠버네티스, CI/CD 등 기본적인 인프라만 구축하는데에도 버거워서 테라폼을 공부해서 적용해보는건 엄두도 내지 못했었다. 그러던 중 좋은 기회로 '테라폼으로 시작하는 IaC'라는 책을 읽게 되었는데, 읽기 전에 조금 걱정이 되긴 했다. 인프라도 아주 기초적인 것만 다룰 줄 아는 내가 과연 테라폼을 제대로 배울 수 있을까? 책이 나에게 너무 난이도가 높지는 않을까? 하는 걱정들 말이다. 그러나 책을 읽으면서 그런 걱정들이 사라졌..
데이터를 다루는 사람들이라면 데이터 품질에 대해 고민하는 순간들이 끊임없이 있을 것이다. 나 또한 데이터 품질에 대해 고민하는 순간들이 많고, 또 더 나은 데이터 품질을 위해 여러가지 작업을 진행하고 있는데, 그런 나에게 있어 작업을 진행하기 전에 봤으면 얼마나 좋았을까 하는 생각이 드는 책이었다. 책은 데이터 품질이 무엇인지부터 시작하며, 일반적으로 데이터를 다루는 사람들이라면 한번 쯤 다 들어보았을 데이터 웨어하우스와 데이터 레이크, 배치 처리와 실시간 처리, ETL과 ELT, 에어플로우와 같은 워크플로 등에서 데이터 품질을 향상시키기 위해 어떤 것들을 할 수 있는지를 예제와 함께 보여주고 있다. 예제의 경우 직접 데이터셋을 보고 SQL 쿼리를 통해 하나하나 추론해나가면서 품질을 향상해나가는 방법을 ..
2년 전에 Colab에서 Selenium을 사용해서 크롤링을 했었는데, 이번에 크롤링을 할 일이 생겨 같은 코드를 동작시키니 WebDriverException: Message: Service /usr/bin/chromedriver unexpectedly exited. Status code was: 1 라며 크롤러를 동작시킬 수 없었다. 구글링을 통해 올해 1월에 올라온 글을 참고해봐도 같은 에러가 발생했다. 결국엔 코랩 깃허브 레포의 이슈에서 해결방법을 찾았다. 아마 우분투 버전이 바뀌면서 그런 것 같다고 한다. 글 작성 시점 기준 (2023.05.13) Colab에서 Selenium을 동작시킬 수 있는 코드는 다음과 같다. %%shell sudo apt -y update sudo apt install ..
는 의 후속작으로, 이전 작에 비해 더 실무적인 내용을 다룬다고 한다. 을 읽어보지는 않았지만, 분산 아키텍처에 관심이 많았기에 를 읽게 되었다. 여기서 쓰인 Hard의 의미는 어려울 뿐만 아니라, 한 번 정하면 이후에는 고치기 어려운, 단단하다는 뜻을 내포하고 있다. 실제로 책에서 어떤 상황을 가정하면서 해당 상황에 대한 분석하고, 어떤 것들을 해야하는지 잘 설명하고 있다. 단순히 줄글로 상황이 주어졌다면 이해하기 어려웠을 수도 있겠으나, 실무자들이 이야기하는 내용들로 구성되어 있어 어떤 상황인지 쉽게 파악할 수 있다. 또한 각 상황에 대해서 파악해야 하는 것들을 무엇인지, 생각할 수 있는 방안들과 각 방안들의 장단점이 무엇인지 잘 설명해주고 있다. 상황도 굉장히 다양한 상황을 예시로 들어주고 있어 아..
현재 인턴을 하고 있다. 인턴을 하게 된 회사에는 PM과 PO분이 존재한다. 어쩌다보니 PM과 PO분들을 위한 세션에 참여하게 되었는데, 그때 궁금해졌다. 과연 PM과 PO는 무슨 일을 하시는 분들일까? 내가 속한 직군은 PM과 PO분들과 직접적으로 업무적인 커뮤니케이션을 할 일이 없기 때문에 더욱 무슨 일을 하시는지 감을 잡을 수 없었다. 그래서 "프로덕트 매니저는 무슨 일을 하고 있을까" 라는 책을 읽게 되었다. 이 책은 10년차 현업 실무자가 알려주는 프로덕트 매니저 이야기로, 전반적으로 프로덕트 매니저가 프로덕트를 어떻게 관리하는지 서술되어있다. 아직 대학생인 나의 관점에서 이야기를 하자면 대학교 팀프로젝트를 할 때 애자일 방법론으로 개발하겠다며 이것저것 시도했던 것들(스프린트, 백로그 등)이 프..
글에 앞서, 나는 airflow 1.10.7 버전을 사용하고 있음을 알린다. airflow에서는 특정 상황을 만족할 시, callback 함수를 실행할 수 있도록 제공한다. 만약 더 자세한 정보를 읽고 싶다면 공식 문서에서 확인해볼 수 있다. 총 4가지의 callback 함수가 있는데, 내가 사용한 것은 on_failure_callback이다. DAG의 특정 task가 실패할 경우, on_failure_callback을 부르는데, 이때 Xcom value를 사용하여 처리에 활용을 하려고 했다. 그런데, Xcom value를 불러오면 None만 return하는 문제가 있었다. Airflow 2점 대에서 수정이 된 사항인지는 모르겠지만, 구글링을 해보니 on_failure_callback에서는 Xcom va..
Redshift에 간단한 weather data를 넣으려고 하는데, 자꾸 아래처럼 에러가 났다. 나는 분명 INSERT 문을 사용해 값을 넣어주려고 했는데, (INSERT INTO . VALUES (value 1, value 2, ...) 를 사용했다) 자꾸 값을 컬럼명으로 인식했다. 왜 그런가 했더니, 파이썬은 "(double quotes)과 '(single quotes)를 구분없이 사용이 가능한데, sql에서는 이 둘을 구분하기 때문에 발생한 문제였다. Stackoverflow에 따르면, single quotes는 string literals를 위해 쓰이고, double quotes는 database identifiers를 위해 쓰인다고 한다. 나는 이 사실을 모르고 query의 value를 "로 감..
1. 들어가며 여러가지 언어들을 쓰며, 어떤 언어는 컴파일러로 동작해서 빌드 과정을 한 번 거쳐주어야 하고, 어떤 언어는 인터프리터로 동작해서 대화형으로 사용이 가능하다 등의 여러 특징들을 만났다. 대학교에 입학해서 C를 배우고, 컴퓨터 구조와 시스템 프로그래밍 과목에서 컴파일러가 소스코드를 어떻게 컴퓨터가 실행 가능한 파일을 만들어내는지는 배웠지만 인터프리터가 어떻게 동작하는지는 배우지 못했는데, 이번에 한 번 정리해보고자 한다. 2. 컴퓨터는 0과 1로 동작한다 아마 이 사실은 컴공과생이 아니어도 알지 않을까 싶다. 컴퓨터의 CPU는 0과 1로 이루어진 binary 로 된 instruction으로 동작하며, 이를 기계어 혹은 machine code 혹은 machine language 라고 부른다. 그..