안녕하세요. TypeScript 프론트엔드용 빌드 타임 DI 라이브러리 prewire를 만들었습니다. 이 라이브러리를 만들게 된 계기는 제가 관리하는 프론트엔드 모노레포의 구조였습니다. 여러 사업의 프론트엔드가 하나의 core/kit 코드를 공유하고 있는데, 현재 앱들은 Next.js를 사용하고 있습니다. 앞으로 일부 사업에서는 TanStack Router를 사용해 보고 싶었지만, 그렇다고 공유 코어가 next/navigation이나 @tanstack/react-router에 직접 의존하게 만들고 싶지는 않았습니다. 사업마다 다른 구현을 선택하면서도 공유 코어는 수정하지 않는 구조가 필요했습니다. prewire에서는 공유 코드가 먼저 port와 token을 선언합니다. export interface RouterPort { href(to: string): string push(to: string): void } export const ROUTER = new InjectionToken<RouterPort>('router') 각 앱은 자신이 사용하는 프레임워크로 이 port를 구현합니다. export const tanstackRouter = injectable( { logger: LOGGER }, ({ logger }): RouterPort => ({ href: (to) => to, push: (to) => { logger.info(`navigate → ${to}`) throw redirect({ to }) }, }), { provides: ROUTER }, ) 공유 코드를 포함한 소비자 쪽에서는 구현이 어디서 왔는지 알 필요 없이 같은 경로만 import합니다. import { router } from '#prewire' prewire codegen이 앱과 공유 패키지의 injectable() 선언을 정적으로 분석해 의존성 순서대로 평범한 TypeScript composition root를 생성합니다. export const logger = consoleLoggerBinding.factory({}) export const router = tanstackRouterBinding.factory({ logger }) 런타임 컨테이너나 reflect-metadata, decorator는 사용하지 않습니다. 누락된 binding, 순환 의존성, 중복 binding 같은 문제는 실행 중이 아니라 코...
Show GN: prewire - 런타임 컨테이너 없이 빌드 타임에 연결하는 TypeScript 프론트엔드 DI
3 weeks ago
18
Related
개발자의 PO도전기 - 개발시작을 Lean하게 해본 이야기
19 minutes ago
0
SSL에 대해 배운 모든 것이 더는 유효하지 않음 [유튜브]
6 hours ago
2
YC CEO Garry Tan이 말하는 창업자의 새로운 규칙 [유튜브]
6 hours ago
1
Computer Use와 Skills/Files API로 프로덕션 에이전트 구축하기
6 hours ago
1
Rust nightly, 차세대 트레이트 솔버 기본 활성화
7 hours ago
1
KDE에 Btrfs 스냅샷을 통합하는 KIO Snapshot
7 hours ago
1
더 나은 배터리
7 hours ago
1
Tips
click
Popular
마키나락스, 중견 제조사 현장에 AI 네이티브 팩토리 구축한다
4 weeks ago
64
제니, 빌보드 라디오 차트 1위…'골든' 이어 두 번째
3 weeks ago
62
라온시큐어 화이트해커 23명, 국제 해킹 대회 '데프콘 CTF 2026' 본선행
3 weeks ago
56
'산골총각 영웅' 차승원·김도훈 합류…임영웅과 찰떡+힐링 케미
3 weeks ago
46
© Clint IT 2026. All rights are reserved

![[테크 차이나] DeepSeek V4 Flash 1위… 중국 모델 강세 지속(OpenRouter 주간 AI 모델 사용량 순위)](https://img.etnews.com/news/article/2026/08/06/news-p.v1.20260806.379c2eee15bb4be5b29d934a203a6106_Z1.jpg)








English (US) ·