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

이 놀라운 델파이 앱은 연간 3억 명의 생명을 지키는 일을 도와주고 있다


Recommended Posts

이안 바커 (Ian Barker)"How This Amazing Delphi App Helps Save 300 Million Lives A Year" 을 번역했습니다. (원문 작성: 2023년 1월, 최종 번역: 2024년 2월)

오늘은 델파이 개발자 Alessandro Negri가 보내 온 글이다. Fabrice는 벨기에 Dedalus에서 소프트웨어 아키텍트로 일하고 있다. 오늘 이 글에서 Fabrice는 델파이 언어와 런타임 라이브러리가 제공하는 명확성과 안정성에 대해 이야기한다. 이 크로스 플랫폼 개발은 천사들도 발 디디기를 두려워할 곳에서 이루어졌이다. - 바로 환자 마취에 대한 복잡한 관리 분야이다. 여기에서 실수는 말 그대로 생명을 앗아갈 수 있다.

차례


이렇게 까다로운 환경에서 사용되는 앱을 개발할 때 델파이를 선택한 이유는 무엇인가요?

나는 엠바카데로 RAD 스튜디오와 델파이를 그 첫 버전부터 사용해오고 있다. 앞으로도 사용을 중단하고 싶은 생각이 없다. 내가 파스칼을 배운 것은 1992년 고등학교 때였다. 볼랜드 파스칼의 최초 버전이 델파이의 첫 버전이 되었는데, 데스크탑 애플리케이션을 윈도우에서 RAD 방식로 만들 수 있었다. 당시에는 비주얼 C++와 베이직을 대체하는 파격적인 것이었다. 나는 이 언어와 도구의 매력에 푹 빠졌고, 그 이후로 떠난 적이 없다.

델파이는 매번 진화하면서 Linux 용 Kylix, RAD PHP, 파이어몽키를 거쳐왔다. 또한 윈도우 8,10,11 및 맥OS, 안드로이드, 리눅스와 같은 다른 플랫폼에까지 이르렀다. 언제나 나는 이 도구와 그 진화에 대해 확신하고 있었다.

파스칼 덕분에, 델파이는 개발 작업을 할 때 명확하다. C-기반 다른 언어들에서는 보기 어려운 대단한 것들이 있다. 나는 많은 다른 언어들로 작업을 해왔다. 자바, 자바스크립트, PHP, 앵귤러, 리액트, 파이썬 C#, C++, LUA, WLanguage 등등이다. 내가 호기심이 많고, 최신 동향을 알고 있기를 바랬기 때문이다. 하지만, 여전히 내가 가장 좋아하는 것은 델파이이다. 100% 독립형 바이너리를 릴리스하는 데 별도의 프레임워크가 필요하지 않다.

Fabrice씨 당신의 일상 업무는 무엇인가요?

나는 의료용 애플리케이션을 개발하는 대규모 그룹사에서 일하고 있다. 우리는 델파이를 생명 의료 장비와 통신하는데 사용한다. 환자의 건강 정보를 수집하고, 이를 처리하고, 특정 곡선을 얻고, 경고를 하는 등등의 작업을 한다.

Dedalus 그룹은 국제적인 그룹이며 아주 많은 사람들이 일하고 있다.

spacer.png

이 그룹의 사업은 많은 병원 인프라, 연구실, 연구 기관 등에 관련되어 있다. 원래는 서로 다른 분야를 전문으로 하던 여러 기관들이 결합되어서 이 그룹이 되었다. 그래서 기술과 애플리케이션이 기관마다 서로 달랐다.
 

어떤 일에 델파이를 사용하나요?

내가 근무하는 회사는 마취 분야가 전문이었는데 이 그룹에 인수되었다. 그래서 우리는 현재 Dedalus Healthcare BV의 자회사이다. 우리 회사는 항상 델파이를 사용해 왔다. 처음에는 델파이 7과 파라독스(Paradox)를 BDE를 통해 사용했는데, SQL 서버와 오라클로 빠르게 전환했다. 그 당시, 우리가 만든 컴퓨터화 된 마취 기록지는 혁신적이었다. 왜냐하면 우리가 자체 차트 컴포넌트 라이브러리를 개발해서, 중요한 파라미터들을 실시간으로 구현할 수 있었기 때문이다. 델파이는 또 다시 스스로 적응했다. 즉 캔버스 처리에 GPU 기능을 사용할 수 있었다.

마취과 의사들은 우리 시스템의 인체 공학적인 기능을 금세 알아차리고 높이 평가했다. 그들은 한 화면 안에서 환자에게 연결된 모든 생명 의료 장비에서 수집한 데이터를 완전하게 볼 수 있었다. 그리고 이벤트와 약물 정보를 입력할 수 있었고, 주사하고, 전체 절차에 대한 보고서와 청구서를 출력하고, 그 정보를 해당 환자의 파일들로 전송할 수 있었다.

spacer.png

 

델파이는 왜 이토록 까다로운 환경에서 좋은 선택이 될 수 있었나요?

여기서 그치지 않았다. 장치, 모니터, 인공호흡기, 심폐소생(C.E.C.) 콘솔, 주사기 펌프, 혈액 투석 장치 등등 중요한 파라미터들도 수집해야 했다. 그런데 제조업체들이 다 다르고 저마다 통신 프로토콜도 다 달랐다. 그래서, 우리는 통신 도구를 개발하여 이러한 장치들과 통신할 수 있도록 했다. 그 도구는 실제로 BPL 패키지(또 다른 델파이 혁신)가 동적으로 로드되는 시점에 해당 드라이버들을 로드하도록 되어 있었다.

하드웨어와의 통신은 전례 없이 간단했다. 그렇다. 델파이는 COM 포트, USB 포트, RJ45 포트 뿐만 아니라 http, TCP, UDP 등 다양한 프로토콜과 통신하는 데 아무런 제한이나 어려움이 없었다. 완전히 독립적인 실행 파일(패키지와 함께)을 제공했기 때문에 유지 관리는 더 쉬워졌다. 호환되지 않는 프레임워크는 없었다.
 

맞춤 제작한 하드웨어가 있었나요?

우리는 USB 케이블들도 개발했다. 거기에는 작은 전자 카드가 부착했는데, 생명 의료 장비의 드라이버 정보를 담았다.  이를 통해 '플러그 앤 플레이' 방식 연결이 가능했다. 이 케이블은 설계자(Phil 디자인 스튜디오)가 만들었는데, 의료용 수지로 제작되어 방수 효과가 있었다. 이 통신 절차 전체를 우리는 확실히 델파이로 개발했다.

spacer.png

그렇다, 델파이로는 무엇이든 할 수 있다. 하지만, 잘 해야 한다. 그리고 델파이의 컴파일러는 세계에서 가장 빠른 컴파일러 중 하나이다.

 

어떤 종류의 데이터베이스를 사용했나요?

그 후, 나는 자체 ORM을 개발하고, 통합했다. 그래서 다양한 데이터베이스에 연결할 수 있도록 하기 위해서였다. 물론 이 델파이로 할 수 있는 작업이었기 때문이기도 하다. 오라클, SQL 서버, MySQL, SQLite, PostgreSQL를 사용했는데, ADO 컴포넌트 계층을 썼다. 그리고 나중에는 FireDAC을 썼다.

우리는 델파이 2006에 오랫동안 머물러 있었다. 왜냐하면 델파이는 상당히 안정적이고 완전한 도구였기 때문이다. 필요한 모든 도구를 갖춘 한 버전이면 시장에서 오랫동안 유지하는 것이 가능하다. 그 후에는, XE2로 전환하고, 다음에는 XE4로, 마지막으로 RAD 스튜디오 11로 전환했다. 주된 이유는 네트워크 컴포넌트와 SSL 인증서의 기능 변경되었기 때문이다. 예를 들면, Indy를 사용하면 다양한 프로토콜(http, ftp 등) 상에서 교환할 수 있다.

어떤 크로스 플랫폼 앱을 개발했나요?

그 후에 나는 (스마트 모바일 어시스턴트용으로) dxSMA를 개발했다. 이것은 애플리케이션이었는데, 간호 회진을 하는 동안 환자의 병상 옆에서 중요한 파라미터를 수집한다. 이 애플리케이션은 델파이 XE4로 개발했다. FMX를 사용했으며, 터치 방식 의료용 태블릿에서 실행되었으며, 회진용 밀차에 부착되어 있다. 그 밀차에는 생명 의료 측정 장치(혈압, 산소 포화도, 심박수 등등)도 있다. 의료진은 이 애플리케이션에서 RFID 배지, 인증(로그인/출입 패스), 안면 인식 등을 통해 자신의 신원을 확인할 수 있었다. 환자의 신원 확인은 팔찌를 스캔하는 방식을 사용했다.

spacer.png

파라미터 수집은 우리가 만든 통신 도구를 통해 이루어졌다(델파이로 제작된 도구임). 일단 유효성이 검증되면, 데이터는 환자 파일로 전송되었다. 데이터 전송은 정보 손실이 없었으며, 자동으로 일정한 주기로 전송되거나 또는 수동으로 의료진이 제어할 수 있었다.

spacer.png

 

집중 치료와 환자 심폐 소생술에 델파이를 사용하는게 맞나요?

나는 병상 업무를 나와서, 바로 집중 치료와 심폐 소생 장치들쪽으로 빠르게 옮겨갔다. 그곳에서는 데이터가 중앙에 집중되었다. 데이터는 주로 HL7 프로토콜을 통해 정보를 전송하는 게이트웨이들을 통해 수집되었다. 그런 다음, 나는 DxCentrale을 개발했다. 이것는 ADM과 똑같은 기능을 수행하는 것이다. 하지만, 일부 병상에서 10초 마다 반복해서 완전한 서비스를 제공했다. DxCentrale은 멀티 스레드 애플리케이션이다. 수없이 많은 제어기들이 사방에 여기에 연결되어 있다. 예상했겠지만, 이 모든 것은 델파이로 구현되었다(XE4와 FMX).

 

당신의 회사가 더 큰 기업에 인수되었을 때 무슨 일이 생겼나요? 인수한 회사는 델파이 사용을 중단했나요?

지금 우리는 국제적인 그룹사의 한 부분이다. 그 그룹사는 솔루션과 기술을 표준화하기를 원한다. 우리는 우리의 애플리케이션들을 마이크로서비스 아키텍처로 전환해야 했다. 이를 위해 mORMot 프레임워크를 선택했다. 비록 RAD 서버도 가능성이 있는 솔루션이긴 했지만, 이전 버전의 델파이 코드 몇 가지가 여전히 남아있었기 때문이다. 마이크로서비스로 전환한 덕분에, 우리의 애플리케이션은 백엔드가 되었다. 그리고 프론트엔드는 앵귤러, 리액트, 파이썬으로 개발되었다. 다시 말하지만, 델파이는 이런 다른 기술들을 적용하거나 그 기술들과 통신하는데 아무런 문제가 없다. 나는 이 주제에 대해 책을 썼다. 제목은 "Delphi & mORMot, the full-stack developer’s guide"이다.

오늘날에는, API 만들기, 웹 소켓, 마이크로 서비스, 리포트 생성하기, 기존의 모든 데이터베이스에 연결하기, 모바일 애플리케이션 만들기 등 다양한 작업을 윈도우가 아닌 리눅스나 맥OS같은 다른 OS에서도 작업할 수 있다.

델파이 개발 도구에게는 제약이 없는 것 같다.

 

마지막으로 동료 기업용 애플리케이션 개발자들에게 하고 싶은 말은?

나는 내 시간 중 일부를 이 주제를 다루는 책을 쓰는데 할애하고 있다. 그 책에서는 mORMot 프레임워크를 사용하는 예제들을 보여준다.

나는 델파이 언어와 RAD를 매우 좋아한다. 이것들은 놀라운 방식으로 진화해 왔다. 개발자의 시간을 절약해주는 면에서 아주 특출한 능력이 있다. 요즘엔 틈 날때마다, RAD와 델파이를 칭찬한다.

 

이 글은 기업용 대형 애플리케이션에 대한 기고 경연 대회(Enterprise Article challenge)에 제출된 것이다. 만약 여러분도 델파이, C++빌더 또는 RAD 스튜디오를 사용하여 만든 훌륭한 엔터프라이즈 제품과 프로젝트에 대해 이야기하고 싶은 성공 사례가 있다면 연락을 주기 바란다.

한국 개발자는 데브기어의 델파이 사례 기고 행사에 참여하세요!

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

이 토의에 참여하세요

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

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...

중요한 정보

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