본문으로 이동
여러 프레임워크에서 사용할 수 있는 라이브러리 만들기
문서

여러 프레임워크에서 사용할 수 있는 라이브러리 만들기

임지훈 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

React에 강하게 결합된 라이브러리는 다른 프레임워크를 사용하는 팀에서 재사용하기 어렵다는 문제가 있습니다. TanStack Query의 구조를 참고해 프레임워크 독립적인 핵심 로직을 `query-core`에 두고, React·Vue 등의 패키지가 이를 각 환경에 연결하는 코어-어댑터 패턴을 설명합니다. 계산기 예제에서는 연산과 상태를 코어로 분리하고 `EventTarget` 기반 이벤트로 변경을 알리며, React 어댑터가 이벤트를 구독해 React 상태와 동기화하도록 설계합니다. 다만 프레임워크별 어댑터는 유지보수 비용을 늘릴 수 있으므로, Framework Agnostic 여부는 라이브러리의 목적과 사용자 요구에 따라 결정해야 합니다.

  • 프레임워크에 독립적인 코어에는 핵심 로직과 상태를 두고, 프레임워크별 어댑터는 라이프사이클과 상태를 연결하는 역할에 집중하세요.
  • 코어가 이벤트 발행·구독 인터페이스를 제공하면 어댑터가 상태 변화를 감지해 프레임워크 UI와 동기화할 수 있습니다.
  • 어댑터를 늘리면 프레임워크별 업데이트와 테스트 부담도 커지므로, 코어만으로 통합하기 쉬운지 먼저 살펴보세요.
  • Framework Agnostic은 범용 라이브러리의 유일한 설계 방식이 아니며, 목표 사용자와 해결하려는 문제에 맞춰 선택해야 합니다.

소개

여러분은 라이브러리를 만들어봤거나, 만들어야겠다고 생각해본 적이 있나요? 이번에는 프론트엔드 개발 환경에서 높은 범용성을 나타내는 용어 중 하나인 “Framework Agnostic”에 대해 이야기 해보려고 합니다.

비슷한 학습 자료

문서 박건영

왜 토스증권 PC의 그리드 레이아웃을 왜 직접 구현하게 되었는지, 그리고 어떻게 만들어져 있는지를 이제부터 소개해 드릴게요.

프론트엔드 알고리즘 · 자료구조

문서 강민우

이번 아티클에서는 @use-funnel 라이브러리의 구현 과정과 방법에 대해서 더 자세히 살펴볼게요.

프론트엔드 개발 도구

문서 권선영

단계별 상태 관리 라이브러리 @use-funnel을 어떻게 만들게 되었는지 소개드릴게요. 문제의식을 공유하고 해결방법을 찾으려는 분들께 도움이 되면 좋겠어요.

프론트엔드 개발 도구

문서 토스 프론트엔드 챕터

프론트엔드 개발에서 프레임워크는 정말 필수 일까요? 토스 정진우, 조유성 님이 전하는 프레임워크와 라이브러리의 정의부터 실제 업무에서의 활용법까지, 실용적인 예시를 통해 함께 알아보시죠!

프론트엔드

문서 장호승

Node.js에는 두 가지 Module System이 존재합니다. 토스 프론트엔드 챕터에서 운영하는 100개가 넘는 라이브러리들은 그것에 어떻게 대응하고 있을까요?

백엔드 프로그래밍 언어

문서 권가은

디자인 컴포넌트 라이브러리 빌드 및 구조 개선기

프론트엔드 UI/UX