안녕하세요. 토스뱅크에서 패키지 개발 환경을 개선하고 있는 기술그룹입니다.토스뱅크에서는 여러 서비스가 함께 쓰는 코드를 패키지로 관리해요. 그동안 ECMAScript Modules(이하 ESM)와 CommonJS(이하 CJS) 두 형식으로 빌드하고, package.json의 exports로 각 환경에 맞는 코드와 타입을 제공해왔어요. 이러한 Dual package 방식의 배경과 설정은 CommonJS와 ESM에 모두 대응하는 라이브러리 개발하기: exports field에서 자세히 볼 수 있어요.그런데 Dual package 방식은 두 형식으로 빌드하는 것 외에도 신경 쓸 일이 많았어요. 같은 패키지의 상태가 둘로 나뉘거나, 한쪽 경로에서 타입을 찾지 못할 수 있었거든요. 어떤 문제인지부터 살펴볼게요.같은 패키지인데 상태가 둘로 나뉘어요React 컨텍스트를 제공하는 패키지를 ESM과 CJS로 각각 빌드했다고 해볼게요. 서비스는 ESM 구현을, 서비스가 사용하는 다른 패키지는 CJS 구현을 읽는 상황이에요.두 구현에서 각각 컨텍스트를 만들면 객체도 둘이 돼요. 서비스의 Provider는 컨텍스트 ①에 값을 넣는데, 다른 패키지의 Hook은 컨텍스트 ②에서 값을 찾을 수 있어요. Provider로 감쌌는데도 값을 읽지 못하는 거예요.같은 패키지 이름으로 불렀는데 왜 이런 일이 생길까요? exports에서 불러오는 방식에 따라 서로 다른 파일을 연결했기 때문이에요.{ "exports": { ".": { "import": "./dist/index.mjs", "require": "./dist/index.cjs" } } }이 구성에서는 import와 require()가 서로 다른 구현을 읽어요. 두 모듈이 각각 실행되면서 만든 객체는 내용이 같아도 다른 객체예요.패키지를 한 버전만 설치했어도 생길 수 있는 일이에요. 이렇게 두 모듈이 함께 로드되면서 공유해야 할 객체나 상태가 나뉘는 위험을 Dual package hazard라고 해요. 컨텍스트뿐 아니라 모듈이 보관하는 캐시나 상태도 영향을 받을 수 있어요.실행 코드는 찾았는데 타입은 찾지 못해요타입도 두 경로에서 확인해야 해요. 우리 패키지의 타입이 외부 라이브러리를 참조한다면, 그 라이브러리의 타입까지 올바르게 연결돼야 하고요.예를 들어 UI 패키지가 외부 라이브러리의 ExternalProps를 가져와 버튼의 props를 정의한다고 해볼게요.import type { E...
토스뱅크가 패키지를 관리하는 방식 #1: 패키지를 ESM으로만 제공하기로 했어요
1 hour ago
7
Related
LFM2.5-24B-A2B: 빠른 온디바이스 에이전트를 위해 설계한 모델
3 hours ago
2
Show GN: 맥 os용 의미론적 검색 인덱스, Weft
4 hours ago
2
Apple: Chrome에서 Safari로 전환하세요
6 hours ago
3
Starlink 속도 제한, 우크라이나 드론 운용에 타격
6 hours ago
3
미국은 희토류 산업을 잃은 것이 아니라 팔았다
6 hours ago
3
코드를 모르는 기획자의 Product Engineer 도전 : 준비와 소통으로 서버부터 앱까지
6 hours ago
10
Show GN: hone - 에이전트 평가 사이클을 자동으로 돌리고, 처음 보는 케이스로 판정하는 CLI
7 hours ago
11
Tips
click
Trending
Popular
영탁 "임영웅과 자주 운동해, 축구 실력 1티어..장민호는 개발" [사당귀]
1 week ago
195
넷마블 ‘몬길: 스타다이브’, 1.4 대규모 업데이트…‘이자벨라’ 등장
2 weeks ago
187
주말 새 2금융권까지 해킹피해 확산에…당국, 4일 전 금융업권 협회장·금융사 대표 긴급 소집
1 week ago
184
Show GN: 믹스독 — 같은 구독으로 더 많이 쓰는 오픈소스 코딩 에이전트
2 weeks ago
179
임산부석 차지한 노인…다리 깁스한 34주 만삭 임산부는 결국
1 week ago
178
승부 가리기엔 11회가 모자랐다…KT, 연장 접전 끝 롯데와 2-2 무승부→매직넘버 2
1 week ago
177
한국큐빅, 매출 67% 차지 안산공장 생산중단…부산공장으로 통합
2 weeks ago
176
“군대 안가” 자랑한 축구대표팀에…안철수 “군대가 혐오시설? 군면제 없애야”
1 week ago
174
은행권 AI 연쇄해킹…공격서버에 ‘중국어 문자열’ 있었다는데
1 week ago
166
평택시흥고속도로서 트럭이 승용차 2대 추돌…트럭 운전자 사망
1 week ago
157
© Clint's Theme Park 2026. All rights are reserved

![영탁 "임영웅과 자주 운동해, 축구 실력 1티어..장민호는 개발" [사당귀]](https://image.starnewskorea.com/cdn-cgi/image/f=auto,w=1200,h=645,fit=cover,q=high,sharpen=2/21/2026/10/2026100208562556697_1.jpg)








English (US) ·