Prevayler, RDBMS빠빠이?
예전에 slashdot.org에서 본 기사가 생각나서 다시 찾아봤는데요.
Prevayler라고 해서 OO언어에서 사용하는 어플리케이션 객체들을
다룰때 이것을 직렬화해서 메모리에 저장하는 방식으로 처리하는
방식이 있더군요. Mysql보다 3000배가 빠르다고 그러는데....
google에서 찾아봐도 국내 싸이트에서는 언급되고 다루는데가
없어서 소개차 또는 토론꺼리(?)를 만들기 위해서 이렇게
글을 올립니다.
실제로 개발과정에서 객체를 DB TABLE같은 관계형모델과 매핑시키는데
노력이 많이들기때문에 요즘 java에 JDO나 기타 O-R mapping 프레임웍이
많이 만들어지고 있죠.
이것은 객체는 객체그대로 다루는게 논리에 맞다는 식인것 같은데..
slashdot에 토론들을 보면 이것을 두고 참으로 재미있는 논쟁이 오가더군요
여러 고수님들은 Prevayler에 대해서 어떻게 생각하시나요?
[참고기사]
Prevayler Quietly Reaches 2.0 Alpha, Bye RDBMS?
http://developers.slashdot.org/article.pl?sid=03/09/23/2016224&mode=thread&tid=126&tid=156
Object Prevalence: Get Rid of Your Database?
http://developers.slashdot.org/article.pl?sid=03/03/03/1220222&mode=thread&tid=156
An introduction to object prevalence
Prevayler를 써보진 않았습니다만 그런 개념이 빠른 시일 내에 RD
Prevayler를 써보진 않았습니다만 그런 개념이 빠른 시일 내에 RDBMS를 대체할 수 있을 거라고 생각하지 않습니다.
물론 객체지향 언어와 전통적인 퍼시스턴스 방식의 괴리('impedence mismatch'라고 부르는)에 대한 문제는 자주 등장하는 주제지만, 예를들어 JDO나 Hibernate, Castor JDO 등등의 데이터베이스를 백엔드로 하는 객체 퍼시스턴스 프레임워크보다 특별히 객체 지향에 더 가깝다고 생각하긴 어렵습니다.
어차피 Prevayler 같은 개념을 써도 계층을 따라 내려가다 보면 분명 객체 지향의 세계와 하위 저장소의 경계에 접하게 됩니다. 어차피 파일시스템이라고 해서 상속 관계 등이 필요한 객체지향의 세계와 RDBMS 보다 더 친숙한 것도 아닙니다. 오히려 엔티티 간의 관계 설정이 불가능 하다는 점에서 단점이 더 부각될 수 있을 것 같습니다.
그렇다면 남은 문제는 효율성에 대한 부분인데, 분명 Prevayler 같이 파일시스템을 백엔드로 하는 경우 RDBMS보다 훨씬 빠른 속도를 낼 수 있습니다. 반면 대용량 처리나 분산환경에서 사용이 어려운 점 등은 단점이 될 수 있습니다.
이런 점들을 고려하면 결국 적절한 문제에 적절한 도구를 고르라는 원칙으로 귀결될 수밖에 없는 문제가 아닌가 생각합니다.
개인적으로 일반적인 RDBMS 기반 시스템 보다는 기존의 메모리 기반이나 임베드해서 쓰는 RDBMS와 연동하는 프로그램들에서 상당히 유용하게 쓸 수 있는 프로그램인 것 같습니다.
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
저도 비슷한 생각입니다.
RDBMS가 원래의 목적으로 잘 사용되고 있는 부분에 대해서 까지는 대체가
일어날 것으로 생각되진 않습니다. 그러나 많은 경우 현재 RDBMS는 거의
데이터 퍼시스턴시를 위해서 사용되고 있습니다. 이런 경우에 대해서는
아마 기술적인 적응도가 높아지면 대체가 일어날 것으로 보입니다.
분산처리는 제가 보기엔 더 쉬울 것 같습니다. 분산 DB보다는 순수한 분산
객체 시스템을 구성하는 것이 훨씬(!) 쉬우니까요.
Re: 저도 비슷한 생각입니다.
'객체 퍼시스턴스'라면 말씀 드렸듯이 JDO나 Hibernate 같이 RDBMS를 백엔드로 하는 시스템이 낫지 않나 하는 생각입니다. 어차피 프로그래머 입장에서 직접 SQL을 건들지 않는 다면 객체지향 개념에 친화적이라는 점에서는 마찬가지 아닐까 싶어서요.
하긴 분산 객체 시스템이 낫다는 점에서는 동감입니다만 아무래도 이제까지 RDBMS/SQL이 널리 쓰이고 어느 정도 표준화가 된 것에 비해 크로스플랫폼/언어독립적 분산 객체 시스템이 그 정도의 수준에 도달하려면 갈길이 먼 것 같다는 생각도 듭니다.
그렇다면 어떤 점에서 Prevalyer가 이런 RDBMS 기반 객체 퍼시스턴스 프레임워크보다 나은 점이 있을까요?
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...