본문 바로가기

빈수 개발자 개발 일기

(930)
🎓 첫 대학원 1학기 후기 2025년 3월에 대학원에 입학해서 이제 막 1학기를 마무리하고 여름방학이다 .입학 전에는 퇴근 후 온전히 나만의 시간이 있었지만, 그게 얼마나 소중한 시간이었는지 알지 못했다. 당연하게 여겼던 것 같다.대학원에 다니기 시작하면서, 회사와 병행하느라 힘든 날을 보냈고, 방학 때 입학 전처럼 여유로운 삶을 다시 누리니 감사함을 느끼는 중이다. ☀️ 여름방학이라고 마냥 쉬는 건 아님 물론 방학이라고 해서 아무것도 안 하는 건 아니다.논문을 쓸 수 있는 조건 중 하나가 TOEIC 점수 취득인데, 그 요건을 충족하기 위해 이번 여름방학을 활용하고 있다.막 엄청 열심히 하는 건 아니지만, 그래도 나름대로 꾸준히 하고 있는 중이다. 여름학기를 수강하는 분들도 있는데, 대부분 빨리 졸업하고 싶은 사람들이 선택하는 듯..
캐글 스터디 2회차 - EDA(탐색적 데이터 분석) 오늘은 데이터 분석의 기본 EDA(Exploratory Data Analysis, 탐색적 데이터 분석) 에 대해 스터디한 내용을 정리해보려고 해요.단순히 그래프 몇 개 그리는 게 아니라, 데이터의 상태를 꼼꼼히 점검하고, 인사이트를 얻는 과정이라는 걸 다시 한 번 느꼈습니다. 1. Basic Analysis 코드 정리데이터를 받으면 가장 먼저 실행하는 기본 코드들! 아래 코드들은 판다스 DataFrame을 기준으로 설명합니다.df_train.head() # 상위 5개 행 출력df_train.tail() # 하위 5개 행 출력df_train.shape # (행 개수, 열 개수) 출력df_train.info() # 각 열의 데이터 타입과 결측..
Apache Airflow에서의 Task Group 활용법 Apache Airflow는 복잡한 데이터 워크플로우를 자동화하는 데 매우 유용한 도구입니다. 이 글에서는 Airflow의 Task Group을 효과적으로 활용하는 방법에 대해 알아보겠습니다. 1. Task Group이란?Task Group은 여러 태스크를 논리적으로 묶어주는 역할을 합니다. 이를 통해 복잡한 워크플로우를 더 작은 단위로 나누어 관리할 수 있습니다. Task Group 내의 태스크들은 순차적 또는 병렬로 실행될 수 있으며, >> 또는 >>> 연산자를 사용하여 태스크 간의 종속성을 정의할 수 있습니다. 2. Task Group의 사용 방법Step 1: TaskGroup 객체 생성여기서 dag은 이미 정의된 DAG 객체입니다. from airflow.models import TaskGroup..
[Airflow] 🚀 고객사별 병렬 실행 + 내부 순차 작업 처리하기 Airflow에서 다수의 고객사에 대해 각각 배치를 수행하는 경우, "고객사 간은 병렬로 처리하면서, 고객사 내부의 작업은 순차로 실행"되는 구조가 필요할 수 있습니다. ✨ 목표 시나리오고객사별 작업 목록1 번 고객사에 1,2,3,4 작업이 대기중이다.13 번 고객사에 10,20 작업이 대기중이다. 14 번 고객사에 100,200 작업이 대기중이다. { 1: [1, 2, 3, 4], 13: [10, 20], 14: [100, 200],} 기대 실행 구조1번 고객사의 첫번째 작업과 13번 고객사의 첫번째 작업과 100번 고객사의 첫번째 작업을 병렬처리 한다.각 고객사의 첫번째 작업이 끝나면 고객사별 다음 작업을 순차적으로 실행한다.Company_Batch_1_1 ➞ Company_Batch..
[R] R 데이터 시험 예상 문제 📘 문제 1. 다음 중 append() 함수에 대한 설명으로 옳은 것은 무엇인가요?A. 새로운 행렬을 생성한다B. 리스트에 이름을 붙인다C. 벡터에 새로운 값을 삽입한다D. 행렬을 전치(transpose)한다 더보기C. 벡터에 새로운 값을 삽입한다 x append(x, 99, after = 2) # [1] 1 2 99 3 📘 문제 2. 아래 코드의 실행 결과로 올바른 것은 무엇인가요?fruit A. "orange"B. 3C. "3"D. 오류 발생 더보기B. 3 출력 결과orange 3 📘 문제 3. 다음 중 matrix(1:6, nrow = 2, byrow = TRUE)의 결과로 올바른 것은?A. [,1] [,2] [,3][1,] 1 3 5[2,] 2 ..
[Airflow] 🎯 Airflow에서 사용자별 DAG 접근 제어 + REST API로 계정 생성까지! 요즘 Airflow를 쓰면서 하나하나 세팅을 직접 해보고 있는데,그 중에서도 "사용자마다 볼 수 있는 DAG을 제한하고 싶다"는 니즈가 생겼다.그리고 아예 REST API로 계정도 자동으로 만들 수 있게 해보자! 라는 마음으로 삽질 시작! 🔐 사용자별 DAG 권한 제어는 어떻게 하지?Airflow는 Roles라는 개념으로 사용자 권한을 나눈다.기본적으로는 다음과 같다:Admin: 모든 DAG, 모든 권한 가능User: 할당된 DAG만 볼 수 있음(추가로 Viewer, Op, 커스텀 Role도 만들 수 있음)DAG에 접근 제어를 하려면 DAG 파일에 아래처럼 access_control을 명시해주면 된다. # dag_example.pyaccess_control = { "example_dag_id": ..
[Airflow] DAG 의 Task 상태 Airflow Dag 에는 다양한 Task 상태가 존재함. deferred태스크가 어떤 특정 이벤트 또는 조건이 충족될 때까지 실행을 연기하는 상태를 나타냅니다. failed태스크가 실행 중 오류가 발생하여 실패한 상태입니다. 이 상태가 되면, 태스크의 재시도(retry) 설정에 따라 다시 시도될 수 있습니다. queued태스크가 실행될 준비가 되었지만, 실행할 수 있는 리소스를 기다리고 있는 상태입니다. removed해당 태스크가 삭제된 상태를 나타냅니다. 더 이상 DAG에서 사용되지 않거나 불필요한 태스크일 때 나타날 수 있습니다. restarting태스크가 실패한 후 재시작 중인 상태를 의미합니다. 재시도 설정에 따라 자동으로 재시작될 때 이 상태가 표시됩니다. running태스크가 현재 실행 중..
[Airflow] DAG 실행 🟡 DAG 저장소 위치 확인DAG 저장소는 검색하면 나오는데, 실제로 없을 수 있으니 없다면 생성하길 바람$ airflow config get-value core dags_folder/root/airflow/dags 🟡 DAG 저장소 위치 확인DAG 기본 저장소 위치 변경 가능 !/root/airflow/dags 경로 하위에 DOG 파일을 저장한다. 🟡 DAG 파일 생성from airflow import DAGfrom airflow.operators.bash import BashOperatorfrom datetime import datetime# DAG 정의with DAG( 'hello_world_dag', default_args={ 'owner': 'airflow', ..