Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

RAD 서버 REST API 개발환경 설정하기


Recommended Posts

RAD 서버에 REST API를 추가할 수 있는 패키지 개발을 하기위해, 개발환경을 설정하고, 프로젝트 생성 후 실행해 개발환경을 확인합니다.

목차


RAD 서버 REST API 개발환경 설정하기

RAD 서버 엔진은 REST API를 서비스할 수 있는 기능이 내장되어 있으며, RAD 서버 패키지를 엔진에 설치해 REST API를 확장해 나갈 수 있다. RAD 서버 패키지는 RAD 스튜디오(델파이, C++빌더)로 개발 할 수 있으며, RAD 스튜디오 설치 시 제공되는 개발용 RAD 서버 엔진으로 패키지를 테스트하고 디버깅할 수 있다.

이 글에서는 RAD 서버 패키지 개발에 필요한 사전 준비사항을 안내하고, 개발환경 설정 과정은 RAD 서버 패키지 프로젝트를 생성 및 실행하며 안내한다.(약 10분정도 소요)

사전 준비사항

개발 가능 에디션 및 라이선스

RAD 서버는 RAD 스튜디오/델파이/C++빌더 엔터프라이즈 및 아키텍트 에디션에서 개발 가능하다.(자세히 보기 : RAD 서버)

InterBase Developer Edition 설치

RAD 서버는 내부 데이터베이스로 InterBase 데이터베이스를 사용한다.

개발 환경에서는 RAD 스튜디오와 함께 제공되는 InterBase Developer Edition을 사용할 수 있다.

설치 여부는 RAD 스튜디오 IDE의 Tools > Manage platforms... > Addtional Options에서 확인 및 설치 가능하다.
image.png

InterBase 2020(버전) Developer Edition이 체크해제 되어있다면 체크 후 [Apply] 버튼을 눌러 추가 설치 한다.
(RAD 스튜디오에서 제공하는 InterBase 버전은 달라질 수 있다.)

인용하기

참고로, 꼭 DBMS를 InterBase를 사용해야 하는가? 질문을 가끔 받는다. InterBase는 RAD 서버 운영을 위해서만 사용된다. 프로젝트 안에서 여러분이 원하는 DBMS와 FireDAC과 같은 데이터 엑세스 컴포넌트를 이용해 데이터를 자유롭게 사용가능하다.

RAD 서버 패키지 프로젝트 생성하기

RAD Server Package 프로젝트 생성

  • 델파이 : File > New > Other | Delphi > RAD Server > RAD Server Package
  • C++빌더 : File > New > Other | C++Builder > RAD Server > RAD Server Package

image.png

"RAD Server Package Wizard"가 표시되어 프로젝트 생성 과정을 안내한다.

RAD Server Package Wizard

패키지 유형 선택

image.png

패키지 유형은 "Create package with resource" 선택하고, [Next >>] 버튼 클릭한다.

  • Create empty package : RAD 서버 엔진에 리소스를 등록하지 않음. 나중에 리소스를 추가할 경우 선택
  • Create package with resource : RAD 서버 엔진의 REST API를 확장할 리소스가 포함된 패키지 생성

리소스 정보 설정

(앞의 Package 단계에서 "Create package with resource" 선택 시 표시된다.)

image.png

리소스 이름에 "hello" 입력, 파일 타입 데이터 모듈로 선택 후, [Next >>] 버튼 클릭한다.

  • 리소스 이름은 URI의 일부로 사용된다.(뒤에서 다시 설명)
  • 데이터 모듈 선택 시 논비주얼 컴포넌트 추가 및 사용 가능하다.

엔드포인트 설정

image.png

Sample EndPoints 전체 선택 후, [Finish] 버튼을 클릭한다.
(Database EndPoints와 API Documentation은 별도의 글에서 설명한다.)

  • Sample EndPoints
    • 선택한 메소드의 엔드포인트 메소드 템플릿 코드가 추가되어 소스파일이 생성된다.
  • Database EndPoints
    • 데이터베이스의 데이터셋을 REST API로 제공해주는 컴포넌트 들이 추가된다.(직접 추가도 가능)
  • API Documentation
    • 스웨거(Swagger) 기반 API 문서를 생성할 수 있는 코드(Attribute)들이 추가된다.

프로젝트 생성 확인

위 과정을 마치면, RAD 서버 패키지 프로젝트(*.bpl)가 생성되고, 유닛파일에는 비지니스 로직을 바로 구현할 수 있는 템플릿 코드가 포함된다.
(선택사항: 모두 저장(File > Save all)한다. 적당한 경로에 Unit 이름은 HelloResource.pas로, 프로젝트 이름은 HelloPackage로 저장한다.)

image.png

이 글에서는 프로젝트와 소스코드에 대한 설명은 줄이고, 개발환경 설정 및 확인에 집중한다.
(프로젝트와 소스코드에 대한 설명은 RAD 서버의 REST API 개발 시 리소스와 엔드포인트 구현 규칙에서 확인할 수 있다.)

RAD 서버 패키지 개발용 RAD 서버로 실행(및 개발 환경 설정)

RAD 서버는 RAD 서버 패키지를 개발도구에서 바로 실행하고 디버깅할 수 있는 개발용 RAD  서버(RAD Development Server)를 제공한다.

개발용 RAD 서버 환경설정

프로젝트를 실행한다.(Run > Run)

만약, RAD 서버를 처음 실행 했다면, 다음과 같이 설정파일을 찾을 수 없다는 메시지가 표시된다.

image.png

해당 메시지는 RAD 서버 설정 파일(emsserver.ini)이 없는 경우 표시된다. 다음 단계에서 설정파일 생성 후에는 표시되지 않는다.
(만약, 해당 메시지가 표시되지 않는 경우 이 단계를 생략하고, 다음 단계를 진행한다.)

[Yes] 버튼을 눌러 설정 마법사를 표시한다.

인터베이스 데이터베이스 설정

RAD 서버가 사용하는 인터베이스 데이터베이스(파일)를 생성하는 과정이다.(RAD 서버는 인터베이스를 이용해 자체 데이터를 관리한다.)

image.png

Server Instance는 InterBase Server Manager 실행 해 확인 후 입력한다.
(윈도우 시작 버튼 > Embarcadero Interbase 2020(버전) > InterBase Server Manager, 인터베이스 버전은 다를 수 있다.)

image.png

(기본 설치한 경우 대부분 gds_db 또는 developer_ib2020 이다)

다른 옵션들(DB File Name, ...)은 확인 후 [>> Next] 버튼을 클릭한다.

샘플 데이터

image.png

사용자와 사용자 그룹 샘플 데이터를 확인하고, [>> Next] 버튼 클릭한다. 

콘솔 로그인 정보 설정

image.png

RAD 서버 콘솔(모니터링 웹사이트) 로그인 계정을 입력하고 [>> Next] 버튼 클릭한다.
(향후 설정파일에서 변경 가능하다.)

설정 확인

image.png

최종적으로 설정 내역을 확인하고, [Finish] 버튼을 클릭한다.

  • DB File : RAD 서버 데이터베이스 파일 전체경로
  • Configuration File : RAD 서버 설정파일 전체경로
  • Registry key : 위 환경파일의 경로를 지정할 레지스트리 경로, 원하는 경로에 설정파일을 배포가 필요한 경우 레지스트리 값 변경
    (참고: HKEY_LOCAL_MACHINE으로 표시되지만 HKEY_CURRENT_USER 하위 경로에 키가 생성된다.)
    image.png

 

설정 완료 시 라이선스에 대해 묻는다.
InterBase 개발자 라이선스 사용하면 테스트 과정에서의 제한은 없다.
(참고: 개발자 에디션은 개발 및 테스트 목적으로 24시간 이상 구동할 수 없고, 동시 접속은 5인까지 가능하다.)

image.png

최종 확인 메시지가 표시되면 [OK] 버튼을 눌러 과정을 마친다.

image.png

파일 생성 확인

해당 과정이 완료되면, 설정한 경로에 다음 파일들이 생성된다.

  • EMSSERVER.IB - RAD 서버 운용에 필요한 데이터베이스 파일
  • emsserver.ini - RAD 서버 운용에 필요한 환경설정 값을 관리

image.png

 

RAD Development Server로 실행

image.png

RAD 서버 패키지 프로젝트를 실행하면, "RAD Development Server."(이하 RAD 개발 서버)가 실행된다.

RAD 개발 서버는 개발 중 사용하기 위한 테스트용 서버로, UI를 제공해 쉽게 제어(시작/정지)할 수 있고, 지금과 같이 개발 중인 패키지를 손쉽게 로딩해주고 디버깅도 가능하다.(단, Indy HTTP 기반으로 성능제한이 있으므로, 배포시에는 주의가 필요하다.)

화면의 로그 중 일부를 살펴보면, 앞에서 작성한 HelloPackage.bpl을 로드한 것을 확인할 수 있다.

{"Thread":15444,"Loading":{"Filename":"C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\HelloPackage.bpl"}}

...
{"Thread":15444,"Loaded":{"Filename":"C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\HelloPackage.bpl"}}

 

RAD 개발 서버 구동 방식

RAD 서버 패키지는 RAD 개발 서버 실행파일을 호스트로 지정해 실행된다. Run Parameter(Run > Parameters...)에서 확인 가능하다.

image.png

 

만약, 서버 구동 시 다음과 같은 서버 오류 발생 시, 포트번호를 다른 프로세스에서 사용 중이라는 의미이다.

image.png

혹시 이미 EMSDevServer.exe가 실행되어 있다면, 기존 개발 서버 종료 후 다시시작해야 한다.

만약, 다른 서비스에서 해당 포트번호(기본: 8080)를 사용 중이라면, Port를 다른 값으로 입력 후 [Start] 버튼을 눌러 서버를 실행 할 수 있다.
image.png

 

웹브라우저에서 결과 확인

웹브라우저를 실행하고, 주소 입력 란에 "http://localhost:8080/hello" 입력 후 실행하면 소스코드의 Get 메소드가 실행되어 다음과 같이 출력된다.

image.png

주소 입력 란에 "http://localhost:8080/hello/radserver" 입력 후 실행하면, GetItem 메소드가 실행되어 출력된다.

image.png

위와 같이 URI(그리고 HTTP 메소드)에 따라 RAD 서버 패키지에 구현된 응답이 출력(구현된 코드가 실행)된다.

RAD 서버 패키지 구조와 리소스/엔드포인트 구현 규칙에 대한 자세한 설명은 다음 글에서 확인할 수 있다.

 

이 댓글 링크
다른 사이트에 공유하기

  • 험프리 changed the title to RAD 서버 REST API 개발환경 설정하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

 공유하기

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.