피드로 돌아가기
Dev.toAI/ML
원문 읽기
다국어 Codegen 확장과 EDT Deadlock 해결을 통한 데이터 전처리 파이프라인 최적화
What's new in Data Preprocessor 1.5.x — R codegen, Robust Scaler, and a deadlock post-mortem
AI 요약
Context
반복적인 pandas 전처리 스크립트 작성을 제거하기 위한 IntelliJ 플러그인 기반의 시각적 파이프라인 도구 설계. Python 중심의 환경에서 R 사용자까지 포괄하는 재현 가능한 데이터 전처리 아티팩트 생성 필요성 증대.
Technical Solution
- Visual Pipeline을 Spec으로 정의하고 Python과 R을 Render Target으로 분리한 다중 언어 Codegen 아키텍처 도입
- Robust Scaler 구현 시 IQR=0인 edge case에 대한 Guard Clause를 추가하여 NaN/Inf 전파를 방지한 안정적 수치 계산 로직 설계
- IntelliJ 2024.2의 FileChooser 비동기 시맨틱 변경에 따른 EDT(Event Dispatching Thread) Deadlock을 분석하여 ApplicationManager.invokeLater 제거 및 직접 호출 구조로 복구
- Floating Dialog 대신 Tool Window에 앵커링된 Single-file Chooser를 적용하여 UI 스레드 안정성 및 사용자 경험 개선
- LoaderArchitecture의 단일 패스 행 기반 처리 한계를 극복하기 위해 DuckDB 도입을 통한 대용량 데이터 프로파일링 설계 추진
실천 포인트
- 플랫폼의 Async Semantics 변경 시 추측 대신 소스 코드와 릴리스 노트를 정밀 분석할 것 - 수치 계산 로직 설계 시 분모가 0이 되는 Case를 명시적으로 처리하여 에러 전파(Error Propagation)를 차단할 것 - 도구의 범용성을 위해 특정 언어 종속성을 제거하고 '사양(Spec) -> 렌더링(Rendering)' 구조로 설계를 분리할 것