피드로 돌아가기
Dev.toFrontend
원문 읽기
플랫폼 기본 기능 기반의 의존성 최소화 및 고난도 문제 해결 중심의 라이브러리 전략
The libraries I actually reach for — and the rule I use to decide
AI 요약
Context
무분별한 외부 라이브러리 도입으로 인한 Dependency Bloat와 중복 기능 구현의 비효율성 발생. Browser Native API의 발전으로 많은 기능이 대체 가능해졌으나, 여전히 보안 및 복잡한 수학적 계산 영역에서는 플랫폼의 한계가 존재함.
Technical Solution
- 플랫폼 미지원 기능 및 안전한 구현이 어려운 영역에 한정하여 라이브러리를 채택하는 의존성 관리 원칙 수립
- XSS 공격 방지를 위해 정규표현식 기반의 자체 구현을 배제하고 전문 Security Discipline이 적용된 sanitize-html 도입
- TypeScript의 Compile-time Type Check 한계를 극복하기 위해 Runtime Validation을 수행하는 zod를 통한 데이터 경계 보호
- Viewport Edge 및 Scroll Container 등 복잡한 Collision Math 처리를 위해 Floating UI를 통한 포지셔닝 로직 추상화
- Markdown Parsing과 HTML Sanitizing을 분리하여 단일 책임 원칙(SRP)을 준수하는 파이프라인 설계
- 기능 범위가 극히 제한적이고 런타임 오버헤드가 적은 Single-purpose 라이브러리 중심의 생태계 구성
실천 포인트
1. Browser Native API로 구현 가능한 기능(예: <dialog>)인지 우선 검토
2. 보안 및 정교한 수학적 계산 등 '실수 가능성이 높은' 영역인지 판단
3. 프레임워크 수준의 거대 라이브러리보다 단일 목적의 가벼운 라이브러리인지 확인
4. Runtime 단계에서 데이터 정밀 검증이 필요한 Boundary 지점에 검증 로직 배치
태그