[phase 2-6] 로그(log) 남기기

윤상혁·2025년 12월 8일

오늘은 'phase 2'의 마지막 단계인 'phase 2-6: 로그 남기기'에 대해서 글을 작성하고자 합니다.

이번 게시물은 따로 코드 관련한 내용은 없고, 이미 전 단계들에서 했던 것들을 다시 가져오는 수준의 작업이 진행되기 때문에(이미 전 단계에서 다 한 것들입니다.), 다른 게시글보다 편안하게 보시면 될 거 같습니다.


1. 미션

사실 로깅(logging) 관련해서는 저번 phase 1에서 logging 모듈을 이용해서 작업한 적이 있습니다.

그럼 이번 Apache Airflow에서의 로깅 작업은 우리가 예전에 그냥 python에서 했던 로깅 작업과 무엇이 다른지를 먼저 파악해봐야 합니다.


1-1. 이어서..

https://github.com/pilmalion114/data_engineer_portfolio/tree/main/phase%202/phase%202-5/airflow/modules
->저의 phase 2-5 modules 폴더에 있는 3개의 ETL 파일이 있는 깃허브 주소입니다.

일단 위 질문 2개에 대한 답변을 하자면,

1.logging 모듈 x
2.Phase 2-6 깃허브 링크
->직접 Apache Airflow 웹 UI에서 개별 task들의 로그 파일들을 다운로드한 것들입니다.

근데, 위 2번을 확인해보면, 우리가 코드에 작성한 print()문을 Airflow에서 로그로 직접 자동으로 적용시켜줌을 확인할 수 있습니다.

->제 VScode를 직접 캡쳐한 사진입니다.

->이렇게 웹 UI에서의 로그와 제 VScode내에서의 로그 기록이 동일함을 확인할 수 있습니다.
->즉, airflow가 자동적으로 log 폴더를 생성해주어, log 기록들을 저장해줌을 알 수 있습니다.

->또한 이렇게 각 날짜별로 'dag_processor'와 관련된 로그 기록들도 airflow가 자동으로 저장해줌을 알 수 있습니다.

dag_processor

즉 한마디로, 'DAG 파일 자체를 확인하는 로그'입니다.(백그라운드에서 계속 실행)


그럼 우린 여기서 뭘 해야할까요?

Claude는

1.처리 시간 측정
2.데이터 품질 체크 추가
3.python logging 모듈 사용

이렇게 최종적으로 3개를 추천해주었습니다.

그런데 곰곰이 생각해보면,

1-1-1. 처리 시간 측정

이렇게 처리 시간 측정은 Airflow가 자동으로 해주고 있고, 이는 웹 UI에서 확인할 수 있습니다.
또한 우리가 위에 첨부한 로그파일에서도 '종료 시각-시작 시각'의 차이를 통해 처리 시간 측정을 할 수 있습니다.
(웹 UI가 로그 파일에서의 처리 시간 측정보다 더 정확합니다.)


1-1-2. 데이터 품질 체크

이 경우에는 이미 우리가 전 단계에서 품질 체크를 했으니 중복 작업이므로 pass하도록 하겠습니다.


1-1-3. python logging 모듈 사용

이 경우에도 이미 Apache Airflow가 자동으로 알아서 로그 기록을 작성해주므로 pass하도록 하겠습니다.


1-2. 결론


2. ※Cf) docker compose up -d 터미널에서 실행 중 오류 발생

->즉, 'Docker Desktop'을 무조건 실행시켜야 한다.


3. 결론 및 마무리

이렇게 해서 'phase 2'의 전단계를 경험해보았습니다.

Claude가 말하길 이 phase 2가 데이터 엔지니어링 준비 과정에서 가장 핵심이고 중요한 단계라고 하는데요.

큰 우여곡절 없이 잘 마무리 할 수 있어서 정말 좋았습니다.

무엇보다 phase 2를 2-1부터 2-6단계로 세부적으로 나눠서 진행해서 이해가 더 빨리 잘 되었던 거 같습니다.

그럼 다음에는 Phase 3으로 돌아오도록 하겠습니다.

오늘도 제 글을 읽어주셔서 감사합니다 :) bb

profile
통합형 개발자. 기획부터 개발, 자동화까지. 문제를 구조적으로 이해하고, AI를 능동적으로 활용해 본질적인 해결책을 제시하는 사람입니다.

0개의 댓글