델파이 XE2의 DataSnap 기능은 이전버전인 Midas와 DataSnap에 비하여 월등히 강력하고 사용하기 쉽게 변경 되었습니다. 또한 XE2에서 새로 지원하기 시작한 Mac OSX에 대한 지원도 매우 훌륭한 기능입니다. 이 셈플 프로그램에서는 OSX용 DataSnap 클라이언트를 만들어 봄으로 델파이 XE2의 DataSnap 기능과 OSX Client 에서 서버와 DataSnap을 이용한 데이터 통신 기능을 배워 보도록 하겠습니다.

  • 서버만들기

메뉴에서 [File] – [New] – [VCL forms Application – Delphi] 를 선택해서 새 애플리케이션을 만들고 각각 저장합니다. 생성된 Form1의 화면 위에 위의 그림과 같이 TDSServer, TDSServerClass, TDSTCPServerTransport 컴포넌트를 한 개씩 올려 놓는다.

TDSServerClass 의 프로퍼티 중 Server 항목을 DSServer1으로 선택합니다

TDSTCPServerTransport 의 프로퍼티 중 Server 항목을 DSServer1으로 선택합니다.

클라이언트에서 호출하기 위한 클래스를 생성하기 위해 새로운 유니트를 하나 만듭니다. [File] – [New] – [Unit – Delphi] 메뉴를 선택해서 새로운 유니트를 하나 만들고 아래와 같이 코딩하고 MyClass.pas 로 저장합니다.

DSServerClass1 의 이벤트 탭에서 OnGetClass 이벤트를 더블 클릭해서 메소드를 생성하고 아래와 같이 코딩하고 실행해서 서버를 대기 상태로 만들어 줍니다.

.

  • OSX용 DataSnap Client 만들기

OSX용 DataSnap Client를 만들기 위해 [File] – [New] – [FireMonkey HD Application – Delphi] 를 선택해서 새 프로젝트를 생성합니다. 생성된 새 화면위에 아래와 같이 화면을 디자인합니다.

TSQLConnection – 1개, TEdit – 3개, TButton – 1개를 화면에 배치하고 TSSQLConnection의 프로퍼티를 다음과 같이 지정합니다.

컴포넌트프로퍼티
SQLConnxctionDriverDataSnap
 Driver – HostnameLocalhost 혹은 아이피
 ConnectionNameDataSnapCONNECTION
 ConnectedTrue

Connected 프로퍼티를 True로 변경하여 연결을 실행 합니다. 만일 연결 오류가 발생한다면 서버의 상태를 확인하거나 아이피, 포트 등을 확인한 후 다시 연결을 시도 합니다.

정상적으로 연결 되었다면 TSSQLConnection을 선택한 후 오른쪽 버튼을 눌러서 아래의 그림과 같은 메뉴를 호출해서 [Generate Datasnap Client Classes]를 선택해서 클래스를 자동으로 생성합니다. 정상적으로 연결이 되어 있다면 Unit2.pas가 생성되고 Client Classes 들이 생성됩니다.

버튼 클릭 이벤트에 아래와 같이 코딩합니다.

코딩을 마치고 먼저 Win32 환경에서 실행 하면 아래와 같은 실행 결과를 얻을 수 있습니다.

Add Platform (델파이 XE2에서 맥애플리케이션 만들기 참조) 메뉴에서 OSX 를 추가하고 맥컴퓨터에 실행 시키면 아래의 그림과 같은 맥용 DataSnap Client 를 조회 할 수 있습니다.

본 셈플 프로그램은 간단한 계산식 연동만 테스트 했지만 데이터베이스 테이블 및 다양한 형태의 데이터를 주고 받을 수 있도록 변형이 가능합니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15417
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13960
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16496
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23267
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18921
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39245
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174696
583 (작성 중) 파이어몽키 모바일 개발에 대한 FAQ [1] 험프리 2015.12.01 495
582 이 달의 기술자료 - 2015년 12월 file 험프리 2015.11.27 531
581 [업데이트][10 시애틀] RAD Studio 10 시애틀 서브스크립션 업데이트 1 [3] file 험프리 2015.11.25 1571
580 [발표자료] 20151124 온라인세미나: 델파이 코드 마이그레이션 Step by Step 관리자 2015.11.25 580
579 BPL(패키지)를 이용해 프로그램 모듈화 하기 험프리 2015.11.24 1125
578 [발표자료] 20151119 델파이 소스코드의 재발견 관리자 2015.11.20 619
577 [마이그레이션][팁] 유니코드 검토 대상 분석 도구 다운로드 [1] file 험프리 2015.11.16 1844
576 [마이그레이션][팁] 설치된 컴포넌트 확인 팁 file 험프리 2015.11.12 786
575 [마이그레이션][팁] 배치파일(커맨드 명령어)을 이용해 손쉽게 소스파일 갯수를 파악할 수 있습니다. file 험프리 2015.11.12 2637
574 [안드로이드] 배포파일, 아이콘, 스플래쉬 등이 잘 배포되었는지 확인하기 file 험프리 2015.11.11 1523
573 이 달의 기술자료 - 2015년 11월 file 험프리 2015.10.30 745
572 [발표자료] 20151019 David I 초청 워크샵: 윈도우 애플리케이션 개발자를 위한 DeepDive! 관리자 2015.10.20 589
571 [시애틀] 블루투스 LE를 지원하는 디바이스에서 비콘 광고데이터를 발생할 수 있습니다. file Humphery 2015.10.06 689
570 [시애틀] 모든 종류의 안드로이드 인텐트(Intent)를 처리할 수 있습니다. Humphery 2015.10.06 848
569 [시애틀] BSON(Binary JSON)을 처리하고, JSON 데이터를 스트리밍 모델로 읽고, 쓸수 있습니다. file Humphery 2015.10.05 1718
568 [시애틀] IDE 메모리 개선으로 더 큰 프로젝트를 더 빠르게 코딩하고, 더 빠르게 컴파일 할 수 있습니다. 험프리 2015.10.05 442
567 [시애틀] 작업 중 비정상 종료 시 저장하지 않은 작업을 복구할 수 있습니다. file Humphery 2015.10.05 1016
566 [시애틀][VCL] 고해상도 모니터(4K 모니터와)와 멀티 모니터(모니터 당 DPI)를 지원합니다. [1] Humphery 2015.10.05 1303
565 [따라하기] 건강데이터 수집 및 기록 시스템 #1 - BLE 기반 스마트 체중계에서 실시간 데이터 받기 [1] Humphery 2015.10.02 5792
564 [다시보기] RAD Studio 10 시애틀 딥다이브 세션 다시보기(영문) Humphery 2015.10.02 552