31장: 커넥터 및 API
목차
- 31.1 MySQL Connector/C++
- 31.2 MySQL Connector/J
- 31.3 MySQL Connector/NET
- 31.4 MySQL Connector/ODBC
- 31.5 MySQL Connector/Python
- 31.6 MySQL Connector/Node.js
- 31.7 MySQL Connector/C API
- 31.8 MySQL Connector/PHP API
- 31.9 MySQL Connector/Perl API
- 31.10 MySQL Connector/Python API
- 31.11 MySQL Connector/Ruby APIs
31.11.1 MySQL과 Ruby를 위한 API
- MySQL과 Ruby를 위한 API: 이 링크에서는 MySQL 8.4 버전에서 Ruby를 위한 응용 프로그램 프로그래밍 인터페이스에 대한 자세한 내용을 확인할 수 있습니다.
31.11.2 Ruby/MySQL API
MySQL 커넥터는 클라이언트 애플리케이션이 MySQL 서버에 연결할 수 있도록 해줍니다. API는 전통적인 MySQL 프로토콜 또는 X 프로토콜을 사용하여 MySQL 리소스에 대한 저수준 접근을 제공합니다. Connectors와 API 모두 ODBC, Java (JDBC), C++, Python, Node.js, PHP, Perl, Ruby 및 C를 포함한 다른 언어 또는 환경에서 MySQL 데이터베이스를 연결하고 실행할 수 있도록 해줍니다.
MySQL Connectors
Oracle은 여러 가지 커넥터를 개발합니다:
-
Connector/C++
Connector/C++는 C++ 애플리케이션이 MySQL에 연결할 수 있게 해줍니다. -
Connector/J
Connector/J는 표준 Java Database Connectivity (JDBC) API를 사용하여 Java 애플리케이션에서 MySQL에 연결할 수 있도록 드라이버 지원을 제공합니다. -
Connector/NET
Connector/NET은 개발자가 MySQL에 연결하는 .NET 애플리케이션을 만들 수 있게 해줍니다. Connector/NET은 완전한 ADO.NET 인터페이스를 구현하며 ADO.NET 인식 도구와 함께 사용할 수 있도록 지원합니다. Connector/NET을 사용하는 애플리케이션은 지원되는 모든 .NET 언어로 작성할 수 있습니다. -
Connector/ODBC
Connector/ODBC는 Open Database Connectivity (ODBC) API를 사용하여 MySQL에 연결할 수 있도록 드라이버 지원을 제공합니다. Windows, Unix 및 macOS 플랫폼에서 ODBC 연결을 지원합니다. -
Connector/Python
Connector/Python은 Python DB API version 2.0을 준수하는 API를 사용하여 Python 애플리케이션에서 MySQL에 연결할 수 있도록 드라이버 지원을 제공합니다. 추가적인 Python 모듈이나 MySQL 클라이언트 라이브러리는 필요하지 않습니다. Connector/Node.js는 X Protocol을 사용하여 Node.js 애플리케이션에서 MySQL에 연결하기 위한 비동기 API를 제공합니다. Connector/Node.js는 데이터베이스 세션 및 스키마 관리, MySQL Document Store 컬렉션 관련 작업, 원시 SQL 문 사용을 지원합니다.
MySQL C API
C 애플리케이션에서 MySQL을 직접 사용하는 방법으로, C API는 libmysqlclient 클라이언트 라이브러리를 통해 MySQL 클라이언트/서버 프로토콜에 대한 저수준 접근 방식 제공합니다. 이는 MySQL 서버 인스턴스에 연결하는 데 사용되는 주요한 방법입니다. MySQL 명령줄 클라이언트와 여기서 자세히 설명하는 많은 MySQL Connector 및 서드파티 API에서 사용됩니다.
libmysqlclient는 MySQL 배포판에 포함되어 있습니다. MySQL C API 구현도 참조하시기 바랍니다.
C 애플리케이션에서 MySQL에 접근하거나 이 장에서 다루는 Connector 또는 API가 지원하지 않는 언어에 대한 MySQL 인터페이스를 구축하려면, C API에서 시작해야 합니다. 프로세스를 돕기 위한 여러 프로그래머 유틸리티가 제공됩니다. 섹션 6.7, “프로그램 개발 유틸리티”를 참조하시기 바랍니다.
서드파티 MySQL API
이 장에서는 특정 애플리케이션 언어에서 MySQL에 대한 인터페이스를 제공하는 나머지 API를 설명합니다. 이러한 서드파티 솔루션은 Oracle에서 개발하거나 지원하지 않습니다. 이들의 사용법과 기능에 대한 기본 정보는 참고용으로 제공됩니다.
모든 서드파티 언어 API는 libmysqlclient를 사용하거나 네이티브 드라이버를 구현하는 두 가지 방법 중 하나로 개발됩니다. 두 솔루션은 각각 다른 이점을 제공합니다: libmysqlclient를 사용하면 MySQL과 완벽한 호환성을 제공합니다. 이는 MySQL 클라이언트 애플리케이션과 동일한 라이브러리를 사용하기 때문입니다. 하지만 기능 세트는 libmysqlclient를 통해 노출된 구현 및 인터페이스로 제한되며, 데이터가 네이티브 언어와 MySQL API 구성 요소 간에 복사되기 때문에 성능이 저하될 수 있습니다.
네이티브 드라이버는 호스트 언어 또는 환경 내에서 MySQL 네트워크 프로토콜을 완전히 구현합니다. 네이티브 드라이버는 구성 요소 간의 데이터 복사가 적기 때문에 빠르며, 표준 MySQL API를 통해 제공되지 않는 고급 기능을 제공할 수 있습니다. 또한, 네이티브 드라이버는 MySQL 클라이언트 라이브러리의 복사본이 필요하지 않으므로 최종 사용자가 빌드하고 배포하기가 더 쉽습니다.
표 31.1, “MySQL APIs 및 인터페이스”에서는 MySQL에 사용할 수 있는 많은 라이브러리와 인터페이스를 나열합니다.
환경 | API | 유형 | 비고 |
---|---|---|---|
Ada | GNU Ada MySQL Bindings | libmysqlclient | MySQL Bindings for GNU Ada를 참조하십시오. |
C | C API | libmysqlclient | MySQL 8.4 C API Developer Guide를 참조하십시오. |
C++ | Connector/C++ | libmysqlclient | MySQL Connector/C++ 9.1 Developer Guide를 참조하십시오. |
MySQL++ | libmysqlclient | MySQL++ 웹사이트를 참조하십시오. | |
MySQL wrapped | libmysqlclient | MySQL wrapped를 참조하십시오. | |
Cocoa | MySQL-Cocoa | libmysqlclient | Objective-C Cocoa 환경과 호환됩니다. http://mysql-cocoa.sourceforge.net/를 참조하십시오. |
D | MySQL for D | ||
언어 | 드라이버/라이브러리 | 유형 | 문서 링크 |
------------------- | ---------------------------------- | --------------- | ------------------------------------------------------------------------------------------ |
D | libmysqlclient | MySQL for D | |
Eiffel | Eiffel MySQL | libmysqlclient | 섹션 31.13, “MySQL Eiffel Wrapper” |
Erlang | erlang-mysql-driver | libmysqlclient | erlang-mysql-driver. |
Haskell | Haskell MySQL Bindings | Native Driver | Brian O'Sullivan의 순수 Haskell MySQL 바인딩 |
hsql-mysql | libmysqlclient | Haskell용 MySQL 드라이버 | |
Java/JDBC | Connector/J | Native Driver | MySQL Connector/J 개발자 가이드 |
Kaya | MyDB | libmysqlclient | MyDB |
Lua | LuaSQL | libmysqlclient | LuaSQL |
.NET/Mono | Connector/NET | Native Driver | MySQL Connector/NET 개발자 가이드 |
Objective Caml | Objective Caml MySQL Bindings | libmysqlclient | Objective Caml용 MySQL 바인딩 |
Octave | GNU Octave용 데이터베이스 바인딩 | libmysqlclient | GNU Octave용 데이터베이스 바인딩 |
ODBC | Connector/ODBC | libmysqlclient | MySQL Connector/ODBC 개발자 가이드 |
Perl | DBI/DBD::mysql | libmysqlclient | 섹션 31.9, “MySQL Perl API” |
Net::MySQL | 정보 없음 |
MySQL 네이티브 드라이버
Net::MySQL CPAN에서 Net::MySQL을 확인해 보세요.
PHP 드라이버
-
mysql, ext/mysql 인터페이스 (더 이상 사용되지 않음)
libmysqlclient
MySQL과 PHP에 대한 문서를 참조하세요. -
mysqli, ext/mysqli 인터페이스
libmysqlclient
MySQL과 PHP에 대한 문서를 참조하세요. -
PDO_MYSQL
libmysqlclient
MySQL과 PHP에 대한 문서를 참조하세요. -
PDO mysqlnd
MySQL 네이티브 드라이버
Python 드라이버
-
Connector/Python
MySQL 네이티브 드라이버
MySQL Connector/Python에 대한 개발자 가이드를 참조하세요. -
Connector/Python C 확장
libmysqlclient
MySQL Connector/Python에 대한 개발자 가이드를 참조하세요. -
MySQLdb
libmysqlclient
섹션 31.10: “MySQL Python API” 섹션 31.10: “MySQL Python API”를 참조하세요.
Ruby 드라이버
- mysql2
libmysqlclient
libmysqlclient를 사용합니다. 섹션 31.11: “MySQL Ruby APIs” 섹션 31.11: “MySQL Ruby APIs”를 참조하세요.
Scheme 드라이버
- Myscsh
libmysqlclient
Myscsh에서 확인하세요.
SPL 드라이버
- sql_mysql
libmysqlclient
SPL을 위한 sql_mysql에서 확인하세요.
Tcl 드라이버
- MySQLtcl
libmysqlclient
섹션 31.12: “MySQL Tcl API” 섹션 31.12: “MySQL Tcl API”를 참조하세요.