facts

이번 2.0.0 업데이트의 핵심은 최신 Expo 및 React Native(RN) 환경으로의 호환성 확보와 신규 기능인 곡선(스무스 라인) 차트의 도입이다. 해당 라이브러리는 `react-native-svg`, ART, Skia와 같은 외부 드로잉 라이브러리를 전혀 사용하지 않고 RN의 기본 `View`와 `Text` 컴포넌트만으로 라인, 바, 파이 차트를 렌더링한다. 별도의 네이티브 라이브러리를 링크하거나 `pod install` 과정을 거칠 필요 없이 `npm install` 한 줄로 설치가 완료되는 의존성 제로(Zero Dependency) 구조를 가진다.

과거 피크 시점의 지표를 보면 npm 주간 다운로드 수 2,000회, 약 820개 프로젝트에서 사용되었으며 GitHub 스타 289개를 기록했다. 9년 전의 레거시 코드베이스를 현대화하는 과정에서 AI 에이전트가 리팩토링과 기능 구현을 수행했으며, 결과물은 npm 2.0.0 버전으로 배포되었다. 관련 소스 코드는 GitHub(https://github.com/oksktank/react-native-pure-chart)와 npm(https://www.npmjs.com/package/react-native-pure-chart)에서 확인할 수 있다.

how-it-works

삼각함수를 이용한 렌더링 방식은 이 라이브러리의 정체성을 결정한다. 두 데이터 포인트 사이의 거리와 각도를 삼각함수로 계산한 뒤, 가늘고 긴 `View` 컴포넌트를 생성하고 이를 `rotate transform`으로 회전시켜 하나의 선분처럼 보이게 만든다. 이러한 선분 조각들을 연속적으로 이어 붙여 전체 차트의 형태를 구성하는 원리다.

새롭게 추가된 곡선 차트는 직선과 달리 구간을 매우 잘게 쪼개어 각 조각의 좌표와 각도를 계산하고, 짧은 선분들로 곡선을 근사(Approximation)하는 방식으로 구현했다. 이 과정에서 조각 사이가 끊기거나 각져 보이는 현상을 해결하기 위해 좌표 및 각도 계산에 쓰이는 변수값을 미세하게 조정하는 튜닝 과정이 수반되었다.

AI 에이전트의 작업 파이프라인은 단순한 코드 수정을 넘어 시각적 검증 루프를 포함한다. Maestro(모바일 e2e 테스트 도구) 기반의 하네스를 통해 iOS 시뮬레이터와 안드로이드 에뮬레이터를 직접 조작하고, 렌더링 결과의 스크린샷을 촬영한다. 에이전트는 촬영된 스크린샷을 분석해 선이 어긋나거나 축이 밀리는 등의 시각적 결함을 판정하고, 이를 근거로 코드를 다시 수정하는 루프를 반복했다. 특히 곡선 차트의 경우, 의심 구간을 확대 캡처하여 점검하고 파라미터를 수정하는 사이클을 수렴할 때까지 반복 수행함으로써 사람이 수동으로 튜닝할 때 발생하는 타협 지점을 극복하고 매끄러운 곡선을 구현했다.

implementation-impact

개발 환경에서 가장 먼저 체감하는 변화는 빌드 안정성이다. 네이티브 드로잉 라이브러리를 사용할 때 빈번하게 발생하는 `pod install` 단계의 빌드 오류나 라이브러리 간 충돌 가능성이 원천적으로 제거되었다. 순수 View 기반 렌더링은 성능 최적화 관점에서 네이티브 드로잉보다 오버헤드가 있을 수 있으나, 설치 및 운영의 단순함이라는 명확한 이점을 제공한다.

UI 라이브러리와 같이 정답이 '화면에 보이는 결과'인 프로젝트의 현대화 작업에서, 모델의 성능보다 중요한 것은 결과를 스스로 확인할 수 있는 검증 환경(Harness)의 구축이다. e2e 조작과 스크린샷 판정 조합이 갖춰진 환경에서는 난이도는 낮지만 반복 확인 비용이 큰 레거시 리팩토링 작업을 AI 에이전트에게 위임하여 시각적 품질까지 수렴시킬 수 있다.