재활 웹 시스템의 관계형 vs 문서형 데이터베이스 성능 비교와 확장성 고찰
초록
본 연구는 장기 신경계 질환 환자를 위한 가상 재활 환경(VRE)을 기존 ASP.NET MVC 기반 관계형 데이터베이스 구현과 MEAN 스택 기반 문서형 데이터베이스 구현으로 재구축하여 성능 및 확장성을 비교한다. 부하 테스트 결과, 비관계형 솔루션이 전반적인 응답 시간과 처리량에서 우수했으며, 이는 데이터베이스 선택보다 전체 아키텍처 설계가 성능 향상의 핵심 요인임을 보여준다. 또한 마이크로서비스 기반 설계 제안을 통해 향후 확장성과 유지보수성을 극대화할 수 있음을 제시한다.
상세 분석
이 논문은 재활 치료 과정에서 환자와 치료사가 상호작용할 수 있는 웹 기반 플랫폼인 Virtual Rehabilitation Environment(VRE)의 비기능적 요구사항, 특히 성능과 확장성을 중심으로 두 가지 기술 스택을 비교한다. 초기 구현은 Microsoft ASP.NET MVC와 관계형 데이터베이스(SQL Server)를 사용했으며, 27개의 핵심 기능 중 21개를 구현했지만, 비관계형 데이터베이스 전환과 클라우드 기반 확장성 설계는 시간과 경험 부족으로 포기되었다. 연구팀은 이를 보완하기 위해 전체 애플리케이션을 MEAN 스택(MongoDB, ExpressJS, AngularJS, NodeJS)으로 재작성하였다.
성능 테스트는 JMeter와 같은 부하 생성 도구를 활용해 동시 사용자 수, 요청 응답 시간, CPU·메모리 사용량 등을 측정했으며, 동일한 시나리오(세션 조회, 목표 설정, 운동 기록 저장 등)를 양쪽 시스템에 적용했다. 결과는 비관계형 시스템이 평균 응답 시간이 45% 감소하고, 초당 처리량이 30% 이상 증가했음을 보여준다. 특히 MongoDB의 스키마리스 구조가 빈번한 데이터 삽입·수정 작업에서 I/O 병목을 크게 완화했으며, Node.js의 비동기 이벤트 루프가 다중 요청을 효율적으로 처리했다. 반면 ASP.NET MVC는 스레드 기반 모델로 동시성 제어에 한계가 있었고, ORM(Entity Framework)의 과도한 추상화가 쿼리 최적화를 방해했다.
하지만 논문은 데이터베이스 선택만이 성능 향상의 전부가 아니라는 점을 강조한다. MEAN 스택 전환 과정에서 프론트엔드와 백엔드가 동일 언어(JavaScript)로 통합돼 데이터 직렬화·역직렬화 비용이 감소했고, RESTful API 설계가 간결해져 네트워크 오버헤드가 줄었다. 또한, 서버 사이드 렌더링 대신 클라이언트 측 AngularJS가 UI 렌더링을 담당함으로써 서버 부하가 크게 경감되었다. 이러한 전반적인 아키텍처 재설계가 비관계형 데이터베이스와 결합돼 최적의 성능을 도출한 것이다.
확장성 측면에서는 두 시스템 모두 수평 확장이 가능하지만, 구현 방식에 차이가 있다. 관계형 시스템은 데이터베이스 샤딩과 복제 설정이 복잡하고, 트랜잭션 일관성을 유지하기 위한 비용이 크다. 반면 MongoDB는 자동 샤딩과 복제 세트를 기본 제공해 클러스터 확장이 용이하며, CAP 이론에 따라 일관성보다 가용성을 우선시하는 설계가 재활 서비스와 같은 비실시간 애플리케이션에 적합하다. 논문은 이를 바탕으로 마이크로서비스 아키텍처를 제안한다. 데이터베이스, 클라이언트 애플리케이션, 서버 애플리케이션, CDN을 각각 독립적인 서비스로 분리하고, Docker와 Kubernetes 같은 컨테이너 오케스트레이션을 활용해 자동 스케일링·배포 파이프라인을 구축한다. 이렇게 하면 각 서비스가 독립적으로 확장·업데이트될 수 있어 개발 속도와 운영 비용을 최소화할 수 있다.
결론적으로, 비관계형 데이터베이스와 전체 스택 재설계가 VRE의 성능을 크게 향상시켰으며, 마이크로서비스 기반의 모듈화된 설계가 장기적인 확장성과 유지보수성을 보장한다는 점을 입증한다.
댓글 및 학술 토론
Loading comments...
의견 남기기