개발/NodeJS 3

Databricks SQL을 위한 경량 Node.js 클라이언트 라이브러리 개발기

들어가며MCP (Model Context Protocol) Server를 개발하면서 Databricks SQL로 대용량 데이터셋을 쿼리해야 하는 요구사항이 들어왔습니다. 자연스럽게 공식 Databricks Node.js SDK를 사용하려 했지만, 곧 문제에 부딪혔습니다. 대용량 결과를 처리할 방법이 없었습니다.이 글에서는 이 문제를 해결하기 위해 두 개의 라이브러리(@bitofsky/merge-streams, @bitofsky/databricks-sql)를 개발한 과정과, 그 과정에서 얻은 인사이트를 공유하고자 합니다.문제: SDK External Links 미지원SDK에선 fetchChunk로 대량 result set을 부분적으로 처리하도록 callback을 제공하지만, 대량 데이터를 MCP Clien..

개발/NodeJS 2026.01.05

Typescript compilerHost를 사용해 컴파일 할 때 주의사항

Typescript compilerHost는 현재 app의 pwd 경로를 기준으로 @types/node 등의 기본 의존성 타입을 찾는다. 따라서 mono repo와 같은 복잡한 구조인 경우 실행되는 app의 경로를 잘 지정하거나, compilerHost.getCurrentDirectory를 overwrite 하여 정확한 경로를 수동으로 지정해줄 필요가 있다. // typescript는 cwd를 기준으로 node_modules/typescript/lib을 기본 lib 경로로 사용한다. 정확히 바라보도록 설정해준다. compilerHost.getCurrentDirectory = () => { console.log(`compilerHost.getCurrentDirectory`, __dirname, path.r..

개발/NodeJS 2024.03.20

pnpm 심볼릭 링크 버그 수정하기

개요 최근 내부 저장소의 기본 의존성을 최신 버전으로 업그레이드한 이후, 특정 서버가 런타임 중에 중단되기 시작했다. ERROR 1: uncaughtException : Error: libtensorflow.so.2: cannot open shared object file: No such file or directory TensorFlow의 Node.js 버전은 모듈 설치 후 설치 스크립트에 의해 운영 체제별로 의존성을 다운로드하거나 소스 코드에서 빌드되며, 결국 빌드된 바이너리 파일을 심볼릭 링크로 연결한 특정 경로를 생성한다. TensorFlow Node.js API는 이러한 심볼릭 링크를 참조한다. 이 모듈의 내부 작동 방식은 사용자가 알 필요가 없어야 한다. 정상적으로 빌드가 완료되면 그냥 작동해..

개발/NodeJS 2024.02.26