자바 데이터베이스 액세스 기술

IT 기술 이 날로 새 로 워 지면 서 신기 술 의 등장 은 눈 을 뗄 수 없 을 정도 로 하루 하루 새로운 명사 가 생 겨 나 는 것 같다.그러나 결국 IT 가 실현 하고 자 하 는 가 치 는 데이터 수집 에 그 치지 않 고 고객 이 원 하 는 형식 으로 고객 에 게 보 여 주 는 것 일 뿐이다.그래서 데이터 액세스 기술 도 영원한 화제 가 되 었 다.자바 라 는 개방 적 인 세계 에서 데이터베이스 액세스 기술 은 다양 하고 종류 가 다양 하 다.우리 도 자바 세계 의 주류 데이터베이스 액세스 기술 을 이야기 합 시다.먼저 영웅 랭 킹 1.JDBC 를 열거 하고 데이터베이스 2.EJB entity bean.3.JDO 기술 을 직접 방문 합 니 다.4.제3자 O/R 도구,예 를 들 어 현재 잘 나 가 는 Hibernate,다른 예 를 들 어 Castor,Toplink.이 역사가 가장 오래된 JDBC 를 먼저 말 해 보 세 요.자바 가 태 어 난 날 부터 이 인형 은 역사의 무대 에 오 르 기 시작 했다.자바 가 오늘 같은 경 치 를 가 질 수 있다 는 것 은 JDBC 가 말 할 수 없 는 일이 라 고 할 수 있다.걸 어 오 면서 지금 은 JDB 3.0 이 되 었 다.JDBC 가 없 을 때 데이터 베 이 스 를 방문 하 는 것 은 팔선 이 바 다 를 건 너 는 것 이 고 각자 신통력 을 나타 내 는 것 이다.각 데이터 베이스 업 체 는 모두 자신의 API 세트 를 가지 고 있어 서 개발 자 들 을 고생 시 켰 다.데이터 베 이 스 를 바 꾸 었 는데,그 프로그램 은 전혀 다른 모습 으로 바 꾸 려 고 한다.JDBC 규범 의 제정 으로 관계 데이터 베 이 스 를 방문 하 는 표준 통용 인터페이스 가 생 겼 음 을 세계 에 알 렸 다.JDBC 표준 은 거의 모든 데이터베이스 업 체 의 지원 을 받 았 습 니 다.이런 데이터 베 이 스 를 찾기 가 정말 어 려 운 것 같 습 니 다.JDBC 지원 이 없 는 것 같 습 니 다.JDBC 규범 이 발표 되자 전례 없 는 성공 을 거 두 었 고 곧 자바 가 데이터 베 이 스 를 방문 하 는 기준 이 되 었 다.JDBC 의 성공 은 통 일 된 표준 인 터 페 이 스 를 규범화 하 는 데 있다.표준 SQL 언어 만 파악 하면 다양한 데이터 베 이 스 를 방문 할 수 있다.이러한 데이터베이스 간 의 이식 성 은 자바 가 줄곧 외 치 는 구호 인 Compile Once,Run everywhere 와 멀리 호응 한다.JDBC 는 오늘 도 자바 가 데이터 베 이 스 를 방문 하 는 초석 이다.CMP,JDO,Hibernate 는 결국 JDBC 를 더 잘 봉 인 했 을 뿐 이 고 더 높 은 인 터 페 이 스 를 제공 할 뿐이다.그리고 JDBC 가 데이터 베 이 스 를 직접 방문 하 는 방식 으로 자바 의 지속 성 을 실현 합 니 다.이런 방식 은 CMP 에 비해 간단 하고 직접적 이 며 특히 소형 응용 에 매우 편리 하 다.예 를 들 어 저 는 간단 한 메모 판 프로그램 을 쓰 려 면 session bean,entity bean 이 필요 없고 home 인터페이스 이자 원 격 인터페이스 이 며 층 층 이 바 뀌 었 죠?JDBC 로 직접 SQL 문 구 를 써 서 끝 냅 니 다.다른 지구 화 기술 에 비해 JDBC 가 데이터 베 이 스 를 직접 방문 하 는 방식 은 프로그래머 가 신경 써 야 할 일이 많 습 니 다.transaction 에 관심 을 가 져 야 합 니 다.연결 풀 에 관심 을 가 져 야 합 니 다.get set 방법 을 많이 써 서 SQL select 에서 나 온 값 을 자바 object 에 하나씩 넣 거나 자바 object 의 값 을 하나씩 꺼 내야 합 니 다.데이터베이스 에 SQL insert 를 사용 하여 O/R mapping 을 완전히 수 동 으로 진행 합 니 다.이러한 단점 을 극복 하기 위해 CMP,JDO 등 이 속속 역사의 무대 에 오 르 기 시작 했다.다음은 EJB 가 등장 한다.EJB 는 Sun J2EE 시스템 의 핵심 부분 으로 Sun 이 밀 어 붙 이 는 기업 급 개발 의 최 우선 순위 이 며,EJB entity 는 현재 도 Sun J2EE 백서 가 가장 추천 하 는 자바 지구 화 기술 이다.Entity Bean 은 EJB 규범 의 일부분 이자 EJB 규범 에서 가장 논란 이 되 는 기술 로 EJB 규범 과 함께 몇 년 의 봄 과 가을 을 보 냈 다.현재 EJB 3.0 규범 초안 이 나 왔 습 니 다.http://jcp.org/en/jsr/detail?id=220。 가정 에서 태 어 난 것 을 보면 EJB 는 근정 묘 홍 이 라 고 할 수 있다.규범 은 JCP 관리 하에 있 고 초호 화 전문가 그룹 구성원,Sun,IBM,Oracle,Borland,Bea,SAP,Jboss,Apache 소프트웨어 펀드 등 을 가진다.그런 점 에서 기업 급 개발 로 뽑 으 면 기술 지원 은 걱정 할 필요 가 없 을 것 이다.물론 IBM,Bea 등에 사업 상담 가격 을 구 하 는 것 도 만만 치 않다.제공 기능 을 보면 EJB entity 는 EJB 1.0,EJB 1.1,EJB 2.0 을 거 쳤 고 기능 도 점점 완벽 해 졌 다.완벽 한 사무 지원,EJBQL 조회 언어,투명 한 분포 식 접근 등 을 포함한다.그러나 헤비급 기술 로 서 엔 티 비 안의 성능 이 만 족 스 럽 지 못 해 논란 의 초점 이 되 고 있다.3.0 이후 이 상황 이 개선 되 지 않 을 지 모르겠다.또 하 나 는 그 기능 이 강하 지만 용이 성에 있어 서 는 칭찬 할 수 없다.가장 간단 한 bean 을 쓰 는 것 도 홈 인터페이스,원 격 인터페이스 가 아니 라 2.0 이후 에 가입 한 로 컬 인 터 페 이 스 를 더 해 야 한다.이렇게 많은 숲 이 쌓 여 자바 초보 자 들 을 뒷걸음질 치 게 할 수 있다.그러나 이 점 은 한동안 EJB 의 기능 이 강하 고 기술 이 깊 은'증좌'가 됐다.몇 년 전에 졸 업 했 을 때 EJB 는 국내 에서 응용 이 적 었 고 회사 에서 도 Why EJB 문 제 를 연구 하 는 사람 이 없 었 습 니 다.어차피 EJB 를 사용 하 는 프로젝트 는 소 프로젝트 였 고 EJB 를 사용 하 는 사람 은 소 사람 이 었 습 니 다.EJB 프로젝트 팀 에 나 눠 진 형제들 은 모두 고 개 를 들 고 가슴 을 펴 고 걸 었 습 니 다.말 하 는 것 이 저 보다 JDBC 에 있 었 습 니 다.SQL 을 사용 하 는 사람들 은 두 가지 목 소 리 를 높 였 습 니 다.EJB 기술 은 현재 기업 급 애플 리 케 이 션 의 대부분 을 차지 하고 있 으 며,첫째 자 리 는 당분간 지 키 기 어렵다.다음 신세대 대표 인 JDO 가 성대하게 등장 한다.JDO 는 절대 초 젊 은 선수 에 속한다.JDO 1.0 도 2002 년 4 월 에 야 발표 되 었 다.2003 년 5 월 에 1.0.1 을 발 표 했 고 현재 최신 2.0 초안 이 발표 되 었 다.이 2.0 을 두 고 강호 에서 벌 어 지 는 논 의 는'피비린내 나 는'양 대 병단,JDO 병단 과 EJB 병단 이 난투 극 을 벌이 고 있다.흥미 가 있 는 사람 은 가서 보아 도 무방 하 다.안에 도 중량급 인물 이 적지 않다.그런 점 에서 EJB 에 게 이렇게 큰 충격 을 줄 수 있다 는 것 은 이 갓 태 어 난 송아지 가 확실히 남 다른 점 이 있다 는 것 을 설명 할 수 있다.JDO 의 탄생 은 자바 데이터 의 지속 성에 많은 새로운 특성 을 가 져 왔 습 니 다.특히 EJB 가 OO 프로 그래 밍 에 대한 선천적으로 부족 한 점 을 보완 하고 JDO 는 완전한 OO 지원,계승,다 형 을 제공 합 니 다.JDO 와 EJB 는 경량급 공구 에 속 해 용기 지원 이 필요 없다.EJB 답지 않 게 너 를 쓰 려 면 꼭 Weblogic,webSphere 같은 것 을 해 야 한다.JDO 의 간단 하고 사용 하기 쉬 운 것 은 사람들 에 게 가장 칭찬 을 받 는 것 입 니 다.쓸모없는 인 터 페 이 스 를 많이 쓸 필요 가 없습니다.특별한 종 류 를 계승 할 필요 가 없습니다.유일 하 게 해 야 할 일 은 class 파일 에 enhance 를 하 는 것 입 니 다.JDO 를 사 용 했 습 니 다.우리 의 자바 프로그램 은 이제 진정한 OO 라 고 할 수 있 습 니 다.우 리 는 데이터베이스 에 어떤 표 가 있 는 지 더 이상 신경 쓸 필요 가 없습니다.액세스 가 자바 object 를 대상 으로 하고 모든 데이터베이스 표 는 자동 으로 생 성 됩 니 다.이 점 은 혁명 이 라 고 할 수 있다.그 전에 프로젝트 디자인 단계 에서 Database Schema 디자인 은 중요 한 장면 이 라 고 할 수 있다.이 제 는 JDO 로 개발 해 데이터베이스 디자인 이 전혀 필요 없다.그럼 Database Schema 는 요?바로 당신 의 Class 입 니 다.JDO 는 당신 의 Class 에 따라 해당 하 는 데이터베이스 표를 자동 으로 생 성 합 니 다.한 글자,시원 하 다!데이터 베 이 스 를 이식 할 수 있 는 것 을 보면 JDO 도 장점 이 뚜렷 하 다.내 가 사용 한 Kodo 와 Genie 를 보면 몇 개의 간단 한 응용 프로그램 이 데이터 베 이 스 를 바 꿀 때 JDBC driver 를 바 꾸 는 것 을 제외 하고 데이터 베이스 URL 을 바 꾸 면 프로그램 에 대해 어떠한 변경 도 할 필요 가 없다.이 점 은 EJB 에 게 또 열세 다.가족 출신 으로 도 JDO 는 출생 명문 가로,처음부터 JCP 관리 하에 있 었 다.기업 급 지원 을 보면 세 션 비 안과 협동 작업 을 잘 할 수 있 고 기업 급 개발 에 있어 세 션 비 안+JDO 의 방식 은 세 션 비 안+엔 터 티 방식 의 강력 한 경쟁 상대 이다.이렇게 많은 장점 이 있 지만 그 발전의 길 도 순탄 하지 않다.아니,올해 5 월 JDO 2.0 의 투표 에서 IBM,Oracle,Bea 3 대 거두 가 동시에 반대 표를 던 졌 다.하지만 조금 만 생각해 보면 JDO 자체 의 기술 에 큰 결함 이 있 는 것 이 아니 라 JDO 가 이들 거물 들 의 치즈 를 움 직 였 다 는 것 을 이해 할 수 있다.Bea,IBM 은 업계 에서 가장 유명한 애플 리 케 이 션 서버,weblogic 와 WebSphere 를 만 들 고 있 습 니 다.EJB 에 밑천 을 던 졌 습 니 다.그들 은 JDO 가 EJB 시장 을 잠식 하 는 것 을 지 켜 볼 수 없습니다.그리고 Oracle 은 아직도 자신의 O/R 도구 인 Toplink 를 팔 고 있 습 니 다.JDO 가 날로 강해 지 는 것 을 지 켜 보고 있 습 니 다.그 가 조급해 하지 않 을 수 있 습 니까?하지만 회사 가 아무리 강해 도 그 는 역사의 수레 바퀴 를 막 을 수 없 었 을 것 이다.결국 JDO 2.0 의 투 표 는 절대적 인 표(12:3)로 통과 되 었 다.또 다른 강호 에 흩 어 져 있 는 자바 지구 화 기술 도 있다.예 를 들 어 하 이 버 네 이 트,캐 스 터,토플 링크 등 이다.그들 은 로 열 혈통 은 없 지만 실력 도 무시 할 수 없다.하 이 버 네 이 트 의 경우 자바 월 드 가 선정 한 2003 년도 최고의 자바 데이터 액세스 도구 로 현재 대 박 이 라 고 할 수 있다.그리고 Castor 와 Toplink 도 역사가 유구 한 편 이다.JDO 가 태 어 나 기 전에 그들 은 강호 에서 섞 여 있 었 다.현재 도 일정한 시장 을 차지 하고 있다.이들 제3자 의 도 구 는 기능 적 으로 JDO 와 유사 하지만 각자 의 API 가 서로 다르다.이것 도 나중에 JDO 규범 의 목소리 가 점점 높 아 지 는 한 원인 이 겠 지.이런 제3자 O/R mapping 도 구 는 강호 에 발 을 붙 일 수 있 고 각자 의 장점 도 있다.예 를 들 어 Hibernate 금 자 간판 은 Open Source 로 거의 세상 에서 볼 수 있 는 대부분의 데이터 베 이 스 를 지원 하고 문서 도 완비 되 어 있 습 니 다.Toplink 는 역사가 유구 하고 Oracle 이라는 큰 나 무 를 랭 킹 하고 있 습 니 다.현재 로 서 는 이 도구 들 도 자바 데이터베이스 액세스 의 적지 않 은 시장 을 차지 하고 있다.개인 적 으로 JDO 의 규범 이 완선 되 지 않 고 JDO 제품 이 보급 되면 서 이 부분 은 앞으로 역사의 무대 에서 점점 물 러 날 것 이 라 고 생각 합 니 다.그러나 하 이 버 네 이 트 의 현재 기세 로 볼 때 아직 이 말 을 하기 에는 이 른 것 같다.이런 기술 우열 에 대한 논쟁 은 태 어 난 날 부터 멈 춘 적 이 없 었 고 각 파 는 상대방 을 설득 한 적 이 없 었 다.우리 응용 개발 자 들 에 게 응용 순 수 를 떠 나 기술 의 우열 을 논쟁 하 는 것 은 큰 의미 가 없다.역시 속담 에 이 르 기 를 가장 좋 은 것 은 없고 가장 적합 한 것 만 있다.우 리 는 개발 을 할 때 자신 에 게 가장 적합 한 기술 을 선택 할 수 있다 면 충분 하 다.전체적으로 보면 JDBC 는 RDBMS 를 대상 으로 관계 데이터 베이스 모델 구동 에 적합 하 다.예 를 들 어 통계 표 데이터,보고서 생 성 등 응용 이다.EJB 기술 은 J2EE 애플 리 케 이 션 서버 를 중심 으로 애플 리 케 이 션 에 유연 하고 설명 가능 한 트 랜 잭 션 경계 가 필요 하 다 면 대 용량 접근 과 끊 임 없 는 서 비 스 를 지원 하고 서버 클 러 스 터 가 필요 하 다 면 EJB 를 선택 하 세 요.JDO 는 대상 을 대상 으로 도 메 인 대상 을 중심 으로 하 는 응용,그림,트 리 모델 을 포함 하 는 응용 에 대해 JDO 가 최 우선 입 니 다.

좋은 웹페이지 즐겨찾기