1. 기존 아키텍처의 한계와 도전 과제
-
상태 소유권의 모호성: 여러 컴포넌트가 동일한 데이터에 반응하면서 상태 변경의 예측 가능성이 떨어지고 복잡도가 기하급수적으로 증가했습니다.
-
비동기 처리의 불일치: 프로미스, 콜백 등이 혼재되어 복잡한 에이전트 워크플로우에서 레이스 컨디션(Race Condition)이 빈번하게 발생했습니다.
-
관찰 가능성 부족: 상태 변화를 추적하기 어려워 버그 재현과 디버깅에 수일이 소요되는 비효율적인 구조였습니다.
2. Redux 및 Redux-Saga 기반의 새로운 설계
-
단일 진실 공급원(Single Source of Truth): 모든 애플리케이션 상태를 정형화된 스키마를 가진 하나의 스토어에서 관리하여 투명성을 확보했습니다.
-
Svelte 전용 셀렉터 시스템: Redux의 명시적 상태 변경과 Svelte의 반응형 성능을 결합하기 위해, 필요한 시점에만 계산되는 지연 평가(Lazy Evaluation) 기반의
createSelector를 구축했습니다. -
비동기 오케스트레이션: Redux-Saga를 도입하여 LLM 응답 스트리밍, 도구 실행, UI 업데이트 등의 복잡한 비동기 단계를 선언적으로 관리하고 병렬 처리를 안전하게 구현했습니다.
3. AI 에이전트를 활용한 효율적인 리팩토링
-
에이전트 친화적 문서화:
_docs/디렉토리에 에이전트가 읽기 쉬운 구조로 가이드라인을 작성하여 리팩토링의 일관성을 유지했습니다. -
대규모 코드 포팅: 에이전트가 기존 로직을 분석하고 새로운 아키텍처 패턴에 맞춰 코드를 변환함으로써 수백 개의 파일을 다루는 대규모 작업을 신속하게 완료했습니다.