품질관리(QAQC) 데이터 부트캠프(본캠프)

본캠프_5주차(월)_TIL

Wat_zy 2025. 10. 13. 09:01

✅ 오늘 한 것

알고리즘 문제, 기초 프로젝트


✏️ 오늘 배운 점

def solution(answers):
    first = [1, 2, 3, 4, 5]
    second = [2, 1, 2, 3, 2, 4, 2, 5]
    third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    
    first_count = 0
    second_count = 0
    third_count = 0
    result = []

    if len(answers) >= len(first):
        for i in range(len(answers)):
            if answers[i] == first[i % len(first)]:
                first_count += 1
    else: 
        for i in range(len(answers)):
            if answers[i] == first[i]:
                first_count += 1

    if len(answers) >= len(second):
        for i in range(len(answers)):
            if answers[i] == second[i % len(second)]:
                second_count += 1
    else: 
        for i in range(len(answers)):
            if answers[i] == second[i]:
                second_count += 1  

    if len(answers) >= len(third):
        for i in range(len(answers)):
            if answers[i] == third[i % len(third)]:
                third_count += 1
    else: 
        for i in range(len(answers)):
            if answers[i] == third[i]:
                third_count += 1
    
    max_num = max(first_count, second_count, third_count)

    if first_count == max_num:
        result.append(1)
    if second_count == max_num:
        result.append(2)
    if third_count == max_num:
        result.append(3)



    return result

수학 문제를 찍은 3인의 점수를 비교하여 높은 점수를 받은 사람을 반환하는 코드를 작성하였다.

하지만, 문제를 풀어낼 수는 있었지만 코드가 너무 길다고 생각이 들어 비교를 하니 여러 가지 방법으로 풀어 나가는 것을 확인해볼 수 있었기도 했다. 또한, 나의 코드에서 else 구문은 if에 똑같은 방식으로 할당되어 있어 굳이 작성할 필요가 없다는 것도 볼 수 있었다.

코드가 돌아가기에는 문제가 없지만 더 긴 코드를 작성하게 된다면 시간 문제로 코드가 돌아가지 못할 수 있을 것으로 예상이 된다. 코드를 작성하면서 각 부분이 어떠한 역할을 하는지 제대로 확인하면서 코드를 작성하는 것을 연습해야겠다는 생각을 가졌다.


 

연휴 기간 동안 조원들이 각각 서로 다른 가설과 그룹화를 가지고 데이터 분석을 진행하다보니 방대한 양의 전처리 & 시각화 자료가 나와서 각자 어느 정도 정리를 하였다. 나는 연휴 기간 동안 진행해본 데이터 전처리 & 시각화를 토대로 개선 방향과 해결 방향으로서 사용될 수 있는 요소들을 자연스러운 흐름으로 이어갈 수 있도록 재정리하는 시간을 가졌다.

모든 조원의 자료를 가지고 자연스러운 흐름으로 이어가며 발표 시간을 맞춰 자료를 채택해야 하기에 어떠한 자료들을 가지고 가야할지 어려움을 느꼈다.

내가 가지고 있는 정보만을 가지고 진행하였을 때에는 아래와 같은 방식으로 진행할 수 있었다.

 

severity count sum mean
Critical 333 168455.25 505.871622
Minor 358 184166.97 514.432877
Moderate 309 155004.93 501.634078

심각도만을 비교하였을 때에는 심각도 간 평균 수리비의 차이가 거의 나타나지 않았다. 이는 심각도 자체보다 결함의 발생 빈도 수가 전체 수리비에 더 큰 영향을 미쳤다는 점을 보여주었다.

분기별로는 1분기 대비 2분기 평균 수리비는 소폭 감소하였지만, 월별 추이를 함께 확인했을 때 시계열적으로 뚜렷한 개선 흐름은 나타나지 않았다.

이에 따라 수리비에 실질적인 영향을 미치는 요인을 파악하기 위해 결함 위치를 중심으로 추가 분석을 진행하였다.

평균 수리비는 심각도보다 결함 위치(Defect_location)에 따라 더 큰 차이를 보였다.
Component: 대부분의 심각도에서 높은 평균 수리비를 가지고 있기에 교체나 수리가 복잡하고 고비용 공정이 필요하다는 것을 볼 수 있다.
Internal: Minor에서 특히 평균 수리비가 높게 나타난 것을 토대로 접근성 문제로 수리 난이도에 의해 평균 수리비가 높게 나타났다고 볼 수 있다.
Surface: 심각도와 상관없이 평균 수리비가 대부분 낮게 나타났다. 비교적 단순한 공정으로 처리 가능하다는 것을 볼 수 있다.
따라서, 결함 위치를 중심으로 보다 세밀하게 분석함으로써 수리비 영향 요인을 구체적으로 파악할 수 있을 것으로 판단된다.

추가적으로 결함 위치별 탐지 방식과 심각도 관계를 분석한 결과, 
Component 부품은 탐지 방식과 관계없이 구조적 특성상 수리비가 높게 유지되었다.
Internal 영역은 Manual Testing에서 비용이 급등하였다.
Surface 영역은 Automated Testing 과정에서 오탐지에 의한 불필요한 수리비 증가 가능성이 확인되었다. 
이는 결함의 "탐지 방식"이 결함 위치의 특성에 따라 상반된 비용 패턴을 만들어낸다는 점을 보여주며,
탐지 공정의 정밀도 개선과 내부 구조의 검사 효율화가 핵심 개선 과제로 도출된다.

 

이러한 점들을 토대로 어떠한 것들을 개선해야 할지 작성해보았다.

Component: 
심각도나 탐지 방식과 관계없이 수리비가 가장 높게 나타났다.
구조적 복잡성과 부품 교체 비용이 주된 원인이므로, 공정 개선보다는 부품 내구성 향상 및 조립 정밀도 개선에 초점이 필요하다.
Internal: 
접근성이 낮은 구조 특성상 수리 난이도가 높고, Manual Testing 시 수리비가 급증했다.
비접촉식 검사 기술(NDT) 또는 내시경 기반 자동 진단 장비 도입으로 내부 결함의 조기 탐지를 강화해야 함.
Surface: 
탐지 빈도가 높고 Automated Testing에서 Minor 수리비 급등 -> 오탐지 가능성
AI 기반 검사 알고리즘의 정밀도를 높여 오탐지를 감소시켜야 함.
Manual Testing은 센서 기반 자동 진단 시스템으로 전환하여 검사자의 주관적 판단에 따른 변동성을 최소화해야 함.
표면 공정 단계에서의 전처리 품질 강화(스크래치, 이물 방지 관리)도 병행이 필요함.

 

추가로, 개선 방향에 따라 진행하였을 때 볼 수 있는 해결 방향도 같이 찾을 수 있었다.

Component: 
조립 로봇의 주기적 교정 및 실시간 공차 피드백 시스템 구축, 용접 품질 자동 측정 장비 도입 -> 조립 불량률 감소, 평균 수리비 절감 
Internal: 
내시경 기반 비파괴 자동 진단 도입, 내부 보강재 품질 데이터 피드백 시스템 구축 -> 조기 결함 탐지, 수리 효율성 향상(조립 과정 이전에 발견 시 추후 결함 발견 시 사용되는 수리비 발생 방지)
Surface: 
AI 기반 검사 알고리즘 정밀도 향상(CNN 기반 오탐지 보정), Manual Testing을 센서 자동화 시스템으로 전환, 표면 전처리 공정 표준화 (스크래치 방지 등) -> 오탐지 감소, 불필요한 수리비 절감, 검사 효율 향상


✏️ 오늘의 핵심

중복되거나 불필요한 코드를 사용하면서 코드 구동 시간을 늘리지 않도록 코드를 작성하면서 각 부분이 어떠한 역할을 하는지 제대로 살펴보는 연습이 필요하다.

데이터 분석의 목적은 단순한 수치 비교가 아니라, 비즈니스적 의사결정으로 이어질 수 있는 원인 파악과 개선 제안이라는 점을 다시 한 번 실감했다.

즉, 인사이트를 ‘설득 가능한 이야기’로 구조화하는 것이 진짜 데이터 분석의 완성이다.


📌추가로 해야할 점

기초 프로젝트 

'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글

본캠프_5주차(수)_TIL  (0) 2025.10.15
본캠프_5주차(화)_TIL  (0) 2025.10.14
연휴(일)_TIL  (1) 2025.10.12
연휴(토)_TIL  (0) 2025.10.11
연휴(금)_TIL  (0) 2025.10.10