{
    "version": "https://jsonfeed.org/version/1",
    "title": "99JIK Blog",
    "home_page_url": "https://til.99jik.com/papers",
    "description": "99JIK Blog",
    "items": [
        {
            "id": "https://til.99jik.com/papers/Automated Generation of Test Scenarios for Autonomous Driving Using LLMs",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Automated Generation of Test Scenarios for Autonomous Driving Using LLMs</li>\n<li class=\"\"><strong>저자</strong>: Aaron Agyapong Danso, Ulrich Büker</li>\n<li class=\"\"><strong>소속</strong>: inIT—Institute Industrial IT, University of Applied Sciences and Arts Ostwestfalen-Lippe, Germany</li>\n<li class=\"\"><strong>게재지</strong>: Electronics 2025, 14(16), 3177 (MDPI, Editor's Choice)</li>\n<li class=\"\"><strong>출판일</strong>: 2025년 8월 10일</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.3390/electronics14163177\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://doi.org/10.3390/electronics14163177</a></li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"연구-개요\">연구 개요<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%97%B0%EA%B5%AC-%EA%B0%9C%EC%9A%94\" class=\"hash-link\" aria-label=\"연구 개요에 대한 직접 링크\" title=\"연구 개요에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<p>자율주행차(AV) 안전성 검증을 위한 <strong>Operational Design Domain(ODD)</strong> 기반 시뮬레이션 시나리오 자동 생성 연구. 대규모 언어모델(LLM)을 활용하여 텍스트 기반 ODD 설명을 CARLA 시뮬레이터에서 실행 가능한 ScenarioRunner 스크립트로 자동 변환하는 파이프라인을 제안한다.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"연구-배경-및-문제점\">연구 배경 및 문제점<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%97%B0%EA%B5%AC-%EB%B0%B0%EA%B2%BD-%EB%B0%8F-%EB%AC%B8%EC%A0%9C%EC%A0%90\" class=\"hash-link\" aria-label=\"연구 배경 및 문제점에 대한 직접 링크\" title=\"연구 배경 및 문제점에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"operational-design-domain-odd\">Operational Design Domain (ODD)<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#operational-design-domain-odd\" class=\"hash-link\" aria-label=\"Operational Design Domain (ODD)에 대한 직접 링크\" title=\"Operational Design Domain (ODD)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>정의</strong>: 자율주행 시스템이 설계된 운영 조건 집합 (환경, 지리적, 시간적 제약, 교통/도로 특성 등)</li>\n<li class=\"\"><strong>중요성</strong>: 자율주행 수준이 높아질수록 의사결정 책임이 인간에서 기계로 이전되어 ODD 범위 밖에서는 안전 보장 불가</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"기존-접근법의-한계\">기존 접근법의 한계<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EA%B8%B0%EC%A1%B4-%EC%A0%91%EA%B7%BC%EB%B2%95%EC%9D%98-%ED%95%9C%EA%B3%84\" class=\"hash-link\" aria-label=\"기존 접근법의 한계에 대한 직접 링크\" title=\"기존 접근법의 한계에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\"><strong>수작업 의존</strong>: 시뮬레이션 시나리오 생성이 노동집약적이고 시간 소모적</li>\n<li class=\"\"><strong>유연성 부족</strong>: 규칙 기반 시스템은 엣지 케이스(예기치 않은 보행자 행동, 갑작스러운 날씨 변화) 포착에 한계</li>\n<li class=\"\"><strong>확장성 문제</strong>: AV 기술 발전에 따라 ODD 범위가 지속 확대되어 지속적인 시나리오 업데이트 필요</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"제안-방법론\">제안 방법론<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%A0%9C%EC%95%88-%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"제안 방법론에 대한 직접 링크\" title=\"제안 방법론에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-odd-분해-체계-bsi-pas-1883-기반\">1. ODD 분해 체계 (BSI PAS 1883 기반)<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#1-odd-%EB%B6%84%ED%95%B4-%EC%B2%B4%EA%B3%84-bsi-pas-1883-%EA%B8%B0%EB%B0%98\" class=\"hash-link\" aria-label=\"1. ODD 분해 체계 (BSI PAS 1883 기반)에 대한 직접 링크\" title=\"1. ODD 분해 체계 (BSI PAS 1883 기반)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>ODD를 세 가지 핵심 구성 요소로 분류:</p>\n<table><thead><tr><th>그룹</th><th>설명</th><th>예시</th></tr></thead><tbody><tr><td><strong>Environmental</strong></td><td>환경 이상으로 AV 성능에 영향</td><td>폭설, 짙은 안개, 도로 장애물</td></tr><tr><td><strong>Scenery</strong></td><td>공간적으로 고정된 요소 (상태는 변화 가능)</td><td>차선 구성, 표지판, 공사 구역, 인프라</td></tr><tr><td><strong>Dynamic</strong></td><td>이동 가능한 요소</td><td>교통 참여자, 자차, 보행자, 자전거</td></tr></tbody></table>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-llm-기반-파이프라인-tree-of-thoughts--chain-of-thought\">2. LLM 기반 파이프라인 (Tree of Thoughts + Chain-of-Thought)<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#2-llm-%EA%B8%B0%EB%B0%98-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-tree-of-thoughts--chain-of-thought\" class=\"hash-link\" aria-label=\"2. LLM 기반 파이프라인 (Tree of Thoughts + Chain-of-Thought)에 대한 직접 링크\" title=\"2. LLM 기반 파이프라인 (Tree of Thoughts + Chain-of-Thought)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>4단계 LLM 인스턴스로 구성된 파이프라인:</p>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-initial-tree\">1) Initial Tree<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#1-initial-tree\" class=\"hash-link\" aria-label=\"1) Initial Tree에 대한 직접 링크\" title=\"1) Initial Tree에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\">LLM에 ODD 개념 소개 및 예시 시나리오 생성 유도</li>\n<li class=\"\">ODD 시나리오 그룹별 분류 패턴 제공</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-tree-llm\">2) Tree-LLM<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#2-tree-llm\" class=\"hash-link\" aria-label=\"2) Tree-LLM에 대한 직접 링크\" title=\"2) Tree-LLM에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\">Initial Tree 기반으로 세 ODD 그룹을 모두 포함하는 종합 시나리오 생성</li>\n<li class=\"\">ScenarioRunner 코드 생성 요청 → <strong>Diverse Tree</strong> 산출 (실행 불가능할 수 있음)</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"3-red-llm\">3) Red-LLM<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#3-red-llm\" class=\"hash-link\" aria-label=\"3) Red-LLM에 대한 직접 링크\" title=\"3) Red-LLM에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\">Red teaming에서 영감을 받은 검증 단계</li>\n<li class=\"\">Few-shot 프롬프팅으로 Diverse Tree의 오류 식별 및 수정 → <strong>Simulatable Tree</strong> 산출</li>\n<li class=\"\">올바른 ScenarioRunner 코드, CARLA 에셋, 오류 패턴 제공</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"4-augmented-llm\">4) Augmented-LLM<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#4-augmented-llm\" class=\"hash-link\" aria-label=\"4) Augmented-LLM에 대한 직접 링크\" title=\"4) Augmented-LLM에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\">Red-LLM의 반복적 학습으로 향상된 최종 인스턴스</li>\n<li class=\"\">CARLA에서 직접 실행 가능한 고품질 코드 생성</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"3-프롬프트-엔지니어링-전략\">3. 프롬프트 엔지니어링 전략<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#3-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%A0%84%EB%9E%B5\" class=\"hash-link\" aria-label=\"3. 프롬프트 엔지니어링 전략에 대한 직접 링크\" title=\"3. 프롬프트 엔지니어링 전략에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>시나리오 프롬프팅</strong>: ODD 정의 → 구성요소 설명 → 추상화된 시나리오 형식 제공</li>\n<li class=\"\"><strong>코드 생성 프롬프팅</strong>: ODD 파라미터를 CARLA 코드 요소로 매핑<!-- -->\n<ul>\n<li class=\"\">Weather → <code>carla.WeatherParameters()</code></li>\n<li class=\"\">Actors → <code>carla.Vehicle()</code>/<code>carla.Walker()</code></li>\n</ul>\n</li>\n<li class=\"\"><strong>정제 프롬프팅</strong>: 문법 오류, API 호환성, 이벤트 시퀀스 논리적 정합성 검증 및 수정</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-설계\">실험 설계<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%8B%A4%ED%97%98-%EC%84%A4%EA%B3%84\" class=\"hash-link\" aria-label=\"실험 설계에 대한 직접 링크\" title=\"실험 설계에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>LLM</strong>: Pre-trained LLaMA 3</li>\n<li class=\"\"><strong>시뮬레이터</strong>: CARLA 0.9.13 및 0.9.15</li>\n<li class=\"\"><strong>실행 환경</strong>: ScenarioRunner (Python 3.7 API), Jupyter Notebook</li>\n<li class=\"\"><strong>평가 시나리오</strong>: 8개 (비상 제동, 차선 차단, 도로 공사, 차선 합류, 추월 등)</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"파이프라인-vs-비파이프라인-비교-n8-paired-t-test-α005\">파이프라인 vs. 비파이프라인 비교 (n=8, paired t-test, α=0.05)<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-vs-%EB%B9%84%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EB%B9%84%EA%B5%90-n8-paired-t-test-%CE%B1005\" class=\"hash-link\" aria-label=\"파이프라인 vs. 비파이프라인 비교 (n=8, paired t-test, α=0.05)에 대한 직접 링크\" title=\"파이프라인 vs. 비파이프라인 비교 (n=8, paired t-test, α=0.05)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<table><thead><tr><th>메트릭</th><th>Baseline (Mean±SD)</th><th>Pipeline (Mean±SD)</th><th>개선율</th><th>p-값</th></tr></thead><tbody><tr><td><strong>시나리오 정확도</strong></td><td>30±4%</td><td>50±5%</td><td><strong>+66.7%</strong></td><td>0.004</td></tr><tr><td><strong>논리적 일관성</strong> (이벤트 시퀀싱)</td><td>20±6%</td><td>50±5%</td><td><strong>+150%</strong></td><td>0.002</td></tr><tr><td><strong>문법/API 오류</strong> (스크립트당)</td><td>8±2개</td><td>5±1.5개</td><td><strong>-37.5%</strong></td><td>0.015</td></tr><tr><td><strong>실행 성공률</strong> (수동 수정 없이)</td><td>40±5%</td><td>60±4%</td><td><strong>+50%</strong></td><td>0.008</td></tr><tr><td><strong>디버깅 시간</strong></td><td>10±2분</td><td>3±1분</td><td><strong>-70%</strong></td><td>0.002</td></tr><tr><td><strong>차량 행동 정확도</strong></td><td>5±3%</td><td>20±4%</td><td><strong>+300%</strong></td><td>0.001</td></tr></tbody></table>\n<p>→ <strong>모든 메트릭에서 통계적으로 유의미한 개선</strong> (p &lt; 0.05)</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"자동화-수준\">자동화 수준<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%9E%90%EB%8F%99%ED%99%94-%EC%88%98%EC%A4%80\" class=\"hash-link\" aria-label=\"자동화 수준에 대한 직접 링크\" title=\"자동화 수준에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>LLM 생성 코드 비율</strong>: 90% (LLM) vs. 10% (인간 개입 - 주로 디버깅 및 CARLA 에셋 문제)</li>\n<li class=\"\">파이프라인 버전이 올라갈수록 평균 프롬프트 시도 횟수와 오류 수가 감소</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"주요-기여도\">주요 기여도<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%A3%BC%EC%9A%94-%EA%B8%B0%EC%97%AC%EB%8F%84\" class=\"hash-link\" aria-label=\"주요 기여도에 대한 직접 링크\" title=\"주요 기여도에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>ODD-to-Simulation 자동화 파이프라인</strong>: 텍스트 기반 ODD 설명을 CARLA 실행 가능 코드로 변환하는 체계적 프레임워크</li>\n<li class=\"\"><strong>ToT + CoT 프롬프팅 전략</strong>: 복잡한 시나리오 생성을 구조화된 추론 단계로 분해하여 정확도 향상</li>\n<li class=\"\"><strong>Red teaming 기반 정제</strong>: LLM 출력 품질을 반복적으로 개선하는 Red-LLM 인스턴스 도입</li>\n<li class=\"\"><strong>ODD 3분류 체계 활용</strong>: Environmental, Scenery, Dynamic 그룹 분해를 통한 체계적 시나리오 구성</li>\n<li class=\"\"><strong>수작업 감소</strong>: 시뮬레이션 시나리오 생성 수동 노력 크게 감소 (디버깅 시간 70% 감소)</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"한계점\">한계점<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%ED%95%9C%EA%B3%84%EC%A0%90\" class=\"hash-link\" aria-label=\"한계점에 대한 직접 링크\" title=\"한계점에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>동적 요소의 낮은 정확도</strong>: 차량 행동 정확도가 파이프라인 적용 후에도 20%에 불과<!-- -->\n<ul>\n<li class=\"\">보행자, 자전거, 응급차량의 타이밍/동기화 문제 지속</li>\n</ul>\n</li>\n<li class=\"\"><strong>완전 자동화 미달성</strong>: 여전히 10%의 인간 개입 필요 (스폰 포인트 조정, 누락 에셋 보상 등)</li>\n<li class=\"\"><strong>절대적 성능 한계</strong>: 파이프라인 적용 후에도 시나리오 정확도 50%, 실행 성공률 60%에 그침</li>\n<li class=\"\"><strong>소규모 실험</strong>: 8개 시나리오만 평가 - 일반화 가능성에 대한 추가 검증 필요</li>\n<li class=\"\"><strong>CARLA 플랫폼 종속</strong>: 특정 버전의 에셋 가용성에 따라 실행 결과가 달라짐</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"향후-연구-방향\">향후 연구 방향<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%ED%96%A5%ED%9B%84-%EC%97%B0%EA%B5%AC-%EB%B0%A9%ED%96%A5\" class=\"hash-link\" aria-label=\"향후 연구 방향에 대한 직접 링크\" title=\"향후 연구 방향에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>데이터 기반 접근법</strong>: 실제 ODD 설명-CARLA 코드 쌍으로 구성된 큐레이션 데이터셋으로 LLM fine-tuning</li>\n<li class=\"\"><strong>프롬프트 엔지니어링 최적화</strong>: 생성 스크립트의 일관성과 정확도 향상</li>\n<li class=\"\"><strong>동적 요소 오류의 체계적 해결</strong>: 타이밍/동기화 문제의 근본 원인 분석 및 해결</li>\n<li class=\"\"><strong>시뮬레이션 피드백 통합</strong>: 시뮬레이션 결과를 fine-tuning 프로세스에 반영하는 반복적 정제 루프</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"개인적-견해\">개인적 견해<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EA%B0%9C%EC%9D%B8%EC%A0%81-%EA%B2%AC%ED%95%B4\" class=\"hash-link\" aria-label=\"개인적 견해에 대한 직접 링크\" title=\"개인적 견해에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<p>LLM을 활용한 자율주행 시뮬레이션 시나리오 자동 생성이라는 실용적 문제에 체계적인 파이프라인을 제안한 의미 있는 연구다. 정적/환경적 요소에 대해서는 효과성을 입증했으나, 동적 요소 처리의 한계가 명확하다. 수작업 감소와 구조화된 생성 프로세스 측면에서 가치가 있으며, fine-tuning 기반 접근법과의 결합을 통한 발전 가능성이 크다.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"참고-자료\">참고 자료<a href=\"https://til.99jik.com/papers/Automated%20Generation%20of%20Test%20Scenarios%20for%20Autonomous%20Driving%20Using%20LLMs#%EC%B0%B8%EA%B3%A0-%EC%9E%90%EB%A3%8C\" class=\"hash-link\" aria-label=\"참고 자료에 대한 직접 링크\" title=\"참고 자료에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://doi.org/10.3390/electronics14163177\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">원문 논문</a></li>\n<li class=\"\"><a href=\"https://carla.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">CARLA 시뮬레이터</a></li>\n<li class=\"\"><a href=\"https://github.com/carla-simulator/scenario_runner\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">ScenarioRunner</a></li>\n</ul>",
            "url": "https://til.99jik.com/papers/Automated Generation of Test Scenarios for Autonomous Driving Using LLMs",
            "title": "Automated Generation of Test Scenarios for Autonomous Driving Using LLMs",
            "summary": "논문 정보",
            "date_modified": "2026-03-27T07:23:11.000Z",
            "author": {
                "name": "Aaron Agyapong Danso"
            },
            "tags": [
                "Large Language Model",
                "Autonomous Driving",
                "Test Scenario Generation",
                "CARLA Simulation",
                "ScenarioRunner",
                "Operational Design Domain",
                "Tree of Thoughts",
                "Chain-of-Thought",
                "Prompt Engineering",
                "Red Teaming"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Behavior Trees and State Machines in Robotics Applications",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Behavior Trees and State Machines in Robotics Applications</li>\n<li class=\"\"><strong>저자</strong>: Razan Ghzouli, Thorsten Berger (교신저자), Einar Broch Johnsen, Andrzej Wąsowski, Swaib Dragule</li>\n<li class=\"\"><strong>소속</strong>: Chalmers University of Technology, Ruhr University Bochum, University of Oslo, IT University of Copenhagen</li>\n<li class=\"\"><strong>게재지</strong>: IEEE Transactions on Software Engineering, Vol. 49, No. 9, September 2023</li>\n<li class=\"\"><strong>DOI</strong>: 10.1109/TSE.2023.3269081</li>\n<li class=\"\"><strong>확장 연구</strong>: SLE 2020에서 발표된 행동 트리 연구를 상태 머신까지 포함하여 확장한 저널 논문</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"연구-개요\">연구 개요<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%97%B0%EA%B5%AC-%EA%B0%9C%EC%9A%94\" class=\"hash-link\" aria-label=\"연구 개요에 대한 직접 링크\" title=\"연구 개요에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<p>자율 로봇의 <strong>미션(mission)</strong> 모델링을 위한 행동 트리(Behavior Trees)와 상태 머신(State Machines)의 실제 사용 현황을 체계적으로 비교 분석한 실증 연구. 5개 DSL의 언어 개념, 구현 설계, 오픈소스 ROS 프로젝트에서의 실제 사용 패턴을 소프트웨어 언어 엔지니어링 관점에서 조사했다.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"연구-배경\">연구 배경<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%97%B0%EA%B5%AC-%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"연구 배경에 대한 직접 링크\" title=\"연구 배경에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"로봇-행동-모델링의-필요성\">로봇 행동 모델링의 필요성<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EB%A1%9C%EB%B4%87-%ED%96%89%EB%8F%99-%EB%AA%A8%EB%8D%B8%EB%A7%81%EC%9D%98-%ED%95%84%EC%9A%94%EC%84%B1\" class=\"hash-link\" aria-label=\"로봇 행동 모델링의 필요성에 대한 직접 링크\" title=\"로봇 행동 모델링의 필요성에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>미션</strong>: 개별 스킬(skill)을 조합한 복잡한 로봇 행동</li>\n<li class=\"\"><strong>스킬</strong>: 센서/액추에이터 제어 등 저수준으로 프로그래밍</li>\n<li class=\"\"><strong>조정(Coordination)</strong>: 스킬을 조합하여 미션을 형성하는 고수준 표현</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"전통적-접근법-vs-신흥-접근법\">전통적 접근법 vs. 신흥 접근법<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%A0%84%ED%86%B5%EC%A0%81-%EC%A0%91%EA%B7%BC%EB%B2%95-vs-%EC%8B%A0%ED%9D%A5-%EC%A0%91%EA%B7%BC%EB%B2%95\" class=\"hash-link\" aria-label=\"전통적 접근법 vs. 신흥 접근법에 대한 직접 링크\" title=\"전통적 접근법 vs. 신흥 접근법에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>상태 머신</strong>: 수십 년간 로봇 행동 모델링의 표준 언어</li>\n<li class=\"\"><strong>행동 트리</strong>: 원래 컴퓨터 게임 NPC용으로 개발, 최근 로봇 공학에서 주목<!-- -->\n<ul>\n<li class=\"\">모듈성, 유연성, 코드 재사용 측면에서 장점 주장</li>\n<li class=\"\">복잡한 미션에서 상태 머신보다 유지보수성 우수</li>\n</ul>\n</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"연구-질문\">연구 질문<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%97%B0%EA%B5%AC-%EC%A7%88%EB%AC%B8\" class=\"hash-link\" aria-label=\"연구 질문에 대한 직접 링크\" title=\"연구 질문에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>RQ1</strong>: 행동 트리와 상태 머신의 라이브러리 구현에서 어떤 모델링 개념이 제공되는가?</li>\n<li class=\"\"><strong>RQ2</strong>: 이러한 언어(라이브러리)는 실제로 어떻게 엔지니어링되는가?</li>\n<li class=\"\"><strong>RQ3</strong>: 행동 트리와 상태 머신 모델이 로보틱스 프로젝트에서 어떻게 사용되는가?</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"연구-방법론\">연구 방법론<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%97%B0%EA%B5%AC-%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"연구 방법론에 대한 직접 링크\" title=\"연구 방법론에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-dsl-식별-및-분석-rq1\">1. DSL 식별 및 분석 (RQ1)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#1-dsl-%EC%8B%9D%EB%B3%84-%EB%B0%8F-%EB%B6%84%EC%84%9D-rq1\" class=\"hash-link\" aria-label=\"1. DSL 식별 및 분석 (RQ1)에 대한 직접 링크\" title=\"1. DSL 식별 및 분석 (RQ1)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\">GitHub 검색과 ROS 위키를 통해 12개 DSL 식별</li>\n<li class=\"\"><strong>선정 기준</strong>: 문서화, 유지보수 상태(2019년 이후 커밋), ROS 지원, 마이닝된 프로젝트 존재</li>\n<li class=\"\"><strong>최종 5개 DSL</strong> 심층 분석:<!-- -->\n<ul>\n<li class=\"\"><strong>행동 트리</strong>: BehaviorTree.CPP (C++), PyTrees/PyTrees_ros (Python)</li>\n<li class=\"\"><strong>상태 머신</strong>: SMACH (Python), FlexBe (Python)</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-오픈소스-프로젝트-마이닝-rq3\">2. 오픈소스 프로젝트 마이닝 (RQ3)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#2-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%A7%88%EC%9D%B4%EB%8B%9D-rq3\" class=\"hash-link\" aria-label=\"2. 오픈소스 프로젝트 마이닝 (RQ3)에 대한 직접 링크\" title=\"2. 오픈소스 프로젝트 마이닝 (RQ3)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>마이닝</strong>: GitHub API를 이용한 코드 검색으로 프로젝트 수집</li>\n<li class=\"\"><strong>6단계 필터링</strong>: 포크 제외 → 중복 제거 → 도구 리포지토리 제외 → 과제/튜토리얼 키워드 필터링</li>\n<li class=\"\"><strong>샘플링</strong>: 행동 트리 75개, 상태 머신 75개 모델을 무작위 샘플링하여 총 150개 모델(43개 프로젝트) 분석</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"핵심-결과\">핵심 결과<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%ED%95%B5%EC%8B%AC-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"핵심 결과에 대한 직접 링크\" title=\"핵심 결과에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-언어-개념-비교-rq1\">1. 언어 개념 비교 (RQ1)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#1-%EC%96%B8%EC%96%B4-%EA%B0%9C%EB%85%90-%EB%B9%84%EA%B5%90-rq1\" class=\"hash-link\" aria-label=\"1. 언어 개념 비교 (RQ1)에 대한 직접 링크\" title=\"1. 언어 개념 비교 (RQ1)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"행동-트리-개념\">행동 트리 개념<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%ED%96%89%EB%8F%99-%ED%8A%B8%EB%A6%AC-%EA%B0%9C%EB%85%90\" class=\"hash-link\" aria-label=\"행동 트리 개념에 대한 직접 링크\" title=\"행동 트리 개념에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>실행 노드</strong>: 액션(행동 실행), 조건(Boolean 판정)</li>\n<li class=\"\"><strong>복합 노드</strong>: Sequence(순차), Selector(선택), Parallel(병렬), Decorator(장식)</li>\n<li class=\"\"><strong>실행 의미론</strong>: 시간 기반(time-triggered), 틱(tick) 메커니즘으로 주기적 트리 순회</li>\n<li class=\"\"><strong>데이터 공유</strong>: Blackboard 패턴 (전역 키-값 저장소)</li>\n<li class=\"\"><strong>상태값</strong>: success, failure, running</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"상태-머신-개념\">상태 머신 개념<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%83%81%ED%83%9C-%EB%A8%B8%EC%8B%A0-%EA%B0%9C%EB%85%90\" class=\"hash-link\" aria-label=\"상태 머신 개념에 대한 직접 링크\" title=\"상태 머신 개념에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>기본 요소</strong>: 상태(state), 전이(transition), 액션(action)</li>\n<li class=\"\"><strong>실행 의미론</strong>: 이벤트 기반(event-triggered), 반응형</li>\n<li class=\"\"><strong>데이터 공유</strong>: UserData (로컬 범위 키-값 딕셔너리)</li>\n<li class=\"\"><strong>컨테이너</strong>: 계층적 중첩 지원, 제어 흐름 컨테이너</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"주요-유사점과-차이점\">주요 유사점과 차이점<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%A3%BC%EC%9A%94-%EC%9C%A0%EC%82%AC%EC%A0%90%EA%B3%BC-%EC%B0%A8%EC%9D%B4%EC%A0%90\" class=\"hash-link\" aria-label=\"주요 유사점과 차이점에 대한 직접 링크\" title=\"주요 유사점과 차이점에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<table><thead><tr><th>측면</th><th>행동 트리</th><th>상태 머신</th></tr></thead><tbody><tr><td><strong>프로그래밍 모델</strong></td><td>동기/비동기, 시간 기반</td><td>비동기, 이벤트 기반</td></tr><tr><td><strong>점프(goto)</strong></td><td>미지원 (트리 순회만)</td><td>지원</td></tr><tr><td><strong>개방성</strong></td><td>사용자 확장 기대</td><td>사용자 확장 기대</td></tr><tr><td><strong>동시성</strong></td><td>인터리빙, 코루틴</td><td>인터리빙, Python 스레딩</td></tr><tr><td><strong>반응성</strong></td><td>높은 빈도 실행으로 시뮬레이션</td><td>FlexBe에서 직접 지원</td></tr></tbody></table>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-dsl-구현-특성-rq2\">2. DSL 구현 특성 (RQ2)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#2-dsl-%EA%B5%AC%ED%98%84-%ED%8A%B9%EC%84%B1-rq2\" class=\"hash-link\" aria-label=\"2. DSL 구현 특성 (RQ2)에 대한 직접 링크\" title=\"2. DSL 구현 특성 (RQ2)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"behaviortreecpp\">BehaviorTree.CPP<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#behaviortreecpp\" class=\"hash-link\" aria-label=\"BehaviorTree.CPP에 대한 직접 링크\" title=\"BehaviorTree.CPP에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>타입</strong>: C++ 라이브러리, <strong>외부 DSL</strong> (XML + Groot GUI)</li>\n<li class=\"\"><strong>특징</strong>: 그래픽 편집기 및 런타임 모니터링, 관심사 분리</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"pytrees_ros\">PyTrees_ros<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#pytrees_ros\" class=\"hash-link\" aria-label=\"PyTrees_ros에 대한 직접 링크\" title=\"PyTrees_ros에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>타입</strong>: Python 라이브러리, <strong>내부 DSL</strong></li>\n<li class=\"\"><strong>특징</strong>: GUI 없음, 코드에서 직접 모델 구성</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"smach\">SMACH<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#smach\" class=\"hash-link\" aria-label=\"SMACH에 대한 직접 링크\" title=\"SMACH에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>타입</strong>: Python 라이브러리, <strong>내부 DSL</strong></li>\n<li class=\"\"><strong>특징</strong>: smach_viewer로 디버깅 가능 (구성 불가)</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"flexbe\">FlexBe<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#flexbe\" class=\"hash-link\" aria-label=\"FlexBe에 대한 직접 링크\" title=\"FlexBe에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>타입</strong>: <strong>외부 DSL</strong> (FlexBE App GUI)</li>\n<li class=\"\"><strong>특징</strong>: MDE 기법 활용, 그래픽 모델에서 Python 코드 반자동 생성</li>\n</ul>\n<p><strong>핵심 관찰</strong>: GUI 지원 DSL에서 내장 언어 구조 활용도가 더 높음</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"3-사용-현황-분석-rq3\">3. 사용 현황 분석 (RQ3)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#3-%EC%82%AC%EC%9A%A9-%ED%98%84%ED%99%A9-%EB%B6%84%EC%84%9D-rq3\" class=\"hash-link\" aria-label=\"3. 사용 현황 분석 (RQ3)에 대한 직접 링크\" title=\"3. 사용 현황 분석 (RQ3)에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"인기도-추이\">인기도 추이<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%9D%B8%EA%B8%B0%EB%8F%84-%EC%B6%94%EC%9D%B4\" class=\"hash-link\" aria-label=\"인기도 추이에 대한 직접 링크\" title=\"인기도 추이에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>2018년 이후 행동 트리 급성장</strong>: 2021년에 BehaviorTree.CPP와 PyTrees 사용이 2018년 대비 <strong>약 10배 증가</strong></li>\n<li class=\"\"><strong>주요 원인</strong>: ROS 2의 Navigation 2 스택이 행동 트리를 핵심 컴포넌트로 채택</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"최종-마이닝-데이터\">최종 마이닝 데이터<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%B5%9C%EC%A2%85-%EB%A7%88%EC%9D%B4%EB%8B%9D-%EB%8D%B0%EC%9D%B4%ED%84%B0\" class=\"hash-link\" aria-label=\"최종 마이닝 데이터에 대한 직접 링크\" title=\"최종 마이닝 데이터에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>상태 머신</strong>: 620개 프로젝트, 2,507개 모델</li>\n<li class=\"\"><strong>행동 트리</strong>: 169개 프로젝트, 658개 모델</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-구조-특성\">모델 구조 특성<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EB%AA%A8%EB%8D%B8-%EA%B5%AC%EC%A1%B0-%ED%8A%B9%EC%84%B1\" class=\"hash-link\" aria-label=\"모델 구조 특성에 대한 직접 링크\" title=\"모델 구조 특성에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<table><thead><tr><th>메트릭</th><th>행동 트리</th><th>상태 머신</th></tr></thead><tbody><tr><td><strong>평균 모델 크기</strong></td><td>26 노드</td><td>9 상태</td></tr><tr><td><strong>평균 깊이/중첩</strong></td><td>5</td><td>1</td></tr></tbody></table>\n<p><strong>핵심 관찰</strong>: 개발자들은 두 모델 모두 <strong>얕고 적당한 크기</strong>로 유지하는 경향</p>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"복합-노드-사용-비율-행동-트리\">복합 노드 사용 비율 (행동 트리)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EB%B3%B5%ED%95%A9-%EB%85%B8%EB%93%9C-%EC%82%AC%EC%9A%A9-%EB%B9%84%EC%9C%A8-%ED%96%89%EB%8F%99-%ED%8A%B8%EB%A6%AC\" class=\"hash-link\" aria-label=\"복합 노드 사용 비율 (행동 트리)에 대한 직접 링크\" title=\"복합 노드 사용 비율 (행동 트리)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<table><thead><tr><th>노드 타입</th><th>사용 비율</th></tr></thead><tbody><tr><td><strong>Sequence</strong></td><td>56%</td></tr><tr><td><strong>Selector</strong></td><td>21%</td></tr><tr><td><strong>Decorator</strong></td><td>16%</td></tr><tr><td><strong>Parallel</strong></td><td>7%</td></tr></tbody></table>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"4-재사용-패턴\">4. 재사용 패턴<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#4-%EC%9E%AC%EC%82%AC%EC%9A%A9-%ED%8C%A8%ED%84%B4\" class=\"hash-link\" aria-label=\"4. 재사용 패턴에 대한 직접 링크\" title=\"4. 재사용 패턴에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>3가지 재사용 패턴 식별:</p>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-모델-내-참조-intra-model-referencing\">1) 모델 내 참조 (Intra-model referencing)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#1-%EB%AA%A8%EB%8D%B8-%EB%82%B4-%EC%B0%B8%EC%A1%B0-intra-model-referencing\" class=\"hash-link\" aria-label=\"1) 모델 내 참조 (Intra-model referencing)에 대한 직접 링크\" title=\"1) 모델 내 참조 (Intra-model referencing)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>행동 트리에서 주로 사용</strong>: 스킬 수준 30%, 태스크 수준 18%</li>\n<li class=\"\"><strong>활용</strong>: 서브 트리를 정의하고 매개변수만 변경하여 재사용</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-복제-후-수정-clone-and-own\">2) 복제 후 수정 (Clone-and-own)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#2-%EB%B3%B5%EC%A0%9C-%ED%9B%84-%EC%88%98%EC%A0%95-clone-and-own\" class=\"hash-link\" aria-label=\"2) 복제 후 수정 (Clone-and-own)에 대한 직접 링크\" title=\"2) 복제 후 수정 (Clone-and-own)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>태스크 수준 재사용의 주요 패턴</strong>: 행동 트리 48%, 상태 머신 29%</li>\n<li class=\"\"><strong>활용</strong>: 유사한 미션의 모델을 복제 후 일부 수정</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"3-모델-간-참조-inter-model-referencing\">3) 모델 간 참조 (Inter-model referencing)<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#3-%EB%AA%A8%EB%8D%B8-%EA%B0%84-%EC%B0%B8%EC%A1%B0-inter-model-referencing\" class=\"hash-link\" aria-label=\"3) 모델 간 참조 (Inter-model referencing)에 대한 직접 링크\" title=\"3) 모델 간 참조 (Inter-model referencing)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>스킬 수준 재사용의 주요 패턴</strong>: 상태 머신 67%, 행동 트리 56%</li>\n<li class=\"\"><strong>활용</strong>: 외부 파일에 스킬을 정의하고 임포트하여 사용</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"주요-기여\">주요 기여<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%A3%BC%EC%9A%94-%EA%B8%B0%EC%97%AC\" class=\"hash-link\" aria-label=\"주요 기여에 대한 직접 링크\" title=\"주요 기여에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>체계적 비교 분석</strong>: 5개 DSL의 언어 개념, 구현 설계, 실제 사용을 소프트웨어 언어 엔지니어링 관점에서 최초 비교</li>\n<li class=\"\"><strong>대규모 오픈소스 마이닝</strong>: GitHub에서 로봇 프로젝트를 체계적으로 마이닝하여 실제 사용 현황 파악</li>\n<li class=\"\"><strong>재사용 패턴 식별</strong>: 3가지 재사용 패턴과 그 사용 방식 분석</li>\n<li class=\"\"><strong>GUI 효과 발견</strong>: 시각화 도구가 언어 구조 활용도에 미치는 영향 발견</li>\n<li class=\"\"><strong>공개 데이터셋</strong>: 150개 행동 모델을 포함한 데이터셋 공개</li>\n<li class=\"\"><strong>트렌드 분석</strong>: 행동 트리의 급속한 성장과 ROS 2 Navigation 2의 영향 확인</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"핵심-관찰사항\">핵심 관찰사항<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%ED%95%B5%EC%8B%AC-%EA%B4%80%EC%B0%B0%EC%82%AC%ED%95%AD\" class=\"hash-link\" aria-label=\"핵심 관찰사항에 대한 직접 링크\" title=\"핵심 관찰사항에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"언어-설계-관점\">언어 설계 관점<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%96%B8%EC%96%B4-%EC%84%A4%EA%B3%84-%EA%B4%80%EC%A0%90\" class=\"hash-link\" aria-label=\"언어 설계 관점에 대한 직접 링크\" title=\"언어 설계 관점에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ol>\n<li class=\"\"><strong>도메인 적응</strong>: 두 언어 모두 로봇 공학의 요구에서 비롯된 개념들을 DSL에 반영</li>\n<li class=\"\"><strong>개방성</strong>: 모든 DSL이 고정 모델을 강제하지 않고 프로젝트별 확장 허용/기대</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"gui-vs-코드-기반-개발\">GUI vs. 코드 기반 개발<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#gui-vs-%EC%BD%94%EB%93%9C-%EA%B8%B0%EB%B0%98-%EA%B0%9C%EB%B0%9C\" class=\"hash-link\" aria-label=\"GUI vs. 코드 기반 개발에 대한 직접 링크\" title=\"GUI vs. 코드 기반 개발에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ol start=\"3\">\n<li class=\"\"><strong>시각화의 중요성</strong>: GUI가 있는 DSL에서 모델 구성과 모니터링에 대한 이해도 향상, 코드 재사용 촉진</li>\n<li class=\"\"><strong>구조 누출</strong>: 내부 DSL에서는 DSL 구조가 일반 프로그래밍 언어 구조로 우회되는 경향</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실제-사용-패턴\">실제 사용 패턴<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%8B%A4%EC%A0%9C-%EC%82%AC%EC%9A%A9-%ED%8C%A8%ED%84%B4\" class=\"hash-link\" aria-label=\"실제 사용 패턴에 대한 직접 링크\" title=\"실제 사용 패턴에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ol start=\"5\">\n<li class=\"\"><strong>단순함 선호</strong>: 개발자들이 이해가능성을 위해 얕고 적당한 크기의 모델 선호</li>\n<li class=\"\"><strong>재사용의 이중성</strong>: 스킬 재사용은 모델 간 참조, 태스크 재사용은 복제 후 수정이 주류</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"한계점\">한계점<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%ED%95%9C%EA%B3%84%EC%A0%90\" class=\"hash-link\" aria-label=\"한계점에 대한 직접 링크\" title=\"한계점에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>ROS 생태계 편향</strong>: ROS 기반 프로젝트만 분석하여 다른 로봇 플랫폼의 사용 패턴 누락</li>\n<li class=\"\"><strong>언어별 불균형</strong>: 상태 머신 프로젝트가 행동 트리보다 4배 많아 비교에 편향 가능성</li>\n<li class=\"\"><strong>품질 평가 부재</strong>: 생성된 모델의 품질이나 정확성에 대한 평가 없음</li>\n<li class=\"\"><strong>정적 분석</strong>: 런타임 동작이나 성능 특성은 분석하지 않음</li>\n<li class=\"\"><strong>소규모 샘플</strong>: 150개 모델(43개 프로젝트)로 일반화에 한계</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"향후-연구-방향\">향후 연구 방향<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%ED%96%A5%ED%9B%84-%EC%97%B0%EA%B5%AC-%EB%B0%A9%ED%96%A5\" class=\"hash-link\" aria-label=\"향후 연구 방향에 대한 직접 링크\" title=\"향후 연구 방향에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\"><strong>언어 개선</strong>: 각 언어의 장점을 상호 벤치마킹하여 설계 개선</li>\n<li class=\"\"><strong>도구 발전</strong>: 모델 기반 설계 개념과 언어 설계 원칙을 더 많은 도구에 적용</li>\n<li class=\"\"><strong>분석 기법</strong>: 행동 모델을 위한 분석 기법과 도구 개발</li>\n<li class=\"\"><strong>성능 연구</strong>: 런타임 성능과 확장성 비교 연구</li>\n</ol>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"개인적-견해\">개인적 견해<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EA%B0%9C%EC%9D%B8%EC%A0%81-%EA%B2%AC%ED%95%B4\" class=\"hash-link\" aria-label=\"개인적 견해에 대한 직접 링크\" title=\"개인적 견해에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<p>로봇 공학에서 행동 모델링 언어의 <strong>실제 사용 현황</strong>을 체계적으로 분석한 최초의 대규모 실증 연구다. 행동 트리의 급속한 성장과 GUI 기반 도구의 효과를 정량적으로 입증했으며, 소프트웨어 언어 엔지니어링과 로봇 공학 커뮤니티 모두에게 유용한 통찰을 제공한다. 특히 <strong>실무 개발자들의 실제 사용 패턴</strong>을 데이터로 뒷받침한 점에서 학술적 가치가 높다.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"참고-자료\">참고 자료<a href=\"https://til.99jik.com/papers/Behavior%20Trees%20and%20State%20Machines%20in%20Robotics%20Applications#%EC%B0%B8%EA%B3%A0-%EC%9E%90%EB%A3%8C\" class=\"hash-link\" aria-label=\"참고 자료에 대한 직접 링크\" title=\"참고 자료에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://doi.org/10.1109/TSE.2023.3269081\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">원문 논문</a></li>\n<li class=\"\"><a href=\"https://zenodo.org/record/4279067\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">공개 데이터셋</a></li>\n<li class=\"\"><a href=\"https://behaviortree.github.io/BehaviorTree.CPP/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">BehaviorTree.CPP</a></li>\n<li class=\"\"><a href=\"https://py-trees.readthedocs.io/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">PyTrees</a></li>\n<li class=\"\"><a href=\"http://wiki.ros.org/smach\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">SMACH</a></li>\n<li class=\"\"><a href=\"http://flexbe.github.io/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">FlexBE</a></li>\n</ul>",
            "url": "https://til.99jik.com/papers/Behavior Trees and State Machines in Robotics Applications",
            "title": "Behavior Trees and State Machines in Robotics Applications",
            "summary": "논문 정보",
            "date_modified": "2026-03-27T07:23:11.000Z",
            "author": {
                "name": "Razan Ghzouli"
            },
            "tags": [
                "Behavior Tree",
                "State Machine",
                "Robotics Applications",
                "Domain-Specific Languages",
                "Empirical Study",
                "Software Language Engineering",
                "Model Driven Engineering",
                "GitHub Mining",
                "Code Reuse Patterns"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: GenProg: A Generic Method for Automatic Software Repair</li>\n<li class=\"\"><strong>저자</strong>: Claire Le Goues, Thanh Vu Nguyen, Stephanie Forrest, Westley Weimer (University of Virginia, University of New Mexico)</li>\n<li class=\"\"><strong>학회/저널</strong>: IEEE Transactions on Software Engineering (Vol. 38, No. 1, 2012)</li>\n<li class=\"\"><strong>발행일</strong>: 2012-01-01</li>\n<li class=\"\"><strong>DOI</strong>: 10.1109/TSE.2011.104</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 공식적인 명세(Specification)가 없는 기성(off-the-shelf) C 프로그램의 결함을 수정하기 위해, 유전 프로그래밍(Genetic Programming)을 확장하여 자동화된 수정을 생성하는 기법인 GenProg를 제안함. 기존 테스트 케이스를 활용해 결함과 필수 기능을 정의하고, AST(추상 구문 트리) 수준에서 유전 연산(변경, 교차)을 수행하여 수정한 뒤 델타 디버깅으로 최소한의 패치를 생성함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 총 125만 줄(LOC)에 달하는 16개의 오픈 소스 프로그램(웹 서버, 미디어 플레이어 등)에서 8가지 유형의 결함을 대상으로 실험한 결과, 평균 357초 만에 수리에 성공함. 생성된 패치는 입력 암기(Input Memorization) 방식이 아닌 실제 결함을 해결하는 일반적인 수정본임이 검증됨.</li>\n<li class=\"\"><strong>기여점</strong>: 주석이나 특수 코딩 관행 없이도 실제 레거시 소프트웨어에 적용 가능한 최초의 범용 자동 수리 방법을 입증했으며, 유전 프로그래밍을 소프트웨어 유지보수 영역으로 확장함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 논문은 공식 명세나 프로그램 주석 없이 기성 레거시 프로그램의 결함을 자동으로 수정하는 방법인 GenProg를 설명한다. GenProg는 확장된 형태의 유전 프로그래밍(GP)을 사용하여 필수 기능은 유지하면서 결함을 제거한 프로그램 변형(Variant)을 진화시킨다. 이때 기존 테스트 스위트를 활용하여 결함과 필수 기능을 인코딩한다. 구조적 차이 알고리즘과 델타 디버깅을 통해 원본 프로그램과 변형 프로그램 간의 차이를 최소화하여 최종 패치를 생성한다. 16개의 C 프로그램에 대해 실험한 결과, 평균 357초 내에 다양한 결함을 성공적으로 수정함을 확인했다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>소프트웨어 품질 유지는 막대한 비용이 드는 문제이며, 버그 수정은 소프트웨어 유지보수 비용의 큰 비중을 차지한다. 결함 탐지 기술은 발전했으나, 탐지된 버그를 수정하는 것은 여전히 어렵고 수동적인 과정이다. 본 연구는 기존 테스트 케이스를 활용하여 레거시 애플리케이션의 실제 버그를 자동으로 수정하는 GenProg 기술을 제안한다. 이는 공식 명세 없이도 작동하며, 특정 버그 유형에 국한되지 않는 범용적인 접근 방식이다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>연구는 유전 프로그래밍(GP)을 핵심 알고리즘으로 사용한다. GP는 생물학적 진화에서 영감을 받은 확률적 검색 방법으로, 변형(mutation)과 교차(crossover)를 통해 프로그램 집단을 진화시킨다.  GenProg는 프로그램의 문장(Statement) 수준에서 작동하며, 프로그램의 다른 위치에 올바른 동작을 구현하는 코드가 존재할 것이라는 가설(Plastic Surgery Hypothesis)을 바탕으로 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"핵심-구조-및-표현-representation\">핵심 구조 및 표현 (Representation)<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%ED%95%B5%EC%8B%AC-%EA%B5%AC%EC%A1%B0-%EB%B0%8F-%ED%91%9C%ED%98%84-representation\" class=\"hash-link\" aria-label=\"핵심 구조 및 표현 (Representation)에 대한 직접 링크\" title=\"핵심 구조 및 표현 (Representation)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>GenProg는 프로그램 변형을 **(1) 추상 구문 트리(AST)**와 **(2) 가중치 경로(Weighted Path)**의 쌍으로 표현한다.</p>\n<ul>\n<li class=\"\"><strong>AST</strong>: CIL 툴킷을 사용하여 생성하며, 문장(Statement) 단위로 조작한다. 이는 구문론적으로 잘못된 프로그램 생성을 방지한다.</li>\n<li class=\"\"><strong>가중치 경로</strong>: 부정적(실패) 테스트 케이스 실행 시 방문한 문장들의 리스트이다. 긍정적(성공) 테스트 케이스에서도 방문되는 문장은 가중치를 낮추어(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>W</mi><mrow><mi>P</mi><mi>a</mi><mi>t</mi><mi>h</mi></mrow></msub></mrow><annotation encoding=\"application/x-tex\">W_{Path}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">P</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">h</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span></span></span></span>), 수정이 결함과 관련된 부분에 집중되도록 한다.</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"유전-연산자-genetic-operators\">유전 연산자 (Genetic Operators)<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%9C%A0%EC%A0%84-%EC%97%B0%EC%82%B0%EC%9E%90-genetic-operators\" class=\"hash-link\" aria-label=\"유전 연산자 (Genetic Operators)에 대한 직접 링크\" title=\"유전 연산자 (Genetic Operators)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>변형(Mutation)</strong>: 가중치 경로상의 문장을 선택하여 삭제, 삽입, 또는 교체(Swap)한다. 삽입이나 교체에 사용되는 코드는 프로그램 내의 다른 위치에서 무작위로 가져온다.</li>\n<li class=\"\"><strong>교차(Crossover)</strong>: 두 부모 프로그램의 가중치 경로를 기준으로 교차점을 선택하여 이후의 문장들을 서로 바꾼다.</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"적합도-함수-fitness-function\">적합도 함수 (Fitness Function)<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%A0%81%ED%95%A9%EB%8F%84-%ED%95%A8%EC%88%98-fitness-function\" class=\"hash-link\" aria-label=\"적합도 함수 (Fitness Function)에 대한 직접 링크\" title=\"적합도 함수 (Fitness Function)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>적합도 함수는 테스트 케이스 통과 여부로 결정된다.\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mi>i</mi><mi>t</mi><mi>n</mi><mi>e</mi><mi>s</mi><mi>s</mi><mo stretchy=\"false\">(</mo><mi>P</mi><mo stretchy=\"false\">)</mo><mo>=</mo><msub><mi>W</mi><mrow><mi>P</mi><mi>o</mi><mi>s</mi><mi>T</mi></mrow></msub><mo>×</mo><mi mathvariant=\"normal\">∣</mi><mo stretchy=\"false\">{</mo><mi>t</mi><mo>∈</mo><mi>P</mi><mi>o</mi><mi>s</mi><mi>T</mi><mi mathvariant=\"normal\">∣</mi><mi>P</mi><mtext>&nbsp;passes&nbsp;</mtext><mi>t</mi><mo stretchy=\"false\">}</mo><mi mathvariant=\"normal\">∣</mi><mo>+</mo><msub><mi>W</mi><mrow><mi>N</mi><mi>e</mi><mi>g</mi><mi>T</mi></mrow></msub><mo>×</mo><mi mathvariant=\"normal\">∣</mi><mo stretchy=\"false\">{</mo><mi>t</mi><mo>∈</mo><mi>N</mi><mi>e</mi><mi>g</mi><mi>T</mi><mi mathvariant=\"normal\">∣</mi><mi>P</mi><mtext>&nbsp;passes&nbsp;</mtext><mi>t</mi><mo stretchy=\"false\">}</mo><mi mathvariant=\"normal\">∣</mi></mrow><annotation encoding=\"application/x-tex\">fitness(P) = W_{PosT} \\times |\\{t \\in PosT | P \\text{ passes } t\\}| + W_{NegT} \\times |\\{t \\in NegT | P \\text{ passes } t\\}|</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">n</span><span class=\"mord mathnormal\">ess</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3283em\"><span style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">P</span><span class=\"mord mathnormal mtight\">os</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">T</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord\">∣</span><span class=\"mopen\">{</span><span class=\"mord mathnormal\">t</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mord mathnormal\">os</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">T</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mord text\"><span class=\"mord\">&nbsp;passes&nbsp;</span></span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">}</span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.9694em;vertical-align:-0.2861em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3283em\"><span style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10903em\">N</span><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">T</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord\">∣</span><span class=\"mopen\">{</span><span class=\"mord mathnormal\">t</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">∈</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">N</span><span class=\"mord mathnormal\">e</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">T</span><span class=\"mord\">∣</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mord text\"><span class=\"mord\">&nbsp;passes&nbsp;</span></span><span class=\"mord mathnormal\">t</span><span class=\"mclose\">}</span><span class=\"mord\">∣</span></span></span></span>\n여기서 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>P</mi><mi>o</mi><mi>s</mi><mi>T</mi></mrow><annotation encoding=\"application/x-tex\">PosT</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mord mathnormal\">os</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">T</span></span></span></span>는 긍정적 테스트 셋, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>N</mi><mi>e</mi><mi>g</mi><mi>T</mi></mrow><annotation encoding=\"application/x-tex\">NegT</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8778em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">N</span><span class=\"mord mathnormal\">e</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">T</span></span></span></span>는 부정적 테스트 셋이며, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>W</mi></mrow><annotation encoding=\"application/x-tex\">W</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span></span></span></span>는 각 가중치이다. 컴파일되지 않는 변형은 적합도가 0이다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251124143317-8f4866060058be45571dc3c99638836c.png\" width=\"2074\" height=\"940\" class=\"img_ev3q\"></p>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"수리-최소화-repair-minimization\">수리 최소화 (Repair Minimization)<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%88%98%EB%A6%AC-%EC%B5%9C%EC%86%8C%ED%99%94-repair-minimization\" class=\"hash-link\" aria-label=\"수리 최소화 (Repair Minimization)에 대한 직접 링크\" title=\"수리 최소화 (Repair Minimization)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>GP가 찾은 초기 수리(Primary Repair)는 불필요한 변경을 포함할 수 있다. 논문의 Figure 1에서 보여지듯, 델타 디버깅(Delta Debugging)과 구조적 차이(Structural Differencing) 알고리즘을 사용하여 테스트 통과에 필수적이지 않은 변경 사항을 제거하고 1-minimal 패치를 생성한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"주요-데이터셋-및-설정\">주요 데이터셋 및 설정<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%A3%BC%EC%9A%94-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%85%8B-%EB%B0%8F-%EC%84%A4%EC%A0%95\" class=\"hash-link\" aria-label=\"주요 데이터셋 및 설정에 대한 직접 링크\" title=\"주요 데이터셋 및 설정에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>대상 프로그램</strong>: 16개의 오픈 소스 C 프로그램 (Webserver, Media player, Text processing tool 등). 총 125만 라인의 코드.</li>\n<li class=\"\"><strong>결함 유형</strong>: 무한 루프, 세그멘테이션 오류, 버퍼 오버플로우, 정수 오버플로우, 포맷 스트링 취약점 등 8개 유형.</li>\n<li class=\"\"><strong>환경</strong>: 쿼드 코어 3GHz 머신.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 7\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251124143411-4dc5a74c7907fabbb3883ec84f8e9d76.png\" width=\"1917\" height=\"1166\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 9\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251124143438-4cc31a73afb1f2b3e5c4fa680acf94cd.png\" width=\"1154\" height=\"1453\" class=\"img_ev3q\"></li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"핵심-성능-지표\">핵심 성능 지표<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%ED%95%B5%EC%8B%AC-%EC%84%B1%EB%8A%A5-%EC%A7%80%ED%91%9C\" class=\"hash-link\" aria-label=\"핵심 성능 지표에 대한 직접 링크\" title=\"핵심 성능 지표에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>성공률</strong>: 100번의 시험(trial) 중 평균 77%의 성공률을 보였다. (Figure 7 참조)</li>\n<li class=\"\"><strong>소요 시간</strong>: 성공적인 수리를 찾는 데 평균 357초가 소요되었다.</li>\n<li class=\"\"><strong>확장성</strong>: 탐색 시간은 프로그램의 전체 크기보다는 가중치 경로(Weighted Path)의 길이에 따라 선형 이하(Sub-linear)로 증가하는 경향을 보였다. (Figure 9 참조)</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"수리-품질-및-보안\">수리 품질 및 보안<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EC%88%98%EB%A6%AC-%ED%92%88%EC%A7%88-%EB%B0%8F-%EB%B3%B4%EC%95%88\" class=\"hash-link\" aria-label=\"수리 품질 및 보안에 대한 직접 링크\" title=\"수리 품질 및 보안에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>Fuzz Testing</strong>: 100,000건의 무작위 Fuzz 입력과 Exploit 변형 입력을 사용하여 수리된 프로그램을 테스트한 결과, 새로운 취약점이 도입되지 않았으며 수리가 단순한 입력 암기가 아님을 확인했다.</li>\n<li class=\"\"><strong>Closed-loop System</strong>: 침입 탐지 시스템(IDS)과 결합된 시나리오에서, 수리 과정으로 인한 서비스 중단이나 기능 저하는 미미한 수준이었다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>GenProg는 유전 프로그래밍을 활용하여 실제 소프트웨어의 버그를 효율적으로 수정할 수 있음을 입증했다. 이 기술은 오류 위치 추정(Fault Localization)을 통해 탐색 공간을 줄이고, 기존 코드를 재사용함으로써 높은 성공률을 달성했다. 생성된 패치는 가독성이 높고 기능 저하가 적으며, 향후 소프트웨어 개발 및 유지보수 프로세스의 자동화를 위한 중요한 발판을 마련했다.</p>",
            "url": "https://til.99jik.com/papers/GenProg-A-Generic-Method-for-Automatic-Software-Repair",
            "title": "GenProg: A Generic Method for Automatic Software Repair",
            "summary": "공식 명세 없이 기존 테스트 케이스와 유전 프로그래밍을 활용하여 레거시 소프트웨어의 버그를 자동으로 수정하는 GenProg 방법론 제안",
            "date_modified": "2025-11-22T00:00:00.000Z",
            "author": {
                "name": "Claire Le Goues"
            },
            "tags": [
                "Automated Software Repair",
                "Genetic Programming",
                "Software Engineering",
                "Legacy Systems"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Information Retrieval and Spectrum Based Bug Localization: Better Together</li>\n<li class=\"\"><strong>저자</strong>: Tien-Duy B. Le, Richard J. Oentaryo, David Lo (Singapore Management University)</li>\n<li class=\"\"><strong>학회/저널</strong>: ESEC/FSE 2015</li>\n<li class=\"\"><strong>발행일</strong>: 2015-08-30</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"http://dx.doi.org/10.1145/2786805.2786880\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">http://dx.doi.org/10.1145/2786805.2786880</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 버그 리포트의 텍스트 정보(IR)와 테스트 케이스 실행 정보(Spectrum)를 결합한 AML(Adaptive Multi-modal Bug Localization) 기법을 제안함. 이는 버그마다 최적의 가중치를 동적으로 학습하는 적응형 모델과 실행 흔적에서 '의심스러운 단어'를 추출하는 새로운 접근법을 포함함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 4개의 대규모 소프트웨어 프로젝트에서 157개의 실제 버그를 대상으로 실험한 결과, 제안된 AML은 기존 최신 기법(PROMESIR, DIT 등) 대비 Top-1 정확도에서 47.62%, MAP에서 28.80% 더 우수한 성능을 보임.</li>\n<li class=\"\"><strong>기여점</strong>: 최초의 적응형 멀티모달 버그 위치 추정 알고리즘을 구현하고, 코드 내 '의심스러운 단어'를 정량화하여 활용하는 방법을 제시했으며, 데이터 불균형 문제를 해결하는 학습 전략을 도입함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>디버깅은 많은 노력과 자원을 소모하는 작업이다. 이를 돕기 위해 정보 검색(IR) 기반 기술과 스펙트럼 기반 버그 위치 추정 기술이 제안되어 왔다. IR 기반 기술은 버그 리포트의 텍스트를 분석하고, 스펙트럼 기반 기술은 프로그램 실행 흔적(spectra)을 분석한다. 본 연구에서는 이 두 정보를 모두 활용하는 새로운 멀티모달 기법인 AML을 제안한다. 이 접근법은 특정 버그에 맞춰 적응적으로 모델을 생성하며, 버그와 연관성이 높은 '의심스러운 단어(Suspicious Words)'라는 새로운 개념을 도입한다. 157개의 실제 버그를 대상으로 한 평가에서 AML은 기존 최신 기법들을 크게 능가하는 성능을 입증했다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>개발자들은 수많은 버그 리포트를 처리해야 하며, 버그 복제 및 원인 파악에 많은 시간을 쓴다. 기존 버그 위치 추정(Fault Localization) 기술은 주로 버그 리포트의 텍스트만 보거나(IR-based), 실패한 테스트 케이스의 실행 경로만 보는(Spectrum-based) 단일 소스 정보에 의존했다. 버그의 힌트는 텍스트와 실행 흔적 모두에 퍼져 있을 수 있으므로, 본 연구에서는 두 가지 모드를 모두 고려하는 멀티모달 접근법을 제시한다. 특히 기존의 고정된 방식(one-size-fits-all)이 아닌, 개별 버그의 특성에 맞춰 파라미터를 튜닝하는 인스턴스별(instance-specific) 솔루션을 제안한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>IR 기반 버그 위치 추정</strong>: 버그 리포트를 쿼리로, 소스 코드(메서드, 파일)를 문서로 간주하여 유사도를 계산한다. 주로 VSM(Vector Space Model)이나 TF-IDF가 사용된다.</li>\n<li class=\"\"><strong>스펙트럼 기반 버그 위치 추정 (SBBL)</strong>: 성공한 테스트 케이스와 실패한 테스트 케이스가 실행한 프로그램 요소를 기록(Spectra)하여 통계적 의심도를 계산한다. 대표적으로 Tarantula 공식 등이 사용되며, 실패한 테스트에서 자주 실행될수록 의심도가 높다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>AML은 크게 세 가지 구성 요소와 통합기(Integrator)로 이루어진다.</p>\n<ul>\n<li class=\"\"><strong>AML Text</strong>: 버그 리포트와 소스 코드 간의 텍스트 유사도를 VSM을 이용해 계산한다.</li>\n<li class=\"\"><strong>AML Spectra</strong>: 프로그램 실행 흔적(Spectra)을 바탕으로 Tarantula 공식을 사용하여 메서드의 의심도를 계산한다.</li>\n<li class=\"\"><strong>AML SuspWord (Suspicious Word Component)</strong>: 본 논문의 핵심적인 신규 구성 요소이다.<!-- -->\n<ol>\n<li class=\"\">메서드를 구성하는 단어들로 분해한다.</li>\n<li class=\"\">각 단어가 실패한 실행 흔적과 성공한 실행 흔적에 얼마나 나타나는지를 바탕으로 단어 자체의 의심도(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>S</mi><msub><mi>S</mi><mrow><mi>w</mi><mi>o</mi><mi>r</mi><mi>d</mi></mrow></msub></mrow><annotation encoding=\"application/x-tex\">SS_{word}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">S</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">S</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.0576em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02691em\">w</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em\">or</span><span class=\"mord mathnormal mtight\">d</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span></span></span></span>)를 계산한다.</li>\n<li class=\"\">이 단어들의 의심도를 가중치로 사용하여 메서드와 버그 리포트 간의 유사도를 다시 계산한다. 수식은 다음과 같은 형태를 띤다:\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>A</mi><mi>M</mi><msup><mi>L</mi><mrow><mi>S</mi><mi>u</mi><mi>s</mi><mi>p</mi><mi>W</mi><mi>o</mi><mi>r</mi><mi>d</mi></mrow></msup><mo stretchy=\"false\">(</mo><mi>b</mi><mo separator=\"true\">,</mo><mi>p</mi><mo separator=\"true\">,</mo><mi>m</mi><mo separator=\"true\">,</mo><mi>C</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>S</mi><msub><mi>S</mi><mrow><mi>m</mi><mi>e</mi><mi>t</mi><mi>h</mi><mi>o</mi><mi>d</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>m</mi><mo separator=\"true\">,</mo><mi>p</mi><mo stretchy=\"false\">)</mo><mo>×</mo><mtext>WeightedCosineSim</mtext></mrow><annotation encoding=\"application/x-tex\">AML^{SuspWord}(b,p,m,C) = SS_{method}(m,p) \\times \\text{WeightedCosineSim}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0991em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8491em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05764em\">S</span><span class=\"mord mathnormal mtight\">u</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mord mathnormal mtight\">p</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">W</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em\">or</span><span class=\"mord mathnormal mtight\">d</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">b</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\">m</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em\">C</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">S</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">S</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.0576em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">h</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">d</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">m</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord text\"><span class=\"mord\">WeightedCosineSim</span></span></span></span></span></li>\n</ol>\n</li>\n<li class=\"\"><strong>Integrator (적응형 통합기)</strong>: 위 세 컴포넌트의 점수를 가중 합산하여 최종 점수를 산출한다.\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>f</mi><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mi>i</mi></msub><mo separator=\"true\">,</mo><mi>θ</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>α</mi><mo>×</mo><mi>A</mi><mi>M</mi><msup><mi>L</mi><mrow><mi>T</mi><mi>e</mi><mi>x</mi><mi>t</mi></mrow></msup><mo>+</mo><mi>β</mi><mo>×</mo><mi>A</mi><mi>M</mi><msup><mi>L</mi><mrow><mi>S</mi><mi>p</mi><mi>e</mi><mi>c</mi><mi>t</mi><mi>r</mi><mi>a</mi></mrow></msup><mo>+</mo><mi>γ</mi><mo>×</mo><mi>A</mi><mi>M</mi><msup><mi>L</mi><mrow><mi>S</mi><mi>u</mi><mi>s</mi><mi>p</mi><mi>W</mi><mi>o</mi><mi>r</mi><mi>d</mi></mrow></msup></mrow><annotation encoding=\"application/x-tex\">f(x_i, \\theta) = \\alpha \\times AML^{Text} + \\beta \\times AML^{Spectra} + \\gamma \\times AML^{SuspWord}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em\">θ</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6667em;vertical-align:-0.0833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em\">α</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.9247em;vertical-align:-0.0833em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8413em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">T</span><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\">x</span><span class=\"mord mathnormal mtight\">t</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.9247em;vertical-align:-0.0833em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8413em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">Sp</span><span class=\"mord mathnormal mtight\">ec</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em\">r</span><span class=\"mord mathnormal mtight\">a</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7778em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05556em\">γ</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">×</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8491em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8491em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05764em\">S</span><span class=\"mord mathnormal mtight\">u</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mord mathnormal mtight\">p</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">W</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em\">or</span><span class=\"mord mathnormal mtight\">d</span></span></span></span></span></span></span></span></span></span></span></span>\n여기서 가중치 파라미터 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>θ</mi><mo>=</mo><mo stretchy=\"false\">[</mo><mi>α</mi><mo separator=\"true\">,</mo><mi>β</mi><mo separator=\"true\">,</mo><mi>γ</mi><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">\\theta = [\\alpha, \\beta, \\gamma]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em\">θ</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em\">α</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05556em\">γ</span><span class=\"mclose\">]</span></span></span></span>는 과거 유사한 버그 데이터를 바탕으로 로지스틱 회귀(Logistic Regression)를 통해 버그마다 다르게 학습된다. 이때 데이터 불균형(Faulty 메서드보다 Non-faulty 메서드가 훨씬 많음) 문제를 해결하기 위해 균형 잡힌 샘플링(Balanced Sampling) 전략을 사용한다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: AspectJ, Ant, Lucene, Rhino 등 4개 오픈소스 프로젝트의 157개 실제 버그와 테스트 케이스.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>Top N</strong>: 상위 N개 추천 내에 실제 버그가 포함된 개수.</li>\n<li class=\"\"><strong>MAP (Mean Average Precision)</strong>: 추천 순위의 정확도를 나타내는 정보 검색 지표.</li>\n</ul>\n</li>\n<li class=\"\"><strong>비교 결과</strong>:<!-- -->\n<ul>\n<li class=\"\">AML은 Top-1에서 31개의 버그를 찾아내어, 비교군 중 가장 성능이 좋은 PROMESIR(21개)보다 47.62% 높은 성능을 보였다.</li>\n<li class=\"\">MAP 점수에서도 AML(0.237)은 PROMESIR(0.184) 및 기타 스펙트럼/IR 단독 기법들을 크게 상회했다.</li>\n<li class=\"\">구성 요소 분석 결과, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>A</mi><mi>M</mi><msup><mi>L</mi><mrow><mi>S</mi><mi>u</mi><mi>s</mi><mi>p</mi><mi>W</mi><mi>o</mi><mi>r</mi><mi>d</mi></mrow></msup></mrow><annotation encoding=\"application/x-tex\">AML^{SuspWord}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8491em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8491em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05764em\">S</span><span class=\"mord mathnormal mtight\">u</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mord mathnormal mtight\">p</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">W</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.02778em\">or</span><span class=\"mord mathnormal mtight\">d</span></span></span></span></span></span></span></span></span></span></span></span> 컴포넌트가 성능 향상에 가장 크게 기여한 것으로 나타났다.</li>\n<li class=\"\">제안된 Integrator는 일반적인 랭킹 학습 알고리즘(SVM-rank)보다 우수한 성능을 보였다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 텍스트 정보와 실행 정보를 결합한 적응형 버그 위치 추정 기법인 AML을 제안했다. 특히 '의심스러운 단어'를 활용하는 새로운 접근법과 버그별 특성에 맞춘 가중치 학습 방식은 기존 방식들의 한계를 효과적으로 극복했다. 실험 결과는 AML이 다양한 프로젝트에서 일관되게 높은 성능을 발휘함을 보여주며, 향후 더 많은 언어와 시스템으로 확장하여 연구할 가치가 있음을 시사한다.</p>",
            "url": "https://til.99jik.com/papers/Information-Retrieval-and-Spectrum-Based-Bug-Localization-Better-Together",
            "title": "Information Retrieval and Spectrum Based Bug Localization: Better Together",
            "summary": "정보 검색과 스펙트럼 기반 기법을 결합하고, 의심스러운 단어 분석 및 적응형 가중치 조정을 통해 버그 위치 추정 성능을 획기적으로 개선한 AML 기법 제안",
            "date_modified": "2025-11-22T00:00:00.000Z",
            "author": {
                "name": "Tien-Duy B. Le"
            },
            "tags": [
                "Bug Localization",
                "Information Retrieval",
                "Program Spectra",
                "Software Engineering",
                "Debugging"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: PAPER2CODE: AUTOMATING CODE GENERATION FROM SCIENTIFIC PAPERS IN MACHINE LEARNING</li>\n<li class=\"\"><strong>저자</strong>: Minju Seo (KAIST), Jinheon Baek (KAIST), Seongyun Lee (KAIST), Sung Ju Hwang (KAIST, DeepAuto.ai)</li>\n<li class=\"\"><strong>학회/저널</strong>: arXiv (v4)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-10-10</li>\n<li class=\"\"><strong>DOI</strong>: (N/A)</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 기계 학습(ML) 논문만 입력받아 완전한 코드 리포지토리를 생성하는 멀티 에이전트 LLM 프레임워크 'PaperCoder'를 제안함. PaperCoder는 1) Planning (계획), 2) Analysis (분석), 3) Generation (생성)의 3단계로 작업을 분해하여 인간 개발자의 워크플로우를 모방함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: PaperCoder는 자체 구축한 Paper2CodeBench 및 공개된 PaperBench 벤치마크에서 ChatDev, MetaGPT 등 기존 코드 생성 방식들을 큰 차이로 능가함. 생성된 코드는 원본 논문 저자의 평가에서도 88%가 최고로 선택되었으며, 92%가 재현에 도움이 된다고 응답함.</li>\n<li class=\"\"><strong>기여점</strong>: ML 논문에서 코드 자동 생성을 위한 체계적인 3단계(계획-분석-생성) 멀티 에이전트 방법론을 제시함. 생성된 코드는 평균 0.81%의 코드 라인만 수정하면 실행 가능한 '거의 실행 가능한(near-executable)' 수준의 높은 품질을 달성하여 ML 연구의 재현성 위기를 해결하는 데 기여함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>기계 학습(ML) 연구는 빠르게 성장하고 있으나, 연구 결과를 재현하거나 이전 작업을 기반으로 구축하는 데 필요한 코드 구현이 종종 누락되어 있어 연구 속도를 저해함. 최근 LLM(Large Language Models)이 과학 문서를 이해하고 고품질 코드를 생성하는 데 뛰어난 능력을 보이면서, 본 연구는 ML 논문을 기능하는 코드 리포지토리로 변환하는 멀티 에이전트 LLM 프레임워크 'PaperCoder'를 제안한다. PaperCoder는 3단계로 작동함: 1) <strong>Planning(계획)</strong>: 높은 수준의 로드맵 구성, 다이어그램을 포함한 시스템 아키텍처 설계, 파일 종속성 식별, 구성 파일 생성. 2) <strong>Analysis(분석)</strong>: 구현에 특화된 세부 사항 해석. 3) <strong>Generation(생성)</strong>: 모듈화되고 종속성을 인식하는 코드를 생성함. 각 단계는 파이프라인 전반에 걸쳐 효과적으로 협력하도록 설계된 전문 에이전트 세트에 의해 실행됨. PaperCoder는 모델 기반 평가와 논문 저자들의 인적 평가를 통해 검증되었으며, 최근 공개된 PaperBench 벤치마크에서도 강력한 성능을 입증하며 고품질의 충실한 구현을 생성하는 효과를 보임.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>과학적 진보의 핵심은 '재현성'이지만, ML 분야에서는 이것이 큰 도전 과제로 남아있다. 특히 논문에 코드가 첨부되지 않는 경우가 많아(2024년 기준 상위 ML 학회 평균 19.5%만이 코드 제공), 연구자들은 논문만 보고 코드를 '리버스 엔지니어링'하는 데 막대한 시간을 소모한다. 반면, 최근 LLM은 자연어와 코드를 모두 이해하고 생성하는 데 탁월한 능력을 보이며 과학적 워크플로우를 가속화할 잠재력을 보여주었다. 하지만 기존 연구들은 대부분 기존 코드베이스, 코드 스니펫, 또는 잘 정의된 API에 의존한다. 본 연구는 이러한 사전 코드 없이, 오직 논문 텍스트만으로 충실한 구현을 생성할 수 있는지에 대한 질문에 답하고자 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 세 가지 관련 연구 분야를 기반으로 한다:</p>\n<ol>\n<li class=\"\"><strong>코드를 위한 LLM (Large Language Models for Code)</strong>: 코드 특화 LLM은 소프트웨어 설계, 개발, 요구사항 도출 등 다양한 엔지니어링 작업에서 강력한 성능을 보여주었다.</li>\n<li class=\"\"><strong>리포지토리 수준 코딩 (Repository-Level Coding)</strong>: 초기 연구는 단일 파일의 짧은 코드 스니펫 생성에 집중했지만, 최근에는 ChatDev나 MetaGPT처럼 다중 파일 리포지토리 생성을 목표로 하는 멀티 에이전트 프레임워크가 등장했다.</li>\n<li class=\"\"><strong>LLM 기반 과학 연구 (LLM-Powered Scientific Research)</strong>: LLM이 아이디어 도출부터 실험 검증까지 과학 연구 전반을 지원하고 있으나, 많은 자동화 연구가 여전히 원본 코드베이스에 의존한다는 한계가 있다.</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>PaperCoder는 논문(R)을 코드 리포지토리(C)로 매핑하는 함수 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>M</mi><mo stretchy=\"false\">(</mo><mi>R</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>C</mi></mrow><annotation encoding=\"application/x-tex\">M(R) = C</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em\">C</span></span></span></span>를 구현하는 것을 목표로 한다. LLM에 논문 전체를 입력해 한 번에 생성하는(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>M</mi><mo stretchy=\"false\">(</mo><mi>R</mi><mo stretchy=\"false\">)</mo><mo>:</mo><mo>=</mo><mi>L</mi><mi>L</mi><mi>M</mi><mo stretchy=\"false\">(</mo><mi mathvariant=\"script\">T</mi><mo stretchy=\"false\">(</mo><mi>R</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">M(R) := LLM(\\mathcal{T}(R))</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">:=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\">LL</span><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"mopen\">(</span><span class=\"mord mathcal\" style=\"margin-right:0.25417em\">T</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"mclose\">))</span></span></span></span>) 'Naive' 방식은 논문의 복잡성, 긴 컨텍스트, 파일 간 일관성 유지 문제로 인해 비현실적이다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 2\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172437-7cb6c600fd17a704f5e42bc51a881f65.png\" width=\"1219\" height=\"972\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 4\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172501-1d1184e4516042fb43d109577911c706.png\" width=\"906\" height=\"612\" class=\"img_ev3q\"></p>\n<p>대신 PaperCoder는 작업을 3단계로 분해하는 멀티 에이전트 프레임워크를 제안한다 (논문의 Figure 2와 Figure 4에 전체 개요가 시각화되어 있음).</p>\n<ul>\n<li class=\"\"><strong>Planning (계획)</strong>: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>P</mi><mo>=</mo><msub><mi>M</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>n</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>R</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">P = M_{plan}(R)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0361em;vertical-align:-0.2861em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">pl</span><span class=\"mord mathnormal mtight\">an</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"mclose\">)</span></span></span></span></li>\n<li class=\"\"><strong>Analysis (분석)</strong>: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>A</mi><mo>=</mo><msub><mi>M</mi><mrow><mi>a</mi><mi>n</mi><mi>a</mi><mi>l</mi><mi>y</mi><mi>s</mi><mi>i</mi><mi>s</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>R</mi><mo separator=\"true\">,</mo><mi>P</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">A = M_{analysis}(R, P)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0361em;vertical-align:-0.2861em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">ana</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.01968em\">l</span><span class=\"mord mathnormal mtight\">ys</span><span class=\"mord mathnormal mtight\">i</span><span class=\"mord mathnormal mtight\">s</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mclose\">)</span></span></span></span></li>\n<li class=\"\"><strong>Coding (코딩)</strong>: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>C</mi><mo>=</mo><msub><mi>M</mi><mrow><mi>c</mi><mi>o</mi><mi>d</mi><mi>e</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>R</mi><mo separator=\"true\">,</mo><mi>P</mi><mo separator=\"true\">,</mo><mi>A</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">C = M_{code}(R, P, A)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07153em\">C</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">co</span><span class=\"mord mathnormal mtight\">d</span><span class=\"mord mathnormal mtight\">e</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">P</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\">A</span><span class=\"mclose\">)</span></span></span></span></li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-planning-계획\">1. Planning (계획)<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#1-planning-%EA%B3%84%ED%9A%8D\" class=\"hash-link\" aria-label=\"1. Planning (계획)에 대한 직접 링크\" title=\"1. Planning (계획)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>논문의 비정형 텍스트를 구현 가능한 추상화된 구조로 변환하는 단계.</p>\n<ul>\n<li class=\"\"><strong>1.1 Overall Plan (전체 계획)</strong>: 논문 전체에서 핵심 컴포넌트(모델, 학습 목표, 데이터 처리, 평가 프로토콜)를 식별하여 고수준 요약을 생성한다.</li>\n<li class=\"\"><strong>1.2 Architecture Design (아키텍처 설계)</strong>: 리포지토리의 전체 아키텍처를 정의한다. 파일 목록, 모듈 간의 정적 관계를 보여주는 <strong>클래스 다이어그램(Class Diagram)</strong>, 동적 상호작용을 모델링하는 **시퀀스 다이어그램(Sequence Diagram)**을 생성한다.</li>\n<li class=\"\"><strong>1.3 Logic Design (로직 설계)</strong>: 컴포넌트가 '어떻게' 인스턴스화되어야 하는지에 초점을 맞춘다. 특히 파일 간의 의존성을 고려하여, 파일이 구현되고 실행되어야 할 순서를 정의하는 **정렬된 파일 목록(ordered file list)**을 생성한다.</li>\n<li class=\"\"><strong>1.4 Configuration Generation (구성 생성)</strong>: 하이퍼파라미터, 모델 설정, 런타임 옵션 등을 포함하는 <code>config.yaml</code> 파일을 생성한다.</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-analysis-분석\">2. Analysis (분석)<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#2-analysis-%EB%B6%84%EC%84%9D\" class=\"hash-link\" aria-label=\"2. Analysis (분석)에 대한 직접 링크\" title=\"2. Analysis (분석)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>계획 단계에서 정의된 구조를 바탕으로, 각 파일 내부 모듈의 구체적인 구현 세부 사항을 명세화하는 단계. 각 파일(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>f</mi><mi>i</mi></msub></mrow><annotation encoding=\"application/x-tex\">f_i</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span></span></span></span>)에 대해 기능적 목표, 입출력 동작, 파일 내/외부 의존성, 논문의 알고리즘 사양 등을 포함하는 상세 분석(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>a</mi><mi>i</mi></msub></mrow><annotation encoding=\"application/x-tex\">a_i</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.5806em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">a</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span></span></span></span>)을 생성한다.</p>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"3-coding-코딩\">3. Coding (코딩)<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#3-coding-%EC%BD%94%EB%94%A9\" class=\"hash-link\" aria-label=\"3. Coding (코딩)에 대한 직접 링크\" title=\"3. Coding (코딩)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>모든 이전 단계의 산출물(논문 R, 계획 P, 분석 A)을 기반으로 실제 코드를 생성하는 마지막 단계. 'Logic Design'에서 결정된 실행 순서에 따라 파일을 순차적으로 생성한다. <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>i</mi></mrow><annotation encoding=\"application/x-tex\">i</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6595em\"></span><span class=\"mord mathnormal\">i</span></span></span></span>번째 파일을 생성할 때는 이전에 생성된 코드 파일 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">{</mo><msub><mi>c</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mi mathvariant=\"normal\">.</mi><mo separator=\"true\">,</mo><msub><mi>c</mi><mrow><mi>i</mi><mo>−</mo><mn>1</mn></mrow></msub><mo stretchy=\"false\">}</mo></mrow><annotation encoding=\"application/x-tex\">\\{c_1, ..., c_{i-1}\\}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mopen\">{</span><span class=\"mord\"><span class=\"mord mathnormal\">c</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\">...</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">c</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2083em\"><span></span></span></span></span></span></span><span class=\"mclose\">}</span></span></span></span>을 컨텍스트로 함께 제공하여 리포지토리 전체의 일관성을 보장한다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Table 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172533-b95719a6de24c26458d10b8c4d16057c.png\" width=\"1419\" height=\"496\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Table 2\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172604-f0eb7d1fe6037ad56c4155305465960a.png\" width=\"1303\" height=\"524\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Table 3\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172624-8360b9a9a971058f73e303fd2a263253.png\" width=\"979\" height=\"586\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Table 5\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172651-e35da99e9b7654b6243332ee110c77f3.png\" width=\"1126\" height=\"585\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 3\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172724-dbbb8ab1facd3ca85464cc65cee85002.png\" width=\"841\" height=\"1124\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 5\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172758-46cfafeb1828baf50f9113ce5f285657.png\" width=\"621\" height=\"508\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 7\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172834-1cf9c5070a72dac0c0aad326773a78c3.png\" width=\"1317\" height=\"987\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 8\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106172901-0618a0218dd2e3ad7a06397fa83d1eb4.png\" width=\"1305\" height=\"492\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>데이터셋</strong>: 자체 구축한 <code>Paper2CodeBench</code> (ICLR, ICML, NeurIPS 2024 논문 90개) 및 공개 벤치마크 <code>PaperBench Code-Dev</code>.</li>\n<li class=\"\"><strong>평가 방식</strong>: 1) <strong>Reference-Based</strong>: 저자 공식 코드를 정답으로 사용. 2) <strong>Reference-Free</strong>: 공식 코드 없이 논문만으로 평가. (두 방식 모두 LLM-as-judge 활용) 3) <strong>Human Evaluation</strong>: 원본 논문 저자가 직접 생성된 리포지토리들을 순위 매김.</li>\n<li class=\"\"><strong>핵심 성능 (Table 1, 3)</strong>: PaperCoder는 Paper2CodeBench에서 ChatDev, MetaGPT 등 모든 베이스라인의 성능을 압도했다. PaperBench에서도 03-mini-high 모델 기준 45.14%의 복제 점수를 달성, 베이스라인(Iterative Agent, 16.4%) 대비 월등한 성능을 보였다.</li>\n<li class=\"\"><strong>평가 신뢰성 (Figure 3, Table 5)</strong>: Reference-Free 평가 점수와 Reference-Based 평가 점수 간에 강한 양의 상관관계(Pearson <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>r</mi><mo>=</mo><mn>0.79</mn></mrow><annotation encoding=\"application/x-tex\">r=0.79</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em\">r</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.79</span></span></span></span>)가 나타나, 정답 코드가 없을 때도 LLM-as-judge가 신뢰할 수 있는 프록시 평가자 역할을 함을 입증했다. 또한 모델 기반 평가와 인적 평가 간의 상관관계(e.g., <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>r</mi><mo>=</mo><mn>0.78</mn></mrow><annotation encoding=\"application/x-tex\">r=0.78</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em\">r</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.78</span></span></span></span>)도 높게 나타났다.</li>\n<li class=\"\"><strong>인적 평가 (Table 2)</strong>: PaperCoder가 생성한 리포지토리는 원본 저자들에 의해 88%의 비율로 \"최고\"로 선택되었으며, 92%의 평가자가 \"재현에 도움이 된다\"고 응답했다.</li>\n<li class=\"\"><strong>컴포넌트별 구현율 (Figure 5)</strong>: 인적 평가를 통해 생성된 코드의 컴포넌트별 구현율을 분석한 결과, **Method (80%)**와 **Evaluation (79%)**은 구현율이 높았으나, **Data Processing (56%)**이 가장 낮았다. 이는 대부분의 논문이 데이터 전처리, 로딩 절차 등은 상세히 기술하지 않기 때문이다.</li>\n<li class=\"\"><strong>실행 가능성 분석 (Section 4.3)</strong>: 생성된 리포지토리는 '거의 실행 가능(near-executable)'한 상태였다. 5개 리포지토리를 수동 디버깅한 결과, **평균 0.81%**의 코드 라인만 수정하면 성공적으로 실행되었다. 수정 내용은 주로 오래된 API 업데이트, 데이터 타입 캐스팅 등 경미한 오류였다 (논문의 Figure 7, 8에 수정 예시가 있음).</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 ML 논문에서 코드 리포지토리를 자동으로 생성하는 3단계(계획-분석-코딩) 멀티 에이전트 프레임워크 'PaperCoder'를 제안했다. PaperCoder는 Paper2CodeBench와 PaperBench 두 벤치마크에서 기존 접근 방식들을 압도했으며, 특히 생성된 코드는 평균 0.81%의 라인만 수정하면 실행 가능한 높은 실용성을 보였다. 이는 ML 연구의 재현성을 보조하고 과학적 진보를 가속화하는 중요한 단계이다.</p>",
            "url": "https://til.99jik.com/papers/PAPER2CODE-AUTOMATING-CODE-GENERATION-FROM-SCIENTIFIC-PAPERS-IN-MACHINE-LEARNING",
            "title": "PAPER2CODE: AUTOMATING CODE GENERATION FROM SCIENTIFIC PAPERS IN MACHINE LEARNING",
            "summary": "기계 학습 논문에서 직접 실행 가능한 코드 리포지토리를 자동 생성하는 멀티 에이전트 LLM 프레임워크 'PaperCoder'를 제안",
            "date_modified": "2025-10-10T00:00:00.000Z",
            "author": {
                "name": "Minju Seo"
            },
            "tags": [
                "Machine Learning",
                "Large Language Model",
                "Code Generation",
                "Reproducibility"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: CARJAN: Agent-Based Generation and Simulation of Traffic Scenarios with AJAN</li>\n<li class=\"\"><strong>저자</strong>: Leonard Frank Neis (DFKI, Saarland Informatics Campus), André Antakli (DFKI, Saarland Informatics Campus), Matthias Klusch (DFKI, Saarland Informatics Campus)</li>\n<li class=\"\"><strong>학회/저널</strong>: arXiv 프리프린트 (cs.AI)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-08-29</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://arxiv.org/abs/2508.21411\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">arXiv:2508.21411</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: AJAN 멀티에이전트 프레임워크와 CARLA 자율주행 시뮬레이터를 통합하여 도시 교통 시나리오를 반자동으로 생성하고 시뮬레이션하는 도구 CARJAN 개발</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 보행자, 자전거, 자율주행 차량 등 다양한 에이전트가 상호작용하는 복합 교통 시나리오의 비주얼 모델링과 시뮬레이션을 통합한 최초의 접근법 제시</li>\n<li class=\"\"><strong>기여점</strong>: SPARQL Behavior Tree 기반 에이전트 의사결정과 비주얼 UI 기반 시나리오 모델링을 결합하여 사용자 친화적인 교통 시나리오 생성·시뮬레이션 도구 제공</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>보행자, 자전거, 자율주행 차량 등 다양한 유형의 상호작용 에이전트가 포함된 도시 교통 시나리오의 사용자 친화적 모델링 및 가상 시뮬레이션은 여전히 어려운 과제이다. 본 논문은 멀티에이전트 엔지니어링 프레임워크 AJAN과 자율주행 시뮬레이터 CARLA를 기반으로 이러한 시나리오를 반자동으로 생성하고 시뮬레이션하는 새로운 도구 CARJAN을 소개한다. CARJAN은 교통 시나리오 레이아웃의 모델링, 저장, 관리를 위한 비주얼 사용자 인터페이스를 제공하며, CARLA에서의 동적 시나리오 시뮬레이션을 위해 SPARQL Behavior Tree 기반 에이전트 의사결정 및 상호작용을 활용한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>자율주행 시스템의 안전성 검증을 위해서는 다양한 교통 상황에서의 체계적인 테스트가 필수적이다. 기존의 시나리오 생성 방법은 수동 스크립팅에 의존하여 다양성과 확장성이 부족하다. CARJAN은 시맨틱 웹 기술과 멀티에이전트 시스템을 결합하여 이러한 한계를 극복하고, 지능적 에이전트 기반의 교통 시나리오 생성·시뮬레이션을 가능하게 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>CARJAN의 핵심 구성요소와 기술 스택은 다음과 같다:</p>\n<ol>\n<li class=\"\"><strong>비주얼 UI 기반 시나리오 모델링</strong>: 그리드 기반 레이아웃에서 드래그 앤 드롭으로 교통 시나리오를 설계한다. 엔티티 배치, 시나리오 저장·관리 기능을 제공한다.</li>\n<li class=\"\"><strong>SPARQL Behavior Tree 기반 의사결정</strong>: 에이전트(보행자, 자전거, AV 등)의 행동을 SPARQL 쿼리 기반 행동 트리로 정의한다. AJAN 에이전트 프레임워크의 선언적 행동 모델링을 활용한다.</li>\n<li class=\"\"><strong>Flask 미들웨어</strong>: AJAN 프레임워크와 CARLA 시뮬레이터를 연결하는 미들웨어로, 두 시스템 간의 통신을 담당한다.</li>\n<li class=\"\"><strong>CARLA 통합</strong>: 모델링된 시나리오를 원클릭으로 CARLA 형식으로 변환하여 직접 실행·검증한다.</li>\n</ol>\n<table><thead><tr><th>항목</th><th>내용</th></tr></thead><tbody><tr><td>에이전트 프레임워크</td><td>AJAN (SPARQL 기반)</td></tr><tr><td>시뮬레이터</td><td>CARLA</td></tr><tr><td>의사결정</td><td>SPARQL Behavior Trees</td></tr><tr><td>미들웨어</td><td>Flask</td></tr><tr><td>인터페이스</td><td>비주얼 UI (그리드 기반)</td></tr></tbody></table>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-및-결과\">실험 및 결과<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EC%8B%A4%ED%97%98-%EB%B0%8F-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 및 결과에 대한 직접 링크\" title=\"실험 및 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>CARJAN은 대화형 지능적 에이전트 기반의 가상 교통 시나리오 생성·시뮬레이션을 통합한 최초의 접근법을 제시한다. 비주얼 UI를 통해 시나리오 레이아웃을 직관적으로 설계하고, SPARQL Behavior Tree로 에이전트 행동을 정의하며, CARLA 환경에서 직접 시뮬레이션을 수행하는 엔드투엔드 워크플로우를 구현하였다. 다만 정량적 실험 결과나 비교 벤치마크는 포함되지 않았으며, 도구의 아키텍처와 기능을 중심으로 기술되었다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>CARJAN은 BT와 시맨틱 웹 기술(SPARQL)을 결합한 독특한 접근법으로, 에이전트 기반 시나리오 생성과 시뮬레이션을 통합한 최초의 시도 중 하나이다. 사용자 친화적인 비주얼 인터페이스와 지능적 에이전트 행동 모델링을 결합하여, 자율주행 시스템의 안전성 검증을 위한 다양한 교통 시나리오 생성을 지원한다. DFKI(독일 인공지능 연구 센터) 소속 연구팀이 개발하였으며, CC BY 4.0 라이선스로 공개되었다.</p>",
            "url": "https://til.99jik.com/papers/CARJAN-Agent-Based-Generation-and-Simulation-of-Traffic-Scenarios-with-AJAN",
            "title": "CARJAN: Agent-Based Generation and Simulation of Traffic Scenarios with AJAN",
            "summary": "AJAN 멀티에이전트 프레임워크와 CARLA 시뮬레이터를 결합하여 교통 시나리오를 반자동으로 생성·시뮬레이션하는 도구 CARJAN을 소개하는 논문",
            "date_modified": "2025-08-29T00:00:00.000Z",
            "author": {
                "name": "Leonard Frank Neis"
            },
            "tags": [
                "JIK Reference",
                "Behavior Tree",
                "Artificial Intelligence",
                "Test Generation",
                "Automatic Generation"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Deep learning-driven IoT solution for smart tomato farming</li>\n<li class=\"\"><strong>저자</strong>: Akshit Saxena, Aayushi Agarwal, Bhavya Nagrath, Carmel Sanjana Jayavanth, Shamita Thulasidoss, S. Maheswari, P. Sasikumar (Vellore Institute of Technology)</li>\n<li class=\"\"><strong>학회/저널</strong>: Scientific Reports</li>\n<li class=\"\"><strong>발행일</strong>: 2025-08-24</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.1038/s41598-025-15615-3\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.1038/s41598-025-15615-3</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: ESP32 기반 무선 센서 네트워크(토양 수분, 온도, 습도)를 사용하여 온실 환경 데이터를 실시간으로 수집하고, 라즈베리 파이와 YOLOv8 딥러닝 모델을 이용해 토마토의 숙성 단계를 이미지 기반으로 자동 분류하는 IoT 스마트 농업 플랫폼을 제안함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 제안된 시스템은 실시간 모니터링 기능을 성공적으로 시연했으며, 양자화 및 가지치기 등 최적화된 YOLOv8 모델은 52.8%의 분류 정확도를 유지하면서 추론 속도를 35% 향상시켰음. 에너지 소비량 분석 결과, ESP32 센서는 일일 8.91Wh, 라즈베리 파이는 78Wh를 소모하는 것으로 나타남.</li>\n<li class=\"\"><strong>기여점</strong>: 실제 온실 환경에서 수집한 이미지를 활용하여 IoT와 딥러닝을 통합한 실용적인 토마토 농업 모니터링 프로토타입을 구현함. 또한, 시스템 구성 요소의 상세한 에너지 소비 프로파일링을 제공하여 향후 엣지 AI 기반의 확장 가능한 시스템 설계에 기여함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>증가하는 식량 수요와 기후 변화 문제로 인해 정밀 농업(Precision Agriculture)의 중요성이 커지고 있다. 본 연구는 토마토 농업에 특화된 IoT 기반 스마트 온실 플랫폼을 제시하며, 환경 감지 센서와 딥러닝 기술을 통합한다. ESP32 기반 무선 센서가 토양 수분, 온도, 습도 데이터를 실시간으로 수집하여 클라우드 대시보드(ThingsBoard)로 전송해 원격 모니터링을 지원한다. 라즈베리 파이와 Pi 카메라, YOLOv8 모델을 사용하여 실제 온실 이미지로부터 토마토 숙성 단계를 '녹색', '반쯤 익음', '완전히 익음'의 세 단계로 분류한다. 모델 최적화를 통해 추론 속도를 35% 향상시키면서 52.8%의 분류 정확도를 달성했으며, 일일 에너지 소비량은 ESP32 센서가 8.91Wh, 라즈베리 파이가 78Wh로 측정되었다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>2050년까지 세계 인구가 97억 명에 도달할 것으로 예상됨에 따라 식량 생산량을 약 70% 늘려야 하는 과제에 직면해 있다. 기존 농업 방식은 기후 변화, 노동력 부족 등의 한계가 있어 IoT, WSN, AI와 같은 스마트 기술을 활용하는 정밀 농업이 대두되고 있다. 본 연구는 온실 토마토 농업을 위한 스마트 시스템을 제안하며, 센서 데이터와 이미지 기반 숙성도 감지를 결합하여 농작물 관리 효율성과 생산성 향상을 목표로 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250925153218-9cbd233692087294eec1ab8f8c8f2773.png\" width=\"1253\" height=\"1141\" class=\"img_ev3q\">\n정밀 농업(PA)은 데이터 수집, 처리, 분석, 의사 결정, 실행의 순환적 주기를 통해 자원 사용을 최적화하고 환경 영향을 최소화하는 농업 방식이다 (논문의 Figure 1 참조). IoT는 토양 수분, 온도, 습도 등을 측정하는 센서 네트워크를 구성하고, WSN을 통해 데이터를 중앙 컨트롤러로 전송한다. 본 연구는 단순 데이터 수집을 넘어, 센서 값과 카메라 이미지를 함께 사용하여 관개나 조명 조절과 같은 즉각적인 조치를 자동화하는 것을 목표로 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 2\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250925153318-3d5e86b9943bf2154dcce9635914f5c7.png\" width=\"1186\" height=\"830\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 4\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250925153339-72344c74d74c62618765ca7cb51b959b.png\" width=\"1187\" height=\"953\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>핵심 구조</strong>: 시스템은 크게 두 부분으로 구성된다. 첫째, ESP32 마이크로컨트롤러와 연결된 토양 수분, 온도/습도(DHT11), 조도(LDR) 센서가 환경 데이터를 수집하여 Wi-Fi를 통해 ThingsBoard 클라우드 대시보드로 전송한다. 둘째, 라즈베리 파이와 Pi 카메라가 주기적으로 토마토 이미지를 촬영하고, YOLOv8 모델을 실행하여 숙성 단계를 판별한 후 결과를 클라우드로 업로드한다. 전체 시스템 구조는 논문의 Figure 2와 Figure 4에 제시되어 있다.</li>\n<li class=\"\"><strong>주요 구성 요소</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>센서 네트워크</strong>: 토양 수분 센서, DHT11, LDR 센서.</li>\n<li class=\"\"><strong>데이터 수집 및 전송</strong>: ESP32 마이크로컨트롤러.</li>\n<li class=\"\"><strong>이미지 처리 장치</strong>: 라즈베리 파이 및 Pi 카메라.</li>\n<li class=\"\"><strong>딥러닝 모델</strong>: YOLOv8n 아키텍처 기반의 모델을 \"Laboro Tomato\" 데이터셋으로 학습.</li>\n<li class=\"\"><strong>클라우드 플랫폼</strong>: ThingsBoard.</li>\n</ul>\n</li>\n<li class=\"\"><strong>수식</strong>: 주요 하드웨어의 전력 소모량 계산식은 다음과 같다.<!-- -->\n<ul>\n<li class=\"\">ESP32 일일 총 에너지 소비량: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>E</mi><mo stretchy=\"false\">(</mo><mi>t</mi><mi>o</mi><mi>t</mi><mi>a</mi><mi>l</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>6.3364</mn><mi>W</mi><mi>h</mi><mo>+</mo><mn>2.574</mn><mi>W</mi><mi>h</mi><mo>=</mo><mn>8.9104</mn><mi>W</mi><mi>h</mi><mi mathvariant=\"normal\">/</mi><mi>d</mi><mi>a</mi><mi>y</mi></mrow><annotation encoding=\"application/x-tex\">E(total) = 6.3364 Wh + 2.574 Wh = 8.9104 Wh/day</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">E</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em\">l</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7778em;vertical-align:-0.0833em\"></span><span class=\"mord\">6.3364</span><span class=\"mord mathnormal\">Wh</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em\"></span><span class=\"mord\">2.574</span><span class=\"mord mathnormal\">Wh</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord\">8.9104</span><span class=\"mord mathnormal\">Wh</span><span class=\"mord\">/</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">y</span></span></span></span></li>\n<li class=\"\">라즈베리 파이 일일 총 에너지 소비량: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>E</mi><mo stretchy=\"false\">(</mo><mi>t</mi><mi>o</mi><mi>t</mi><mi>a</mi><mi>l</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mn>60</mn><mi>W</mi><mi>h</mi><mo>+</mo><mn>18</mn><mi>W</mi><mi>h</mi><mo>=</mo><mn>78</mn><mi>W</mi><mi>h</mi><mi mathvariant=\"normal\">/</mi><mi>d</mi><mi>a</mi><mi>y</mi></mrow><annotation encoding=\"application/x-tex\">E(total) = 60 Wh + 18 Wh = 78 Wh/day</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">E</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em\">l</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7778em;vertical-align:-0.0833em\"></span><span class=\"mord\">60</span><span class=\"mord mathnormal\">Wh</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6944em\"></span><span class=\"mord\">18</span><span class=\"mord mathnormal\">Wh</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord\">78</span><span class=\"mord mathnormal\">Wh</span><span class=\"mord\">/</span><span class=\"mord mathnormal\">d</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">y</span></span></span></span></li>\n</ul>\n</li>\n<li class=\"\"><strong>알고리즘</strong>: YOLOv8n 모델은 제한된 성능의 엣지 디바이스에 배포하기 위해 양자화(Quantization), 가지치기(Pruning), TensorRT 가속과 같은 최적화 기법이 적용되었다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 13\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250925153533-7e749ae7f1f9e6f49d90aca993eb5c09.png\" width=\"1276\" height=\"1017\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 21\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250925153624-b1e5c82871d4783291987be9fa8e79b0.png\" width=\"1235\" height=\"776\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 'Laboro Tomato' 이미지 데이터셋을 사용했으며, 총 804개의 이미지(학습 643, 테스트 161, 8:2)로 구성했다. 데이터셋은 일반 크기와 방울토마토에 대해 각각 3단계의 숙성도(fully_ripened, half_ripened, green)로 레이블링된 6개의 클래스를 포함함.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>: 제안된 YOLOv8n 모델은 테스트 데이터셋에 대해 52.8%의 분류 정확도를 보였다. 이는 mAP(mean Average Precision) 52.8%와 평균 재현율(recall) 0.478에 해당한다. 모델 성능에 대한 상세한 혼동 행렬(Confusion Matrix)은 논문의 Figure 13에 제시되었다.</li>\n<li class=\"\"><strong>비교 분석</strong>: 기존 연구들이 주로 통제된 실험실 환경이나 공개 데이터셋을 사용하는 것과 달리, 본 연구는 실제 온실에서 촬영한 이미지를 사용하여 프로토타입을 구축하고 테스트함으로써 현실적인 적용 가능성을 높혔다. 또한 논문의 Figure 21에서는 ESP32와 라즈베리 파이의 일일 에너지 소비량(각각 8.91Wh, 78Wh)을 비교 분석하여 시스템의 지속 가능성을 평가하였다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 IoT 센서 네트워크와 YOLOv8 딥러닝 모델을 통합하여 온실 토마토 작물을 모니터링하는 스마트 플랫폼을 성공적으로 구현하였다. 이 플랫폼은 농부에게 실시간 환경 데이터와 자동화된 숙성도 분석 정보를 제공하여 수확량 증대 및 손실 최소화에 기여할 수 있다. 다만, 52.8%의 모델 정확도는 소규모 학습 데이터에 기인한 한계점이며, 인터넷 연결에 대한 의존성 또한 단점으로 지적된다. 향후 연구 방향으로는 데이터셋을 대폭 확장하고, Edge TPU와 같은 엣지 컴퓨팅 기술을 도입하여 오프라인 처리 능력을 강화하며, 관개 및 환기 시스템을 자동으로 제어하는 기능을 추가하는 것이 포함된다.</p>\n<blockquote>\n<p>본 논문은 ITEC0401-002 TA 업무를 위해 읽은 논문이다.</p>\n</blockquote>",
            "url": "https://til.99jik.com/papers/Deep-learning-driven-IoT-solution-for-smart-tomato-farming",
            "title": "Deep learning-driven IoT solution for smart tomato farming",
            "summary": "딥러닝과 IoT를 결합하여 환경 감지 및 토마토 숙성 단계 분류를 통해 스마트 온실 토마토 농업을 위한 플랫폼을 제안한 논문",
            "date_modified": "2025-08-24T00:00:00.000Z",
            "author": {
                "name": "Akshit Saxena"
            },
            "tags": [
                "Deep Learning",
                "Tomato Production",
                "Precision Agriculture",
                "Internet of Things",
                "Wireless Sensor Networks"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: A Survey on Web Testing: On the Rise of AI and Applications in Industry</li>\n<li class=\"\"><strong>저자</strong>: Iva Kertusha (Kristiania University of Applied Sciences), Gebremariam Assres (Kristiania University of Applied Sciences), Onur Duman (Glasgow Caledonian University), Andrea Arcuri (Kristiania University of Applied Sciences)</li>\n<li class=\"\"><strong>학회/저널</strong>: Journal of Systems and Software (제출)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-08-12 (arXiv v2 기준)</li>\n<li class=\"\"><strong>DOI</strong>: 제공되지 않음</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 2014년부터 2025년까지 발표된 웹 테스팅 관련 연구 논문 259편을 체계적으로 분석함. 14개의 연구 질문을 통해 웹 테스팅 분야의 주요 동향, 인구 통계, 기여, 도구, 과제 및 혁신을 식별하며, 특히 인공지능(AI) 기술의 부상과 산업계와의 협력 수준에 중점을 둠.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 웹 테스팅 연구는 지난 10년간 매우 활발했으며, ICST가 주요 학회로 나타남. 연구 대다수는 블랙박스 테스팅 자동화 기술에 초점을 맞추고 있으며, Selenium이 가장 널리 사용되는 도구임. 산업 시스템을 활용하는 긍정적인 추세가 관찰되지만, 많은 도구가 오픈소스로 제공되지 않고 있으며 인간 대상 연구는 상대적으로 제한적임.</li>\n<li class=\"\"><strong>기여점</strong>: 기존 서베이 논문들보다 더 광범위한 259개의 논문을 분석하여 지난 10년간의 웹 테스팅 연구에 대한 심층적인 개요를 제공함. 특히 AI 기술의 역할과 산업 적용 현황을 상세히 분석하여 현재 연구의 강점과 약점, 그리고 미래 연구 방향에 대한 통찰을 제시함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 논문은 2014년부터 2025년까지의 웹 테스팅 방법론, 도구, 동향에 초점을 맞춘 체계적인 문헌 연구를 제시한다. 259개의 연구 논문을 분석하여 이 분야의 핵심 동향, 인구 통계, 기여, 도구, 과제 및 혁신을 식별한다. 연구 결과에 따르면 웹 테스팅 연구는 매우 활발했으며, ICST가 선도적인 연구 발표의 장이었다. 대부분의 연구는 새로운 기술에 중점을 두며, 블랙박스 테스팅의 자동화를 강조한다. Selenium이 가장 널리 사용되는 도구이며, 산업계 채택 및 인간 대상 연구는 비교적 제한적이다. 이 연구는 웹 테스팅 연구의 동향, 발전, 과제, 자동화된 테스팅 방법의 진화, 테스트 케이스 생성에서 인공지능의 역할 및 현재 연구의 격차에 대한 상세한 개요를 제공한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>웹 애플리케이션의 프론트엔드는 사용자 경험을 좌우하는 핵심 요소로, 그 중요성이 날로 커지고 있다. 따라서 기능성, 사용성, 반응성을 검증하는 프론트엔드 테스팅은 필수적이다. 하지만 현대 웹 애플리케이션의 동적이고 복잡한 특성으로 인해 테스팅은 여러 도전에 직면해 있다. 이 연구는 지난 10년간(2014-2025) 발표된 259개의 논문을 분석하여 웹 테스팅 분야의 주요 동향, 발전, 그리고 남아있는 과제들을 종합적으로 파악하는 것을 목표로 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>웹 애플리케이션</strong>: 초기의 정적 HTML 페이지에서 CSS, JavaScript, 서버 기술이 결합된 오늘날의 복잡하고 동적인 '지능형 웹(Web 4.0)'으로 진화했다.</li>\n<li class=\"\"><strong>JavaScript와 비동기성</strong>: JavaScript는 동적 웹을 만드는 핵심 기술이지만, 동적 타이핑과 비동기 이벤트 처리 같은 특성은 테스트를 어렵게 만드는 주요 원인이 된다.</li>\n<li class=\"\"><strong>웹 테스팅</strong>: 소프트웨어 개발 비용의 약 50%를 차지할 정도로 중요한 단계이다. 수동 테스팅은 비용이 많이 들고 오류 발생 가능성이 높아, Selenium과 같은 도구를 사용한 자동화된 테스팅이 필수적이다. 연구는 단순히 테스트를 실행하는 것을 넘어, 테스트 케이스 자체를 자동으로 생성하는 방향으로 발전해왔다. 테스트 접근법은 시스템 내부 구조를 모르는 상태에서 테스트하는 <strong>블랙박스</strong>와 내부 코드를 보며 테스트하는 <strong>화이트박스</strong>로 나뉜다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 논문은 특정 모델을 제안하는 것이 아닌, 서베이 연구이므로 연구 방법론을 중심으로 설명한다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250923154741-10e413c62350b4e1daf2c634ca768899.png\" width=\"1191\" height=\"361\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>핵심 구조/방법</strong>: 14개의 연구 질문(RQ)을 설정하여 웹 테스팅 분야의 다양한 측면을 체계적으로 분석했다. 분석 과정은 논문의 Figure 1에 잘 나타나 있다.</li>\n<li class=\"\"><strong>주요 구성 요소</strong>:<!-- -->\n<ol>\n<li class=\"\"><strong>데이터베이스 검색</strong>: IEEE, ACM 등 7개의 주요 학술 데이터베이스에서 키워드 검색을 통해 초기 논문 625편을 수집했다.</li>\n<li class=\"\"><strong>논문 필터링</strong>: 출판 연도, 언어, 연구 주제 관련성 등의 기준에 따라 논문을 필터링하여 145편을 선별했다.</li>\n<li class=\"\"><strong>스노우볼링</strong>: 선정된 논문의 참고문헌을 추적하는 전방/후방 스노우볼링을 통해 90편의 논문을 추가했다.</li>\n<li class=\"\"><strong>최신 논문 추가</strong>: 2024년과 2025년에 발표된 최신 논문을 추가하여 최종 259편의 논문을 분석 대상으로 확정했다.</li>\n</ol>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 2\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250923154809-1b81a7d785679c5e6e407035b25cb29e.png\" width=\"681\" height=\"725\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 3\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250923154856-aef740e081766118a106afdcfbe1f701.png\" width=\"1176\" height=\"749\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 분석 대상은 2014년부터 2025년 5월까지 출판된 259개의 웹 테스팅 관련 연구 논문이다.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>: 14개 연구 질문에 대한 정량적, 정성적 분석 결과를 제시한다.<!-- -->\n<ul>\n<li class=\"\"><strong>연구 동향 (RQ1, RQ3)</strong>: 웹 테스팅 연구는 연간 15~31편의 논문이 꾸준히 발표될 정도로 활발한 분야이다(Figure 2). 가장 많이 연구된 주제는 <strong>자동 테스트 생성</strong>(124편)이며, <strong>테스트 유지보수</strong>(52편)가 그 뒤를 이었다.</li>\n<li class=\"\"><strong>기여 형태 (RQ4)</strong>: 대부분의 연구(201편)는 **새로운 도구나 기술(NTOT)**을 제안하고, 저자들이 직접 수행한 <strong>알고리즘 실험(AE)</strong>(181편)으로 검증하는 형태였다. 반면, 실제 사용자를 대상으로 하는 <strong>인간 대상 실험(HE)</strong>(30편)이나 산업체 <strong>경험 보고서(ER)</strong>(9편)는 매우 드물었다.</li>\n<li class=\"\"><strong>테스팅 도구 (RQ7, RQ8, RQ12)</strong>: 연구에서 제안된 도구 중 **36.3%**만이 오픈소스로 공개되었다. 대부분의 도구는 첫 논문 발표 이후 유지보수가 중단되는 경향을 보였으며, TESTAR가 예외적인 성공 사례로 언급된다. GUI 테스팅 라이브러리로는 <strong>Selenium</strong>이 압도적으로 많이 사용되었다.</li>\n<li class=\"\"><strong>AI 기술 활용 (RQ13)</strong>: 전체 논문 중 81편(약 31.3%)이 AI 또는 탐색 기반 소프트웨어 테스팅(Search-Based Software Testing) 기술을 사용했다. 논문의 Figure 3에서 볼 수 있듯이, 2016년 이후 AI 기술의 활용이 급격히 증가하는 추세를 보였다. 특히 강화 학습, 컴퓨터 비전, 유전 알고리즘 등이 주로 사용되었다.</li>\n<li class=\"\"><strong>산업 협력 (RQ14)</strong>: 전체 연구의 <strong>17.8%</strong>(46편)가 산업계와의 협력을 포함하고 있었다. 이는 산업체 시스템을 대상으로 한 실험, 경험 보고서 등을 포함하며, 학계의 연구가 실제 산업 현장에 적용될 가능성이 커지고 있음을 보여주는 긍정적인 신호이다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>웹 테스팅은 지난 10년간 활발하게 연구되어 온 성숙한 분야이다. 자동 테스트 생성과 블랙박스 테스팅이 주된 연구 주제였으며, AI 기술의 도입과 산업계 협력이라는 긍정적인 변화가 관찰된다. 하지만 여전히 해결해야 할 과제들이 남아있다. 연구된 도구들의 오픈소스 공개 비율이 낮고 장기적인 유지보수가 부족하며, Selenium 외의 최신 라이브러리에 대한 연구나 화이트박스 테스팅, 인간 대상 연구가 부족하다. 향후 연구는 이러한 격차를 해소하여 학문적 성과가 산업 현장에 더 효과적으로 이전될 수 있도록 노력해야 한다.</p>",
            "url": "https://til.99jik.com/papers/A-Survey-on-Web-Testing-On-the-Rise-of-AI-and-Applications-in-Industry",
            "title": "A Survey on Web Testing: On the Rise of AI and Applications in Industry",
            "summary": "2014년부터 2025년까지 발표된 259개의 연구 논문을 분석하여 웹 테스팅 분야의 핵심 동향, 방법론, AI의 역할 및 산업 적용 사례를 체계적으로 정리한 서베이 논문",
            "date_modified": "2025-08-12T00:00:00.000Z",
            "author": {
                "name": "Iva Kertusha"
            },
            "tags": [
                "Web Testing",
                "GUI Testing",
                "Front-end",
                "Survey",
                "Search-Based Software Testing",
                "Artificial Intelligence",
                "Fuzzing"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: A machine learning-integrated framework for mechanical property prediction of FDM-printed PLA</li>\n<li class=\"\"><strong>저자</strong>: Yassmin Seid Ahmed (King Fahd University of Petroleum &amp; Minerals), Hany Hassanin (University of Birmingham), Aamer Nazir (King Fahd University of Petroleum &amp; Minerals), Sikandar Khan (King Fahd University of Petroleum &amp; Minerals)</li>\n<li class=\"\"><strong>학회/저널</strong>: The International Journal of Advanced Manufacturing Technology</li>\n<li class=\"\"><strong>발행일</strong>: 2025-08-08</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.1007/s00170-025-16232-0\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.1007/s00170-025-16232-0</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: FDM(Fused Deposition Modeling)으로 제작된 PLA 부품의 극한 인장 강도(UTS)를 예측하기 위해 기계 학습(ML), 실험적 검증, 유한 요소 해석(FEA)을 통합한 프레임워크를 제안한다. 14개의 기존 연구에서 422개 샘플 데이터를 수집하여 10개의 ML 알고리즘을 평가하고, 예측 성능 향상을 위해 앙상블 모델을 개발했다.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 개별 ML 모델 중에서는 TabNet이 가장 높은 예측 정확도를 보였으며, 여러 모델을 결합한 앙상블 전략은 결정 계수(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">R^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span>) 99.09%라는 월등한 성능을 달성했다. 309개의 외부 독립 샘플을 통한 검증에서 10% 미만의 예측 오차를 보여 모델의 일반화 능력을 확인했으며, 래스터 각도와 내부 채움 밀도가 인장 강도에 가장 큰 영향을 미치는 공정 변수임을 밝혔다.</li>\n<li class=\"\"><strong>기여점</strong>: 대규모 데이터셋(422개 샘플)과 10개의 다양한 ML 알고리즘, 앙상블 모델링을 적용하고, 외부 데이터셋, 실제 인장 실험, 물리 기반 FEA 시뮬레이션을 포함하는 다단계 검증 체계를 통해 기존 연구들의 한계를 극복했다. 이를 통해 적층 제조 부품의 기계적 물성을 예측하는 검증되고 확장 가능한 통합 솔루션을 제공한다.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 연구는 기계 학습, 실험적 검증, 유한 요소 해석을 결합한 통합 프레임워크를 제시하여 FDM 방식으로 프린팅된 PLA 부품의 인장 거동을 예측하고 설명한다. 422개 샘플의 표준화된 데이터셋을 구축하여 10개의 ML 모델을 평가했으며, TabNet이 개별 모델 중 가장 높은 정확도를 보였다. 여러 모델을 결합한 앙상블 전략은 성능을 더욱 향상시켜 결정 계수(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">R^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span>) 99.09%를 달성했다. 309개의 독립적인 외부 샘플을 이용한 검증에서도 모델의 일반화 능력이 확인되었으며, 예측 오차는 10% 미만으로 유지되었다. FEA 시뮬레이션은 인장 시험을 모사하여 응력 경로를 시각화하고 프린트 방향에 따른 파단 모드를 정확하게 예측했다. 이 연구는 적층 제조를 위한 예측 모델링을 발전시켜 항공 우주, 생의학, 자동차 응용 분야에서 재료 성능을 최적화하고 효율적인 설계를 지원하는 검증된 접근법을 제공한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>적층 제조(AM), 특히 PLA를 사용하는 FDM 방식은 복잡한 형상을 최소한의 재료 낭비로 제작할 수 있어 널리 사용된다. 그러나 산업적 적용성을 확대하기 위해서는 극한 인장 강도(UTS)와 같은 기계적 특성을 정확하게 예측하는 것이 매우 중요하다. 기존 연구들은 작은 데이터셋, 제한된 수의 ML 알고리즘 사용, 외부 데이터나 실험을 통한 검증 부족 등의 한계를 가지고 있었다. 이 연구는 이러한 한계를 극복하기 위해 대규모 데이터셋, 다양한 ML 모델, 그리고 실험 및 FEA를 포함하는 다단계 검증을 통합한 포괄적인 예측 프레임워크를 제안한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>핵심 구조/방법</strong>: 연구의 전체적인 흐름은 데이터 수집, ML 모델 개발, 앙상블 생성, 외부 검증, 실험 및 FEA, 최종 비교 분석의 단계로 구성된다. 422개의 샘플 데이터셋을 70%의 훈련용과 30%의 테스트용으로 분할하여 사용했다.</li>\n<li class=\"\"><strong>주요 구성 요소</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>데이터</strong>: 14개의 연구에서 6가지 주요 공정 변수(내부 채움 비율, 래스터 각도, 레이어 높이, 압출 온도, 프린트 속도, 노즐 직경)를 포함하는 422개 샘플 데이터를 수집했다.</li>\n<li class=\"\"><strong>ML 모델</strong>: AdaBoost, Bayesian Ridge, CatBoost, Decision Tree, Elastic Net, k-Nearest Neighbors, Linear Regression, Random Forest, Support Vector Regression, 그리고 TabNet까지 총 10개의 알고리즘을 평가했다.</li>\n<li class=\"\"><strong>FEA 시뮬레이션</strong>: ANSYS Explicit Dynamics를 사용하여 ASTM D638 Type I 시편의 인장 거동을 시뮬레이션했다. 재료의 손상 시작과 진행을 모사하기 위해 인장-분리 법칙(traction-separation law)을 적용했다.</li>\n<li class=\"\"><strong>실험</strong>: 4가지 다른 공정 조건으로 PLA 인장 시편을 제작하고, Instron 인장 시험기를 사용하여 UTS를 측정했다.</li>\n</ul>\n</li>\n<li class=\"\"><strong>수식</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>Elastic Net 손실 함수</strong>: L1과 L2 정규화를 결합하여 모델의 복잡성을 제어한다.\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>m</mi><mi>i</mi><mi>n</mi><mfrac><mn>1</mn><mrow><mn>2</mn><mi>m</mi></mrow></mfrac><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></msubsup><mo stretchy=\"false\">(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>X</mi><mi>i</mi><mi>T</mi></msubsup><mi>β</mi><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup><mo>+</mo><msub><mi>λ</mi><mn>1</mn></msub><msubsup><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mi mathvariant=\"normal\">∣</mi><msub><mi>β</mi><mi>j</mi></msub><mi mathvariant=\"normal\">∣</mi><mo>+</mo><msub><mi>λ</mi><mn>2</mn></msub><msubsup><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><msubsup><mi>β</mi><mi>j</mi><mn>2</mn></msubsup></mrow><annotation encoding=\"application/x-tex\">min\\frac{1}{2m}\\sum_{i=1}^{m}(y_i-X_i^{T}\\beta)^{2}+\\lambda_1\\sum_{j=1}^{n}|\\beta_j|+\\lambda_2\\sum_{j=1}^{n}\\beta_j^{2}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.1901em;vertical-align:-0.345em\"></span><span class=\"mord mathnormal\">min</span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8451em\"><span style=\"top:-2.655em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span><span class=\"mord mathnormal mtight\">m</span></span></span></span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"></span></span><span style=\"top:-3.394em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.345em\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8043em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">1</span></span></span></span><span style=\"top:-3.2029em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2997em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1em;vertical-align:-0.2587em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.07847em\">X</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8413em\"><span style=\"top:-2.4413em;margin-left:-0.0785em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">T</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2587em\"><span></span></span></span></span></span></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mclose\"><span class=\"mclose\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2401em;vertical-align:-0.4358em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8043em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">1</span></span></span></span><span style=\"top:-3.2029em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.4358em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\">∣</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:-0.0528em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mord\">∣</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2499em;vertical-align:-0.4358em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">λ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8043em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">1</span></span></span></span><span style=\"top:-3.2029em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.4358em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-2.4413em;margin-left:-0.0528em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span></span></span><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3948em\"><span></span></span></span></span></span></span></span></span></span></li>\n<li class=\"\"><strong>TabNet 특징 선택 마스크</strong>: 각 결정 단계에서 가장 관련성 높은 특징을 선택한다.\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>M</mi><mi>t</mi></msub><mo>=</mo><mi>S</mi><mi>p</mi><mi>a</mi><mi>r</mi><mi>s</mi><mi>e</mi><mi>m</mi><mi>a</mi><mi>x</mi><mo stretchy=\"false\">(</mo><msub><mi>f</mi><mrow><mi>a</mi><mi>t</mi><mi>t</mi></mrow></msub><mo stretchy=\"false\">(</mo><msub><mi>A</mi><mi>t</mi></msub><mo separator=\"true\">,</mo><mi>X</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">M_{t}=Sparsemax(f_{att}(A_{t},X))</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10903em\">M</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2806em\"><span style=\"top:-2.55em;margin-left:-0.109em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">t</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\">Sp</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">rse</span><span class=\"mord mathnormal\">ma</span><span class=\"mord mathnormal\">x</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2806em\"><span style=\"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">tt</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">A</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2806em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">t</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.07847em\">X</span><span class=\"mclose\">))</span></span></span></span></li>\n<li class=\"\"><strong>성능 평가 지표</strong>: 모델 성능은 결정 계수(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">R^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span>), 평균 절대 오차(MAE), 평균 제곱근 오차(RMSE)로 평가했다.\n<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup><mo stretchy=\"false\">(</mo><mi>y</mi><mo separator=\"true\">,</mo><mover accent=\"true\"><mi>y</mi><mo>^</mo></mover><mo stretchy=\"false\">)</mo><mo>=</mo><mn>1</mn><mo>−</mo><mfrac><mrow><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo stretchy=\"false\">(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><msub><mover accent=\"true\"><mi>y</mi><mo>^</mo></mover><mi>i</mi></msub><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup></mrow><mrow><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo stretchy=\"false\">(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>−</mo><mover accent=\"true\"><mi>y</mi><mo>ˉ</mo></mover><msup><mo stretchy=\"false\">)</mo><mn>2</mn></msup></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">R²(y, \\hat{y}) = 1 - \\frac{\\sum_{i=0}^{n-1}(y_i - \\hat{y}_i)^2}{\\sum_{i=0}^{n-1}(y_i - \\bar{y})^2}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.0641em;vertical-align:-0.25em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">y</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord accent\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">y</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.1944em\"><span class=\"mord\">^</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1944em\"><span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.7278em;vertical-align:-0.0833em\"></span><span class=\"mord\">1</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.7998em;vertical-align:-0.6408em\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.1589em\"><span style=\"top:-2.5848em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mop mtight\"><span class=\"mop op-symbol small-op mtight\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8646em\"><span style=\"top:-2.1777em;margin-left:0em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">0</span></span></span></span><span style=\"top:-2.9043em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3223em\"><span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3281em\"><span style=\"top:-2.357em;margin-left:-0.0359em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em\"><span></span></span></span></span></span></span><span class=\"mbin mtight\">−</span><span class=\"mord accent mtight\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.5678em\"><span style=\"top:-2.7em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">y</span></span><span style=\"top:-2.7em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"accent-body\" style=\"left:-0.1944em\"><span class=\"mord mtight\">ˉ</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1944em\"><span></span></span></span></span></span><span class=\"mclose mtight\"><span class=\"mclose mtight\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7463em\"><span style=\"top:-2.786em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"></span></span><span style=\"top:-3.535em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mop mtight\"><span class=\"mop op-symbol small-op mtight\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8913em\"><span style=\"top:-2.1786em;margin-left:0em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">0</span></span></span></span><span style=\"top:-2.931em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">n</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3214em\"><span></span></span></span></span></span></span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3281em\"><span style=\"top:-2.357em;margin-left:-0.0359em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em\"><span></span></span></span></span></span></span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\"><span class=\"mord accent mtight\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-2.7em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">y</span></span><span style=\"top:-2.7em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"accent-body\" style=\"left:-0.1944em\"><span class=\"mord mtight\">^</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1944em\"><span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3281em\"><span style=\"top:-2.357em;margin-left:-0.0359em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.143em\"><span></span></span></span></span></span></span><span class=\"mclose mtight\"><span class=\"mclose mtight\">)</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8913em\"><span style=\"top:-2.931em;margin-right:0.0714em\"><span class=\"pstrut\" style=\"height:2.5em\"></span><span class=\"sizing reset-size3 size1 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6408em\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 14개의 문헌에서 수집한 422개의 FDM-PLA 샘플 데이터와, 검증을 위해 추가로 수집한 309개의 외부 데이터셋을 사용했다.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>:<!-- -->\n<ul>\n<li class=\"\">상관관계 분석 결과, 래스터 각도(상관계수 -0.73)와 내부 채움 밀도(상관계수 0.58)가 UTS에 가장 큰 영향을 미치는 요소로 나타났다.</li>\n<li class=\"\">개별 모델 중 TabNet이 테스트 데이터셋에서 가장 높은 성능(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup><mo>=</mo><mn>95.73</mn><mi mathvariant=\"normal\">%</mi></mrow><annotation encoding=\"application/x-tex\">R^2=95.73\\%</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.8056em;vertical-align:-0.0556em\"></span><span class=\"mord\">95.73%</span></span></span></span>)을 보였다.</li>\n<li class=\"\">앙상블 모델은 성능을 더욱 향상시켰으며, 특히 Ensemble 8 모델은 테스트 데이터셋에서 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">R^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span> 99.09%라는 매우 높은 정확도를 달성했다.</li>\n</ul>\n</li>\n<li class=\"\"><strong>비교 결과</strong>:<!-- -->\n<ul>\n<li class=\"\">FEA 시뮬레이션 결과는 실험에서 관찰된 파단 패턴과 높은 일치도를 보였다. 래스터 각도에 따라 파단 모드가 달라지며, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mn>0</mn><mo lspace=\"0em\" rspace=\"0em\">∘</mo></msup></mrow><annotation encoding=\"application/x-tex\">0^{\\circ}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6741em\"></span><span class=\"mord\"><span class=\"mord\">0</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6741em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">∘</span></span></span></span></span></span></span></span></span></span></span></span> 래스터에서는 재료 자체의 파괴가, 높은 각도에서는 층간 분리가 주된 파괴 원인이었다.</li>\n<li class=\"\">자체 실험 및 외부 데이터셋을 이용한 TabNet 모델 검증 결과, 대부분의 예측 오차가 10% 이내로 나타나 모델의 높은 일반화 성능을 입증했다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 연구는 기계 학습, FEA, 실험적 검증을 성공적으로 통합하여 FDM으로 제작된 PLA 부품의 인장 강도를 정확하게 예측하는 프레임워크를 제시했다. 앙상블 ML 모델이 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msup><mi>R</mi><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">R^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8141em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.00773em\">R</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span> 99.09%의 높은 예측 정확도를 달성했으며, 래스터 각도와 내부 채움 밀도가 강도를 결정하는 핵심 인자임을 확인했다. 이 검증되고 확장 가능한 하이브리드 예측 프레임워크는 적층 제조 부품의 지능형 설계, 최적화 및 신뢰성 평가를 발전시키는 데 기여한다.</p>",
            "url": "https://til.99jik.com/papers/A-machine-learning-intergrated-framework-for-mechanical-property-prediction-of-FDM-printed-PLA",
            "title": "A machine learning-integrated framework for mechanical property prediction of FDM-printed PLA",
            "summary": "기계 학습, 실험 검증, 유한 요소 해석을 통합하여 FDM 방식 3D 프린팅 PLA 부품의 인장 강도를 예측하고 설명하는 확장 가능한 프레임워크를 제시한다.",
            "date_modified": "2025-08-08T00:00:00.000Z",
            "author": {
                "name": "Yassmin Seid Ahmed"
            },
            "tags": [
                "Fused Deposition Modeling",
                "Machine Learning",
                "Tensile Strength Prediction",
                "Polylactic Acid"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Comparative Analysis of Explainable AI Methods for Manufacturing Defect Prediction: A Mathematical Perspective</li>\n<li class=\"\"><strong>저자</strong>: Gabriel Marín Díaz (Faculty of Statistics, Complutense University &amp; Science and Aerospace Department, Universidad Europea de Madrid)</li>\n<li class=\"\"><strong>학회/저널</strong>: Mathematics</li>\n<li class=\"\"><strong>발행일</strong>: 2025-07-29</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.3390/math13152436\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.3390/math13152436</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 기계 학습(XGBoost), 비지도 클러스터링(Fuzzy C-Means, K-means), 설명가능 AI(XAI)를 통합하여 제조 공정의 결함을 예측하고 분석하는 통합 프레임워크를 제안함. 지도 학습 모델로 결함 발생 가능성이 높은 시나리오를 분류하고, 비지도 학습으로 생산 데이터를 잠재적 운영 프로파일로 군집화하여 각 접근법을 XAI로 해석함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: XGBoost 모델은 95.37%의 높은 정확도로 결함을 예측했으며, SHAP, LIME 등의 XAI 기법은 'MaintenanceHours', 'DefectRate', 'QualityScore'를 핵심 영향 변수로 일관되게 식별함. K-means 클러스터링은 '고효율/고품질', '고위험/자원집약적', '균형/지속가능'의 세 가지 의미 있는 운영 프로파일을 성공적으로 분리했으나, Fuzzy C-Means는 명확한 군집 분리에 한계를 보임.</li>\n<li class=\"\"><strong>기여점</strong>: 지도 학습, 비지도 클러스터링, XAI를 제조 결함 분석을 위한 단일 프레임워크로 통합한 최초의 연구임. 예측 모델링과 구조적 데이터 분석 모두에 XAI를 적용하여, 제조 공정의 동적 관계에 대한 투명하고 데이터 기반의 이해를 가능하게 하는 이중 해석 가능성 접근법을 제시함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>제조 공정의 복잡성이 증가함에 따라 정확한 결함 예측과 원인에 대한 해석 가능한 통찰력이 중요해졌다. 이 연구는 기계 학습, 클러스터링, 설명가능 AI(XAI)를 통합하여 산업 환경의 결함 분석 및 품질 관리를 지원하는 방법론을 제안한다. 실제 산업 분포 기반 데이터셋을 사용하여 XGBoost 모델로 고/저 결함 시나리오를 분류하고, 5가지 XAI 기법(SHAP, LIME, ELI5, PDP, ICE)으로 결함과 관련된 주요 변수를 식별한다. 동시에 Fuzzy C-Means와 K-means로 생산 데이터를 잠재적 운영 프로파일로 군집화하고, 이 또한 XAI로 해석하여 공정 수준의 패턴을 발견한다. 이 접근법은 예측적 관점과 구조적 관점 모두에서 일관된 변수를 드러내며 전역적, 지역적 해석 가능성을 모두 제공한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>산업 생산 공정에서 품질 관리는 제품 안전, 고객 만족, 규제 준수를 위해 필수적이다. 최근 머신러닝 모델이 품질 관리 시스템에 도입되었으나, '블랙박스' 모델의 불투명성은 신뢰와 실제 적용에 걸림돌이 된다. 이 연구는 XAI 기술을 통해 모델을 투명하게 만들고, 지도 학습(결함 예측)과 비지도 학습(프로파일링)을 결합한 통합 프레임워크를 통해 제조 공정의 품질 관리를 위한 일관되고 해석 가능한 방법론을 제공하고자 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 연구는 네 가지 핵심 영역을 기반으로 한다: 1) 제조 결함 탐지를 위한 딥러닝, 2) 산업 응용 분야에서의 XAI 통합, 3) 생산 프로파일링을 위한 퍼지 클러스터링, 4) 이러한 기술들을 결합한 통합 프레임워크의 부재. 문헌 검토 결과, 지도 학습, 비지도 클러스터링, XAI를 단일 파이프라인으로 명시적으로 결합한 연구는 없었으며, 이는 본 연구의 독창성을 강조한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>핵심 구조/방법</strong>: 데이터 전처리, 이중 모델링 프레임워크(지도/비지도), 설명가능성 계층, 일관성 분석의 4단계로 구성된다. 지도 학습에서는 XGBoost를 사용하여 결함을 예측하고, 비지도 학습에서는 Fuzzy C-Means(FCM)와 K-means를 사용하여 생산 프로파일을 군집화한다. 이후 SHAP, LIME, ELI5, PDP, ICE와 같은 5가지 XAI 기법을 두 경로 모두에 적용하여 결과를 해석한다.</li>\n<li class=\"\"><strong>주요 구성 요소</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>XGBoost (지도 예측)</strong>: 결함 예측 확률을 출력하는 분류 트리 앙상블 모델.</li>\n<li class=\"\"><strong>Fuzzy C-Means (비지도 군집화)</strong>: 각 데이터가 여러 클러스터에 속할 수 있는 '소프트' 군집화 방법.</li>\n<li class=\"\"><strong>K-means (비지도 군집화)</strong>: 각 데이터를 가장 가까운 클러스터에 할당하는 '하드' 군집화 방법.</li>\n<li class=\"\"><strong>XAI 기법 (해석)</strong>: SHAP(게임 이론 기반 기여도), LIME(지역적 대리 모델), ELI5(의사결정 경로 추적), PDP(평균 예측 시각화), ICE(개별 예측 시각화)를 사용한다.</li>\n</ul>\n</li>\n<li class=\"\"><strong>수식</strong>:<!-- -->\n<ul>\n<li class=\"\">XGBoost 예측: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mover accent=\"true\"><mi>y</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><mi>σ</mi><mo stretchy=\"false\">(</mo><msub><mo>∑</mo><mi>k</mi></msub><msub><mi>f</mi><mi>k</mi></msub><mo stretchy=\"false\">(</mo><msub><mi>x</mi><mi>i</mi></msub><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">\\hat{y}_i = \\sigma(\\sum_{k} f_k(x_i))</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">y</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.1944em\"><span class=\"mord\">^</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1944em\"><span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.0497em;vertical-align:-0.2997em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span><span class=\"mopen\">(</span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1864em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em\">k</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2997em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em\">k</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mclose\">))</span></span></span></span>, 여기서 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>f</mi><mi>k</mi></msub></mrow><annotation encoding=\"application/x-tex\">f_k</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em\">k</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span></span></span></span>는 분류 트리.</li>\n<li class=\"\">FCM 목적 함수: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>J</mi><mi>m</mi></msub><mo>=</mo><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msubsup><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>C</mi></msubsup><msubsup><mi>u</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>m</mi></msubsup><mi mathvariant=\"normal\">∥</mi><msub><mi>x</mi><mi>i</mi></msub><mo>−</mo><msub><mi>c</mi><mi>j</mi></msub><msup><mi mathvariant=\"normal\">∥</mi><mn>2</mn></msup></mrow><annotation encoding=\"application/x-tex\">J_m = \\sum_{i=1}^{N}\\sum_{j=1}^{C}u_{ij}^{m}\\|x_i - c_j\\|^2</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.09618em\">J</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1514em\"><span style=\"top:-2.55em;margin-left:-0.0962em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.417em;vertical-align:-0.4358em\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9812em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">i</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">1</span></span></span></span><span style=\"top:-3.2029em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10903em\">N</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2997em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9812em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span><span class=\"mrel mtight\">=</span><span class=\"mord mtight\">1</span></span></span></span><span style=\"top:-3.2029em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.07153em\">C</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.4358em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6644em\"><span style=\"top:-2.4413em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">ij</span></span></span></span><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">m</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3948em\"><span></span></span></span></span></span></span><span class=\"mord\">∥</span><span class=\"mord\"><span class=\"mord mathnormal\">x</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1002em;vertical-align:-0.2861em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">c</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mord\"><span class=\"mord\">∥</span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8141em\"><span style=\"top:-3.063em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span></span></span></span></span></span></span></span>, 여기서 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>u</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding=\"application/x-tex\">u_{ij}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7167em;vertical-align:-0.2861em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">u</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">ij</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span></span></span></span>는 멤버십 정도.</li>\n<li class=\"\">SHAP 값: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>ϕ</mi><mi>j</mi></msub><mo>=</mo><msub><mo>∑</mo><mrow><mi>S</mi><mo>⊆</mo><mi>N</mi><mo>∖</mo><mo stretchy=\"false\">{</mo><mi>j</mi><mo stretchy=\"false\">}</mo></mrow></msub><mfrac><mrow><mi mathvariant=\"normal\">∣</mi><mi>S</mi><mi mathvariant=\"normal\">∣</mi><mo stretchy=\"false\">!</mo><mo stretchy=\"false\">(</mo><mi mathvariant=\"normal\">∣</mi><mi>N</mi><mi mathvariant=\"normal\">∣</mi><mo>−</mo><mi mathvariant=\"normal\">∣</mi><mi>S</mi><mi mathvariant=\"normal\">∣</mi><mo>−</mo><mn>1</mn><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">!</mo></mrow><mrow><mi mathvariant=\"normal\">∣</mi><mi>N</mi><mi mathvariant=\"normal\">∣</mi><mo stretchy=\"false\">!</mo></mrow></mfrac><mo stretchy=\"false\">[</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>S</mi><mo>∪</mo><mo stretchy=\"false\">{</mo><mi>j</mi><mo stretchy=\"false\">}</mo><mo stretchy=\"false\">)</mo><mo>−</mo><mi>f</mi><mo stretchy=\"false\">(</mo><mi>S</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">\\phi_j = \\sum_{S \\subseteq N \\setminus \\{j\\}} \\frac{|S|!(|N|-|S|-1)!}{|N|!} [f(S \\cup \\{j\\}) - f(S)]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.9805em;vertical-align:-0.2861em\"></span><span class=\"mord\"><span class=\"mord mathnormal\">ϕ</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.53em;vertical-align:-0.52em\"></span><span class=\"mop\"><span class=\"mop op-symbol small-op\" style=\"position:relative;top:0em\">∑</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2253em\"><span style=\"top:-2.4003em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05764em\">S</span><span class=\"mrel mtight\">⊆</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10903em\">N</span><span class=\"mbin mtight\">∖</span><span class=\"mopen mtight\">{</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05724em\">j</span><span class=\"mclose mtight\">}</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.4747em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.01em\"><span style=\"top:-2.655em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">∣</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10903em\">N</span><span class=\"mord mtight\">∣</span><span class=\"mclose mtight\">!</span></span></span></span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"></span></span><span style=\"top:-3.485em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">∣</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05764em\">S</span><span class=\"mord mtight\">∣</span><span class=\"mclose mtight\">!</span><span class=\"mopen mtight\">(</span><span class=\"mord mtight\">∣</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10903em\">N</span><span class=\"mord mtight\">∣</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">∣</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.05764em\">S</span><span class=\"mord mtight\">∣</span><span class=\"mbin mtight\">−</span><span class=\"mord mtight\">1</span><span class=\"mclose mtight\">)!</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.52em\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mopen\">[</span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">S</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">∪</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mopen\">{</span><span class=\"mord mathnormal\" style=\"margin-right:0.05724em\">j</span><span class=\"mclose\">})</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.10764em\">f</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">S</span><span class=\"mclose\">)]</span></span></span></span></li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 3240개의 관측치와 16개 특성으로 구성된 공개 제조 결함 데이터셋(\"manufacturing_defect_dataset.csv\")을 사용했다.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>: XGBoost 결함 예측 모델은 테스트 데이터에서 95.37%의 정확도, 0.8826의 AUC, 0.9927의 재현율을 달성했다. 혼동 행렬 분석 결과, 모델은 결함 샘플(True Positive: 678)을 매우 잘 탐지하며, 이는 품질 관리에서 중요한 강점이다.</li>\n<li class=\"\"><strong>비교 결과</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>XAI 분석</strong>: SHAP, LIME, ELI5는 공통적으로 'MaintenanceHours', 'DefectRate', 'QualityScore'를 결함 예측의 가장 중요한 변수로 지목했다. PDP 및 ICE 플롯은 'MaintenanceHours' 값이 약 0.4를 초과할 때 결함 확률이 급격히 증가하는 비선형 관계를 시각적으로 보여준다.</li>\n<li class=\"\"><strong>클러스터링 분석</strong>: Fuzzy C-Means는 클러스터 간 뚜렷한 차이를 보이지 못했다. 반면 K-means는 '고효율/고품질'(Cluster 0), '고위험/자원집약적'(Cluster 1), '균형/지속가능'(Cluster 2)이라는 세 가지 의미 있는 운영 프로파일로 데이터를 성공적으로 분할했다. 클러스터 멤버십을 예측하는 XGBoost 모델은 92.90%의 높은 정확도를 보여 K-means 클러스터링의 타당성을 뒷받침했다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>지도 학습, 비지도 클러스터링, XAI를 결합한 이중 모델링 프레임워크는 제조 공정 분석을 위한 강력하고 해석 가능한 방법론임을 입증했다. XGBoost는 결함 예측에 높은 성능을 보였고, XAI 기법들은 모델의 결정 과정을 투명하게 만들어 신뢰성을 높였다. K-means 클러스터링은 감독되지 않은 데이터에서 의미 있는 운영 프로파일을 발견했으며, 이는 결함 예측에서 관찰된 패턴과 일관성을 보였다. 이 통합 접근법은 Industry 4.0 원칙에 부합하는 지능적이고 투명한 시스템 개발에 기여한다.</p>",
            "url": "https://til.99jik.com/papers/Comparative-Analysis-of-Explainable-AI-Methods-for-Manufacturing-Defect-Prediction-A-Mathematical-Perspective",
            "title": "Comparative Analysis of Explainable AI Methods for Manufacturing Defect Prediction: A Mathematical Perspective",
            "summary": "기계 학습, 클러스터링, 설명가능 AI(XAI)를 통합하여 제조 결함을 분석하고 예측함으로써 생산 동역학에 대한 투명하고 데이터 기반의 이해를 제공하는 프레임워크를 제안한 논문",
            "date_modified": "2025-07-29T00:00:00.000Z",
            "author": {
                "name": "Gabriel Marín Díaz"
            },
            "tags": [
                "Explainable Artificial Intelligence",
                "Defect Prediction",
                "Manufacturing Quality Control",
                "Machine Learning",
                "Clustering"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Enhancing Game AI Behaviors with Large Language Models and Agentic AI</li>\n<li class=\"\"><strong>저자</strong>: Ciprian Paduraru (Gameloft &amp; University of Bucharest), Miruna Gabriela Paduraru (University of Bucharest), Alin Stefanescu (University of Bucharest)</li>\n<li class=\"\"><strong>학회/저널</strong>: FSE 2025 (33rd ACM International Conference on the Foundations of Software Engineering) - Industry Papers</li>\n<li class=\"\"><strong>발행일</strong>: 2025-06-25</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.1145/3696630.3728553\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.1145/3696630.3728553</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: LLM과 에이전트 기반 AI를 활용하여 게임 NPC의 복잡한 행동 트리(BT)를 자동 생성하는 프레임워크를 제안하며, 소스 코드와 게임 엔진 시각 도구 간의 간극을 해소</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 소형 로컬 모델로 외부 API 없이 구동 가능하며, 기술/비기술 스테이크홀더 모두 활용 가능한 실용적 접근법을 산학 협력으로 검증</li>\n<li class=\"\"><strong>기여점</strong>: LLM 기반 BT 자동 생성 파이프라인, 게임 엔진 시각 도구 통합, NPC 행동 다양성 및 테스트 가능성 향상, 다양한 게임 엔진에 적응 가능한 확장성 있는 아키텍처</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>고급 AI 행동의 통합은 몰입감 있고 역동적인 비디오 게임 경험을 만드는 데 핵심적이다. 본 논문은 LLM과 에이전트 기반 AI를 활용하여 게임 NPC(Non-Player Character)를 위한 복잡한 행동 트리(BT)를 생성하는 프레임워크를 제안한다. 이 방법은 소스 코드와 게임 엔진의 시각적 도구 사이의 간극을 해소하여, 기술적·비기술적 이해관계자 모두가 NPC 개발에 효과적으로 기여할 수 있도록 한다. 주요 기여점에는 행동 다양성 증대, 게임 테스트 가능성 향상, 다양한 게임 엔진에 적응 가능한 확장성 있는 아키텍처가 포함된다. 표준 개발자 하드웨어에서 외부 서비스 없이 구동되는 소형 모델을 활용하여 접근성을 우선시한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>게임 AI에서 NPC의 행동 설계는 게임의 몰입감과 품질을 좌우하는 핵심 요소이다. 전통적으로 BT는 게임 개발자가 수동으로 설계하며, 이 과정은 시간이 많이 소요되고 전문 지식을 요구한다. 최근 LLM의 발전은 코드 생성, 자연어 처리 등에서 뛰어난 성능을 보여주고 있으며, 이를 게임 AI 행동 생성에 활용할 수 있는 가능성이 열리고 있다. 특히 에이전트 기반 AI 접근법을 통해 복잡한 BT 생성을 여러 상호 연결된 에이전트에게 분배할 수 있다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>프레임워크의 핵심 구성 요소:</p>\n<ol>\n<li class=\"\"><strong>멀티 에이전트 오케스트레이션</strong>: 여러 상호 연결된 에이전트를 조율하여 복잡한 BT를 생성. 각 에이전트는 BT 생성의 특정 측면을 담당</li>\n<li class=\"\"><strong>게임 엔진 시각 도구 통합</strong>: 생성된 BT를 게임 엔진의 시각적 편집 도구와 통합하여, 프로그래머뿐 아니라 게임 디자이너 등 비기술 인력도 결과를 확인하고 수정 가능</li>\n<li class=\"\"><strong>로컬 소형 모델 활용</strong>: 외부 API 의존 없이 표준 개발자 하드웨어에서 실행되는 소형 LLM을 활용하여 비용 절감 및 보안 확보</li>\n<li class=\"\"><strong>확장 가능한 아키텍처</strong>: 다양한 게임 엔진에 적응 가능한 설계로 범용적 활용 지원</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-및-결과\">실험 및 결과<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EC%8B%A4%ED%97%98-%EB%B0%8F-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 및 결과에 대한 직접 링크\" title=\"실험 및 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>산학 협력을 통해 프레임워크의 유효성을 검증하였다. 실험 결과:</p>\n<ul>\n<li class=\"\">LLM을 통해 생성된 BT가 NPC의 행동 다양성을 크게 향상시킴</li>\n<li class=\"\">소형 로컬 모델로도 충분한 품질의 BT 생성이 가능함을 확인</li>\n<li class=\"\">게임 엔진 시각 도구와의 통합으로 기술/비기술 스테이크홀더 간 협업 효율성이 향상됨</li>\n<li class=\"\">게임 테스트 가능성이 개선되어 QA 과정의 효율성 증대</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 LLM과 에이전트 기반 AI를 활용한 게임 NPC 행동 트리 자동 생성의 실용적 프레임워크를 제시한다. 외부 서비스 없이 로컬 소형 모델로 구동 가능하며, 다양한 게임 엔진에 적응 가능한 확장성 있는 아키텍처를 갖추고 있다. Gameloft과 부쿠레슈티 대학교의 산학 협력을 통해 실제 게임 개발 환경에서의 효용성이 검증되었다.</p>",
            "url": "https://til.99jik.com/papers/Enhancing-Game-AI-Behaviors-with-LLMs-and-Agentic-AI",
            "title": "Enhancing Game AI Behaviors with Large Language Models and Agentic AI",
            "summary": "LLM과 에이전트 기반 AI를 활용하여 게임 NPC의 행동 트리를 자동 생성하는 프레임워크 제안",
            "date_modified": "2025-06-25T00:00:00.000Z",
            "author": {
                "name": "Ciprian Paduraru"
            },
            "tags": [
                "Large Language Model",
                "Behavior Tree",
                "Game Artificial Intelligence",
                "Non-Player Character",
                "Agentic Artificial Intelligence",
                "JIK Reference"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: A Study on the Capability of Generative AI to Understand and Utilize Test Cases</li>\n<li class=\"\"><strong>저자</strong>: 김정인, 이우진 (경북대학교 컴퓨터학부)</li>\n<li class=\"\"><strong>학회/저널</strong>: KCC 2025</li>\n<li class=\"\"><strong>발행일</strong>: 2025-06-20</li>\n<li class=\"\"><strong>DOI</strong>: N/A</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 최신 LLM인 GPT-4.1을 대상으로 경쟁 프로그래밍(CP) 문제 해결 시, 제로샷 프롬프팅 환경에서 테스트케이스(TC) 정보를 제공하는 것이 코드 생성 정확도에 미치는 영향을 분석함. 문제 정의만 제공한 경우, 문제 정의와 TC를 함께 제공한 경우, 입출력 정보와 TC만 제공한 경우로 나누어 실험을 설계하고 결과를 비교함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: TC 정보 추가가 전반적인 코드 생성 정확도 향상으로 이어지지 않았으며, 특히 문제 난이도가 높을수록 성능이 저하되는 경향을 보였음. 또한, GPT-4.1은 TC를 생성하고 검증하는 능력에도 명확한 한계를 보였음.</li>\n<li class=\"\"><strong>기여점</strong>: LLM의 코드 생성 과정에서 TC 정보가 항상 긍정적인 영향을 미치는 것은 아니라는 점을 실험적으로 밝힘. 이는 LLM이 개발자처럼 TC를 통해 문제의 요구사항이나 잠재적 오류를 추론하는 단계에 이르지 못했음을 시사하며, LLM 활용 시 TC 포함 전략에 신중한 접근이 필요함을 제기함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>대규모 언어 모델(LLM)의 코드 생성 능력은 주목받고 있지만, 생성된 코드의 정확성과 신뢰성은 여전히 중요한 과제임. 개발자들이 코드 신뢰도를 높이기 위해 사용하는 테스트케이스(TC)를 LLM에 적용했을 때 코드 생성 정확도를 높일 수 있는지 알아보고자 함. 이 논문은 최신 LLM인 GPT-4.1이 제로샷 프롬프팅으로 경쟁 프로그래밍 문제를 해결하는 과정에서 TC 정보가 결과에 미치는 영향과 GPT-4.1의 TC 생성 및 이해 능력을 분석함.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>LLM은 코드 생성 분야에서 개발 패러다임의 변화를 이끌고 있으나, 생성된 코드의 논리적 결함이나 요구사항 누락과 같은 정확성 문제가 존재함. 소프트웨어 테스팅 분야의 테스트 주도 개발(TDD) 방법론은 코드 작성 전 TC를 먼저 정의하여 요구사항을 명확히 하고 오류를 줄이는 데 도움을 줌. 본 연구는 TDD에서 아이디어를 얻어, LLM에게 코드 생성 시 TC 정보를 제공하면 개발자처럼 TC를 활용해 더 정확한 코드를 생성할 것이라는 가설을 세움. 이를 검증하기 위해 \"LLM은 TC를 활용하여 코드의 정확성과 신뢰성을 얼마나 향상시키는가?\"와 \"LLM은 주어진 TC에 내포된 기능적 요구사항을 정확하게 이해하고 도출할 수 있는가?\"라는 연구 질문을 설정함.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>핵심 구조/방법</strong>: GPT-4.1 모델을 사용하여 경쟁 프로그래밍(CP) 플랫폼 '백준 온라인 저지(BOJ)'의 문제들을 제로샷 프롬프팅으로 해결하는 실험을 설계함. TC 정보 제공 여부에 따른 영향을 분석하기 위해 세 가지 조건으로 나누어 실험을 진행함.<!-- -->\n<ol>\n<li class=\"\">문제 정의만 제공</li>\n<li class=\"\">문제 정의와 TC를 함께 제공</li>\n<li class=\"\">입출력 조건과 TC만 제공</li>\n</ol>\n</li>\n<li class=\"\"><strong>주요 구성 요소</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>모델</strong>: OpenAI의 GPT-4.1 API (Temperature: 1.0, Max tokens: 2048 등 기본 설정 사용)</li>\n<li class=\"\"><strong>데이터셋</strong>: BOJ의 문제 54개를 알고리즘 분류 6개(백트래킹, 이분 탐색, 비트 연산, 그리디, 수학, 정렬)와 난이도 3단계(쉬움, 보통, 어려움)로 나누어 선정함.</li>\n<li class=\"\"><strong>프롬프트</strong>: <code>‘&lt;문제 파일&gt;의 문제를 해결하는 코드를 C99로 작성해줘’</code> 형식의 단순한 프롬프트를 사용함.</li>\n<li class=\"\"><strong>테스트케이스</strong>: 각 문제의 제약 조건과 잠재적 오류를 고려한 엣지 케이스(Edge Case) 위주의 TC를 최대 5개 생성하여 사용함.</li>\n</ul>\n</li>\n<li class=\"\"><strong>알고리즘</strong>: 첫 번째 실험에서는 위 세 가지 조건별로 각 문제당 20회씩 코드를 생성하고 BOJ 시스템에서 채점하여 정답률을 비교함. 두 번째 실험에서는 GPT-4.1의 TC 이해 및 생성 능력을 확인하기 위해, 특정 문제에 대해 TC를 직접 생성하도록 요청하거나 주어진 TC의 유효성을 검증하도록 요청함.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 백준 온라인 저지의 54개 경쟁 프로그래밍 문제를 사용했으며, 알고리즘 유형과 난이도에 따라 체계적으로 분류됨 (논문의 표 1 참조).</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>: 생성된 코드의 정답률.</li>\n<li class=\"\"><strong>비교 결과</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>전체 결과</strong>: 가설과 달리, '문제 정의만 제공'했을 때의 평균 정답률이 71.3%로 가장 높았음. '문제 정의 + TC'는 69.9%, '입출력 정보 + TC'는 66.2%로, TC를 추가하는 것이 오히려 전반적인 성능 저하를 야기함. (논문의 Figure 1 참조)</li>\n<li class=\"\"><strong>난이도별 결과</strong>: 쉬운 문제에서는 조건 간 성능 차이가 미미했으나, 보통 또는 어려운 문제에서는 TC를 추가할 때 정답률이 뚜렷하게 감소하는 경향을 보임.</li>\n<li class=\"\"><strong>알고리즘별 결과</strong>: 대부분의 알고리즘에서 성능이 하락했으나, 백트래킹과 그리디 접근법에서는 TC를 추가했을 때 소폭의 성능 향상이 관찰됨. (논문의 Figure 2 참조)</li>\n<li class=\"\"><strong>TC 생성 및 검증 능력</strong>: GPT-4.1은 엣지 케이스에 해당하는 TC를 정확하게 생성하거나 주어진 TC의 유효성을 올바르게 검증하는 능력 모두에서 명확한 한계를 보임. 심지어 정답 코드를 함께 제공했을 때 TC 생성 과정에서 환각 현상이 발생하거나 TC 검증 정확도가 오히려 저하되기도 함. (논문의 Figure 3, 4 참조)</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 GPT-4.1의 제로샷 코드 생성 과정에서 TC 정보 제공이 항상 긍정적인 효과를 가져오지 않음을 실험적으로 확인함. 특히 문제 난이도가 높을 경우, TC 정보가 오히려 성능을 저하시키는 경향이 나타남. 이러한 결과는 GPT-4.1이 TC에 담긴 의도나 요구사항을 개발자 수준으로 깊이 있게 추론하고 활용하는 데 한계가 있음을 시사함. 따라서 LLM을 활용해 코드를 생성할 때, 특히 정교한 논리가 요구되는 작업에서는 TC 정보를 포함하는 전략을 신중하게 접근하고 검증할 필요가 있음. 이 연구의 결과는 특정 모델(GPT-4.1), 프롬프팅 방식(Zero-Shot), 도메인(CP)에 한정될 수 있으므로 향후 다양한 모델과 정교한 프롬프팅 기법을 적용한 추가 연구가 필요함.</p>",
            "url": "https://til.99jik.com/papers/A-Study-on-the-Capability-of-Generative-AI-to-Understand-and-Utilize-Test-Cases",
            "title": "A Study on the Capability of Generative AI to Understand and Utilize Test Cases",
            "summary": "GPT-4.1의 코드 생성 과정에서 테스트케이스(TC) 정보 제공이 항상 성능 향상으로 이어지지 않으며, TC 이해 및 생성 능력에 한계가 있음을 실험적으로 분석한 논문",
            "date_modified": "2025-06-20T00:00:00.000Z",
            "author": {
                "name": "김정인",
                "url": "https://github.com/99JIK"
            },
            "tags": [
                "Large Language Model",
                "ChatGPT",
                "Software Testing",
                "Prompt Engineering"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: OPENFACE 3.0: A Lightweight Multitask System for Comprehensive Facial Behavior Analysis</li>\n<li class=\"\"><strong>저자</strong>: Jiewen Hu (Carnegie Mellon University), Leena Mathur (Carnegie Mellon University), Paul Pu Liang (Massachusetts Institute of Technology), Louis-Philippe Morency (Carnegie Mellon University)</li>\n<li class=\"\"><strong>학회/저널</strong>: arXiv (v1)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-06-03</li>\n<li class=\"\"><strong>DOI</strong>: N/A (arXiv submission)</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 본 논문은 네 가지 핵심 안면 분석 작업(랜드마크 감지, 표정 단위(AU) 감지, 시선 추정, 감정 인식)을 동시에 수행하는 경량화된 통합 모델 OpenFace 3.0을 제안함. 다중 작업 학습(Multi-Task Learning, MTL) 아키텍처를 사용하여 파라미터를 공유함으로써 효율성을 극대화함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: OpenFace 3.0은 이전 버전(OpenFace 2.0) 및 타 툴킷 대비 예측 성능, 추론 속도, 메모리 효율성에서 상당한 개선을 보임. 특히 다중 작업 학습을 통해 정면이 아닌 각도의 얼굴(angled faces) 인식 성능이 SOTA 모델을 능가하는 강력한 일반화 성능을 입증함.</li>\n<li class=\"\"><strong>기여점</strong>: 단일 모델로 4가지 안면 분석 작업을 실시간으로 처리할 수 있는 고성능 오픈소스 툴킷을 제공. 또한, 서로 다른 작업(예: 시선 추정 데이터)의 특징 공유가 다른 작업(예: 감정 인식)의 성능, 특히 비정면 얼굴에서의 성능을 향상시킬 수 있음을 보임.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>자동 안면 행동 분석 시스템에 대한 관심이 증가함에 따라, 본 논문은 OPENFACE 3.0을 소개한다. 이는 안면 랜드마크 감지, 안면 표정 단위(AU) 감지, 시선 추정, 안면 감정 인식이 가능한 오픈소스 툴킷이다. OPENFACE 3.0은 다양한 인구, 머리 자세, 조명 조건, 비디오 해상도 및 안면 분석 작업에 걸쳐 다중 작업 아키텍처로 훈련된 경량화된 통합 모델을 제공한다. 통합 모델과 훈련 패러다임을 통해 파라미터 공유의 이점을 활용하여, 유사한 툴킷 대비 예측 성능, 추론 속도, 메모리 효율성에서 개선을 보이며 SOTA 모델과 경쟁한다. OPENFACE 3.0은 한 줄의 코드로 설치 및 실행이 가능하며, 특수 하드웨어 없이 실시간으로 작동한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>얼굴 신호를 이해하는 것은 인간의 사회적 상호작용에 매우 중요하다. 미묘한 시선 변화나 머리 기울임도 사회적 의미 전달에 큰 영향을 미친다. 컴퓨터 비전 커뮤니티는 이러한 세밀한 안면 행동을 해석하여 인간 중심 AI 시스템을 설계하는 데 관심이 커지고 있다. OPENFACE 3.0은 이러한 핵심 안면 신호(랜드마크, AU, 시선, 감정)를 공동으로 수행하는 고성능 오픈소스 툴킷을 제공하며, 연구자와 개발자가 이를 쉽게 통합할 수 있도록 설계되었다. 이 툴킷은 이전 버전(OpenFace 2.0)보다 더 정확하고, 빠르며, 메모리 효율적이고, 특히 비정면 얼굴 분석에서 뛰어난 성능을 보인다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>안면 행동 분석은 전통적으로 개별 작업(랜드마크 감지, AU 감지 등)에 특화된 모델로 각각 발전해왔다. 최근에는 대규모 데이터로 사전 훈련된 비전 트랜스포머(ViT)나 파운데이션 모델이 주목받고 있으며, 다중 작업 학습(MTL)이 강력한 특징 추출 능력으로 인해 안면 분석에 활용되고 있다. OpenFace 3.0은 이러한 MTL 접근 방식을 채택하여, 여러 안면 분석 작업을 위한 일반화된 얼굴 표현을 학습하고, 이를 통해 효율성과 성능을 동시에 달성한다.\n<img decoding=\"async\" loading=\"lazy\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251028133507-b1966f5d1cb67a72a3069e4e257e29bc.png\" width=\"1054\" height=\"568\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>OPENFACE 3.0 시스템의 아키텍처는 논문의 Figure 1에 시각화되어 있다.</p>\n<ul>\n<li class=\"\">\n<p><strong>핵심 구조/방법</strong>:</p>\n<ol>\n<li class=\"\"><strong>얼굴 감지 및 정렬</strong>: 먼저 RetinaFace MobileNet-0.25를 사용하여 실시간으로 얼굴 영역을 감지하고 정렬한다.</li>\n<li class=\"\"><strong>통합 안면 표현 (Unified Facial Representation)</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>랜드마크 감지</strong>: 정렬된 얼굴 이미지를 입력받아 4개의 스택형 Hourglass(HG) 네트워크를 통과시켜 랜드마크 좌표(히트맵)를 추출한다.</li>\n<li class=\"\"><strong>문맥 특징 추출</strong>: VGGFace2 데이터셋으로 사전 훈련된 EfficientNet 백본을 사용하여 문맥적 얼굴 특징(contextual features)을 추출한다.</li>\n<li class=\"\"><strong>결합</strong>: 추출된 랜드마크 좌표와 문맥 특징을 연결(concatenate)하여 '통합 안면 표현'을 생성한다.</li>\n</ul>\n</li>\n<li class=\"\"><strong>다운스트림 작업 (Downstream Tasks)</strong>: 이 통합 표현을 입력받아 3개의 병렬 모듈에서 작업을 수행한다.<!-- -->\n<ul>\n<li class=\"\"><strong>AU 감지</strong>: 각 AU 특징 벡터 간의 코사인 유사도에 기반한 동적 그래프를 구성하고, GCN(Graph Convolutional Network)을 사용하여 AU 간의 관계를 모델링한다.</li>\n<li class=\"\"><strong>시선 추정</strong>: 왼쪽 눈과 오른쪽 눈의 yaw(좌우), pitch(상하) 각도를 예측하기 위해 4개의 독립적인 FC 레이어를 사용한다.</li>\n<li class=\"\"><strong>감정 인식</strong>: 8가지 감정(행복, 슬픔 등)을 분류하기 위해 FC 레이어와 Softmax를 사용한다.</li>\n</ul>\n</li>\n</ol>\n</li>\n<li class=\"\">\n<p><strong>3단계 다중 작업 훈련</strong>:</p>\n<ol>\n<li class=\"\"><strong>1단계</strong>: 랜드마크 감지 모듈을 독립적으로 훈련시킨 후, 파라미터를 고정(freeze)한다.</li>\n<li class=\"\"><strong>2단계</strong>: 백본을 고정한 채, 작업별 분류기(classifier)만 훈련시켜 특징을 안정화한다.</li>\n<li class=\"\"><strong>3단계</strong>: 백본과 분류기 모두 미세 조정(fine-tuning)하여 전체 모델의 상호작용을 최적화한다.</li>\n</ol>\n</li>\n<li class=\"\">\n<p><strong>수식 (손실 함수 가중치)</strong>:\n서로 다른 스케일을 가진 여러 작업의 손실을 효과적으로 균형 맞추기 위해, Homoscedastic Uncertainty(동질 분산 불확실성) 기반 가중치 방법을 사용한다. 각 작업의 불확실성을 학습 가능한 파라미터(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>t</mi><mi>a</mi><mi>s</mi><mi>k</mi></mrow></msub></mrow><annotation encoding=\"application/x-tex\">\\hat{\\sigma}_{task}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8444em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3361em\"><span style=\"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">s</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03148em\">k</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span></span></span></span>)로 모델링한다.</p>\n<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>L</mi><mo stretchy=\"false\">(</mo><mi>W</mi><mo separator=\"true\">,</mo><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>a</mi><mi>u</mi></mrow><mn>2</mn></msubsup><mo separator=\"true\">,</mo><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>g</mi><mi>a</mi><mi>z</mi><mi>e</mi></mrow><mn>2</mn></msubsup><mo separator=\"true\">,</mo><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>e</mi><mi>m</mi><mi>o</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow><mn>2</mn></msubsup><mo stretchy=\"false\">)</mo><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>a</mi><mi>u</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><msub><mi>L</mi><mrow><mi>A</mi><mi>U</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>W</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>g</mi><mi>a</mi><mi>z</mi><mi>e</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><msub><mi>L</mi><mrow><mi>g</mi><mi>a</mi><mi>z</mi><mi>e</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>W</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>e</mi><mi>m</mi><mi>o</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow><mn>2</mn></msubsup></mrow></mfrac><msub><mi>L</mi><mrow><mi>e</mi><mi>m</mi><mi>o</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow></msub><mo stretchy=\"false\">(</mo><mi>W</mi><mo stretchy=\"false\">)</mo><mo>+</mo><mi>l</mi><mi>o</mi><mi>g</mi><mo stretchy=\"false\">(</mo><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>a</mi><mi>u</mi></mrow><mn>2</mn></msubsup><mo stretchy=\"false\">)</mo><mo>+</mo><mi>l</mi><mi>o</mi><mi>g</mi><mo stretchy=\"false\">(</mo><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>g</mi><mi>a</mi><mi>z</mi><mi>e</mi></mrow><mn>2</mn></msubsup><mo stretchy=\"false\">)</mo><mo>+</mo><mi>l</mi><mi>o</mi><mi>g</mi><mo stretchy=\"false\">(</mo><msubsup><mover accent=\"true\"><mi>σ</mi><mo>^</mo></mover><mrow><mi>e</mi><mi>m</mi><mi>o</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow><mn>2</mn></msubsup><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">L(W,\\hat{\\sigma}_{au}^{2},\\hat{\\sigma}_{gaze}^{2},\\hat{\\sigma}_{emotion}^{2}) =\n\\frac{1}{2\\hat{\\sigma}_{au}^{2}}L_{AU}(W) + \\frac{1}{2\\hat{\\sigma}_{gaze}^{2}}L_{gaze}(W) + \\frac{1}{2\\hat{\\sigma}_{emotion}^{2}}L_{emotion}(W)\n+ log(\\hat{\\sigma}_{au}^{2}) + log(\\hat{\\sigma}_{gaze}^{2}) + log(\\hat{\\sigma}_{emotion}^{2})</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.2472em;vertical-align:-0.3831em\"></span><span class=\"mord mathnormal\">L</span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">u</span></span></span></span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">ze</span></span></span></span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3831em\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">i</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.2544em;vertical-align:-0.933em\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.3214em\"><span style=\"top:-2.314em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7401em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">u</span></span></span></span><span style=\"top:-2.989em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"></span></span><span style=\"top:-3.677em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.933em\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3283em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">A</span><span class=\"mord mathnormal mtight\" style=\"margin-right:0.10903em\">U</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.3905em;vertical-align:-1.0691em\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.3214em\"><span style=\"top:-2.314em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7401em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">ze</span></span></span></span><span style=\"top:-2.989em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3831em\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"></span></span><span style=\"top:-3.677em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.0691em\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1514em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">ze</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2861em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:2.2843em;vertical-align:-0.9629em\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.3214em\"><span style=\"top:-2.314em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord\"><span class=\"mord\">2</span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.7959em\"><span style=\"top:-2.4231em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">i</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.0448em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.2769em\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em\"></span></span><span style=\"top:-3.677em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord\"><span class=\"mord\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9629em\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mord\"><span class=\"mord mathnormal\">L</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em\"><span style=\"top:-2.55em;margin-left:0em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">i</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">n</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">W</span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em\">l</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">g</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">u</span></span></span></span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.2472em;vertical-align:-0.3831em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em\">l</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">g</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.03588em\">g</span><span class=\"mord mathnormal mtight\">a</span><span class=\"mord mathnormal mtight\">ze</span></span></span></span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3831em\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span><span class=\"mbin\">+</span><span class=\"mspace\" style=\"margin-right:0.2222em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1.1141em;vertical-align:-0.25em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.01968em\">l</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">g</span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord accent\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.6944em\"><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">σ</span></span><span style=\"top:-3em\"><span class=\"pstrut\" style=\"height:3em\"></span><span class=\"accent-body\" style=\"left:-0.25em\"><span class=\"mord\">^</span></span></span></span></span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.8641em\"><span style=\"top:-2.453em;margin-left:-0.0359em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mathnormal mtight\">e</span><span class=\"mord mathnormal mtight\">m</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">t</span><span class=\"mord mathnormal mtight\">i</span><span class=\"mord mathnormal mtight\">o</span><span class=\"mord mathnormal mtight\">n</span></span></span></span><span style=\"top:-3.113em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mord mtight\">2</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.247em\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span></span>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>실험은 AMD Ryzen Threadripper CPU와 NVIDIA GeForce GTX 1080 Ti GPU 환경에서 수행되었다.</p>\n<ul>\n<li class=\"\">\n<p><strong>주요 데이터셋</strong>:\n_ 랜드마크 감지: 300W, WFLW\n_ AU 감지: DISFA, BP4D\n_ 시선 추정: MPII Gaze, Gaze360\n_ 감정 인식: AffectNet\n<img decoding=\"async\" loading=\"lazy\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251028133615-b2e19b18a436531a4580e44f611c313a.png\" width=\"1060\" height=\"663\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251028133634-fceed19d8552d3c9c40a12fba8fcc2ed.png\" width=\"537\" height=\"472\" class=\"img_ev3q\"></p>\n</li>\n<li class=\"\">\n<p><strong>핵심 성능 지표 (Table III 참고)</strong>:</p>\n<ul>\n<li class=\"\"><strong>랜드마크 감지 (NME↓)</strong>: 300W 데이터셋에서 2.87 NME을 달성하여 SOTA small 모델(3.17) 및 OpenFace 2.0(5.20)보다 우수했다.</li>\n<li class=\"\"><strong>AU 감지 (F1↑)</strong>: DISFA(59%) 및 BP4D(59%)에서 SOTA small 모델(각각 61%, 62%)과 유사한 성능을 보였다.</li>\n<li class=\"\"><strong>시선 추정 (Angle Error↓)</strong>: MPII Gaze에서 2.56°의 오차로 SOTA(3.14) 및 OpenFace 2.0(9.1)을 능가했다. Gaze360에서도 SOTA(10.0)와 비슷한 10.6°를 기록했다.</li>\n<li class=\"\"><strong>감정 인식 (ACC↑)</strong>: AffectNet에서 0.60의 정확도를 달성하여 SOTA small 모델(0.60)과 동일했다.</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>비교 결과</strong>:</p>\n<ul>\n<li class=\"\"><strong>효율성 (Table IV)</strong>: OPENFACE 3.0은 29.4M의 파라미터를 가져 OpenFace 2.0(44.8M)보다 적다. CPU-only 처리 시간도 38ms로 OpenFace 2.0(75ms)보다 훨씬 빠르다.</li>\n<li class=\"\"><strong>비정면 얼굴 분석 (Table V)</strong>: MTL의 핵심 이점을 보여준다. 감정 인식 SOTA 모델들은 얼굴 각도가 커질수록(&gt;45°) 성능이 급격히 저하(57.41%)되지만, OPENFACE 3.0은 시선 추정 데이터(비정면 얼굴이 많음)로부터 학습한 공유 특징 덕분에 'Hard' 각도에서도 58.64%의 안정적인 성능을 유지하며 SOTA 모델을 능가했다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 논문은 4가지 주요 안면 행동 분석 작업을 하나의 경량화된 다중 작업 시스템으로 통합한 OPENFACE 3.0을 제안했다. 이 시스템은 SOTA 모델들과 비슷하거나 더 나은 성능을 보이면서도 추론 속도와 메모리 효율성에서 큰 이점을 가진다. 특히, 다중 작업 학습을 통해 비정면 얼굴과 같은 'in-the-wild' 환경에서의 강인함(robustness)을 확보했다. OPENFACE 3.0은 사용하기 쉬운 Python API와 함께 오픈소스로 제공되어, 멀티모달 상호작용, 로보틱스, 감성 컴퓨팅 등 다양한 분야의 연구를 촉진할 것이다.</p>",
            "url": "https://til.99jik.com/papers/OpenFace-3.0-A-Lightweight-Multitask-System-for-Comprehensive-Facial-Behavior-Analysis",
            "title": "OPENFACE 3.0: A Lightweight Multitask System for Comprehensive Facial Behavior Analysis",
            "summary": "OpenFace 3.0은 안면 랜드마크, 표정 단위, 시선, 감정 인식을 하나의 경량화된 다중 작업(multi-task) 모델로 통합하여 성능, 속도, 메모리 효율성을 향상시킨 오픈소스 툴킷이다.",
            "date_modified": "2025-06-03T00:00:00.000Z",
            "author": {
                "name": "Jiewen Hu"
            },
            "tags": [
                "Facial Behavior Analysis",
                "Multitask Learning",
                "Computer Vision",
                "Affective Computing"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Flow2Code: Evaluating Large Language Models for Flowchart-based Code Generation Capability</li>\n<li class=\"\"><strong>저자</strong>: Mengliang He (East China Normal University), Jiayi Zeng (East China Normal University), Yankai Jiang (Shanghai AI Lab), Wei Zhang (East China Normal University), Zeming Liu (Beihang University), Xiaoming Shi (East China Normal University), Aimin Zhou (East China Normal University)</li>\n<li class=\"\"><strong>학회/저널</strong>: arXiv (v1)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-06-02</li>\n<li class=\"\"><strong>DOI</strong>: (arXiv:2506.02073)</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 기존 LLM 코드 생성 벤치마크가 순서도(flowchart)를 간과하고 있다는 문제를 지적. 15개 프로그래밍 언어, 3가지 순서도 유형(코드, UML, 의사코드)에 걸친 총 16,866개의 순서도를 포함하는 'Flow2Code'라는 새로운 벤치마크 데이터셋을 구축.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 13개의 최신 멀티모달 LLM(MLLM)을 평가한 결과, 현재 모델들이 순서도를 완벽하게 코드로 변환하지 못하며, 특히 의사코드(pseudocode) 순서도에서 성능 저하가 큼을 발견. 또한, 지도 미세조정(Supervised Fine-Tuning)이 모델 성능 향상에 크게 기여함을 확인함.</li>\n<li class=\"\"><strong>기여점</strong>: 순서도 기반 코드 생성이라는 새로운 연구 방향을 제시. 해당 작업을 위한 포괄적인 벤치마크(Flow2Code)를 공개하고, 현재 MLLM의 한계를 명확히 식별하며, 성능 향상을 위한 미세조정의 효과를 입증함.</li>\n</ul>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Table 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106180038-6f627cdee0d2f43be6d1867ec6a36037.png\" width=\"1633\" height=\"692\" class=\"img_ev3q\"></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>대형 언어 모델(LLM)이 코드 생성에서 유망한 성능을 보이고 있지만, 기존 벤치마크들은 순서도 기반 코드 생성을 다루지 않았다. 이 연구는 순서도 기반 코드 생성 평가를 위한 새로운 벤치마크인 <strong>Flow2Code</strong>를 제시한다. 이 데이터셋은 15개의 프로그래밍 언어에 걸쳐 5,622개의 코드 세그먼트와 16,866개의 순서도(코드, UML, 의사코드 유형)로 구성된다. 13개의 멀티모달 LLM을 대상으로 한 광범위한 실험 결과, 현재 LLM들은 순서도를 기반으로 코드를 완벽하게 생성하지 못하며, 지도 미세조정(SFT) 기법이 모델 성능에 크게 기여함을 보여준다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>LLM의 코드 생성 능력 평가를 위한 기존 벤치마크는 주로 텍스트 설명(HumanEval 등)이나 문제 이미지(MMCode 등)에 기반한다. 하지만 프로그램 로직(결정, 루프 등)을 시각화하는 데 더 효과적이고 직관적인 순서도 기반 평가는 누락되어 있었다. 순서도는 코드, UML, 의사코드의 세 가지 주요 유형으로 나뉘며, 이러한 이점에도 불구하고 순서도를 코드로 변환하는 전용 벤치마크가 없는 실정이다. 본 연구는 이 공백을 메우기 위해 15개 언어와 3가지 순서도 유형을 포함하는 포괄적인 벤치마크 Flow2Code를 제안한다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106180110-9f3f401a890a22ffaece08cf66dc5484.png\" width=\"1622\" height=\"1594\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 연구의 핵심은 모델이 아닌 <strong>Flow2Code 벤치마크 구축 방법론</strong>에 있다. 데이터셋은 HumanEval-X, MBXP 등 4개의 기존 데이터셋에서 소스 코드를 수집하여 구축되었다.</p>\n<p>논문의 Figure 1은 전체 순서도 생성 과정을 보여준다.</p>\n<ul>\n<li class=\"\">\n<p><strong>1. 코드 순서도 및 UML 순서도 생성</strong>:</p>\n<ul>\n<li class=\"\">원본 소스 코드를 <strong>Visustin</strong> 소프트웨어를 사용해 코드 순서도(Code Flowchart)와 UML 순서도(UML Flowchart)로 변환한다.</li>\n<li class=\"\">5명의 컴퓨터 과학 석사 학위와 4년 이상 경력을 가진 평가자가 생성된 순서도의 논리적 정확성, 완전성, 의미적 정확성을 검증한다. (Krippendorff's Alpha <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>α</mi><mo>=</mo><mn>0.88</mn></mrow><annotation encoding=\"application/x-tex\">\\alpha=0.88</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em\">α</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.88</span></span></span></span> 달성)</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>2. 의사코드 순서도(Pseudocode Flowchart) 생성</strong>:</p>\n<ul>\n<li class=\"\"><strong>DOT 코드 생성</strong>: Visustin을 사용해 코드의 제어 흐름을 Graphviz의 DOT 파일 형식으로 변환한다.</li>\n<li class=\"\"><strong>GPT-40 변환</strong>: DOT 파일 내의 각 노드 레이블(코드 조각)을 <strong>GPT-40</strong>을 사용하여 자연어(의사코드) 설명으로 변환한다. (예: <code>b?</code> -&gt; <code>check if 'b' is equal to zero</code>)</li>\n<li class=\"\"><strong>Gemini-2.0 검증</strong>: GPT-40의 변환 결과를 검증하기 위해 <strong>Gemini-2.0</strong>을 사용하여 편향을 피하고 정확성을 교차 검증한다. 5회 시도 후에도 실패하면 데이터를 폐기한다.</li>\n<li class=\"\"><strong>인간 검증</strong>: 변환된 의사코드의 의미적 정확성, 명확성, 일관성을 인간 평가자가 다시 검증한다. (Krippendorff's Alpha <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>α</mi><mo>=</mo><mn>0.88</mn></mrow><annotation encoding=\"application/x-tex\">\\alpha=0.88</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.4306em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.0037em\">α</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.88</span></span></span></span> 달성)</li>\n<li class=\"\"><strong>자동 순서도 변환</strong>: 최종 검증된 의사코드 DOT 파일을 <strong>Graphviz</strong>를 사용해 시각적인 순서도 이미지로 변환한다.</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>최종 데이터셋</strong>: 5,622개의 코드 세그먼트, 16,866개의 순서도(유형별 5,622개), 15개 프로그래밍 언어로 구성되며, 9:1 비율로 훈련/테스트 세트를 분할한다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 3, 4\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106180203-77504d89b942bc22cfd2a0c1a974e045.png\" width=\"1629\" height=\"1338\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 5\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251106180136-c64e4f4e3eb938d95f8800a845bf5b47.png\" width=\"795\" height=\"909\" class=\"img_ev3q\"></p>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>실험 설정</strong>: Claude-3.5-Sonnet, Gemini-2.0, GPT-40, Qwen2-VL 등 13개의 MLLM을 평가했다. 평가는 실행 기반(execution-based)으로 <strong>Pass@k</strong> (k=1, 3, 5) 지표를 사용했다.</li>\n<li class=\"\"><strong>주요 데이터셋</strong>: Flow2Code 벤치마크 (16,866개 순서도)</li>\n<li class=\"\"><strong>핵심 성능 지표 및 비교 결과</strong>:<!-- -->\n<ol>\n<li class=\"\"><strong>모델 간 성능 격차</strong>: <strong>Gemini-2.0</strong>이 모든 작업에서 가장 우수한 성능을 보였으며, 차상위 모델인 GPT-40보다 평균 4.78% 높은 Pass@1 점수를 기록했다. LLaVA-7B 같은 소형 모델은 최고 성능 모델 대비 14.3~22.35% 수준의 성능에 그쳤다.</li>\n<li class=\"\"><strong>순서도 유형별 난이도</strong>: <strong>코드 순서도</strong>가 가장 높은 평균 Pass@1을 기록했으며, UML 순서도가 그 다음, <strong>의사코드 순서도</strong>가 가장 어려웠다 (코드 순서도 대비 평균 10.63% 성능 하락).</li>\n<li class=\"\"><strong>모델 규모 효과</strong>: 모델 크기 증가는 성능 향상으로 이어졌다. Qwen2-VL-72B는 7B 버전에 비해 코드 순서도 작업에서 103.8%의 성능 향상을 보였다.</li>\n<li class=\"\"><strong>미세조정(SFT) 효과</strong>: Qwen2-VL-7B 모델을 Flow2Code 훈련 데이터로 미세조정한(Qwen2-VL-7B-FT) 결과, 큰 폭의 성능 향상이 관찰되었다 (논문의 Figure 5 참조). 특히 C#, Java, JS, PHP 같은 객체지향 및 웹 언어에서 향상 폭이 컸다.</li>\n<li class=\"\"><strong>언어 민감성</strong>: PHP 언어 생성은 3개 모델이 만점을 받을 정도로 쉬웠으나, Fortran, HTML 등은 평균 Pass@1이 PHP 대비 57.2~65.63% 낮았다.</li>\n<li class=\"\"><strong>난이도별 성능</strong>: 논문의 Figure 4는 문제 난이도(Easy, Middle, Hard)와 Pass@1 성능이 명확한 반비례 관계를 보임을 보여준다.</li>\n</ol>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 연구는 순서도 기반 코드 생성을 위한 최초의 포괄적인 벤치마크 <strong>Flow2Code</strong>를 제안했다. 15개 언어와 3가지 순서도 유형(코드, UML, 의사코드)을 포함하는 이 데이터셋을 통해 13개 MLLM을 평가한 결과, 현재 모델들(특히 소형 모델)은 순서도의 논리를 코드로 변환하는 데 여전히 한계가 있음을 확인했다. 또한, 의사코드 순서도 변환이 가장 어려운 작업임을 밝혔으며, 지도 미세조정(SFT)이 이러한 한계를 극복하는 데 효과적인 전략임을 입증했다.</p>",
            "url": "https://til.99jik.com/papers/Flow2Code-Evaluating-Large-Language-Models-for-Flowchart-based-Code-Generation-Capability",
            "title": "Flow2Code: Evaluating Large Language Models for Flowchart-based Code Generation Capability",
            "summary": "순서도(Flowchart) 기반 코드 생성 능력을 평가하기 위한 15개 프로그래밍 언어, 3가지 순서도 유형을 포함하는 Flow2Code 벤치마크 제안",
            "date_modified": "2025-06-02T00:00:00.000Z",
            "author": {
                "name": "Mengliang He"
            },
            "tags": [
                "Flowchart",
                "Code Generation",
                "Large Language Model",
                "Benchmark",
                "Multimodal"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Small Language Models are the Future of Agentic AI</li>\n<li class=\"\"><strong>저자</strong>: Peter Belcak, Greg Heinrich, Saurav Muralidharan, Shizhe Diao, Yonggan Fu, Xin Dong, Yingyan Celine Lin, Pavlo Molchanov (Georgia Institute of Technology, NVIDIA Research)</li>\n<li class=\"\"><strong>학회/저널</strong>: arXiv preprint</li>\n<li class=\"\"><strong>발행일</strong>: 2025-06-02</li>\n<li class=\"\"><strong>DOI</strong>: 제공되지 않음</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 에이전트 AI 시스템의 대부분 작업이 반복적이고 범위가 한정되어 있어, 범용 LLM보다는 특정 작업에 특화된 SLM이 더 적합하다고 주장함. SLM이 충분한 성능을 갖추고 있으며(V1), 운영상 더 적합하고(V2), 경제적으로 필연적인 선택(V3)임을 다양한 근거를 통해 설명함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 최신 SLM들은 이미 LLM에 필적하는 성능을 보이며 추론 비용, 미세조정, 엣지 배포 등에서 상당한 이점을 가짐. 따라서 에이전트 시스템은 SLM을 기본으로 사용하고 필요할 때만 LLM을 호출하는 이기종(heterogeneous) 시스템으로 발전해야 하며, 이를 위한 LLM-to-SLM 변환 알고리즘을 제안함.</li>\n<li class=\"\"><strong>기여점</strong>: 에이전트 AI 분야에서 LLM 중심 패러다임에 대한 비판적 관점을 제시하고, SLM의 효용성과 경제성을 강조하여 지속 가능하고 책임감 있는 AI 배포의 필요성에 대한 논의를 촉발함. 또한, 기존 LLM 기반 에이전트를 SLM 기반으로 전환할 수 있는 구체적인 알고리즘을 제공함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>대규모 언어 모델(LLM)은 인간에 가까운 성능과 범용 대화 능력으로 높은 평가를 받는다. 그러나 에이전트 AI 시스템의 부상은 언어 모델이 소수의 전문화된 작업을 반복적으로 수행하는 수많은 애플리케이션을 만들어내고 있다. 이 논문은 소규모 언어 모델(SLM)이 에이전트 시스템의 많은 호출에 대해 충분히 강력하고, 본질적으로 더 적합하며, 필연적으로 더 경제적이므로 에이전트 AI의 미래라고 주장한다. 이러한 주장은 SLM의 현재 역량 수준, 일반적인 에이전트 시스템 아키텍처, 그리고 LM 배포의 경제성에 기반을 둔다. 범용 대화 능력이 필수적인 상황에서는 여러 다른 모델을 호출하는 이기종 에이전트 시스템이 자연스러운 선택이라고 주장한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>에이전트 AI의 도입은 폭발적으로 증가하고 있으며, 현대 경제에서 상당한 역할을 할 것으로 기대된다. 대부분의 현대 AI 에이전트의 핵심 구성 요소는 LLM으로, 전략적 결정, 작업 흐름 제어, 복잡한 작업 분해 등을 수행하는 데 필요한 기본 지능을 제공한다. 현재 산업은 에이전트가 중앙 집중식 클라우드 인프라에서 호스팅되는 단일 범용 LLM의 API를 통해 요청을 처리하는 운영 모델에 깊이 의존하고 있다. 이 논문은 이러한 현 상태에 도전하며, 상대적으로 단순한 에이전트의 요청을 범용 LLM이 처리하는 관행 대신, 작지만 효율적인 SLM이 에이전트 AI의 미래가 되어야 한다고 주장한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 논문은 새로운 모델을 제안하는 대신, SLM이 에이전트 AI의 미래라는 주장을 뒷받침하는 논리적 근거와 전환 방법론을 제시한다.</p>\n<ul>\n<li class=\"\">\n<p><strong>핵심 주장</strong>: 논문의 핵심 주장은 세 가지 관점(V1-V3)으로 구성된다.</p>\n<ul>\n<li class=\"\"><strong>V1: SLM은 에이전트 애플리케이션의 언어 모델링 업무를 처리하기에 원칙적으로 충분히 강력하다.</strong></li>\n<li class=\"\"><strong>V2: SLM은 본질적으로 LLM보다 에이전트 시스템에 사용하기에 운영상 더 적합하다.</strong></li>\n<li class=\"\"><strong>V3: SLM은 작은 크기 덕분에 대부분의 에이전트 시스템 사용 사례에서 범용 LLM보다 필연적으로 더 경제적이다.</strong>\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250923155249-d8a2fe3171e36d965fed7607294c9609.png\" width=\"1569\" height=\"746\" class=\"img_ev3q\"></li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>주요 구성 요소 (핵심 논거)</strong>:</p>\n<ol>\n<li class=\"\"><strong>A1 (성능)</strong>: 최신 SLM들은 이미 LLM에 필적하는 성능을 보인다. 예를 들어 Microsoft의 Phi-2(2.7B)는 30B 모델과 동등한 상식 추론 및 코드 생성 점수를 기록했다.</li>\n<li class=\"\"><strong>A2 (경제성)</strong>: 7B SLM을 서빙하는 것은 70-175B LLM보다 10-30배 저렴하다. 미세조정 또한 몇 GPU-hour 만에 가능하여 민첩성이 높다.</li>\n<li class=\"\"><strong>A3 (유연성)</strong>: SLM은 크기가 작아 훈련 및 배포 비용이 낮으므로, 여러 전문 모델을 특정 에이전트 루틴에 맞게 조정하고 배포하기 용이하다. 이는 AI 기술의 민주화에도 기여한다.</li>\n<li class=\"\"><strong>A4 (기능의 제한성)</strong>: AI 에이전트는 사실상 LLM의 방대한 능력 중 극히 일부의 기능만을 사용하도록 제한된 게이트웨이이다. 따라서 해당 기능에 맞게 미세조정된 SLM으로 충분하다.</li>\n<li class=\"\"><strong>A5 (동작 정렬)</strong>: 에이전트는 코드와 상호작용할 때 엄격한 형식(예: JSON)을 준수해야 한다. 단일 형식으로 훈련된 SLM은 다양한 형식을 처리하는 LLM보다 오류 가능성이 낮고 예측 가능성이 높다.</li>\n<li class=\"\"><strong>A6 (이기종 시스템)</strong>: 에이전트 시스템은 자연스럽게 여러 모델을 사용하는 구조를 허용한다. 논문의 Figure 1은 언어 모델이 다른 언어 모델을 도구로 호출하거나, 컨트롤러가 여러 특화된 SLM(대화용, 작업용 등)을 호출하는 이기종 아키텍처를 보여준다.</li>\n</ol>\n</li>\n<li class=\"\">\n<p><strong>알고리즘 (LLM-to-SLM 에이전트 변환 알고리즘)</strong>: 기존 LLM 기반 에이전트를 SLM 기반으로 전환하기 위한 6단계 알고리즘을 제안한다.</p>\n<ul>\n<li class=\"\"><strong>S1. 사용 데이터 수집</strong>: 에이전트의 모든 내부 모델 호출(입력 프롬프트, 출력 응답 등)을 로깅한다.</li>\n<li class=\"\"><strong>S2. 데이터 큐레이션 및 필터링</strong>: 수집된 데이터에서 민감 정보를 제거하고 정제한다.</li>\n<li class=\"\"><strong>S3. 작업 클러스터링</strong>: 수집된 데이터를 클러스터링하여 반복되는 요청 패턴을 식별하고 SLM 전문화 대상을 정의한다.</li>\n<li class=\"\"><strong>S4. SLM 선택</strong>: 각 작업에 맞는 후보 SLM을 성능, 라이선스, 배포 요구사항 등을 고려하여 선택한다.</li>\n<li class=\"\"><strong>S5. 전문 SLM 미세조정</strong>: PEFT나 지식 증류 같은 기술을 사용하여 선택된 SLM을 해당 작업 데이터로 미세조정한다.</li>\n<li class=\"\"><strong>S6. 반복 및 개선</strong>: 새로운 데이터를 사용하여 주기적으로 SLM을 재훈련하여 성능을 유지하고 개선한다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>이 논문은 자체적인 실험 대신, SLM의 능력을 입증하는 기존 연구 결과와 사례 연구를 제시한다.</p>\n<ul>\n<li class=\"\">\n<p><strong>주요 데이터셋</strong>: 특정 데이터셋을 사용한 실험은 없으나, 주장의 근거로 다양한 SLM 모델들의 벤치마크 성능을 인용한다.</p>\n</li>\n<li class=\"\">\n<p><strong>핵심 성능 지표</strong>:</p>\n<ul>\n<li class=\"\"><strong>Microsoft Phi-3 small (7B)</strong>: 언어 이해 및 상식 추론에서 동시대 70B 모델과 동등한 성능을 보였다.</li>\n<li class=\"\"><strong>NVIDIA Nemotron-H family (9B)</strong>: 추론 FLOPs가 훨씬 적음에도 불구하고 30B LLM과 유사한 명령어 준수 및 코드 생성 정확도를 달성했다.</li>\n<li class=\"\"><strong>Salesforce xLAM-2-8B</strong>: 8B 크기에도 불구하고 GPT-4o 및 Claude 3.5와 같은 최신 모델을 능가하는 도구 호출(tool calling) 성능을 보였다.</li>\n<li class=\"\"><strong>DeepSeek-R1-Distill-Qwen-7B</strong>: Claude-3.5-Sonnet, GPT-4o-0513과 같은 대형 독점 모델보다 뛰어난 상식 추론 능력을 보여주었다.</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>비교 결과 (사례 연구)</strong>: <a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EB%B6%80%EB%A1%9D-B\" class=\"\">부록 B</a>에서 세 가지 유명 오픈소스 에이전트에 대해 LLM 호출을 SLM으로 대체할 수 있는 잠재력을 분석했다.</p>\n<ul>\n<li class=\"\"><strong>MetaGPT</strong>: 약 60%의 LLM 쿼리를 특화된 SLM으로 대체 가능하다고 추정했다.</li>\n<li class=\"\"><strong>Open Operator</strong>: 약 40%의 LLM 쿼리를 대체 가능하다고 추정했다.</li>\n<li class=\"\"><strong>Cradle</strong>: 약 70%의 LLM 쿼리를 대체 가능하다고 추정했다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>에이전트 AI 산업은 혁신적인 변화를 약속하고 있으며, 비용 절감이나 AI 인프라의 지속가능성 개선은 이러한 변화의 촉매제가 될 것이다. 저자들은 LLM 중심의 현재 패러다임에서 벗어나, 성능, 경제성, 유연성 등 여러 장점을 가진 SLM을 적극적으로 채택하는 것이 에이전트 AI의 자연스럽고 필연적인 미래라고 주장한다. 이 논문은 이러한 전환을 촉진하기 위한 논의를 활성화하고, AI 자원의 효과적인 사용과 비용 절감 노력을 발전시키고자 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"부록-b\">부록 B<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#%EB%B6%80%EB%A1%9D-b\" class=\"hash-link\" aria-label=\"부록 B에 대한 직접 링크\" title=\"부록 B에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"b-llm-to-slm-replacement-case-studies\">B LLM-to-SLM Replacement Case Studies<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#b-llm-to-slm-replacement-case-studies\" class=\"hash-link\" aria-label=\"B LLM-to-SLM Replacement Case Studies에 대한 직접 링크\" title=\"B LLM-to-SLM Replacement Case Studies에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>This appendix assesses the potential extent of replacing large language model invocations with small language models in three popular open-source agents: MetaGPT, Open Operator, and Cradle. Each case study examines the use of LLMs, evaluates where SLMs may be viable replacements, and concludes with an estimated percentage of replaceable queries.</p>\n<h5 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"b1-case-study-1-metagpt\">B.1 Case study 1: MetaGPT<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#b1-case-study-1-metagpt\" class=\"hash-link\" aria-label=\"B.1 Case study 1: MetaGPT에 대한 직접 링크\" title=\"B.1 Case study 1: MetaGPT에 대한 직접 링크\" translate=\"no\">​</a></h5>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"name\">Name.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#name\" class=\"hash-link\" aria-label=\"Name.에 대한 직접 링크\" title=\"Name.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>MetaGPT</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"license\">License.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#license\" class=\"hash-link\" aria-label=\"License.에 대한 직접 링크\" title=\"License.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>Apache 2.0</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"purpose\">Purpose.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#purpose\" class=\"hash-link\" aria-label=\"Purpose.에 대한 직접 링크\" title=\"Purpose.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>MetaGPT is a multi-agent framework designed to emulate a software company. It assigns roles such as Product Manager, Architect, Engineer, and QA Engineer to collaboratively handle tasks including requirement drafting, system design, implementation, and testing.</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"llm-invocations\">LLM Invocations.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#llm-invocations\" class=\"hash-link\" aria-label=\"LLM Invocations.에 대한 직접 링크\" title=\"LLM Invocations.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<ul>\n<li class=\"\">Role-Based Actions. Each agent role invokes LLMs to fulfill its specialized responsibilities (e.g., coding, documentation).</li>\n<li class=\"\">Prompt Templates. Structured prompts used for consistent outputs.</li>\n<li class=\"\">Dynamic Intelligence. Used for planning, reasoning, and adaptation.</li>\n<li class=\"\">Retrieval-Augmented Generation (RAG). Retrieves relevant documents to enhance generation.</li>\n</ul>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"assessment-for-slm-replacement\">Assessment for SLM Replacement.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#assessment-for-slm-replacement\" class=\"hash-link\" aria-label=\"Assessment for SLM Replacement.에 대한 직접 링크\" title=\"Assessment for SLM Replacement.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>SLMs would be well-suited for routine code generation and boilerplate tasks, as well as for producing structured responses based on predefined templates. However, they would require further fine-tuning data to reliably perform more complex tasks, such as architectural reasoning and adaptive planning or debugging, which would initially benefit from the broader contextual understanding and the generality of LLMs.</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"conclusion\">Conclusion.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#conclusion\" class=\"hash-link\" aria-label=\"Conclusion.에 대한 직접 링크\" title=\"Conclusion.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>In the case of MetaGPT, we estimate that about 60% of its LLM queries could be reliably handled by appropriately specialized SLMs.</p>\n<h5 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"b2-case-study-2-open-operator\">B.2 Case study 2: Open Operator<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#b2-case-study-2-open-operator\" class=\"hash-link\" aria-label=\"B.2 Case study 2: Open Operator에 대한 직접 링크\" title=\"B.2 Case study 2: Open Operator에 대한 직접 링크\" translate=\"no\">​</a></h5>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"name-1\">Name.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#name-1\" class=\"hash-link\" aria-label=\"Name.에 대한 직접 링크\" title=\"Name.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>Open Operator</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"license-1\">License.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#license-1\" class=\"hash-link\" aria-label=\"License.에 대한 직접 링크\" title=\"License.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>MIT License</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"purpose-1\">Purpose.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#purpose-1\" class=\"hash-link\" aria-label=\"Purpose.에 대한 직접 링크\" title=\"Purpose.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>Open Operator is a workflow automation agent enabling users to define behaviours of agents that can perform tasks like API calls, monitoring, and orchestration using tools and services.</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"llm-invocations-1\">LLM Invocations.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#llm-invocations-1\" class=\"hash-link\" aria-label=\"LLM Invocations.에 대한 직접 링크\" title=\"LLM Invocations.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<ul>\n<li class=\"\">Natural Language Processing. Parses user intent.</li>\n<li class=\"\">Decision Making. Guides execution flow.</li>\n<li class=\"\">Content Generation. Writes summaries, reports.</li>\n</ul>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"assessment-for-slm-replacement-1\">Assessment for SLM Replacement.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#assessment-for-slm-replacement-1\" class=\"hash-link\" aria-label=\"Assessment for SLM Replacement.에 대한 직접 링크\" title=\"Assessment for SLM Replacement.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>SLMs would be well-suited for tasks such as simple command parsing and routing, as well as generating messages based on predefined templates. They could be meeting their limitations when dealing with more complex tasks that would require multi-step reasoning or the ability to maintain conversation flow and context over time—areas where LLMs would continue to offer significant advantages.</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"conclusion-1\">Conclusion.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#conclusion-1\" class=\"hash-link\" aria-label=\"Conclusion.에 대한 직접 링크\" title=\"Conclusion.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>In the case of Open Operator, we estimate that about 40% of its LLM queries could be reliably handled by appropriately specialized SLMs.</p>\n<h5 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"b3-case-study-3-cradle\">B.3 Case study 3: Cradle<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#b3-case-study-3-cradle\" class=\"hash-link\" aria-label=\"B.3 Case study 3: Cradle에 대한 직접 링크\" title=\"B.3 Case study 3: Cradle에 대한 직접 링크\" translate=\"no\">​</a></h5>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"name-2\">Name.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#name-2\" class=\"hash-link\" aria-label=\"Name.에 대한 직접 링크\" title=\"Name.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>Cradle</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"license-2\">License.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#license-2\" class=\"hash-link\" aria-label=\"License.에 대한 직접 링크\" title=\"License.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>MIT License</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"purpose-2\">Purpose.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#purpose-2\" class=\"hash-link\" aria-label=\"Purpose.에 대한 직접 링크\" title=\"Purpose.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>Cradle is designed for General Computer Control (GCC), enabling agents to operate GUI applications via screenshot input and simulated user interaction.</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"llm-invocations-2\">LLM Invocations.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#llm-invocations-2\" class=\"hash-link\" aria-label=\"LLM Invocations.에 대한 직접 링크\" title=\"LLM Invocations.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<ul>\n<li class=\"\">Interface Interpretation. Understands visual context.</li>\n<li class=\"\">Task Execution Planning. Determines sequences of GUI actions.</li>\n<li class=\"\">Error Handling. Diagnoses and reacts to unexpected software states.</li>\n</ul>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"assessment-for-slm-replacement-2\">Assessment for SLM Replacement.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#assessment-for-slm-replacement-2\" class=\"hash-link\" aria-label=\"Assessment for SLM Replacement.에 대한 직접 링크\" title=\"Assessment for SLM Replacement.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>SLMs would be well-suited for handling repetitive GUI interaction workflows and the execution of pre-learned click sequences. However, they would face challenges when it comes to tasks involving dynamic GUI adaptation or unstructured error resolution, which would require a higher degree of contextual understanding typically provided by LLMs.</p>\n<h6 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"conclusion-2\">Conclusion.<a href=\"https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI#conclusion-2\" class=\"hash-link\" aria-label=\"Conclusion.에 대한 직접 링크\" title=\"Conclusion.에 대한 직접 링크\" translate=\"no\">​</a></h6>\n<p>In the case of Cradle, we estimate that about 70% of its LLM queries could be reliably handled by appropriately specialized SLMs.</p>",
            "url": "https://til.99jik.com/papers/Small-Language-Models-are-the-Future-of-Agentic-AI",
            "title": "Small Language Models are the Future of Agentic AI",
            "summary": "에이전트 AI 시스템에서 대규모 언어 모델(LLM) 대신 소규모 언어 모델(SLM)을 사용하는 것이 성능, 운영, 비용 측면에서 더 효율적이고 필연적인 미래임을 주장하는 논문",
            "date_modified": "2025-06-02T00:00:00.000Z",
            "author": {
                "name": "Peter Belcak"
            },
            "tags": [
                "Agentic Artificial Intelligence",
                "Small Language Models",
                "Large Language Model",
                "Artificial Intelligence Agent",
                "Model Deployment",
                "AI Economics"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Al Adoption for Collaboration: Factors Influencing Inclusive Learning Adoption in Higher Education</li>\n<li class=\"\"><strong>저자</strong>: IBRAHIM YOUSSEF ALYOUSSEFD 외 4명 (King Faisal University)</li>\n<li class=\"\"><strong>학회/저널</strong>: IEEE Access</li>\n<li class=\"\"><strong>발행일</strong>: 2025-05-07</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.1109/ACCESS.2025.3567656\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.1109/ACCESS.2025.3567656</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 기술 수용 모델(TAM)을 확장하여 '인식된 AI 출력 품질', '신뢰', '친숙도', '교육 서비스 품질', '참여 효능감' 등의 변수가 AI 기술 수용에 미치는 영향을 탐구함. 사우디아라비아의 King Faisal University 학생 443명을 대상으로 설문조사를 실시하고, 구조 방정식 모델링(SEM)을 통해 가설을 검증함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: '인식된 사용 용이성'과 '인식된 유용성'이 '행동 의도'에, 그리고 '행동 의도'가 실제 'AI 채택'에 긍정적인 영향을 미치는 것을 확인함. 특히 '참여 효능감'이 사용 용이성과 유용성 인식에 큰 영향을 주었으나, 'AI 출력 품질'은 '유용성'에 유의미한 영향을 미치지 않음.</li>\n<li class=\"\"><strong>기여점</strong>: 고등 교육의 포용적, 협력적 학습 환경에서 AI 채택에 영향을 미치는 요인들을 실증적으로 분석함. 개발도상국 상황에서의 데이터를 제공하고, AI 기술의 효과적인 통합을 위한 실질적인 교육 전략을 제안하여 기존 TAM 연구를 확장함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>교육 분야에서 인공지능(AI) 기술 통합은 교수 및 학습 방식을 혁신할 잠재력으로 많은 주목을 받고 있다. 그럼에도 불구하고, 특히 포용적 학습 환경을 지원하기 위한 고등 교육에서의 AI 채택은 충분히 연구되지 않았다. 본 연구는 포용성 증진에 초점을 맞춰 대학생들의 협업을 위한 AI 채택에 영향을 미치는 요인들을 조사한다. King Faisal University 학생 443명으로부터 협력 학습에서의 AI 채택과 관련된 구성 요소를 측정하기 위해 설계된 설문조사를 통해 데이터를 수집했다. 기술 수용 모델(TAM)에 기반한 설문지는 교육용 AI 맥락에 맞게 조정되었으며, 구조 방정식 모델링(SEM)과 가설 검증을 통해 구성 요소 간의 관계를 평가했다. 연구 결과, '인식된 사용 용이성', '인식된 유용성', 'AI 사용 행동 의도'가 학생들의 AI 채택에 대한 중요한 예측 변수인 것으로 나타났다. 또한 AI에 대한 신뢰와 친숙도가 행동 의도의 핵심 동인으로 확인되었다. 그러나 AI 출력의 인식된 품질이 인식된 유용성에 영향을 미친다는 가설은 지지되지 않았는데, 이는 학생들이 AI 출력의 품질을 학문적 맥락에서의 유용성과 강하게 연결하지 않을 수 있음을 시사한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>다양한 분야에서 AI의 보급이 확대되면서 교육 분야도 예외는 아니다. AI 기술은 기계 학습과 데이터 분석의 발전을 통해 개인화된 학습 경험을 제공하고 다양한 학습자를 지원하며 교육 절차를 향상시킬 새로운 가능성을 제시한다. 특히 다양한 배경, 능력, 학습 스타일을 가진 학생들을 통합하는 포용적 학습은 현대 교육의 핵심 원칙이 되었으며, AI는 이를 촉진하는 중요한 도구로 주목받고 있다. 하지만 고등 교육 환경에서 협업 및 포용적 학습을 위한 AI 채택에 영향을 미치는 심리적, 맥락적 요인에 대한 실증적 연구는 부족한 실정이다. 본 연구는 이러한 연구 격차를 해소하기 위해 기술 수용 모델(TAM)을 기반으로 한 이론적 모델을 제안하고 검증하고자 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 기술 수용 모델(Technology Acceptance Model, TAM)을 이론적 기반으로 삼는다. TAM은 사용자가 새로운 기술을 수용하는 과정을 설명하는 모델로, '인식된 유용성(Perceived Usefulness, PU)'과 '인식된 사용 용이성(Perceived Ease of Use, PEOU)'이 사용자의 '행동 의도(Behavioral Intention, BI)'에 영향을 미치고, 이는 다시 실제 '기술 사용(Actual Use)'으로 이어진다고 설명한다. 본 연구에서는 이 기본 모델을 교육용 AI 환경에 맞게 확장하여, AI 출력의 품질, 신뢰, 친숙도 등 AI 고유의 특성과 관련된 변수들을 추가로 탐색했다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250924134650-f7c68129224f170eff47fd0df2e0c45e.png\" width=\"1501\" height=\"782\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>핵심 구조/방법</strong>: 본 연구는 기술 수용 모델(TAM)을 기반으로 확장된 연구 모델을 제안했다. 논문의 <strong>Figure 1</strong>은 제안된 연구 모델을 시각적으로 보여준다. 이 모델은 외부 변수들(AI 출력 품질, 신뢰, 친숙도 등)이 TAM의 핵심 변수인 '인식된 사용 용이성(PEOU)'과 '인식된 유용성(PU)'에 미치는 영향을 분석하고, 이 두 변수가 다시 '사용 행동 의도(BAI)'를 거쳐 최종적으로 '협업을 위한 AI 채택(AIAC)'에 이르는 경로를 설정했다.</li>\n<li class=\"\"><strong>주요 구성 요소</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>외부 변수</strong>: 인식된 AI 출력 품질(PQAI), 인식된 AI 출력 신뢰(PTAI), AI 사용 친숙도(FAI), 교육 서비스 품질(QES), 참여 효능감(EE)</li>\n<li class=\"\"><strong>TAM 핵심 변수</strong>: 인식된 사용 용이성(PEOU), 인식된 유용성(PU)</li>\n<li class=\"\"><strong>종속 변수</strong>: 사용 행동 의도(BAI), 협업을 위한 AI 채택(AIAC)</li>\n</ul>\n</li>\n<li class=\"\"><strong>알고리즘</strong>: 수집된 데이터는 SmartPLS 소프트웨어를 사용하여 부분 최소 제곱 구조 방정식 모델링(PLS-SEM)으로 분석되었다. 2단계 접근법을 채택하여 먼저 측정 모델의 신뢰도와 타당성을 평가하고, 그 다음 구조 모델을 분석하여 연구 가설을 검증했다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 사우디아라비아 King Faisal University의 학부 및 대학원생 443명으로부터 수집된 설문 데이터를 사용했다.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>: 가설 검증을 위해 경로 계수(<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi></mrow><annotation encoding=\"application/x-tex\">\\beta</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span></span></span></span>), t-통계량, p-값을 사용했다. 주요 결과는 다음과 같다.<!-- -->\n<ul>\n<li class=\"\">참여 효능감(EE)은 사용 용이성(PEOU)과 유용성(PU)에 강한 긍정적 영향을 미쳤다 (H9: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.540</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.540</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.540</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>&lt;</mo><mn>0.001</mn></mrow><annotation encoding=\"application/x-tex\">p&lt;0.001</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.001</span></span></span></span>; H10: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.400</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.400</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.400</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>&lt;</mo><mn>0.001</mn></mrow><annotation encoding=\"application/x-tex\">p&lt;0.001</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.001</span></span></span></span>).</li>\n<li class=\"\">사용 용이성(PEOU)과 유용성(PU)은 행동 의도(BAI)에 유의미한 긍정적 영향을 주었다 (H12: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.430</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.430</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.430</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>&lt;</mo><mn>0.001</mn></mrow><annotation encoding=\"application/x-tex\">p&lt;0.001</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.001</span></span></span></span>; H13: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.440</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.440</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.440</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>&lt;</mo><mn>0.001</mn></mrow><annotation encoding=\"application/x-tex\">p&lt;0.001</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.001</span></span></span></span>).</li>\n<li class=\"\">행동 의도(BAI)는 협업을 위한 AI 채택(AIAC)에 매우 강한 긍정적 영향을 미쳤다 (H14: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.740</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.740</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.740</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>&lt;</mo><mn>0.001</mn></mrow><annotation encoding=\"application/x-tex\">p&lt;0.001</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.001</span></span></span></span>).</li>\n</ul>\n</li>\n<li class=\"\"><strong>비교 결과</strong>:<!-- -->\n<ul>\n<li class=\"\">AI 출력 품질(PQAI)은 사용 용이성(PEOU)에는 긍정적 영향을 미쳤지만(H1: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.180</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.180</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.180</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>&lt;</mo><mn>0.001</mn></mrow><annotation encoding=\"application/x-tex\">p&lt;0.001</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.7335em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">&lt;</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.001</span></span></span></span>), 유용성(PU)에는 유의미한 영향을 미치지 않았다(H2: <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>β</mi><mo>=</mo><mn>0.070</mn></mrow><annotation encoding=\"application/x-tex\">\\beta=0.070</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05278em\">β</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.070</span></span></span></span>, <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>p</mi><mo>=</mo><mn>0.240</mn></mrow><annotation encoding=\"application/x-tex\">p=0.240</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.625em;vertical-align:-0.1944em\"></span><span class=\"mord mathnormal\">p</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">0.240</span></span></span></span>). 이는 학생들이 AI 결과물의 기술적 품질 자체보다는 실제 학습 과제와의 관련성이나 참여도를 더 중요하게 여길 수 있음을 시사한다.</li>\n<li class=\"\">AI에 대한 신뢰(PTAI)와 친숙도(FAI)는 사용 용이성이나 유용성에 직접적인 영향을 주지 않는 것으로 나타나, 이들 변수가 AI 채택에 미치는 영향이 예상보다 복잡할 수 있음을 보여준다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 고등 교육 환경에서 협력적이고 포용적인 학습을 위해 AI를 채택하는 데 있어 기술 수용 모델(TAM)의 핵심 요소들이 여전히 중요함을 재확인했다. 특히 학생들의 '참여 효능감'이 AI 기술을 쉽고 유용하게 인식하는 데 결정적인 역할을 한다는 점을 발견했다. 반면, AI 출력의 기술적 품질이 유용성 인식으로 직결되지 않는다는 결과는 교육용 AI 개발 및 도입 시 기술적 성능뿐만 아니라, 실제 학습 맥락과의 연계 및 사용자 경험을 신중하게 고려해야 함을 시사한다. 향후 연구에서는 다양한 교육 환경과 문화권의 학생들을 대상으로 샘플을 확대하고, 실제 AI 사용 데이터를 결합한 혼합 연구 방법론을 통해 보다 심층적인 분석이 필요하다.</p>",
            "url": "https://til.99jik.com/papers/AI-Adoption-for-Collaboration-Factors-Influencing-Inclusive-Learning-Adoption-in-Higher-Education",
            "title": "Al Adoption for Collaboration: Factors Influencing Inclusive Learning Adoption in Higher Education",
            "summary": "기술 수용 모델(TAM)을 기반으로 고등 교육 환경에서 협력적, 포용적 학습을 위한 AI 기술 채택에 영향을 미치는 요인을 실증적으로 분석한 연구",
            "date_modified": "2025-05-07T00:00:00.000Z",
            "author": {
                "name": "IBRAHIM ALYOUSSEF"
            },
            "tags": [
                "Artificial Intelligence in Education",
                "Technology Acceptance Model",
                "Inclusive Learning",
                "Collaboration",
                "Higher Education"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Test Intention Guided LLM-based Unit Test Generation</li>\n<li class=\"\"><strong>저자</strong>: Zifan Nan, Zhaoqiang Guo, Kui Liu, Xin Xia (Huawei Technologies Co., Ltd.)</li>\n<li class=\"\"><strong>학회/저널</strong>: 2025 IEEE/ACM 47th International Conference on Software Engineering (ICSE)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-05-01 (ICSE 2025 Proceedings)</li>\n<li class=\"\"><strong>DOI</strong>: 10.1109/ICSE55347.2025.00243</li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 정적 분석 기반의 PAINT 기법을 통해 코드의 분기(Branch)와 의존성을 분석하고, 이를 바탕으로 명시적인 '테스트 의도(Test Intention)'를 생성하여 LLM 프롬프트에 주입함으로써 단위 테스트의 품질을 향상시키는 IntUT 프레임워크를 제안함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 산업계 자바 프로젝트 적용 결과, 기존 방식 대비 분기 커버리지(Branch Coverage)를 94%, 라인 커버리지(Line Coverage)를 49% 향상시켰으며, 실제 개발자 대상 라이브 스터디에서 30%의 효율성 향상을 입증함.</li>\n<li class=\"\"><strong>기여점</strong>: 단순 코드 컨텍스트 제공을 넘어, 프로그램 분석을 통해 도출된 명확한 테스트 시나리오(입력값, Mocking 동작, 기대 결과)를 LLM에 가이드함으로써 복잡한 분기와 의존성을 가진 코드에 대한 테스트 생성 한계를 극복함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>LLM(Large Language Models)의 등장은 단위 테스트 생성에 새로운 가능성을 열었으나, 기존 접근법은 낮은 커버리지와 부정확한 Mocking 능력으로 인해 실용성이 떨어지는 한계가 있었다. 본 논문은 명시적인 테스트 의도(테스트 입력, Mock 동작, 기대 결과 등)를 활용하여 LLM이 고품질의 테스트 케이스를 생성하도록 유도하는 새로운 접근법인 <strong>IntUT</strong>를 제안한다. 3개의 산업용 자바 프로젝트와 라이브 스터디를 통한 실험 결과, IntUT는 분기 커버리지와 라인 커버리지를 획기적으로 개선하였으며 개발자들의 테스트 작성 효율성을 크게 높이는 것으로 나타났다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 1\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251122203901-d0120896d35d8b7d286fb6a08397ac4e.png\" width=\"1098\" height=\"506\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 2\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251122203926-c0849df5742be76fe0b642d1da0bff83.png\" width=\"1080\" height=\"829\" class=\"img_ev3q\"></p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>단위 테스트는 소프트웨어 품질 보증의 핵심이지만, 고품질의 테스트 케이스를 작성하는 것은 시간 소모적이고 복잡한 작업이다. 최근 LLM을 활용한 자동 생성 연구가 활발하지만, 단순히 코드 문맥만 제공하는 방식은 복잡한 분기 조건을 모두 커버하지 못하거나 외부 의존성(DB, 네트워크 등)에 대한 Mocking 코드를 정확히 생성하지 못하는 문제가 있다.\n논문의 Figure 1과 2에서는 기존 LLM(CodeLLaMA, GPT-4)이 복잡한 제어 흐름을 가진 메소드에 대해 단순하고 유효하지 않은 테스트만 생성하는 실패 사례를 보여주며, 이를 해결하기 위해 개발자의 '의도'를 명시적으로 주입하는 기법의 필요성을 강조한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"배경\">배경<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EB%B0%B0%EA%B2%BD\" class=\"hash-link\" aria-label=\"배경에 대한 직접 링크\" title=\"배경에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구를 이해하기 위해 다음과 같은 개념이 전제된다.</p>\n<ul>\n<li class=\"\"><strong>제어 흐름 그래프(Control-Flow Graph, CFG)</strong>: 프로그램의 실행 흐름을 방향 그래프 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>G</mi><mo>=</mo><mo stretchy=\"false\">(</mo><mi>B</mi><mo separator=\"true\">,</mo><mi>E</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">G=(B, E)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\">G</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em\"></span><span class=\"mopen\">(</span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em\">B</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">E</span><span class=\"mclose\">)</span></span></span></span>로 모델링한 것. 여기서 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>B</mi></mrow><annotation encoding=\"application/x-tex\">B</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05017em\">B</span></span></span></span>는 기본 블록(basic block), <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>E</mi></mrow><annotation encoding=\"application/x-tex\">E</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6833em\"></span><span class=\"mord mathnormal\" style=\"margin-right:0.05764em\">E</span></span></span></span>는 제어 흐름을 나타내는 엣지이다.</li>\n<li class=\"\"><strong>Mocking</strong>: 테스트 대상 코드(Focal Method)가 의존하는 외부 객체의 동작을 흉내 내어, 테스트를 격리하고 실행 속도와 안정성을 보장하는 기법이다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 4\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251122204004-8130f9f69f79064266b2188278ce5537.png\" width=\"1019\" height=\"328\" class=\"img_ev3q\"></li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><strong>IntUT</strong>는 크게 테스트 의도 생성(PAINT)과 프롬프트 조립 및 LLM 생성의 두 단계로 구성된다(Figure 4 참조).</p>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"1-paint-프로그램-분석-기반-테스트-의도-생성기\">1. PAINT: 프로그램 분석 기반 테스트 의도 생성기<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#1-paint-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%B6%84%EC%84%9D-%EA%B8%B0%EB%B0%98-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9D%98%EB%8F%84-%EC%83%9D%EC%84%B1%EA%B8%B0\" class=\"hash-link\" aria-label=\"1. PAINT: 프로그램 분석 기반 테스트 의도 생성기에 대한 직접 링크\" title=\"1. PAINT: 프로그램 분석 기반 테스트 의도 생성기에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>PAINT(Program Analysis-driven test Intention generation)는 정적 분석을 통해 타겟 메소드의 모든 분기를 커버하기 위한 명세서를 작성한다.</p>\n<ul>\n<li class=\"\"><strong>블록 분석 (Block Analysis)</strong>: 소스 코드를 CFG로 변환하고 If, Switch, Exception, Hybrid 블록으로 분류하여 분석한다. 각 분기로 나가는 엣지(Edge)에 True/False 조건을 레이블링한다.</li>\n<li class=\"\"><strong>SSM-DFS 알고리즘</strong>: Subgraph-Split-Merge Depth-First Search 알고리즘을 사용하여 CFG를 순회한다. 이는 함수 호출이나 예외 처리가 포함된 복잡한 구조에서, 특정 분기(Leaf Node)에 도달하기 위해 만족해야 하는 조건들의 체인(Condition Chain)을 추출한다. 경로 폭발(Path Explosion) 문제를 완화하기 위해 중첩 조건(Nested Condition) 위주로 가지치기(Pruning)를 수행한다.</li>\n<li class=\"\"><strong>Mock Classifier</strong>: CodeBERT 기반으로 학습된 분류기를 사용하여, 조건 체인 내의 함수 호출이 실제 실행되어야 하는지 혹은 Mocking 되어야 하는지를 결정한다. Mocking이 필요한 경우, 해당 분기에 도달하기 위한 반환값을 Mock 조건으로 설정한다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 6\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020251122204049-84a42b3d046208a52e638bae0237e104.png\" width=\"1091\" height=\"828\" class=\"img_ev3q\"></li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"2-프롬프트-구성-figure-6-참조\">2. 프롬프트 구성 (Figure 6 참조)<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#2-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EA%B5%AC%EC%84%B1-figure-6-%EC%B0%B8%EC%A1%B0\" class=\"hash-link\" aria-label=\"2. 프롬프트 구성 (Figure 6 참조)에 대한 직접 링크\" title=\"2. 프롬프트 구성 (Figure 6 참조)에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<p>추출된 테스트 의도는 다음과 같은 템플릿 형태로 변환되어 LLM 프롬프트에 포함된다.</p>\n<ul>\n<li class=\"\"><strong>Input Parameters</strong>: 해당 분기를 타기 위해 필요한 입력 변수 설정 (예: <code>StringUtils.isEmpty(id)</code>가 False가 되도록 id 설정).</li>\n<li class=\"\"><strong>Mock Conditions</strong>: 의존성 객체의 메소드 호출 시 반환해야 할 값 또는 예외 설정.</li>\n<li class=\"\"><strong>Expected Result</strong>: 테스트 실행 후 검증해야 할 결과값(Oracle).</li>\n<li class=\"\"><strong>RAG</strong>: 유사한 과거 테스트 케이스와 Mock 예제 코드를 검색하여 프롬프트에 추가, LLM이 프로젝트의 코딩 스타일을 따르도록 유도한다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>실험은 화웨이의 실제 산업용 자바 프로젝트 3개(Mgmt, Lic, Res)를 대상으로 진행되었으며, CodeLLaMA-34B-SFT 모델을 기반으로 평가했다.</p>\n<ul>\n<li class=\"\"><strong>테스트 품질</strong>: 생성된 테스트의 65%는 즉시 컴파일 및 실행이 가능했으며, 컴파일 에러율은 3%에 불과했다.</li>\n<li class=\"\"><strong>커버리지 향상</strong>: 테스트 의도(Test Intention)를 적용했을 때, 적용하지 않은 경우(Baseline) 대비 <strong>분기 커버리지(Branch Coverage)는 94%</strong>, <strong>라인 커버리지(Line Coverage)는 49%</strong> 향상되었다. 이는 단순 파인튜닝이나 RAG만 적용했을 때보다 월등히 높은 수치이다.</li>\n<li class=\"\"><strong>절제 연구 (Ablation Study)</strong>: 테스트 의도(TI)가 포함된 프롬프트가 토큰 편집 거리(TED)와 라인 편집 거리(LED)를 획기적으로 줄여, 개발자가 생성된 코드를 수정하는 데 드는 노력을 감소시킴을 확인했다.</li>\n<li class=\"\"><strong>라이브 스터디</strong>: 185명의 현업 개발자가 참여한 연구에서 84.4%의 높은 수용률(Acceptance Rate)을 보였으며, 개발 효율성이 30% 향상되었다는 피드백을 받았다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 논문은 LLM을 활용한 단위 테스트 생성 시, 정적 분석을 통해 추출한 명시적 '테스트 의도'를 가이드로 사용하는 것이 성능 향상에 결정적임을 증명했다. IntUT는 복잡한 비즈니스 로직을 가진 실제 산업 현장의 코드에서도 높은 커버리지와 정확한 Mocking 코드를 생성해냈으며, 이는 LLM과 프로그램 분석 기술의 결합이 소프트웨어 엔지니어링 자동화 도구의 신뢰성을 크게 높일 수 있음을 시사한다.</p>",
            "url": "https://til.99jik.com/papers/Test-Intention-Guide-LLM-based-Unit-Test-Generation",
            "title": "Test Intention Guided LLM-based Unit Test Generation",
            "summary": "정적 분석을 통해 추출한 테스트 의도(Test Intention)를 사용하여 LLM이 높은 커버리지와 정확한 Mocking을 갖춘 단위 테스트를 생성하도록 유도하는 IntUT 프레임워크 제안",
            "date_modified": "2025-05-01T00:00:00.000Z",
            "author": {
                "name": "Zifan Nan"
            },
            "tags": [
                "Software Engineering",
                "Unit Test Generation",
                "Large Language Models",
                "Static Analysis",
                "Program Analysis",
                "Mocking"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Real-time Semantic Full-Body Haptic Feedback Converted from Sound for Virtual Reality Gameplay</li>\n<li class=\"\"><strong>저자</strong>: Gyeore Yun, Seungmoon Choi (Pohang University of Science and Technology, POSTECH)</li>\n<li class=\"\"><strong>학회/저널</strong>: CHI Conference on Human Factors in Computing Systems (CHI '25)</li>\n<li class=\"\"><strong>발행일</strong>: 2025-04-26</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.1145/3706598.3713355\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.1145/3706598.3713355</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: VR FPS 게임의 사운드 스트림을 실시간으로 캡처하여 Long-Short-Term Memory (LSTM) 모델로 총성, 피격, 폭발 등 의미론적 이벤트로 분류한다. 이후 분류된 이벤트에 맞춰 미리 디자인된 전신 햅틱 패턴을 생성하여 햅틱 슈트를 통해 사용자에게 전달하는 시스템을 제안함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 사용자 연구를 통해 제안된 의미론적 사운드-햅틱 변환 시스템이 기존의 단순 신호 처리 기반 변환 방식(NS-ALL)이나 의미는 맞지만 패턴이 무작위인 방식(S-RAND)에 비해 일치성, 방해 요소, 선호도 측면에서 월등히 높은 사용자 경험 점수를 기록함. 이는 사운드의 의미를 정확히 분류하고 그에 맞는 햅틱 패턴을 제공하는 것이 몰입감 향상에 중요함을 시사함.</li>\n<li class=\"\"><strong>기여점</strong>: 게임 프로그램과 독립적으로 작동하면서 실시간으로 사운드의 의미를 파악하여 전신 햅틱 피드백을 자동으로 생성하는 시스템을 개발함. 또한, 사용자 연구를 통해 의미론적 변환과 적절한 햅틱 패턴 디자인이 VR 게임 경험을 크게 향상시킬 수 있음을 실험적으로 증명함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 논문은 사운드의 의미론적 분류, 사운드-햅틱 변환, 그리고 전신 햅틱 효과를 특징으로 하는 다중감각 가상현실(VR) 시스템을 제시한다. 이 시스템은 Long-Short-Term Memory (LSTM) 모델을 사용하여 총성, 폭발, 피격과 같은 핵심 게임 이벤트를 사운드로부터 감지한다. 감지된 이벤트는 햅틱 슈트를 통해 전신 햅틱 패턴으로 변환되어 사용자에게 현실감 있고 몰입감 높은 경험을 제공한다. 시스템은 낮은 지연 시간으로 작동하여 사운드와 햅틱 피드백 간의 원활한 동기화를 보장하며, 사용자 연구를 통해 기존 방식보다 사용자 경험이 크게 향상됨을 입증했다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>VR 게임의 즐거움을 유도하기 위해서는 즉각적인 피드백이 필수적이며, 햅틱 피드백은 게임 내 이벤트와 동기화된 자연스러운 물리적 피드백을 제공하여 몰입감을 높일 수 있다. 하지만 기존의 햅틱 효과 제작은 전문가가 수동으로 설계해야 해 비효율적이다. 이에 대한 해결책으로 게임 사운드에서 실시간으로 햅틱 효과를 자동 생성하는 방식이 주목받고 있다. 그러나 단순한 사운드 신호 변환은 신체의 여러 부위에 상황에 맞는 햅틱 피드백을 전달해야 하는 햅틱 슈트에는 부적합하다. 따라서 본 연구에서는 게임 내 사운드 이벤트의 의미를 이해하고, 적절한 전신 햅틱 효과를 실시간으로 제공하는 사운드-햅틱 변환 시스템을 제안한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 3\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250924134402-a2229c61290a5889619959e85b397285.png\" width=\"1409\" height=\"541\" class=\"img_ev3q\">\n시스템은 사운드 분류, 햅틱 패턴 생성, 햅틱 렌더링의 세 가지 모듈이 병렬로 실행되는 구조를 가진다. 논문의 Figure 3에서 제시된 이 구조는 각 모듈의 실행 시간과 관계없이 일관된 햅틱 업데이트 속도를 보장한다.\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 8\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250924134440-bc7ca91bb7a4576f3794c82cbe369857.png\" width=\"1548\" height=\"909\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>핵심 구조/방법</strong>:<!-- -->\n<ol>\n<li class=\"\"><strong>사운드 분류 모듈</strong>: 오디오 스트림에서 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>T</mi><mi>W</mi></msub><mo>=</mo><mn>50</mn></mrow><annotation encoding=\"application/x-tex\">T_W=50</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">T</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3283em\"><span style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.13889em\">W</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">50</span></span></span></span> ms 길이의 사운드 세그먼트를 <span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi>T</mi><mi>C</mi></msub><mo>=</mo><mn>17</mn></mrow><annotation encoding=\"application/x-tex\">T_C=17</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8333em;vertical-align:-0.15em\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">T</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3283em\"><span style=\"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em\"><span class=\"pstrut\" style=\"height:2.7em\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right:0.07153em\">C</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em\"></span></span><span class=\"base\"><span class=\"strut\" style=\"height:0.6444em\"></span><span class=\"mord\">17</span></span></span></span> ms 주기로 캡처한다. 캡처된 스테레오 사운드는 FFT(고속 푸리에 변환)를 통해 2204차원의 주파수 영역 벡터로 변환되어 LSTM 모델의 입력으로 사용된다. 모델은 사운드를 총성(GUN), 피격(HIT), 폭발(EXP), 재장전(RLD), 그리고 햅틱 피드백이 불필요한 나머지(NONE)의 5개 클래스로 분류한다.</li>\n<li class=\"\"><strong>햅틱 패턴 생성 모듈</strong>: 분류된 사운드 클래스에 따라 미리 설계된 시공간적 햅틱 패턴을 생성한다. 햅틱 전문가 인터뷰를 바탕으로 각 이벤트에 맞는 패턴을 디자인했으며(논문의 Figure 8 참조), 이는 16개 액추에이터(조끼 14개, 컨트롤러 1개, 팔뚝 밴드 1개)의 시간에 따른 강도 계수로 표현된다.<!-- -->\n<ul>\n<li class=\"\"><strong>GUN/RLD</strong>: 총기 반동을 모방하기 위해 손에서 팔로 진동이 이동하는 팬텀 센세이션(phantom sensation) 효과를 0.25초 동안 생성한다.</li>\n<li class=\"\"><strong>HIT</strong>: 총알이 몸을 관통하는 느낌을 주기 위해 가슴에서 등 쪽으로 이동하는 팬텀 센세이션을 0.35초 동안 생성한다.</li>\n<li class=\"\"><strong>EXP</strong>: 폭발의 충격을 표현하기 위해 0.7초 동안 몸통 전체의 액추에이터를 일정한 강도로 작동시킨다.</li>\n<li class=\"\"><strong>NONE</strong>: 게임플레이에 중요한 발소리 같은 주변음을 전달하기 위해 조끼에 약한 강도의 진동을 지속적으로 제공한다.</li>\n</ul>\n</li>\n<li class=\"\"><strong>햅틱 렌더링 모듈</strong>: 원본 사운드 신호를 1옥타브 낮추고 250Hz 저역 통과 필터를 적용하여 '기본 햅틱 신호'를 생성한다. 이 신호를 햅틱 패턴 생성 모듈에서 받은 각 액추에이터의 강도 계수와 곱하여 최종 아날로그 햅틱 신호를 만들어 액추에이터로 전송한다.</li>\n</ol>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-결과\">실험 결과<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EC%8B%A4%ED%97%98-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 결과에 대한 직접 링크\" title=\"실험 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Figure 7\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250924134509-31b6a29eab9a5352a046886c823be1ba.png\" width=\"1565\" height=\"565\" class=\"img_ev3q\">\n<img decoding=\"async\" loading=\"lazy\" alt=\"Figure 10\" src=\"https://til.99jik.com/assets/images/Pasted%20image%2020250924134544-130cbcc19496125238f687337eb49044.png\" width=\"1611\" height=\"1369\" class=\"img_ev3q\"></p>\n<ul>\n<li class=\"\"><strong>주요 데이터셋</strong>: 4개의 인기 FPS 게임 플레이 영상에서 총 19,132개의 사운드 샘플을 추출하고 5개 클래스로 레이블링하여 데이터셋을 구축했다.</li>\n<li class=\"\"><strong>핵심 성능 지표</strong>:<!-- -->\n<ul>\n<li class=\"\"><strong>지연 시간</strong>: 시스템의 평균 사운드-햅틱 변환 지연 시간은 59.4ms로 측정되었다. 이는 일반적인 다중감각 동기화 인지 임계값(25-75ms) 내에 있어 실시간 경험에 충분한 수준이다.</li>\n<li class=\"\"><strong>분류 정확도</strong>: 새로운 테스트 영상 3개에 대한 평가 결과, HIT와 EXP 클래스는 100%의 탐지율을 보였으나, GUN과 RLD는 주변 소음이나 데이터셋의 불균형으로 인해 상대적으로 낮은 정확도를 보였다(논문의 Figure 7 참조).</li>\n</ul>\n</li>\n<li class=\"\"><strong>비교 결과 (사용자 연구)</strong>:<!-- -->\n<ul>\n<li class=\"\">24명의 참가자를 대상으로 제안 시스템(S-CORR), 의미 분류 없이 모든 소리를 햅틱으로 변환하는 방식(NS-ALL), 의미는 분류하지만 햅틱 패턴을 무작위로 제공하는 방식(S-RAND)을 비교했다.</li>\n<li class=\"\">S-CORR은 다른 두 조건에 비해 적절성, 일치성, 방해 정도, 몰입감, 선호도 등 모든 평가 항목에서 통계적으로 유의미하게 높은 점수를 받았다(논문의 Figure 10 참조). 이는 사용자가 사운드의 의미와 일치하는 잘 디자인된 햅틱 피드백을 경험할 때 가장 긍정적인 반응을 보인다는 것을 의미한다.</li>\n</ul>\n</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 VR 게임 사운드를 실시간으로 의미에 따라 분류하고, 그에 맞는 전신 햅틱 피드백을 생성하는 시스템을 성공적으로 개발하고 그 효과를 입증했다. 이 시스템은 기존의 단순 변환 방식보다 월등히 향상된 사용자 경험을 제공함을 보여주었다. 향후 과제로는 더 다양한 게임에 적용할 수 있도록 사운드 분류기의 성능을 개선하고, 더 정교한 전신 햅틱 패턴을 디자인하며, 실제 VR 게임 플레이 환경에서 장기적인 사용자 평가를 진행하는 것이 있다.</p>",
            "url": "https://til.99jik.com/papers/Real-time-Semantic-Full-Body-Haptic-Feedback-Converted-from-Sound-for-Virtual-Reality-Gameplay",
            "title": "Real-time Semantic Full-Body Haptic Feedback Converted from Sound for Virtual Reality Gameplay",
            "summary": "VR 게임 사운드를 실시간으로 의미에 따라 분류하고, 그에 맞는 전신 햅틱 피드백을 생성하여 사용자 경험을 향상시키는 시스템",
            "date_modified": "2025-04-26T00:00:00.000Z",
            "author": {
                "name": "Gyeore Yun"
            },
            "tags": [
                "Virtual Reality",
                "Haptics",
                "Sound Classification",
                "Long Short-Term Memory",
                "User Experience"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: The Future of Software Testing: A Review of Trends, Challenges, and Opportunities</li>\n<li class=\"\"><strong>저자</strong>: Mrs. Elavarasi Kesavan (Full Stack QA Architect, Cognizant)</li>\n<li class=\"\"><strong>학회/저널</strong>: International Journal of Innovations in Science Engineering and Management</li>\n<li class=\"\"><strong>발행일</strong>: 2025-04-15</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.69968/ijisem.2025v4i253-57\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.69968/ijisem.2025v4i253-57</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 본 논문은 AI, IoT, 클라우드, 애자일 등 최신 기술이 소프트웨어 테스팅 분야에 미치는 영향을 분석함. 문헌 연구를 통해 최신 테스팅 동향, 지속적인 과제, 그리고 새로운 기회들을 종합적으로 검토하고, 미래의 테스트 엔지니어가 갖추어야 할 역량을 조망함.</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 소프트웨어 테스팅은 AI와 IoT 같은 신기술과 깊이 연관되어 빠르게 발전하고 있으며, 테스터에게는 코딩 능력과 새로운 도구 및 프레임워크에 대한 적응력이 요구됨. 애자일, 자동화, TCoE(Testing Centers of Excellence)가 QA Practice를 재편하고 있으나, 성능 테스트, 숨겨진 종속성, 품질 책임과 같은 과제는 여전히 남아있음.</li>\n<li class=\"\"><strong>기여점</strong>: 소프트웨어 테스팅의 현재 상황과 미래 방향에 대한 포괄적인 개요를 제공함. 최신 동향, 고질적인 문제, 새로운 기회를 종합하여 미래의 테스트 엔지니어를 위한 지속적인 학습과 기술 개발의 필요성을 강조함.</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>소프트웨어 테스팅은 제품의 품질을 평가하는 핵심 프로세스로, 정확하고 신뢰성 있는 결과, 사용자 만족도 향상, 유지보수 비용 절감에 기여한다. 이 논문은 문헌 조사를 통해 소프트웨어 테스팅의 동향, 과제, 그리고 기회를 검토한다. 결론적으로 AI, IoT, 클라우드, 애자일과 같은 신기술의 통합으로 테스팅 분야는 빠르게 진화하고 있으며, 이에 따라 테스터들은 코딩 기술을 강화하고 변화하는 도구와 프레임워크에 적응해야 한다. 애자일 테스팅, 자동화, TCoE가 QA 관행을 재구성하고 있지만, 성능 테스트나 품질 책임과 같은 과제는 여전히 존재한다. 이러한 문제 해결을 위해서는 전략적 계획과 이해관계자의 참여가 필요하며, SECO 및 MSECO 환경에서의 테스팅, 기능/비기능 검증 등에서 새로운 기회를 찾을 수 있다. 미래의 테스트 엔지니어들이 이러한 산업 요구에 부응하기 위해서는 지속적인 학습과 기술 개발이 필수적이다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>소프트웨어 테스팅은 소프트웨어 제품의 품질과 신뢰성을 보장하는 근본적인 활동이다. 결함이 있는 소프트웨어를 출시할 경우 발생할 수 있는 금전적 손실이나 사용자 신뢰 하락을 방지하기 위해 소프트웨어 기업들은 엄격한 테스트 절차를 거친다. 테스트를 통해 개발 초기에 문제를 발견하고 해결함으로써 장기적인 유지보수 비용을 절감할 수 있다. 이 분야는 소프트웨어 공학에서 가장 활발한 연구 분야 중 하나이지만, 자동화된 단위 테스트 케이스 생성이나 모바일 GUI 테스트의 의미론적 이해 부족과 같은 수많은 과제가 여전히 남아있다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"주요-동향-과제-및-기회\">주요 동향, 과제 및 기회<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EC%A3%BC%EC%9A%94-%EB%8F%99%ED%96%A5-%EA%B3%BC%EC%A0%9C-%EB%B0%8F-%EA%B8%B0%ED%9A%8C\" class=\"hash-link\" aria-label=\"주요 동향, 과제 및 기회에 대한 직접 링크\" title=\"주요 동향, 과제 및 기회에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"핵심-동향\">핵심 동향<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%ED%95%B5%EC%8B%AC-%EB%8F%99%ED%96%A5\" class=\"hash-link\" aria-label=\"핵심 동향에 대한 직접 링크\" title=\"핵심 동향에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>AI 기반 테스팅의 부상</strong>: AI를 활용하여 테스트 케이스의 생성 및 관리를 자동화하고, 테스트 방법론을 개선 및 최적화한다. 특히 생성형 AI는 이러한 변화를 주도하며 테스트 프로세스를 가속화한다.</li>\n<li class=\"\"><strong>Shift-Left 접근법을 통한 API 보안 강화</strong>: 개발 생명주기 초기에 API 보안 테스트를 통합하여 시스템의 취약점을 조기에 식별하고 수정한다. 이는 잘못된 구성, 데이터 유출, 불법 접근과 같은 위협을 예방하는 데 중점을 둔다.</li>\n<li class=\"\"><strong>클라우드 인프라를 활용한 테스트 확장</strong>: 클라우드 기반 테스팅은 뛰어난 확장성, 유연성, 속도를 제공하여 최신 소프트웨어 개발 요구사항을 충족시킨다. 이를 통해 QA 및 개발팀은 테스트 활동을 비용 효율적으로 확장할 수 있다.</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"주요-과제\">주요 과제<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EC%A3%BC%EC%9A%94-%EA%B3%BC%EC%A0%9C\" class=\"hash-link\" aria-label=\"주요 과제에 대한 직접 링크\" title=\"주요 과제에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>소통 및 문서화 부재</strong>: 팀 간의 의사소통 격차나 프로젝트 요구사항 문서의 누락은 테스트 케이스의 정확성을 저해하고, 불필요한 기능을 개발하거나 중요한 요구사항을 놓치는 결과로 이어질 수 있다.</li>\n<li class=\"\"><strong>테스트 환경의 다양성</strong>: 애플리케이션은 수천 개의 다른 기기, 브라우저, 플랫폼 조합에서 동시에 접근된다. 시장에 계속해서 출시되는 새로운 모바일 기기들로 인해 모든 환경에서 완벽한 테스트를 수행하는 것은 매우 어려운 과제이다.</li>\n<li class=\"\"><strong>자동화 전략 수립의 어려움</strong>: 시중에 나와 있는 수많은 자동화 도구 중에서 프로젝트의 요구사항과 예산, 기술 스택에 가장 적합한 도구를 선택하는 것이 어렵다. 또한 무엇을, 얼마나, 어떤 순서로 자동화할지 결정하는 전략 수립 역시 복잡한 문제이다.</li>\n</ul>\n<h4 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"새로운-기회\">새로운 기회<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EC%83%88%EB%A1%9C%EC%9A%B4-%EA%B8%B0%ED%9A%8C\" class=\"hash-link\" aria-label=\"새로운 기회에 대한 직접 링크\" title=\"새로운 기회에 대한 직접 링크\" translate=\"no\">​</a></h4>\n<ul>\n<li class=\"\"><strong>AI 기반 테스트 케이스 생성 및 최적화</strong>: AI 알고리즘이 애플리케이션 데이터와 사용 패턴을 분석하여, 인간 테스터가 놓치기 쉬운 엣지 케이스를 포함한 포괄적인 테스트 케이스를 자동으로 생성하고 최적화한다.</li>\n<li class=\"\"><strong>예측 분석을 통한 위험 영역 식별</strong>: 머신러닝 기반의 예측 분석은 과거 데이터를 학습하여 소프트웨어에서 결함이 발생할 가능성이 높은 위험 영역을 예측한다. 이를 통해 테스터는 제한된 자원을 고위험 영역에 집중하여 테스트 효율성을 높일 수 있다.</li>\n<li class=\"\"><strong>IoT 및 블록체인 기술의 통합</strong>: IoT 기기의 확산에 따라 연결된 시스템의 성능, 보안, 신뢰성을 보장하기 위한 테스트의 중요성이 커지고 있다. 또한, 블록체인 기술을 활용하여 테스트 데이터와 결과의 무결성을 보장하고, 위변조가 불가능한 투명한 테스트 프로세스를 구축할 수 있다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"문헌-연구-결과\">문헌 연구 결과<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EB%AC%B8%ED%97%8C-%EC%97%B0%EA%B5%AC-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"문헌 연구 결과에 대한 직접 링크\" title=\"문헌 연구 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>여러 선행 연구들은 소프트웨어 테스팅의 다양한 측면을 조명한다.</p>\n<ul>\n<li class=\"\">**Stradowski &amp; Madeyski (2023)**는 Nokia의 5G 기술 개발 사례를 통해 역량 강화(competence ramp-up), 성능 테스트, 고객 시나리오 테스트를 가장 시급하고 중요한 과제로 식별했다.</li>\n<li class=\"\">**Panwar &amp; Peddi (2023)**는 AI와 머신러닝이 소프트웨어 테스팅에 통합되면서 테스트 데이터 선택, 테스트 커버리지 확보, 다양한 디바이스 지원 등 새로운 과제가 부상하고 있음을 지적했다.</li>\n<li class=\"\">**Santos et al. (2020)**는 소프트웨어 테스팅 생태계(STECO)와 모바일 소프트웨어 생태계(MSECO)라는 개념을 제안하며, 이러한 환경 내에서 기능 및 비기능 요구사항 테스트, 플랫폼 간 연동 테스트, 자동화 연구 등의 새로운 연구 기회가 존재함을 강조했다.</li>\n</ul>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>소프트웨어 테스팅의 미래는 AI, IoT, 클라우드와 같은 신기술과 밀접하게 연결되어 있으며, 이로 인해 테스팅 분야는 복잡성이 증가하고 있다. 미래의 테스터들은 강력한 프로그래밍 기술을 보유하고 애자일 방법론과 자동화 프레임워크에 신속하게 적응해야 한다. 품질 보증은 더 이상 테스트팀만의 책임이 아니며, 모든 이해관계자가 공유해야 할 책임이 되고 있다. SECO 및 MSECO 플랫폼에서의 기능/비기능 테스트와 같은 분야에서 새로운 기회가 열리고 있으나, 불충분한 문서화, 사용자 참여 부족, 인력 훈련 등의 과제는 여전히 해결해야 할 숙제이다. 이러한 변화의 흐름에 맞춰 교육 기관과 산업계는 미래의 테스트 엔지니어들이 필요한 기술을 갖출 수 있도록 지속적인 학습과 협력을 도모해야 한다.</p>",
            "url": "https://til.99jik.com/papers/The-Future-of-Software-Testing-A-Review-of-Trends-Challenges-and-Opportunities",
            "title": "The Future of Software Testing: A Review of Trends, Challenges, and Opportunities",
            "summary": "AI, IoT, 클라우드 등 신기술 통합으로 급변하는 소프트웨어 테스팅의 미래 동향, 과제, 기회를 종합적으로 검토하고 미래 테스트 엔지니어에게 필요한 역량을 제시한다.",
            "date_modified": "2025-04-15T00:00:00.000Z",
            "author": {
                "name": "Elavarasi Kesavan"
            },
            "tags": [
                "Software Testing",
                "Artificial Intelligence",
                "Internet of Things",
                "Automation",
                "Quality Assurance",
                "Future Trends"
            ]
        },
        {
            "id": "https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework",
            "content_html": "<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"논문-정보\">논문 정보<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EB%85%BC%EB%AC%B8-%EC%A0%95%EB%B3%B4\" class=\"hash-link\" aria-label=\"논문 정보에 대한 직접 링크\" title=\"논문 정보에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>제목</strong>: Explainable Artificial Intelligence (XAI) for Material Design and Engineering Applications: A Quantitative Computational Framework</li>\n<li class=\"\"><strong>저자</strong>: Bokai Liu (Umeå University), Pengju Liu (Umeå University), Weizhuo Lu (Umeå University), Thomas Olofsson (Umeå University)</li>\n<li class=\"\"><strong>학회/저널</strong>: International Journal of Mechanical System Dynamics, Volume 5, Issue 2, pp. 236-265</li>\n<li class=\"\"><strong>발행일</strong>: 2025-03-27</li>\n<li class=\"\"><strong>DOI</strong>: <a href=\"https://doi.org/10.1002/msd2.70017\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.1002/msd2.70017</a></li>\n<li class=\"\"><strong>주요 연구 내용</strong>: 데이터 처리, 특징 선택, 모델 학습, 성능 평가, 설명가능성 분석, 클라우드 배포를 포함하는 체계적 ML-XAI 통합 파이프라인 제안</li>\n<li class=\"\"><strong>주요 결과 및 결론</strong>: 고성능 콘크리트(HPC) 압축 강도 예측에서 XGBoost 모델이 R²=0.918로 최고 예측 성능을 달성하였으며, SHAP과 LIME을 통해 특징 중요도 및 재료 상호작용에 대한 상세한 해석 제공</li>\n<li class=\"\"><strong>기여점</strong>: 재료 설계 및 엔지니어링 응용을 위한 정량적 XAI 계산 프레임워크를 제시하고, 클라우드 기반 API 배포까지 포함하는 완전한 워크플로우 구축</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"요약\">요약<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EC%9A%94%EC%95%BD\" class=\"hash-link\" aria-label=\"요약에 대한 직접 링크\" title=\"요약에 대한 직접 링크\" translate=\"no\">​</a></h2>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"초록\">초록<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EC%B4%88%EB%A1%9D\" class=\"hash-link\" aria-label=\"초록에 대한 직접 링크\" title=\"초록에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>재료 정보학에서 머신러닝(ML) 기반 예측 모델의 해석 가능성 부족은 실용적 채택에 큰 장벽이 된다. 본 연구는 ML 모델과 설명가능 인공지능(XAI) 기법을 통합하여 재료 특성 예측의 정확성과 해석 가능성을 동시에 향상시키는 새로운 정량적 계산 프레임워크를 제안한다. 이 프레임워크는 데이터 처리, 특징 선택, 모델 학습, 성능 평가, 설명가능성 분석, 실세계 배포를 포함하는 체계적 파이프라인을 구성한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"서론\">서론<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EC%84%9C%EB%A1%A0\" class=\"hash-link\" aria-label=\"서론에 대한 직접 링크\" title=\"서론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>재료과학에서 ML 모델의 활용이 증가하고 있으나, 대부분의 고성능 모델은 블랙박스 특성을 가지고 있어 예측 결과에 대한 신뢰성과 물리적 의미의 해석이 어렵다. 이는 재료 설계 및 엔지니어링 실무에서 ML 모델의 채택을 저해하는 주요 요인이다. 본 연구는 XAI를 체계적으로 통합한 정량적 프레임워크를 제시하여 이 문제를 해결하고자 한다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"모델-아키텍처--방법론\">모델 아키텍처 / 방법론<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EB%AA%A8%EB%8D%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98--%EB%B0%A9%EB%B2%95%EB%A1%A0\" class=\"hash-link\" aria-label=\"모델 아키텍처 / 방법론에 대한 직접 링크\" title=\"모델 아키텍처 / 방법론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 프레임워크는 다음의 주요 구성 요소를 포함한다:</p>\n<ol>\n<li class=\"\">\n<p><strong>데이터 전처리 및 특징 분석</strong>:</p>\n<ul>\n<li class=\"\">Sobol 민감도 분석을 통한 특징 의존성 정량화</li>\n<li class=\"\">주성분 분석(PCA)을 이용한 고차원 재료 데이터의 차원 축소</li>\n<li class=\"\">상관 분석 및 통계적 특징 선택</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>ML 모델 비교 분석</strong>:</p>\n<ul>\n<li class=\"\">Random Forest (RF): 앙상블 기반 배깅 방법</li>\n<li class=\"\">XGBoost: 그래디언트 부스팅 기반 앙상블</li>\n<li class=\"\">Support Vector Regression (SVR): 커널 기반 회귀</li>\n<li class=\"\">Deep Neural Networks (DNNs): 다층 신경망</li>\n<li class=\"\">정확도, 해석 가능성, 계산 효율성 간의 트레이드오프 분석</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>XAI 기법</strong>:</p>\n<ul>\n<li class=\"\">SHAP(Shapley Additive Explanations): 글로벌 및 로컬 수준의 특징 중요도 분석</li>\n<li class=\"\">LIME(Local Interpretable Model-agnostic Explanations): 개별 예측에 대한 로컬 해석</li>\n</ul>\n</li>\n<li class=\"\">\n<p><strong>클라우드 배포</strong>: 학습된 모델을 클라우드 기반 API로 배포하여 실세계 활용 가능성 확보</p>\n</li>\n</ol>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"실험-및-결과\">실험 및 결과<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EC%8B%A4%ED%97%98-%EB%B0%8F-%EA%B2%B0%EA%B3%BC\" class=\"hash-link\" aria-label=\"실험 및 결과에 대한 직접 링크\" title=\"실험 및 결과에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>고성능 콘크리트(HPC) 압축 강도 예측을 대표적 사례 연구로 검증하였다:</p>\n<ul>\n<li class=\"\"><strong>XGBoost</strong>: R²=0.918로 최고 예측 성능 달성</li>\n<li class=\"\"><strong>Random Forest</strong>: 안정적인 성능과 높은 해석 가능성 제공</li>\n<li class=\"\"><strong>SVR</strong>: 중간 수준의 예측 성능</li>\n<li class=\"\"><strong>DNN</strong>: 높은 예측 성능이나 해석 가능성이 상대적으로 낮음</li>\n</ul>\n<p>SHAP 분석을 통해 시멘트 함량, 물-시멘트 비, 양생 기간 등이 압축 강도 예측에 가장 큰 영향을 미치는 특징임을 확인하였다. LIME 분석은 개별 예측에 대한 상세한 로컬 수준의 해석을 제공하여, 재료 과학자들이 특정 배합에서의 성분 간 상호작용을 이해할 수 있도록 하였다.</p>\n<h3 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"결론\">결론<a href=\"https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework#%EA%B2%B0%EB%A1%A0\" class=\"hash-link\" aria-label=\"결론에 대한 직접 링크\" title=\"결론에 대한 직접 링크\" translate=\"no\">​</a></h3>\n<p>본 연구는 재료 설계 및 엔지니어링 응용을 위한 체계적인 ML-XAI 통합 프레임워크를 제시하였다. XGBoost 모델의 우수한 예측 성능과 SHAP, LIME을 통한 풍부한 해석 가능성을 입증하였으며, 클라우드 배포를 통한 실세계 활용 가능성을 확인하였다. 이 프레임워크는 재료 정보학에서 ML 모델의 실용적 채택을 촉진하고, 데이터 기반 재료 설계의 신뢰성을 높이는 데 기여할 수 있다.</p>",
            "url": "https://til.99jik.com/papers/Explainable-Artificial-Intelligence-XAI-for-Material-Design-and-Engineering-Applications-A-Quantitative-Computational-Framework",
            "title": "Explainable Artificial Intelligence (XAI) for Material Design and Engineering Applications: A Quantitative Computational Framework",
            "summary": "기계학습(ML) 모델과 설명가능 인공지능(XAI)을 통합하여 재료 특성 예측의 정확성과 해석 가능성을 모두 높이는 정량적 계산 프레임워크를 제안",
            "date_modified": "2025-03-27T00:00:00.000Z",
            "author": {
                "name": "Bokai Liu"
            },
            "tags": [
                "Explainable Artificial Intelligence",
                "High-Performance Concrete",
                "Material Informatics",
                "Predictive Modeling",
                "Science Cloud Deployment",
                "FOR_KSC"
            ]
        }
    ]
}