Java Data Objects (JDO) VS  


AppEngine 의 Datastore 에서는 데이타 처리를 위한 3 가지 API 를 제공하고 있습니다.

  • 간단하게 사용 가능한 com.google.appengine.api.datastore 에 구현되어 있는 low-level API
  • RDBMS 에 데이타 저장을 위해 사용하는 표준 인터페이스인 Java Persistence API (JPA)
  • 많은 DBMS 에서 사용 가능한 표준 인테페이스인 Java Data Object (JDO)

항상 이렇게 친절하게도 여러개 중에서 마음에 드는 것을 골라쓰게 해주면 처음하는 입장에서는 아주 많이 고민스러워지죠. 뭘 써야하나? 제일 좋은 것만 공부해서 쓰고 싶은데... 다 볼 필요는 없잖아? 근데 뭘 선택해야하지?? 나중에 없어지는 API 가 밠생하지는 않을까??

이런 생각은 선택을 해야하는 입장에서는 다 똑같은가 봅니다. 아래 Stack Overflow 커뮤니티에 보면 이 질문이 올라와 있습니다.


우선  low-level API 는 사용하기는 정말 간단합니다. 하지만 prototype 에 의한 type safe 한 코드를 작성할 수 없고, 표준 인터페이스가 아니기에 향 후 다른 Database 로 이전이 완전히 불가능하게 됩니다. 물론 JDO 또는 JPA 를 선택한다고 해서 있는 그대로 DB 를 이전할 수는 없겠지요. 호환되지 않는 부분에 대해서는 철저한 분석에 의한 이전 계획이 필요할 것입니다. 그러니 결론은 JDO 와 JPA 중에서 하나를 선택해야 하는 것이지요!!

아래는 선택시 참고할 만한 자료입니다.
JDO-JPA FAQ
위의 내용들을 검토하시어 신중을 기해 선택하셔야 겠습니다.

저의 선택을 강요할 수는 없습니다!! ㅡ_ㅡ;; 제가 JDO, JPA, AppEngine 에 대해 많은 경험과 지식을 갖고 있다만 당당히 주장하겠습니다만... 저 또한 두들겨 가며 다리를 건너고 있는 터라 걱정되거든요 ^^ 같이 죽을 수는 없잖아요???
다만 저의 선택을 말씀드릴 수는 있습니다.

이 모든 것을 참고하셔서 선택하시고, 그 결과 또한 여러분의 것 입니다^^

저는 JDO 를 선택 했습니다. 위의 자료를 모두 살펴보니 JDO 로 마음이 기울었고, Google 의 AppEngine 설명 페이지로 돌아오니 각 API 에 대해서 제공하는 가이드라인을 보니 Google 이 더 관심을 갖는 API 가 JDO 라는 것이 느껴졌습니다.
Google 이 설명하는 페이즈의 내용을 보다라도 JDO 에 더 중심을 두고 설명하고 있습니다. 또한 작년에 AppEngine 을 사용하면서 막연하게 JDO 를 사용해 본 경험이 있었는데, 모델링하는데 불편함 없었던 기억이 있습니다. 그래서 이 번 프로젝트에서도 JDO 를 사용하기로 했습니다.

여러분은 어떤 선택을 하시겠습니까????
Posted by 따봉맨