일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 쿼리
- 어노테이션
- SQL
- 서버
- 시큐리티
- Static
- restAPI
- 자바
- RDBMS
- Swagger
- 의존성주입
- API
- application.yml
- 오버라이딩
- SpringSecurity
- 스프링시큐리티
- HTTP
- spring
- Java
- MariaDB
- 스프링RESTAPI
- 상태코드
- JPA
- HTTP상태코드
- JWT
- 스프링
- 인텔리제이오류
- server
- 스프링오류
- 스웨거
- Today
- Total
취뽀몽
[CS] JDBC vs ODBC 본문
JDBC와 ODBC는 각각 Java와 Windows 환경에서 데이터베이스 연결을 위해 사용되는 API 이다.
두 기술은 유사한 목적을 가지고 있지만 동작 방식, 플랫폼 의존성, 성능 등의 측면에서 차이가 있다.
오늘은 두 기술의 차이점에 대해 알아보도록 하자.
1. 정의
- JDBC (Java Database Connectivity)
Java 애플리케이션에서 데이터베이스와 연결하기 위한 표준 API로, Java 언어와 함께 사용되며 데이터베이스 독립성을 제공한다.
또한 Java 플랫폼의 일부로, 플랫폼에 독립적인 데이터베이스 연결을 지원한다.
- ODBC (Open Database Connectivity)
Microsoft에서 개발한 표준 API로, 주로 Windows 기반 애플리케이션에서 사용된다.
데이터베이스 연결을 위해 운영 체제의 ODBC 드라이버를 활용하며, 플랫폼에 의존적이다.
주로 C, C++ 같은 언어로 개발된 애플리케이션에서 사용된다.
2. 플랫폼 의존성
- JDBC (Java Database Connectivity)
Java 기반으로 작성되었기 때문에 JVM만 설치되어 있으면 어디서 작동하는 독립적 성격을 가진다.
- ODBC (Open Database Connectivity)
Windows 운영 체제에 의존적이며, 다른 플랫폼에서는 호환성 문제가 있을 수 있다.
다양한 언어를 지원하지만, 특정 플랫폼에서만 안정적으로 동작하는 경우가 많다.
3. 드라이버 모델
- JDBC (Java Database Connectivity)
JDBC는 네 가지 드라이버 유형을 제공한다.
- JDBC-ODBC 브리지 드라이버 : JDBC 호출을 ODBC 호출로 변환 (현재는 거의 사용되지 않음)
- 네이티브 API 드라이버 : 데이터베이스의 네이티브 API 호출을 사용
- 네트워크 프로토콜 드라이버 : 미들웨어 서버를 통해 데이터베이스에 연결
- 순수 Java 드라이버 : 100% Java로 작성된 드라이버 (가장 권장됨)
- ODBC (Open Database Connectivity)
ODBC 드라이버는 데이터베이스와 연결하기 위해 데이터 소스 이름을 사용한다.
시스템, 사용자 또는 파일 기반의 DSN 설정이 필요하다.
4. 성능
- JDBC (Java Database Connectivity)
순수 Java 드라이버를 사용할 경우 성능이 뛰어나며, 네이티브 API와 미들웨어 없이 데이터베이스와 직접 통신한다.
- ODBC (Open Database Connectivity)
네이티브 코드로 작성되었기 때문에 Windows 환경에서는 빠르고 효율적이다.
그러나 DSN 설정 및 드라이버 관리로 인해 추가적인 오버헤드가 발생할 수 있다.
5. 설정 및 사용
- JDBC (Java Database Connectivity)
데이터베이스 연결을 위해 JDBC URL, 사용자 이름, 비밀번호만 필요하다.
설정이 간단하며 Java 프로그램 내에서 직접 연결 설정이 가능하다.
- ODBC (Open Database Connectivity)
ODBC 드라이버 매니저에서 데이터 소스를 설정해야 하며, 애플리케이션이 이 DSN을 사용한다.
설정 과정이 복잡할 수 있으며, 운영 체제에 따라 차이가 있다.
6. 호환성
- JDBC (Java Database Connectivity)
대부분의 데이터베이스와 호환되며, 데이터베이스별로 적합한 JDBC 드라이버를 사용해야 한다.
- ODBC (Open Database Connectivity)
ODBC 드라이버가 제공되는 모든 데이터베이스와 호환되지만, ODBC 드라이버가 특정 플랫폼에 종속될 수 있다.
7. 정리
특징 | JDBC | ODBC |
플랫폼 | 플랫폼 독립적 | Windows에 의존적 |
성능 | 순수 Java 드라이버로 빠름 | Windows에서는 높은 성능 |
설정 | 간단 | DSN 설정 필요 |
사용 언어 | Java | C, C++, .NET 등 다양한 언어 사용 |
보안 | Java 보안 기능 활용 가능 | Windows 보안 모델 의존 |
나는 Java 기반 프로젝트를 진행하여 JDBC를 사용하는 것이 권장되고, 이게 편하지만...
Java가 아닌 다른 언어를 사용할 경우 ODBC가 적합할 수 있다.
요즘은 대부분 JDBC가 선호된다고 하지만, ODBC는 최근에 처음 들어봤어서 정리할 겸 작성해봤다.
ODBC를 써볼 일은 없을 것 같지만.. JDBC에 대해서도 많이 알아가는 것 같아 뿌듯했다!
'CS' 카테고리의 다른 글
[CS] 서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR) (0) | 2024.11.26 |
---|---|
[CS] 스크립트 언어(Script Language)와 컴파일 언어(Compile Language) (0) | 2023.09.10 |
[CS] RESTful API (0) | 2023.06.08 |