윈도우 애플리케이션 개발할 때 델파이, 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 22581
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 21023
공지 [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 182299
1363 [TCoffeeAndCode 세미나] 보안, 인공지능, 데브옵스 등 관리자 2021.04.21 402
1362 보안을 주제로 한 가장 훌륭한 컨텐츠 TOP 4 관리자 2021.04.20 466
1361 윈도우 & 리눅스에 RAD서버 손쉽게 배포하기 관리자 2021.04.12 569
1360 플루언트 디자인 시스템으로 애플리케이션 현대화하기 관리자 2021.04.08 429
1359 C++에서 루프(FOR LOOPS) 활용하기 관리자 2021.04.06 461
1358 MODERNLISTVIEW 라이브러리 – 커스터마이징 가능한 강력한 크로스 플랫폼 라이브러리 활용 방법 관리자 2021.04.06 436
1357 파스칼(PASCAL) 언어 50년과 델파이(DELPHI) 관리자 2021.03.31 1388
1356 이 달의 기술자료 - 2021년 04월 험프리 2021.03.25 630
1355 모바일 앱 개발, 가장 좋은 선택은? 관리자 2021.03.18 676
1354 [10.4 시드니][업데이트 2] TNUMBERBOX – 새로운 VCL 컨트롤 관리자 2021.03.08 586
» 가장 강력한 ‘데이터베이스 연동’ 기능을 자체적으로 제공하는 프레임워크는? (델파이 VS. WPF VS. ELECTRON) 관리자 2021.03.04 784
1352 [UX Summit 요약] 윈도우10에 멋진 플루언트UI 룩앤필을 델파이로 구현하기 #2 (Giving your Apps the Fluent UI Look and Feel with Delphi #2) 관리자 2021.03.02 764
1351 [10.4 시드니][업데이트 2] TCONTROLLIST – 새로운 VCL 컨트롤 관리자 2021.03.02 521
1350 네이티브로 IOS 월렛 개발하기 (델파이, C++빌더) 관리자 2021.03.02 564
1349 [10.4 시드니][업데이트 2] RAD스튜디오 10.4.2 자동 설치(SILENT INSTALLER) 관리자 2021.03.02 613
1348 이 달의 기술자료 - 2021년 03월 험프리 2021.02.26 477
1347 [10.4 시드니][업데이트 2] What's NEW! 신기능 자세히 보기 관리자 2021.02.26 613
1346 [고객 사례- 델파이, 교육] 교육용 프로그래밍 도구 – DEVFLOWCHARTER 관리자 2021.02.19 605
1345 TCOFFEE & CODE WEEK 관리자 2021.02.19 408
1344 26년, 델파이 이야기 관리자 2021.02.17 2360