프로젝트/kt나스미디어 현장실습 인턴

쿠팡플레이 주간 리포트 자동화

macbook2 2026. 2. 4. 12:32

0. 개요

쿠팡플레이 매체에서 진행되는 광고 캠페인의 주간 집행 결과 집계·정리 업무를 자동화하여,
반복적인 수작업으로 인한 운영 비효율을 개선하고 업무 리소스를 절감하는 것을 목적으로 프로젝트를 수행하였습니다.

 

1. workflow

DMP

  1. base_data
    1. nas_dw.dw_adpk_cpng_report_rtb
    2. nas_dw.dw_adpk_cpng_camp_cd
    3. nas_dw.dw_adpk_ads_group_cd

위 3개의 테이블에 접근하여 리포트에 사용될 base_data를 집계 후 “jaeyoung.coupang_play_report_base_data” 에 적재 (운영 서버로 이관 시 스키마 및 테이블 변경 필요)

(집계 방법은 TEST_JO → COUPANG_PLAY_REPORT → BASE_DATA 쿼리 참고)

  1. report_data (배치가 돌아감에 따라 기존 테이블은 삭제되고, 새로운 데이터가 적재가 된 이후의 시점으로 재생성)

base_data를 리포트에 활용할 수 있도록 전처리

기본 전처리 규칙 (변경 및 추가되지 않는 규칙)

  • camp_nm의 형태는 “202509_광고주명_브랜드명_상품명” 그 중 “광고주명”만 표기
  • ads_group_nm의 종류는 VOD, LIVE_FAST, LIVE_SPORTS로 한정
  • camp_nm에서 동일 “광고주명” 이면서 다른 “브랜드명”을 가진 값이 등장할 시 “광고주명_브랜드명” 까지 표기

예외 전처리 규칙 (변경 및 추가 될 수 있는 규칙)

  • camp_nm에 “삼성전자”를 포함하고 있으면서 ads_group_nm에 “A” 가 포함된 경우 집계 예외
  • camp_nm에 “테스트” 또는 “test” 를 포함하고 있는 테스트 캠페인인 경우 집계 예외 처리

DMP workflow 등록 완료

DMP workflow 위치 : TEST_JO → COUPANG_PLAY_REPORT

Schedules 등록 정보 :

이름 - WEEKLY_BATCH_COUPANG_PLAY_REPORT

등록 내용 - 매주 월요일 10:55

개발 서버 (운영 서버 이관 예정)

coupangplay_weekly_report/                                                                                                                                                                                  
  ├── config/                                                                                                                                                                                                 
  │   └── config.py              # 설정 파일 (DB 연결정보, Slack 토큰/채널)                                                                                                                                   
  ├── data/                      # 데이터 저장 디렉토리 (현재 비어있음)                                                                                                                                       
  ├── requirements.txt           # Python 패키지                                                                                                                                                       
  ├── scripts/                                                                                                                                                                                                
  │   └── script.sh             # 실행 스크립트 (동적 경로 지원)                                                                                                                                              
  └── src/                                                                                                                                                                                                    
      ├── main.py               # 메인 실행 파일 (스레드 관리, 에러 핸들링)                                                                                                                                   
      ├── make_report.py        # 리포트 생성 로직 (DB 쿼리, 엑셀 생성)                                                                                                                                       
      └── slack.py              # Slack 알림 전송 로직                                                                                                                                                        
                                                                                                                                                                                                              
  주요 구성 요소:                                                                                                                                                                                             
  - config/: 환경 설정 (DMP, Slack)                                                                                                                                                                            
  - src/: Python 소스 코드                                                                                                                                                                                    
  - scripts/: 실행 스크립트 (서버 이관 시에도 동작하도록 동적 경로 처리됨)                                                                                                                                    
  - data/: 데이터 저장용 (현재 미사용)                                                                                                                                                                        
  - requirements.txt: 필요한 Python 패키지 목록
  1. make_report.py

config.py에 있는 DMP 정보를 이용하여

배치를 통해 생성된 “jaeyoung.coupang_play_report” 의 데이터를 불러온 후 서식에 맞는 리포트 생성

 

slack.py

 

slack api와 연동 후 생성된 coupangplay_bot 을 이용한 쿠팡플레이 주간 리포트 전달

슬랙 채널 명 : coupangplay_weekly_report

성공과 실패 여부 확인 및 알림 : 성공 시 리포트 파일 전송, 실패 시 실패 로그 파일 전송

 

main.py, script.sh

 

해당 과정을 순서에 맞게 진행하는 파일인 main.py

main.py를 실행하는 스크립트 파일인 script.sh

crontab 등록 완료

등록 정보

: 00 11 * * 1 /home/jaeyoung/projects/coupangplay_weekly_report/scripts/script.sh

: 매주 월요일 11:00에 전달

 

3. 결과

전송 성공 시 알림
전송 실패 시 알림

4. 상세 코드

https://github.com/jojaeyoung777-spec/2025-kt-nasmedia-autoreport