Search

250826_1707_Node.js의 JSON 기반 직렬화 한계 + ORM 추상화 방식에서 오는 문제

문제 배경

ORM(Object Relational Mapping)들은 데이터베이스 쿼리 결과를 애플리케이션 계층으로 가져올 때 시리얼라이즈/디시리얼라이즈 과정을 거침.
이때 결과를 보통 JSON 스펙으로 옮기는데, JSON 자체는 BigInt 타입을 지원하지 않음.

JVM 진영과 비교

JVM(Java, Kotlin 등) 쪽은 Long, BigDecimal 같은 풍부한 정수/소수 타입이 있어서 데이터베이스의 Bigint 타입을 자연스럽게 매핑 가능.
즉, DB → 애플리케이션 → ORM 매핑 과정이 타입 그대로 이어질 수 있음.

Node.js 진영의 문제

Node.js ORM들은 JSON 스펙에 맞추다 보니, Bigint 타입을 문자열(string)로 변환해서 전달.
결과적으로 개발자는 숫자로 다뤄야 할 값을 문자열로 받아서, 다시 파싱하거나 변환하는 불편이 생김.
대규모 시스템에서 수치 연산이 필요한 경우엔 특히 번거롭고, 성능/정확성 이슈까지 연결될 수 있음.

개발자의 불만

“DB는 Bigint로 관리하는데, Node ORM은 전부 문자열로 넘어오니 답답하다.”
“JVM에는 Long이나 BigDecimal이 잘 있는데, 왜 Node는 문자열이냐”라는 불만이 많음
이는 결국 Node.js의 JSON 기반 직렬화 한계 + ORM 추상화 방식에서 오는 문제가 있다.

안녕하세요

관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.

Hello

For technical and business inquiries, please contact me at “glory@keti.re.kr”