설치된 라이브러리 수를 줄이는 것의 핵심 원칙
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 초보자~중급 개발자
- 라이브러리 사용 전략과 성능 최적화를 고려하는 개발 팀
- 프로젝트의 유지보수성과 확장성을 중시하는 기술 리더
핵심 요약
- 라이브러리 사용은 복잡한 문제 해결에 한정 (
Zustand
,Redux
등) - 간단한 로직은 직접 구현 (
useState
,useContext
,Intl.DateTimeFormat
등) - 라이브러리 사용 시 성능, 유지보수, 보안 trade-off 반드시 고려
섹션별 세부 요약
1. 라이브러리 사용의 부작용
- 프론트엔드: 번들 크기 증가 → 로딩 시간 증가
- 백엔드: 초기화 시간 증가, 메모리 사용량 증가
- 예시:
lodash
대신lodash/debounce
사용 또는 직접debounce()
함수 구현
2. 라이브러리의 위험 요소
- 보안 취약점: 외부 라이브러리의 취약점으로 인한 위험
- 버전 충돌: 패키지 트리에서의 충돌 가능성
- 라이선스 문제: 라이브러리의 라이선스와 프로젝트 정책 불일치
3. 사용 시기별 판단 기준
- 간단한 유틸리티: 직접 구현 (예:
useState
,useContext
) - 복잡한 로직:
zod
,yup
(스키마 검증),dayjs
(시간 처리) 사용 - 성능 최적화:
React Query
(캐싱),Prisma
(데이터베이스) 사용
4. 라이브러리 사용 전 반성 포인트
- 문제 정의: 해결하려는 문제의 복잡도 파악
- 코드 길이: 20줄 이내로 구현 가능한지 확인
- trade-off 분석: 성능, 유지보수, 보안 영향 평가
결론
- 복잡한 문제 해결에만 라이브러리 사용 (
Zustand
,Redux
,dayjs
등) - 간단한 로직은 직접 구현 (
useState
,useContext
등) - 라이브러리 사용 전 성능/보안/유지보수 trade-off 필수 분석