윈도우 애플리케이션 개발할 때 델파이, WPF .NET 프레임워크, 일렉트론 차이점을 정리한 기술백서, 읽어보셨나요?  윈도우 10 계산기를 만들어보면서 세 프레임워크의 차이점들을 정리한 백서인데요. 총 23개 평가 항목들을 각각 평가했습니다. 이 작업에는 델파이 MVP와 WPF 전문가, 일렉트론 전문가들이 참여했습니다.

이번에는 기술백서의 유연성 비교 부분 중에서 데이터베이스 연동을 정리했습니다. 계산기 자체는 데이터베이스를 사용하지 않기 때문에, 프레임워크 자체적으로 평가를 해보았습니다.

데이터베이스 연동

여러분의 프레임워크에는 데이터베이스 연동을 위한 기본 라이브러리들이 포함되어 있나요? 데이터 지속성은 매우 중요합니다. 또한 사용자 친화적이어야 하며, 모든 우수한 개발 프레임워크와도 통합될 수 있어야 합니다.

델파이의 주요 강점은 WPF와 일렉트론과는 달리, FMX(파이어몽키) 프레임워크를 이용하면 단 하나의 소스 코드만으로 주요 데스크탑, 모바일 플랫폼에 배포 가능한 앱을 개발할 수 있어, 비즈니스 접근성이 매우 극대화할 수 있다는 점입니다. 그러면서도 코드 중복과 유지보수/업그레이드 문제는 최소화할 수 있습니다. 즉, 산업 자동화를 위한 로직 컨트롤러부터 세계적인 규모의 인벤토리 관리에 이르기까지 모든 규모의 프로젝트들을 지원할 수 있는 것입니다. 또한 모든 계층(tier)에 맞게 개발할 수 있는데요. 데이터 집약적인 백엔드부터 GUI 클라이언트 단까지 모두 지원합니다. 결론적으로 델파이의 표준 라이브러리들은 사용 가능한 거의 모든 데이터베이스를 쉽게 연동할 수 있고, 개발자들은 모든 플랫폼에서 운영체제(OS) 기능에 접근할 수 있습니다. 또한 I/O 디바이스들과 하드웨어 센터들도 활용할 수 있죠.

WPF with .NET 프레임워크는 윈도우 컴퓨터들을 직접 지원합니다. 이 프레임워크는 주로 클라이언트 단의 데스크탑 애플리케이션에 맞추어져 있습니다. 하지만 미들티어나 백엔드 기능들은 C#에서 비즈니스 로직을 통합할 수 있고, ADO NET 엔티티 프레임워크로 데이터베이스들을 연동할 수 있습니다. WPF는 .NET 라이브러리들을 활용해 윈도우 운영체제 기능과 I/O 디바이스에 액세스할 수 있습니다. 하지만 네이티브 코드가 아닌 컴파일 후 매니지드 코드입니다.

일렉트론은 오픈 소스 프레임워크로 크로미엄 브라우저를 통해 3대 주요 데스크탑 운영체제들을 지원합니다. 전형적인 웹 기반이지만, 클라이언트 단 애플리케이션에 중점을 두고 있지만 미들티어와 백엔드 서비스에 대해서는 node.js를 사용합니다. 일렉트론은 node.js 프로세스에서 하드웨어 액세스가 가능합니다. node.js 라이브러리들을 이용하면 일부 운영체제 기능들을 활용할 수는 있지만, 모든 운영체제들을 액세스할 수는 없습니다.

각각의 프레임워크들을 자세히 살펴볼까요?

델파이

델파이는 업계 거의 모든 데이터베이스들과 연동 가능한 다양한 데이터베이스 라이브러리들을 제공합니다. 데이터베이스 연동, 쿼리, 데이터 표현까지 연동 가능한 컴포넌트들을 통해 모두 완벽하게 통합됩니다. 델파이와 WPF는 백서에서 비슷한 점수를 받았습니다. 하지만 델파이는 통합 툴체인과 지원 데이터베이스들이 훨씬 더 많습니다.

파이어닥은 범용 데이터 연동 라이브러리로, 엔터프라이즈 급 데이터베이스들과 연동하여 다양한 디바이스에 배포 가능한 앱을 개발할 수 있도록 지원합니다. 강력한 범용 아키텍처를 갖춘 파이어닥은 델파이와 C++빌더에 포함되어 있는데 인터베이스, SQLite, MySQL 서버, 오라클, PostgreSQL, DB2, AQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap은 물론이고 NoSQL 데이터베이스 MongoDB까지 네이티브로 직접 연동할 수 있습니다.

파이어닥은 강력하면서도 사용하기 매우 쉬운 데이터 연동을 지원합니다. 데이터 연동의 지원, 추상화, 간소화는 물론 실제 대용량 애플리케이션 구축에 필요한 모든 기능들을 제공합니다. 파이어닥은 공통 API를 지원해, 각 데이터베이스의 고유한 기능에 대한 액세스는 유지하면서, 서로 다른 데이터베이스 백엔드에 액세스할 수도 있습니다. 파이어닥을 사용해서 안드로이드, iOS, 윈도우, 맥OSX 애플리케이션을 완성해보세요.

RAD스튜디오 파이어닥 데이터베이스가 지원하는 데이터베이스 리스트입니다. 각 버전별로 지원 가능한 최소-최대 버전들이 표시되어 있습니다.

Database FireDAC driver ID Seattle (10.0) Berlin (10.1) Tokyo (10.2) Rio (10.3) Sydney (10.4)
SAP Advantage Database ADS v 8.0 – 10.1 v 8.0- 12.0 v 8.0 – 12.0 v 8.0 – 12.0 v 8.0 – 12.0
SAP SQL Anywhere ASA v 5.0 – 12.0 v 5.0 – 16.0 v 5.0 – 16.0 v 5.0 – 16.0 v 5.0 – 16.0
IBM DB2 Server DB2 v 8.2 – 9.7 v 8.2 – 9.7 v 8.2 – 9.7 v 8.2 – 9.7 v 8.2 – 9.7
Firebird FB v 1.5 – 2.5 v 1.5 – 2.5 v 1.5 – 2.5 v 1.5 – 3.0 v 1.5 – 3.0
InterBase IB v 6.0 – XE7 v 6.0 – XE7 v 6.0 – 2017 v 6.0 – 2017 v 6.0 – 2020
IBM Informix Infx v 8.0 – 11.7 v 8.0 – 11.7 v 8.0 – 12.1 v 8.0 – 12.1 v 8.0 – 12.1
MongoDB Mongo v 3.0 v 3.0 v 3.0 v 3.0 v 3.0
Microsoft Access MSAcc 95 – 2010 95 – 2010 95 – 2015 95 – 2015 95 – 2015
Microsoft SQL Server MSSQL 2000 – 2008 2000 – 2008 2000 – 2016 2000 – 2017 2000 – 2017
MySQL Server MySQL v 3.21 – 5.5 v 3.21 – 5.6 v 3.21 – 5.7 v 3.21 – 6.x v 3.21 – 8.0
MariaDB MySQL n/a n/a v 5.5 – 10.1 v 5.5 – 10.3 v 5.5 – 10.3
Oracle Server Ora v 8.0 – 11.2 v 8.0 – 12.1 v 8.0 – 12.1 v 8.0 – 12.1 v 8.0 – 12.1
PostgreSQL PG v 7.4 – 9.1 v 7.4 – 9.5 v 7.4 – 9.5 v 7.4 – 10.0 v 7.4 – 12.0
PostgreSQL Enterprise Server PG v 9.2 v 9.2 v 9.2 v 9.2 v 9.2
SQLite SQLite v 3.0 – 3.8.7 v 3.0 – 3.9.2 v 3.0 – 3.9.2 v 3.0 – 3.23.1 v 3.0 – 3.31.1
Teradata TData v 13.0 – 15.0 v 13.0 – 15.0 v 13.0 – 15.0 v 13.0 – 15.0 v 13.0 – 15.0
Generic ODBC sources ODBC v 2.0 – 3.0 v 2.0 – 3.8 v 2.0 – 3.8 v 2.0 – 3.8 v 2.0 – 3.8

파이어닥 ODBC Bridge 드라이버를 사용하면 아래와 같은 데이터베이스들을 추가로 연동할 수 있습니다.

Database Version
SAP Adaptive Server Enterprise v 15.0
IBM DB2 AS/400 n/a
QuickBooks v 16.0
InterSystems Cache 2014
Pervasive SQL v 10.0
DBase n/a
Excel n/a
MicroFocus Cobol n/a
Ingres Database n/a
SAP MaxDB n/a
Clarion n/a
SolidDB n/a
Unify SQLBase n/a

델파이와 RAD스튜디오는 파이어닥 외에도 다양한 상용 및 오픈 소스 데이터베이스 연동 솔루션들을 제공할 수 있는 훌륭한 생태계가 이미 구축되어 있습니다. 심지어 델파이와 C++에서 닷넷(.NET) 라이브러리들을 연동할 수도 있죠: ATOZED 소프트웨어의 크로스톡(Cross Talk)과 같은 써드파티 솔루션을 활용한다면요!

WPF .NET 프레임워크

WPF는 ADO .NET Entity 프레임워크를 포함한 C# 코드로 데이터베이스 연결, 쿼리, 엔트리를 사용할 수 있는 데이터베이스 라이브러리들을 활용해 연동할 수 있습니다. 마이크로소프트는 닷넷(.NET) 프레임워크에서 활용 가능한 데이터들을 다음과 같이 안내하고 있습니다 (출처):

  • .NET Framework Data Provider for SQL Server
  • .NET Framework Data Provider for OLE DB
  • .NET Framework Data Provider for ODBC
  • .NET Framework Data Provider for Oracle
  • .NET Framework Data Provider for SQL Server Compact 4.0

WPF .NET 프레임워크는 ODBC 지원으로 데이터베이스 연동 부문에서 높은 점수를 받았습니다. 다른 데이터들은 써드 파티 제품들을 통해서 연동할 수 있습니다. 하지만 각각 다른 데이터베이스 라이브러리가 필요하기 때문에 추적하고 설치하고 또 최신 상태로 유지하기 위해서는그만큼 시간이 많이 소요됩니다.

일렉트론 (Electron)

일렉트론은 기본적으로 네이티브 데이터베이스 연동 라이브러리가 지원하지 않습니다. 데이터베이스 연동에 필요한 모든 기능을 제공하는 단일 패키지가 아닌 것이죠. NodeJS를 사용한다면 데이터베이스를 연동할 수는 있습니다. 다양한 오픈 소스 라이브러리들로 서버 또는 서버가 없는(server less) 데이터베이스들을 사용할 수 있습니다 (JavaScript 구현을 통해서요). 하지만 각 데이터베이스들마다 라이브러리들이 필요하고, 설치하고 최신 상태로 유지하기 위해서는 그만큼 시간이 많이 소요됩니다.

일렉트론에서 NodeJS로 오라클 DB에 연동하는 예제입니다:

https://docs.oracle.com/en/cloud/paas/exadata-express-cloud/csdbp/connect-node-js.html

패키지 매니저를 통해서도 가능합니다:

https://www.npmjs.com/package/mssql

세 가지 프레임워크 모두 대부분의 데이터베이스에 연동할 수 있는 방법은 있습니다. 하지만 델파이와 RAD스튜디오는 가장 많은 데이터베이스를 지원합니다. 또한 데이터베이스 연동 라이브러리들이 델파이에 기본적으로 포함되어 있기 때문에, 타사 라이브러리들을 추적, 유지, 관리하기 위해 시간을 쏟을 필요가 없습니다. WPF .NET 프레임워크는 마이크로소프트의 레거시 프레임워크로 5개 정도의 데이터 공급사들을 활용할 수 있습니다 (ODBC를 통해서 더 많은 데이터베이스들을 연동할 수는 있습니다). 일렉트론은 데이터베이스 연동 컴포넌트들이 기본적으로 제공되지는 않습니다. 하지만 NodeJS를 이용한다면 연동할 수는 있습니다. 시간과 추가적인 노력들이 많이 필요하겠지만요. 전반적으로 델파이는 다른 두 프레임워크보다 더 많은 데이터베이스를 즉시 지원할 수 있는 보다 유연하고 통합된 툴 체인을 제공합니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 22583
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 21024
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 23071
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28870
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 30050
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25393
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46347
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 182308
1397 N 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 152367
1396 ComPort(시리얼 통신) 컴포넌트 설치안내 [11] file 험프리 2013.12.04 112778
1395 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 험프리 2020.08.31 84734
1394 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 71988
1393 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 54176
1392 이 달의 기술자료 - 2014년 6월 file 험프리 2014.06.05 50404
1391 Find the O/S Language Type c2design 2014.07.30 48421
1390 RAD Studio Resource Center 박병일 2012.01.26 46644
1389 CD-ROM 열고 닫기 박병일 2011.12.22 44787
1388 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 38644
1387 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32514
1386 RAD Studio XE6 Update1 발표 [1] Humphery 2014.06.20 29499
1385 델파이XE2 파이어몽키 기반 아이폰앱 개발에서 제스춰를 인식시키는 방법 박병일 2012.01.25 23342
1384 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 23197