본문 바로가기

전체 글

(71)
[킥복싱 일지] 2023.10.24 정말 오랜만에 킥복싱 일지를 쓰는 것 같다. 지난 4월, 손가락 부러지면서 힘줄도 같이 끊어지는 바람에 킥복싱을 잠시 멈추게 되었다. 손가락을 다쳐버리니 일상 생활도 많이 불편했고, 손에 힘이 들어가는 운동 자체는 아예 쳐다 볼 수도 없었다 ㅠㅠ 그렇다고 운동을 아예 안 하면, 허리 디스크가 다시 재발했기 때문에 하체 운동(스쿼트)과 수영을 하며 건강을 챙겼다. 그렇게 어느덧 10월이 되었다. 6개월 이상 손가락에 무리가지 않도록 생활하고 재활 운동까지 해서 그런지 상태가 많이 나아졌다. 그렇게 나는 6개월 만에 다시 킥복싱을 시작하게 되었다!! 정말 오랜만에 킥복싱장에 갔더니 코치님들이 갑자기 안 나오길래 결혼한 줄 알았다고 하셨다 ㅋㅋㅋㅋㅋ 나태해진 내 몸을 부여잡고 심기일전해서 다시 열심히 킥복싱 ..
[Airflow Master Class] 템플릿 변수 오늘은 Airflow에서 사용 가능한 템플릿 변수들에 대해 알아보도록 하겠다. 그 전에 "Jinja 템플릿"이란 무엇인지부터 알아보자! Jinja 템플릿이란 파이썬 기반 웹 프레임워크(Flask, Django)에서 주로 사용하며, HTML 템플릿 저장 후에 화면에 보여질 때 실제 값으로 변환해서 출력해주는 역할을 한다. Airflow에서 Jinja 템플릿을 사용하는 방법은 매우 간단하다. Operator 파라미터 입력 시, 아래와 같이 중괄호를 2개 이용하면. Airflow에서 기본적으로 제공하는 변수들을 치환된 값으로 넣어줄 수 있다. ↓↓↓↓↓↓↓↓↓↓ ex) {{ data_interval_start }} Airflow에서 기본적으로 제공하는 템플릿 변수들에 대한 공식 문서가 있으니 참고하길 바란다...
파이썬 함수 인자 *arg와 **kwargs 오늘은 파이썬 함수 인자인 *arg와 **kwargs이 왜 필요한지, 그리고 어떻게 사용하는지에 대해 알아보도록 하겠다. 일반적으로 파이썬 함수를 작성할 때, 아래와 같이 파라미터 개수를 지정해서 넘겨준다. def sample_func(name, sex): print(f'제 이름은 {name}이고, 성별은 {sex}입니다.') sample_func('brian', 'man') # 출력 결과 # 제 이름은 brian이고, 성별은 man입니다. 그런데 만약 호출하는 로직에서 몇 개의 파라미터를 넘겨줘야 할지 모르는 경우, 혹은 선택적으로 변수를 받을 수도 있는 경우에는 파라미터를 어떻게 지정해줘야 할까? 바로 이러한 경우에 사용하는 것이 *arg와 **kwargs 인자이다! 파이썬 함수 인자 *args에 대..
[Airflow Master Class] Cron 스케줄 이번 포스팅에서는 Cron 스케줄의 기본 개념에 대해 간단하게 다뤄보고자 한다. 우선 Cron 스케줄을 정의하면 다음과 같다. "Task가 실행되어야 하는 시간(주기)을 정하기 위한 다섯 개의 필드로 구성된 문자열""{분} {시} {일} {월} {요일}"의 형태로 사용!! 기본적으로 위와 같은 형태로 사용하며, 각 필드에는 숫자 뿐만 아니라 특수문자도 들어갈 수 있다. Cron 스케줄에서 사용 가능한 특수문자는 아래와 같다. 특수문자의미*모든 값-범위 지정,여러 값 지정/증가 값 지정L마지막 값 ({일}, {요일}에만 설정 가능) * {일}에 L 입력 시, 해당 월의 마지막 일을 의미함 * {요일}에 L 입력 시, 토요일을 의미함#몇 번째 요일인지 지정 그럼 이제 다양한 예시를 통해 Cron 스케줄을 어..
[Airflow Master Class] Docker 및 Airflow 설치 이번 포스팅에서는 Docker 및 Airflow를 설치하는 방법에 대해 정리해 보겠다. 그 전에 먼저 Docker(도커)란 무엇인지부터 간략하게 알아보자. Docker란 리눅스 내 가상화 관련 커널을 활용하여 어플리케이션을 독립적인 환경에서 실행시켜주는 기술로, Guest OS가 존재하는 가상화 서버(VM; Virtual Machine)와 달리 Docker는 Guest OS가 없기 때문에 경량화된 가상화 서버라고 볼 수 있다. 음... 이렇게만 적어 놓고 보니 무슨 말인지 통 이해가 안 간다;; (Docker라는 개념을 처음 접하는 나 같은 사람들은 더더욱 이해가 안 갈 것으로 생각됨..) 이해를 돕기 위해 아래의 그림을 살펴보자. 먼저 가상화 VM은 완전히 독립적인 환경에서 구동된다는 장점이 있으나, ..
[Airflow Master Class] WSL 설치 & 리눅스(Linux) 기본 명령어 WSL이란 Windows Subsystem for Linux의 줄임말로 Windows에서 리눅스 환경을 실행할 수 있게 해주는 기능이라고 보면 된다. Airflow는 Windows에 직접 설치가 불가능하기 떄문에 WSL 설치가 필수적인데, 여유가 되는 분들은 가상화 VM(Virtual Machine) 혹은 AWS, GCP와 같은 클라우드 서비스를 활용해서 Airflow를 설치해도 된다. WSL 설치 방법은 간단하다. 본인의 Windows가 10 버전 2004 이상 또는 Windows 11 버전인지 먼저 체크한 뒤, PowerShell을 관리자 권한으로 실행해서 "wsl --install" 명령어를 통해 쉽게 설치할 수 있다. (처음 설치를 하면 UNIX username과 password를 설정하라고 뜰텐..
[Python Skill Up] 고급 리스트 기능 이번 포스팅에서는 파이썬을 활용한 고급 리스트 기능들에 대해 설명해 보도록 하겠다. 리스트 복사 vs 리스트 변수 복사얕은 복사 vs 깊은 복사리스트 함수 vs 리스트 메서드map, filter, reduce, lambda 함수언더스코어(_)의 기능1. 리스트 복사 vs 리스트 변수 복사 - 파이썬의 변수는 한 컬렉션을 제대로 복사하려면 추가 작업이 필요하다. a_list = [2, 4, 8] b_list = a_list b_list.append(100) a_list.append(200) b_list.append(1) print(a_list) # [2, 4, 8, 100, 200, 1] 출력 - 위 예시 코드를 보면 알 수 있듯이, 둘 중 한 변수의 값을 변경하면 다른 하나도 함께 변경된다. - 리스트 ..
[Python Skill Up] 자리 맞춤 메서드 파이썬에서 문자열 자리 맞춤을 위한 가장 기초적인 방법을 소개하도록 하겠다. (나 또한 zfill 메서드를 제외한 나머지 메서드들은 처음 봤는데, 알아두면 유익하게 써먹을 수 있을 것 같다) 1. ljust() 2. rjust() 3. center() 4. zfill() ljust(), rjust(), center() 메서드의 경우, 문자열 텍스트가 주어진 "길이"보다 짧다면 (각 메서드에 따라) 텍스트가 왼쪽, 오른쪽 혹은 가운데로 이동한다. ※ zfill()은 rjust()의 기능을 그냥 단순화한 것이 아니다. 아래 파이썬 코드의 "" 부분을 보면, zfill 메서드를 사용하면 "채우기_문자"로 넣어준 "0"이 숫자의 일부가 되며, "0"이 숫자와 기호 사이에 위치하는 것을 확인할 수 있다. 반면, ..