오늘은 'phase 2'의 마지막 단계인 'phase 2-6: 로그 남기기'에 대해서 글을 작성하고자 합니다.
이번 게시물은 따로 코드 관련한 내용은 없고, 이미 전 단계들에서 했던 것들을 다시 가져오는 수준의 작업이 진행되기 때문에(이미 전 단계에서 다 한 것들입니다.), 다른 게시글보다 편안하게 보시면 될 거 같습니다.

사실 로깅(logging) 관련해서는 저번 phase 1에서 logging 모듈을 이용해서 작업한 적이 있습니다.
그럼 이번 Apache Airflow에서의 로깅 작업은 우리가 예전에 그냥 python에서 했던 로깅 작업과 무엇이 다른지를 먼저 파악해봐야 합니다.

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개를 추천해주었습니다.
그런데 곰곰이 생각해보면,




이렇게 처리 시간 측정은 Airflow가 자동으로 해주고 있고, 이는 웹 UI에서 확인할 수 있습니다.
또한 우리가 위에 첨부한 로그파일에서도 '종료 시각-시작 시각'의 차이를 통해 처리 시간 측정을 할 수 있습니다.
(웹 UI가 로그 파일에서의 처리 시간 측정보다 더 정확합니다.)
이 경우에는 이미 우리가 전 단계에서 품질 체크를 했으니 중복 작업이므로 pass하도록 하겠습니다.
이 경우에도 이미 Apache Airflow가 자동으로 알아서 로그 기록을 작성해주므로 pass하도록 하겠습니다.





->즉, 'Docker Desktop'을 무조건 실행시켜야 한다.
이렇게 해서 'phase 2'의 전단계를 경험해보았습니다.
Claude가 말하길 이 phase 2가 데이터 엔지니어링 준비 과정에서 가장 핵심이고 중요한 단계라고 하는데요.
큰 우여곡절 없이 잘 마무리 할 수 있어서 정말 좋았습니다.
무엇보다 phase 2를 2-1부터 2-6단계로 세부적으로 나눠서 진행해서 이해가 더 빨리 잘 되었던 거 같습니다.
그럼 다음에는 Phase 3으로 돌아오도록 하겠습니다.
오늘도 제 글을 읽어주셔서 감사합니다 :) bb