새로운 글
새로운 덧글

다중 클라이언트를 위한 DataSnap 서버 만들기

델파이 XE2의 DataSnap 기능은 이전버전인 Midas에 비하여 월등히 강력하고 사용하기 쉽게 변경 되었습니다. DataSnap 기능을 활용하여 다중 클라이언트( Windows, OSX, iPhone, Android) 환경에서 접근 가능한 애플리케이션 서버와 클라이언트 프로그램의 개발을 통하여 DataSnap을 활용하는 방법을 배워 봅니다.

DataSnap 서버는 델파이 XE2의 위저드 기능을 이용하여 생성 합니다. 메뉴에서 File – New – Other를 선택하여 왼쪽 트리에서 DataSnap Server를 선택하면 아래의 그림과 같은 DataSnap Server를 선택할 수 있는 화면이 나타납니다.

두번째 아이콘인 DataSnap Server 를 선택하고 OK 버튼을 누르면 아래와 같이 프로그램 실행 방법을 선택하는 화면을 볼 수 있습니다. 서버의 경우 Service Application으로 만들어 줄 수도 있습니다만 여기서는 화면이 보이는 VCL Forms Application 을 선택합니다.

Next 버튼을 누르면 서버의 기능을 선택하는 화면을 불 수 있습니다. 델파이 클라이언트만을 위해서는 TCP/IP 만 선택해도 되지만 여기서는 아이폰등 다중 클라이언트 환경을 위한 REST protocol을 지원하기 위하여 HTTP도 함께 선택 합니다. HTTPS환경을 구축하고자 한다면 HTTPS를 동시에 선택 할 수도 있습니다. 사용자 확인이 필요한 경우 Authorization 옵션을 선택 할 수도 있습니다. Server Methods Class는 필히 선택 해야 합니다. 여기서 생성한 메소드를 클라이언트에서 호출하게 됩니다.

다음을 누르면 아래와 같이 포트를 선택할 수 있는 다이얼로그가 나옵니다. 테스트포트 버튼을 눌러 포트 사용 여부를 확인하고 다음을 선택합니다.

서버 메소드의 조상 클래스를 선택하는 화면에서는 TDSServerModule을 선택하여 줍니다.

Finish 버튼을 누르면 아래 그림과 같은 프로젝트를 생성해 줍니다. 각각 생성된 이름대로 저장합니다. ServerContainer1 유닛을 살펴보면 아래의 그림과 같은 컴포넌트들이 자동으로 생성되어 있습니다.

DSServer1 – DataSnap 메인 서버

DSServerClass1 – DataSnap 서버에서 클라이언트에 중계 하고자 하는 메소드를 연결하기 위한 클래스 컴포넌트

DSTCPServerTransport1 – TCI/IP 프로토콜 전송을 위한 통신 컴포넌트 – 델파이 클라이언트용

DSHTTPService1 – HTTP 프로토콜 전송을 위한 통신 컴포넌트 – 아이폰 혹은 REST 클라이언트를 위한 통신 컴포넌트

ServerContainerUnit1 유닛에는 아래의 그림과 같이 클라이언트에서 메소드를 호출했을 때 ServerMethodsUnit1으로 연결 해주는 코드가 위저드에 의해 이미 작성되어 있습니다.

이제 데이터베이스와 연결하기 위하여 ServerMethodsUnit1에 TSqlConnection, TSQLDataset, TDatasetProvider를 각각 화면에 올려 놓고 데이터베이스와 연결합니다.

SQLConnection1 Setting

SQLDataSet1 Setting

컴포넌트 셋팅과 데이터베이스 연결을 확인하면 클라이언트에서 호출할 메소드를 만들어 봅니다. 실습에서 사용할 메소드는 GetRecordCount, GetRecords, GetRecord 이름으로 세개의 메소드를 아래와 같이 선언합니다. 메소드 선언시에 주의할 점은 컴파일러 지시자 {$METHODINFO ON} 과 {$METHODINFO OFF} 의 사이에 선언한다는 점입니다. 워저드를 이용하여 생성한 코드는 자동으로 이 컴파일러 지시자를 생성해 주지만 사용자가 직접 만들 때에는 이것을 사용자가 입력해 주어야만 합니다. 이 지시자는 델파이 클라이언트를 만들 때 자동으로 클라이언트 코드를 생성하도록 도와줍니다.

생성한 메소드의 세부 코드는 다음과 같습니다.

여기까지 하면 다중 클라이언트를 위한 DataSnap 서버 프로그램 만들기가 완료 됩니다. 완료된 프로그램을 서버 컴퓨터에 실행 시켜두고 클라이언트 프로그램을 만들어 보겠습니다.

번호 제목 글쓴이 날짜 조회 수
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 232
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 4147
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 820
공지 [프로그래밍 강의] 2018.10 ~ 2018.12 관리자 2015.01.22 6800
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 관리자 2015.06.30 11935
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2018년 09월 업데이트 됨) 험프리 2014.01.16 149036
892 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 152002
891 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 70912
890 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 53877
889 CD-ROM 열고 닫기 박병일 2011.12.22 44544
888 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32219
887 이 달의 기술자료 - 2014년 6월 file 험프리 2014.06.05 29857
886 RAD Studio XE6 Update1 발표 [1] Humphery 2014.06.20 29210
885 최신버전에서 ComPort(시리얼 통신) 컴포넌트 설치안내 [10] file 험프리 2013.12.04 21330
884 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 19435
883 델파이 XE2에서 dbExpress를 이용해 오라클 연결하기 file 박병일 2012.02.15 17265
882 SendMessage 함수를 이용한 메세지 전송 관리자 2012.01.05 16474
881 이 달의 기술자료 - 2014년 4월 file 험프리 2014.04.03 16280
880 이 달의 기술자료 - 2015년 03월 험프리 2015.02.25 15607
879 델파이 XE2 로 아이폰 하드웨어 컨트롤 하기 박병일 2012.01.19 15172
» 다중 클라이언트를 위한 DataSnap 서버 만들기 관리자 2011.12.22 15039
877 이 달의 기술자료 - 2015년 02월 file 험프리 2015.01.29 14789
876 델파이XE2의 VCL Styles 활용하기 박병일 2012.01.19 14385
875 파이어몽키 기반의 아이폰앱 개발에서 주소록 가져오기 박병일 2012.01.25 13774
874 델파이 XE2로 만든 아이폰 앱 - TicTacToe file 박병일 2012.01.17 13708


광고 모듈이 설치되어 있지 않아 실행을 중단합니다..