프로젝트 / 단순 업무 자동화
6863번 팀 · 재물조사 데이터 정제 파이프라인 만들기 — 더러운 엑셀을 믿을 수 있는 표로 동료검토
AI 종합평가
재물조사 데이터 정제 파이프라인 만들기 — 더러운 엑셀을 믿을 수 있는 표로
프로젝트 설명
부대에서 올라온 재물조사 엑셀 여러 개를 합쳐 하나의 믿을 수 있는 표로 만드는 도구를 만든다.
실무 데이터는 깨끗하지 않다. 같은 품목이 "노트북", "노트북PC", "휴대용컴퓨터"로 적혀 있고, 수량 칸에 "3(파손1)" 이라고 쓰여 있고, 병합된 셀 때문에 이름이 첫 행에만 있다. 이 상태로는 아무리 좋은 AI 모델을 붙여도 결과를 신뢰할 수 없다.
이 프로젝트에서는 pandas 로 표를 다루는 기본기를 익히면서, 데이터 품질 문제를 찾아내고 고치고 그 과정을 기록으로 남기는 방법을 배운다. 마지막에는 매달 그대로 다시 돌릴 수 있는 파이프라인 형태로 정리한다.
AI 활용은 정제 규칙을 만드는 단계에서 본격적으로 쓴다. 품목명 표준화처럼 사람이 규칙을 다 적기 어려운 일에 LLM 이 어디까지 쓸 만한지, 어디부터 위험한지 직접 확인한다.
미션 1. 1. 원본 실태 파악 — 무엇이 얼마나 더러운지 세어 보기
미션 설명
고치기 전에 센다. 제공된 재물조사 엑셀 3종을 열어 문제 유형별로 몇 건인지 숫자로 정리한다.
눈으로 훑고 "지저분하다"고 적는 것으로는 다음 단계로 갈 수 없다. 결측 몇 건, 중복 몇 건, 형식 위반 몇 건인지 세어야 정제 결과를 검증할 기준이 생긴다.
1.1 원본 파일 열어 구조 파악하기 (행동) — 수행완료
문제 지시문
제공된 엑셀 3종을 열어 시트 구성, 헤더 위치, 병합 셀 유무, 총 행수를 표로 정리해 첨부하라. 세 파일의 양식 차이를 함께 적어라.
제출 응답
- test02
(수행 설명 없음)
(첨부 5건)
1.2 결측 건수 세기 (코딩) — 수행완료
문제 지시문
pandas 로 각 파일을 읽어 컬럼별 결측 건수와 비율을 출력하라. 빈 문자열과 공백만 들어 있는 칸도 결측으로 세어야 한다.
제출 응답
- test02
# 결측 건수 세기 # 문제 설명과 수행 가이드를 참고하여 아래에 코드를 작성하세요. def main(): pass if __name__ == "__main__": main()PYTHON
1.3 중복 행 찾기 (코딩) — 수행완료
문제 지시문
완전 중복 행과 "관리번호는 같지만 다른 값이 있는 행"을 각각 찾아 건수와 예시를 출력하라. 두 번째가 더 골치 아픈 문제다.
제출 응답
- test02
# 중복 행 찾기 # 문제 설명과 수행 가이드를 참고하여 아래에 코드를 작성하세요. def main(): pass if __name__ == "__main__": main()PYTHON
1.4 형식 위반 찾기 (코딩) — 수행완료
문제 지시문
수량 칸에 숫자가 아닌 값이 들어 있는 행, 날짜 칸이 여러 형식으로 섞인 행을 찾아 목록으로 뽑아라.
제출 응답
- test02
(제출 내용 없음)
1.5 품목명 표기 편차 확인 (코딩) — 수행완료
문제 지시문
품목명 컬럼의 고유값을 세어 상위 30개를 출력하고, 같은 물건을 다르게 적은 것으로 의심되는 쌍을 최소 5건 찾아 제시하라.
제출 응답
- test02
# 품목명 표기 편차 확인 # 문제 설명과 수행 가이드를 참고하여 아래에 코드를 작성하세요. def main(): pass if __name__ == "__main__": main()PYTHON
1.6 문제 유형 분류 (퀴즈-다항선택) — 수행완료
문제 지시문
다음 중 이번 데이터에서 실제로 확인된 문제 유형을 모두 고르시오. ① 결측 ② 중복 ③ 표기 불일치 ④ 형식 불일치 ⑤ 참조 무결성 위반(마스터에 없는 품목코드) ⑥ 단위 불일치
제출 응답
- test02
선택: 결측 선택: 중복
1.7 정제 우선순위 정하기 (퀴즈-장문형) — 수행완료
문제 지시문
발견한 문제를 고치는 순서를 정하고 근거를 쓰라. 건수가 많은 것부터가 항상 답은 아니다. 뒤 단계 작업을 막는 문제가 무엇인지 생각하라.
제출 응답
- test02
소니 딕슨도 23일 갤럭시S27 울트라가 두 가지 크기로 출시될 가능성을 언급하며 관련 사진을 공개했다. 공개된 사진은 앞서 아이스유니버스가 공개한 렌더링과 유사한 디자인을 보여준다.
다만 새롭게 변경되는 대형 후면 카메라 모듈에 대한 초기 반응은 그다지 긍정적이지 않은 것으로 전해졌다. 폰아레나는 일부 비평가들이 디자인이 시각적으로 매력적이지 않다는 평가를 내놓고 있으며, 일각에서는 삼성이 독창성을 잃고 지난해 애플이 선보인 디자인을 따라가는 것 아니냐는 우려도 제기하고 있다고 전했다.
다만 현재 공개된 이미지는 어디까지나 렌더링이기 때문에 실제 제품의 모습을 정확하게 보여주지 못했을 가능성도 있다. 폰아레나는 실제 출시 제품이 렌더링보다 더 완성도 높은 디자인을 갖출 가능성도 있다고 설명했다.
미션 2. 2. pandas 첫걸음 — 표를 코드로 다루기
미션 설명
엑셀에서 마우스로 하던 일을 코드로 옮긴다. 읽기, 열 고르기, 조건으로 걸러내기, 그룹으로 묶어 집계하기, 두 표 붙이기까지가 이번 범위다.
이 다섯 가지면 재물조사 정제의 90%를 할 수 있다.
2.1 엑셀 읽고 구조 출력하기 (코딩) — 수행완료
문제 지시문
헤더가 첫 행이 아닌 엑셀 파일을 올바르게 읽어 들이고, shape / dtypes / head 를 출력하라. 병합 셀로 비어 있는 칸을 앞 값으로 채우는 처리도 포함하라.
제출 응답
- test02
(제출 내용 없음)
2.2 조건으로 걸러내기 (코딩) — 수행완료
문제 지시문
수량이 0 이하인 행, 취득일자가 오늘 이후인 행을 각각 골라내 건수와 함께 출력하라.
제출 응답
- test02
(제출 내용 없음)
2.3 groupby 집계 (코딩) — 수행완료
문제 지시문
부대별·품목분류별 수량 합계와 건수를 구해 수량이 많은 순으로 출력하라.
제출 응답
- test02
(제출 내용 없음)
2.4 두 표 붙이기 (코딩) — 수행완료
문제 지시문
재물조사 데이터와 품목 마스터를 품목코드로 붙이고, 마스터에 없어서 붙지 않은 행이 몇 건인지 출력하라.
제출 응답
- test02
(제출 내용 없음)
2.5 merge 방식 이해 (퀴즈-단항선택) — 수행완료
문제 지시문
"재물조사 데이터는 모두 남기고, 마스터에 있는 품목명만 가져다 붙인다"에 맞는 merge 의 how 값은? ① inner ② left ③ right ④ outer
제출 응답
- test02
(제출 내용 없음)
2.6 집계 결과 교차 검증 (퀴즈-단답형) — 수행완료
문제 지시문
전체 수량 합계를 groupby 없이 한 줄로 구하고, groupby 결과의 합과 같은지 확인해 값을 적어라.
제출 응답
- test02
(제출 내용 없음)
2.7 세 파일 합치기 (코딩) — 수행완료
문제 지시문
양식이 다른 3개 파일의 컬럼명을 통일한 뒤 하나의 DataFrame 으로 합치고, 원본 파일명을 구분 컬럼으로 남겨라. 합친 뒤 총 행수가 개별 행수 합과 같은지 확인하라.
제출 응답
- test02
# 세 파일 합치기 # 문제 설명과 수행 가이드를 참고하여 아래에 코드를 작성하세요. def main(): pass if __name__ == "__main__": main()PYTHON
미션 3. 3. 결측·중복·이상값 처리 — 지우지 말고 표시하기
미션 설명
문제 있는 데이터를 다룬다. 원칙은 하나다. 조용히 지우거나 채우지 않는다.
결측을 0으로 바꾸면 합계가 틀리고, 중복을 그냥 지우면 실제로 두 대 있던 장비가 한 대가 된다. 처리 방침을 규칙으로 정하고, 적용한 흔적을 남긴다.
3.1 결측 처리 방침 정하기 (퀴즈-장문형) — 수행완료
문제 지시문
컬럼별로 결측을 어떻게 처리할지 정하고 근거를 쓰라. 수량, 취득일자, 관리부서, 비고 각각 다른 답이 나와야 정상이다.
제출 응답
- test02
(제출 내용 없음)
3.2 결측 처리 구현 (코딩) — 수행완료
문제 지시문
정한 방침대로 결측을 처리하고, 처리한 행의 원본 값과 변경 값을 별도 이력 파일로 남겨라.
제출 응답
- test02
(제출 내용 없음)
3.3 완전 중복 제거 (코딩) — 수행완료
문제 지시문
모든 컬럼이 같은 중복 행을 제거하고, 제거 건수를 출력하라.
제출 응답
- test02
(제출 내용 없음)
3.4 부분 중복 판정 (코딩) — 수행완료
문제 지시문
관리번호는 같지만 다른 값이 있는 행들을 찾아 어느 쪽을 남길지 규칙(예: 조사일자가 최신인 것)을 정해 처리하라. 판정이 애매한 건은 지우지 말고 검토 대상으로 분리해 내보내라.
제출 응답
- test02
(제출 내용 없음)
3.5 이상값 기준 세우기 (퀴즈-단답형) — 수행완료
문제 지시문
수량 컬럼의 이상값을 판정할 기준을 한 줄로 적어라. 단순 상한값도 좋지만 왜 그 값인지 근거가 있어야 한다.
제출 응답
- test02
(제출 내용 없음)
3.6 이상값 처리 (코딩) — 수행완료
문제 지시문
세운 기준으로 이상값을 찾아 별도 시트로 분리하고, 본 데이터에서는 플래그 컬럼으로 표시하라. 삭제하지 마라.
제출 응답
- test02
(제출 내용 없음)
3.7 정제 전후 대조 (코딩) — 수행완료
문제 지시문
정제 전후의 행수·수량 합계·부대별 건수를 나란히 출력하는 비교표를 만들라. 차이가 있는 항목은 그 차이가 어디서 왔는지 설명할 수 있어야 한다.
제출 응답
- test02
(제출 내용 없음)
3.8 되돌릴 수 있는가 (퀴즈-선형배율) — 수행완료
문제 지시문
"이력 파일만으로 정제 결과를 원본으로 되돌릴 수 있다"에 몇 점인가(1~5). 5점이 아니면 무엇이 빠졌는지 적어라.
제출 응답
- test02
선택: 매우 그렇다
미션 4. 4. 표기 표준화 — 같은 물건을 같은 이름으로
미션 설명
"노트북", "노트북PC", "휴대용 컴퓨터"를 하나로 모으는 작업이다. 규칙만으로는 끝나지 않고, 전부 손으로 하기에는 양이 많다. LLM 을 쓸 자리가 여기다.
다만 LLM 이 만든 매핑을 그대로 믿으면 안 된다. 표본 검수 방법과 검수 기록 남기기를 함께 익힌다.
4.1 문자열 정규화 (코딩) — 수행완료
문제 지시문
앞뒤 공백 제거, 연속 공백 축약, 전각/반각 통일, 괄호 내용 분리를 수행하는 정규화 함수를 만들고, 적용 전후 고유값 개수를 비교하라.
제출 응답
- test02
(제출 내용 없음)
4.2 규칙 기반 매핑 (코딩) — 수행완료
문제 지시문
정규화만으로 합쳐지지 않는 것들에 대해 직접 매핑 규칙(딕셔너리 또는 CSV)을 만들어 적용하라. 규칙은 코드가 아닌 파일로 분리하라.
제출 응답
- test02
(제출 내용 없음)
4.3 LLM 으로 유사어 후보 뽑기 (행동) — 수행완료
문제 지시문
정규화 후에도 남은 고유 품목명 목록을 LLM 에 주고 같은 물건으로 보이는 것들을 묶게 하라. 사용한 프롬프트와 받은 결과를 첨부하라.
제출 응답
- test02
(제출 내용 없음)
4.4 LLM 결과 표본 검수 (행동) — 수행완료
문제 지시문
LLM 이 묶은 그룹에서 30건을 무작위 추출해 사람이 판정하고, 정확·오류·판단보류로 나눠 검수 기록을 첨부하라. 오류율을 숫자로 적어라.
제출 응답
- test02
(제출 내용 없음)
4.5 LLM 오분류 사례 분석 (퀴즈-장문형) — 수행완료
문제 지시문
검수에서 발견한 오분류 중 하나를 골라 왜 LLM 이 틀렸는지 분석하고, 이런 실수를 줄일 프롬프트 개선안을 제시하라.
제출 응답
- test02
(제출 내용 없음)
4.6 경계 사례 판정 (퀴즈-장문형) — 수행완료
문제 지시문
"태블릿을 노트북 분류에 넣을 것인가" 같은 판정이 갈리는 사례를 최소 2건 제시하고, 어떤 기준으로 정할지 쓰라. 정답이 없다는 것을 인정하는 답도 좋다.
제출 응답
- test02
(제출 내용 없음)
4.7 마스터 대조 (코딩) — 수행완료
문제 지시문
표준화된 품목명을 품목 마스터와 대조해 마스터에 없는 항목을 찾아내라. 마스터를 늘릴 것인지, 데이터를 고칠 것인지 판단해 표시하라.
제출 응답
- test02
(제출 내용 없음)
4.8 LLM 활용 적정성 (퀴즈-단항선택) — 수행완료
문제 지시문
표기 표준화에서 LLM 을 쓰는 가장 적절한 방식은? ① 최종 매핑을 LLM 이 확정 ② LLM 이 후보를 내고 사람이 확정 ③ 사람이 후보를 내고 LLM 이 확정 ④ LLM 없이 전부 수동
제출 응답
- test02
(제출 내용 없음)
미션 5. 5. 결과 만들기 — 재고 차이 리포트
미션 설명
정제한 데이터로 실제 쓸 결과물을 만든다. 장부 수량과 조사 수량의 차이를 뽑고, 차이가 큰 항목을 우선순위로 정렬한 리포트다.
여기서 정제가 제대로 됐는지 드러난다. 표기가 안 맞으면 차이가 과장되고, 중복을 잘못 지우면 차이가 감춰진다.
5.1 차이 계산하기 (코딩) — 수행완료
문제 지시문
장부 데이터와 정제된 조사 데이터를 품목코드+부대 기준으로 대조해 수량 차이를 계산하라. 한쪽에만 있는 항목도 빠뜨리지 마라.
제출 응답
- test02
(제출 내용 없음)
5.2 차이 원인 분류 (코딩) — 수행완료
문제 지시문
차이를 (가) 조사 누락 (나) 장부 미등록 (다) 수량 불일치 (라) 표기 문제 의심 으로 분류하는 로직을 만들라.
제출 응답
- test02
(제출 내용 없음)
5.3 우선순위 정렬 (코딩) — 수행완료
문제 지시문
차이 금액(수량 × 단가) 기준으로 정렬해 상위 100건을 뽑아라. 단가가 없는 품목은 어떻게 처리할지 정하고 그 방침을 주석으로 남겨라.
제출 응답
- test02
(제출 내용 없음)
5.4 리포트 엑셀 출력 (코딩) — 수행완료
문제 지시문
요약 시트와 상세 시트로 나눈 엑셀 파일을 생성하라. 요약에는 부대별·유형별 차이 건수와 금액, 상세에는 조치가 필요한 목록이 들어간다.
제출 응답
- test02
(제출 내용 없음)
5.5 리포트 해석 (퀴즈-장문형) — 수행완료
문제 지시문
생성한 리포트를 근거로 "먼저 확인해야 할 3가지"를 제시하라. 각각 무엇을 어떻게 확인할지까지 구체적으로 쓰라.
제출 응답
- test02
(제출 내용 없음)
5.6 정제 품질 역검증 (코딩) — 수행완료
문제 지시문
차이가 비정상적으로 큰 품목을 골라 원본까지 거슬러 올라가 확인하라. 정제 과정의 실수가 원인이었다면 어느 미션에서 생긴 문제인지 지목하라.
제출 응답
- test02
(제출 내용 없음)
5.7 리포트 신뢰도 자기평가 (퀴즈-선형배율) — 수행완료
문제 지시문
"이 리포트를 근거로 실제 조치를 지시할 수 있다"에 몇 점인가(1~5). 점수와 함께 남은 불확실성을 적어라.
제출 응답
- test02
선택: 그렇다
미션 6. 6. 파이프라인으로 묶기 — 다음 달에 그대로 다시 돌리기
미션 설명
지금까지 만든 조각들을 하나의 실행 단위로 묶는다. 폴더에 원본을 넣고 한 번 실행하면 정제 결과·이력·리포트가 나오는 상태가 목표다.
여기까지 오면 "코드를 쓸 수 있다"에서 "도구를 만들 수 있다"로 넘어간다. 차이는 다른 사람이 설명 없이 쓸 수 있는지에서 갈린다.
6.1 단계 분리하기 (코딩) — 수행완료
문제 지시문
읽기 → 정제 → 표준화 → 대조 → 리포트 단계를 각각 함수로 분리하고, 순서대로 호출하는 실행 스크립트를 만들라.
제출 응답
- test02
(제출 내용 없음)
6.2 설정 파일 분리 (코딩) — 수행완료
문제 지시문
입출력 경로, 이상값 기준, 매핑표 위치 같은 값을 설정 파일(예: config.json)로 빼내라. 코드를 고치지 않고 설정만 바꿔 동작이 달라져야 한다.
제출 응답
- test02
(제출 내용 없음)
6.3 실행 로그 남기기 (코딩) — 수행완료
문제 지시문
각 단계 시작·종료 시각, 처리 건수, 경고 건수를 로그 파일로 남겨라. print 대신 logging 을 쓰라.
제출 응답
- test02
(제출 내용 없음)
6.4 실패 처리 (코딩) — 수행완료
문제 지시문
입력 파일이 없거나 컬럼이 바뀐 경우 무엇이 문제인지 알려 주고 중단하도록 만들라. 절반만 처리된 결과 파일을 남기지 않아야 한다.
제출 응답
- test02
(제출 내용 없음)
6.5 재실행 검증 (행동) — 수행완료
문제 지시문
같은 입력으로 두 번 실행해 결과 파일이 동일한지 확인하라. 다르다면 원인을 찾아 고치고, 그 과정을 기록해 첨부하라.
제출 응답
- test02
(제출 내용 없음)
6.6 사용 설명서 쓰기 (퀴즈-장문형) — 수행완료
문제 지시문
이 도구를 처음 받는 사람을 위한 설명서를 쓰라. 설치, 입력 파일 준비, 실행, 결과 확인, 자주 나는 오류 순서로 구성하라.
제출 응답
- test02
(제출 내용 없음)
6.7 인수인계 시연 (행동) — 수행완료
문제 지시문
동료 또는 교육 담당자에게 설명서만 주고 실행해 보게 하라. 막힌 지점을 기록하고 설명서를 고쳐 최종본을 첨부하라.
제출 응답
- test02
(제출 내용 없음)
6.8 프로젝트 회고 (퀴즈-장문형) — 수행완료
문제 지시문
이 파이프라인이 실제 업무에 투입될 때 남은 위험을 3가지 적고, 각각에 대한 대비책을 쓰라. 데이터 품질 문제가 재발할 지점도 함께 짚어라.
제출 응답
- test02
스마트 웨어러블 브랜드 어메이즈핏(Amazfit)이 음악과 지도 데이터를 자체 저장하고 장시간 사용할 수 있는 플래그십 스마트워치 ‘밸런스 울트라(Balance Ultra)’를 국내 출시한다.
밸런스 울트라는 64GB 내장 저장공간을 통해 음악과 팟캐스트, 오프라인 지도 데이터를 워치에 저장할 수 있도록 했다. 운동이나 야외 활동 중 스마트폰을 휴대하지 않는 상황에서도 워치에서 콘텐츠와 지도 기능을 이용할 수 있는 것이 특징이다.
780mAh 배터리는 일반 사용 기준 최대 30일, 헤비 사용 기준 최대 15일, AOD 모드 기준 최대 10일 사용할 수 있다. GPS 정밀 모드는 최대 50시간, GPS 절전 모드는 최대 97시간 작동해 장시간 러닝과 백패킹 등 야외 활동에 활용할 수 있도록 구성했다.
출처 : 경상일보(https://www.ksilbo.co.kr)
댓글 2
test02 2026-09-07 14:59
test02 2026-08-28 11:55