Spirng data 팀은 Nosql 은 관계형 에서 표현 할 수 있는 것들이 없고 그들 만의 특징이 있기 때문에 JPA(관계형 DB 를 객체와 매핑해 주는 인터페이스) 를 적용 해서는 안된 다고 본다.
Hibernate 팀은 Nosql 도 JPA 인터페이스로 추상화 할 수 있다고 본다. 이미 많은 JAVA 개발자 들이 JPA 에 익숙 해 져 있고, 그 추상화된 레벨에 맞게 개발 하려고 노력 중이라고 한다. 하지만 위에 Spring data 개발자의 말의 어려움이 있다고 이야기 한다.
개인 적으로는 Spring data 팀이 맞는 것 같다. 어플리케이션이 DB 에 의존 되지 않게 잘 추상화 해야 한다고 생각하지만, MongoDB 와 기존의 관계형 데이터베이스는 목적도 성향도 너무 다르다. DB 라는 카테리고리가 같다고 JPA 인터페이스에 맞추는 것은 무리 인것 같다. 그러기에는 JPA 가 더 추상화 가 되어야 할 것 같다.
하지만 Hibernate 팀이 정말 멋있는 것 같다. 프로그래밍의 꽃은 개인적으로 추상화에 있다고 본다. MongoDB 에 있는 여러 개념은 JPA 인터페이스로 추상화 하려면 정말 많은 고민이 필요하도, 현재 추상화 된 인터페이스의 의심도 당연히 필요 할 거라고 본다. 그렇게 발전하다보다 더욱 추상화 된 인터페이스가 나오지 않을까 싶다.
현재 프로젝트를 진행 하는데 MongoDB를 사용 하고 있는데, spring data 에 mongodb 를 사용중 JPA 구현체인 Hibernate와 다른 점이 있는 것 같아 검색중 Spring data MongoDB 와 Hiberante 의 OGM 의 차이점을 발견 했다.
개인 적으로는 Spring data 팀이 맞는 것 같다. 어플리케이션이 DB 에 의존 되지 않게 잘 추상화 해야 한다고 생각하지만, MongoDB 와 기존의 관계형 데이터베이스는 목적도 성향도 너무 다르다. DB 라는 카테리고리가 같다고 JPA 인터페이스에 맞추는 것은 무리 인것 같다. 그러기에는 JPA 가 더 추상화 가 되어야 할 것 같다.
하지만 Hibernate 팀이 정말 멋있는 것 같다. 프로그래밍의 꽃은 개인적으로 추상화에 있다고 본다. MongoDB 에 있는 여러 개념은 JPA 인터페이스로 추상화 하려면 정말 많은 고민이 필요하도, 현재 추상화 된 인터페이스의 의심도 당연히 필요 할 거라고 본다. 그렇게 발전하다보다 더욱 추상화 된 인터페이스가 나오지 않을까 싶다.