Today I Learned

[내일배움캠프 QA/QC 6기] TIL #048 태블로 프렙

JiJi0406 2026. 7. 21. 20:50

 

001

오늘의 코드카타

53. 2016년

 

 

 

문제 설명

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.

 

 

제한 조건

  • 2016년은 윤년입니다.
  • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

 

더보기
def solution(a, b):
    days = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]
    month_days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    
    # a월 전까지의 총 일수 + (b - 1)일
    total_days = sum(month_days[:a-1]) + (b - 1)

    return days[total_days % 7]

 

 

+ 문제 풀고나면 다른 사람 풀이도 꼭 보는데... 

 

더보기

 

 

ㅋㅋㅋㅋㅋㅋㅋㅋ

근데 난 개인적으로 좋은 코드 같음

길긴해도 의도가 한 눈에 보이고... 이보다 직관적일 수가 없다

 

 


 


 

002

오늘 학습한 내용

 

 

[ Tableau Prep 입문 ]

 

 

1. Tableau Prep이란

 

"전처리하면서 분석까지 같이 할 수 없을까"라는 생각에서 나온 도구가 Tableau Prep

 

 1) 기능

  • 결합: 조인 또는 유니온
  • 정리: 불필요하거나 불일치하는 값 정제
  • 변형: 피벗, 집계, 필터 등
  • Tableau Desktop처럼 드래그 앤 드롭으로 데이터 연결→정제→통합까지 시각적으로 처리 가능

 

2. 유니온, 조인, 피벗

유니온 (Union) 같은 구조(필드 개수·명·타입 동일)의 테이블을 합침 아래로 붙음
조인 (Join) 기준 필드로 두 테이블을 연결 옆으로 붙음
피벗 (Pivot) 행에 있던 값을 열로, 열에 있던 값을 행으로 회전 -
  • 조인 기본은 이너 조인(교집합), 레프트/라이트 조인 등도 o → 두 데이터가 완벽히 일치하면 어떤 조인 방식을 써도 결과는 같음

 

3. 실습 전체 흐름 정리

① 데이터 타입 확인/변경 Timestamp를 밀리초까지 인식하도록 문자열 타입으로 변경
② 피벗 Variable → '행을 열로', Value → '집계할 필드'로 지정해서 A1~A4 각각 피벗
③ 유니온 피벗1~4를 순서대로 하나의 유니온 스텝에 연결
④ 불일치 컬럼 정리 A2의 한국어 필드명(생산력, 온도 등)을 나머지 영어 필드명과 매칭해서 합침
⑤ 조인 유니온 데이터와 담당자 정보를 [EQP]=[EQP Num] 조건으로 조인
⑥ 불필요한 필드 제거 중복된 EQP Num 필드 제거
⑦ 출력 hyper 파일 형식으로 출력, 흐름 실행으로 추출

 

☆ Prep에서 전처리해도 원본 데이터에는 영향 없고, 출력 데이터에만 반영

 

데이터 타입 확인 및 변경

  • A1~A4 연결 후 정리 단계 추가해서 데이터 분포 확인
  • Timestamp가 날짜/시간 타입이었는데, 밀리초 단위까지 인식하려면 문자열 타입으로 변경 필요

피벗

  • 각 공정 데이터마다 피벗 단계 추가 → '행을 열로' 선택
  • Variable 필드 → '행을 열로 피벗할 필드'에, Value 필드 → '새 열에 대해 집계할 필드'에 드래그
  • 결과: Variable 안의 Productivity, Result, Stability, Temperature가 각각 새 필드로 생성되고 Value 값이 해당 필드에 채워짐
  • A1~A4 전부 동일하게 진행
  • (참고: 값 분할 기능은 파이썬 split이랑 비슷함. 예를 들어 '.' 입력하면 그 기준으로 앞부분 값만 가져올 수 있음)

유니온

  • 피벗1~4를 순서대로 하나의 유니온 스텝에 연결 (유니온에 유니온을 또 묶는 게 아니라, 하나의 유니온에 차례로 추가하는 개념)

불일치 컬럼 정리

  • 유니온 후 "11개 결과 필드 중 8개 불일치" 발생
  • 원인: A2의 Variable 값이 한국어(결과 지표, 생산력, 안정성, 온도)로 되어있어서 나머지 영어 필드명과 안 맞았음
  • 불일치 필드에 마우스 오버 → + 버튼으로 같은 의미 필드끼리 바로 합치기 가능
  • (파이썬이면 컬럼명 재지정해서 합쳐야 했을 텐데, Prep은 화면에서 바로 처리 가능해서 훨씬 편했음)
  • 유니온으로 자동 생성된 Table Names 필드(csv 파일명이 값으로 들어감) → 필드명을 'Line'으로 바꾸고 값에서 .csv 텍스트 제거

조인

  • 유니온 데이터와 담당자 정보를 조인
  •  [EQP] = [EQP Num] 
  • 조인할 때 "적용된 조인 절 추가" 누르면 각 데이터에서 조인 기준 컬럼 선택 가능

불필요한 필드 제거

  • EQP와 EQP Num이 중복이라 EQP Num 제거 (필드 클릭 → 기타 옵션 → 제거)

출력

  • 출력 단계 추가해서 hyper 파일 형식으로 내보냄
  • hyper는 Tableau 데이터 추출 전용 파일 → 나중에 Tableau 안에서 활용할 때 더 효율적
  • 이름 지정하고 흐름 실행 누르면 지정 경로에 데이터 추출됨

 

 

전처리 흐름(Flow)을 만드는 이유

: 반복되는 전처리 루틴을 매번 처음부터 하는 건 비효율적 → 새 데이터 들어오면 예전 흐름을 그대로 복사해서 재사용하면 ok