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

이 뛰어난 크로스-플랫폼 앱은 모바일 앱 스토어에서 다운로드가 6500 회 이상 다운로드 되었다.


Recommended Posts

이안 바커 (Ian Barker)"This Excellent Cross-Platform Delphi App Has 6500+ Mobile App Store Downloads" 을 번역했습니다. (원문 작성: 2023년 3월, 최종 번역: 2024년 2월)

웨비나에서 나는 델파이를 탑재한 RAD 스튜디오는 크로스 플랫폼 앱을 만들 때 얼마나 강력한지, 그래서 얼마나 쉽게 만들 수 있는지를 시연하는 것을 좋아한다. 나는 종종 "나는 심하게 열심히 일하기를 바라지 않는다. 그것이 델파이를 탑재한 RAD 스튜디오를 내가 좋아하는 이유이다. 델파이는 나를 위해 모든 힘든 일을 하면서 내가 돋보이게 해준다!"라고 핵심을 요약한다. 매일 나는 일어나면 코드를 작성한다 - 델파이 언어로 말이다. RAD 스튜디오는 내가 사용하는 장인의 도구이다. 내 생산성을 극도로 높여준다.

웨비나 Q&A 중에는 언제나 회의적인 사람들이 몇 명 정도 있다. 그들은 델파이로 작성된 실제 앱들을 "예"로 들어 달라고 한다. 마치 내가 엄청난 마술이나 사기를 치고 있다고 생각하는 것 같다. 다시 말하지만, 델파이앱들은 어디에나(everywhere) 있으며, 한결같이 작동을 지속하는데 매우 능하다. 모든 종류의 상황에서, 드라마 같은 일도 없고 결함도 없이 작동하는 면에서도 그렇다. 견고함 그리고 이전 버전 호환성은 델파이 RTL의 기본 정신이다.

이번 기업용 대형 애플리케이션 개발 사례 기고 경연 대회(Enterprise Article competition)는 RAD 스튜디오, 델파이, C++빌더를 소프트웨어 개발에 사용하는 개발자들이 보내준 이야기들로 가득 찼다. 오늘은 브라질에 있는 Gustavo Valle Mascarenhas씨가 보내 온 글이다. Gustavo의 기사는 모두 브라질 포르투갈어로 작성되어 있으며, 자신이 만든 Acreprev라는  크로스 플랫폼 모바일 앱에 대해 설명한다. 그 앱은 안드로이드 플레이와 애플 iOS 앱 스토어에서 6,500회 이상 다운로드 되었다 (옮긴이: 번역 시점에는 구글에서만 1만회가 넘음).

공평하게 말하면, 이번 경연 대회는 기고를 영어로 작성해야 한다는 조건이 없다. 그래서 나는 구글 번역기를 통해 영어로 자동 번역한 다음 정리했다. 그 작업을 ChatGPT를 써서 할 수도 있었다. 하지만, 혹시라도 셰익스피어의 "템페스트"를 더글라스 아담스 스타일로 작성하는 건 아닌지 또는 그에 상응하는 창의적인 이야기를 만들어 내는 건 아닌지, 혹시 그럴듯하지만 결국 다소 결함이 있는 결과는 아닐지 우려했다.

어쨌든, 이제 Gustavo의 사례를 보자. 포르투갈어로 된 원문 기고도 남겨두었으니, 그 언어를 읽을 수 있다면 원문을 보기 바란다 (옮긴이: 이 번역에는 넣지 않았습니다).

차례


Acreprev 앱은 무엇인가?

이 기사는 델파이 엔터프라이즈 11.1을 사용하여 개발된 "acreprev" 애플리케이션의 기능과 그 안에 있는 기술에 대해 설명한다.
이 애플리케이션은 Acre 주 정부의 창립 독재 기관인 Instituto de Previdência do Estado do Acre – ACREPREVIDäNCIA에 속다.

spacer.png

Acreprev 앱은 무슨 일을 하는가?

Acre 주에 사는 퇴직자와 연금 수급자를 위한 생존 증빙 제출 솔루션 구축은 수혜자가 살아 있음을 효과적으로 증명할 수 있는 이상적인 방법이었다. 그 모든 과정은 예전에 사람이 직접 수행했었다. 따라서 팬데믹으로 인해, 우리는 수혜자들을 지키기 위한 새 대안을 만들 수밖에 없었다. 우리는 모든 사람이 들고 다닐 수 있는 장비가 이상적이라고 생각했으므로, 모바일 애플리케이션을 만들기로 했다.

 

델파이를 탑재한 RAD 스튜디오를 선택했기 때문에, 우리는 하나의 팀이 모든 것을 할 수 있게 되었다

위에서 언급한 스케치를 현실로 만들기 위해, 우리는 델파이 엔터프라이즈 IDE를 사용했다. 안드로이드와  iOS 운영 체제 둘 모두에 대한 바이너리를 생성할 수 있는 크로스 플랫폼 도구이기 때문이었다. 그래서, 우리는 기술 팀을 평준화하고 비용을 절감할 수 있었다. 즉, 두 개의 개발 팀(안드로이드/IOS)이 필요 없을 뿐만 아니라 애플리케이션 제작 시간도 단축할 수 있었다. 이 도구가 기업 환경에 가져온 몇 가지 이점을 살펴보는 것은 주목할 만하다. 각 이점에 대해서는 뒤에서 자세히 논의하겠다.

 

Acreprev 앱은 언제 처음 개발되었는가?

acreprev 앱은 2021년 앱 스토어(https://apps.apple.com/br/app/acreprev/id1610749146)에서 출시되었으며, 1,500회 이상 다운로드 되었다. 또한 구글 플레이 스토어(https://play.google.com/store/apps/details?id=ac.gov.br.ACREPREV&hl=pt_BR&gl=US)에서는 5,000회 이상 다운로드 되었다. 

 

Acreprev 크로스-플랫폼 앱은 무슨 일을 하는가?

앞서 언급한 바와 같이, 이 앱을 사용하여, 퇴직자와 연금 수령자는 자신이 진짜 청구자이며 사망하지 않았음을 입증 할 수 있다. 이는 매년 생일이 있는 달에 수행해야 한다.

사용 방법은 매우 간단하다. 수혜자는 CPF 및 기능 사용 의사를 간단히 등록한다. 그리고 유효한 휴대폰 번호를 등록한다. 본인 확인을 위한 4자리 코드가 포함된 SMS을 수신해야 하기 때문이다. 참고로 이 절차는 우리 사이트에 등록하지 않은 사람들만 진행하면 된다. 이 단계 이후, 수혜자는 개인 정보 보호 정책의 조건을 읽고 동의해야 한다.

spacer.png

마지막은, 메인 단계 즉, 휴대폰 카메라를 이용해 사진을 전송하는 단계이다. 첫 번째 단계에서는, 사진이 있는 신분증의 앞면과 뒷면, 총 두 장의 사진을 보내야 한다. 두 번째 단계에서는, 앞서 언급한 문서를 턱 아래에 두고 '셀카'를 촬영해야 한다. 이 때, 안경, 모자 등 증명서의 사진과 다르게 보일 수 있는 것들을 사용하면 안된다. 그게 전부다. 생존 증빙 절차는 완료된다. 이제 전송된 사진은 ACREPREVIDäNCIA 서버에 의해 분석된다. 신뢰할 수 있는 데이터베이스를 사용해 전송된 사진과 대비하고, 그 진위를 판명한다. 분석 결과는 SMS(문자 메시지)와 앱 푸시 알림을 통해 전달된다. 애플리케이션이 어떻게 작동하는지 바깥을 봤으니 이제 델파이 도구를 사용해 구현한 기술에 대해 더 깊이 살펴보겠다.

 

크로스-플랫폼 앱을 개발할 때 델파이가 탑재된 RAD 스튜디오를 선택한 이유는 무엇인가?

이미 언급했듯이 델파이는 크로스 플랫폼 IDE이다. 즉, 하나의 코드만으로 시중의 여러 플랫폼들을 커버한다. 우리의 개념 모델 안에서, "acreprev" 애플리케이션은 클라이언트이다. 이 프로젝트는 완전히 객체 지향적이고, MVC(Model – View – Controller) 프로토콜을 지켜서 HTTP 요청을 수행한다. 이 요청에는 모든 정보가 담겨있다. 예를 들어, 증명서 사진와 셀카 사진은 JSON 형식이며 REST 프로토콜을 사용한다.

 JSON 형식의 이미지를 이동시키는 것이 주요 병목이라는 점을 알려주고 싶다. 하지만, 이 문제는 델파이로 쉽게 해결할 수 있었다. System.classes에서 상속된 TMemoryStream 클래스를 사용한 덕분이다. 모든 HTTP 요청들은 Thread 개념, 보다 정확히 말하면 AnoynmousThread를 사용해 구현했다. AnoynmousThread는 TThread 클래스에서 상속된 클래스인데, 멀티태스킹 개념을 구현하는 강력한 델파이 자원이다. REST 프로토콜에 적용할 수 있고 JSON 객체(TJSONObject)를 다룰 수 있도록 사용했다.

spacer.png

애플리케이션 안에 넣은 기능들 중에는 소통/지원 연결 기능이 있다. 애플리케이션 안에서 전화를 걸 수 있으며, WhatsApp과 같은 외부 애플리케이션과 문자 메시지를 교환할 수 있다. 이 모든 것은 Intent를 사용했다. 이를 위해 안드로이드 용으로는 TJIntent 클래스를 사용했다.  IOS에서 다음 코드 한 줄을 사용해 전화 걸기를 구현했다: SharedApplication.OpenURL.

또한, 푸시 알림 서비스도 구현했다. TPushService 클래스에서 구글 FireBase 활용하도록 했다. 이 방식은 제출된 생존 증빙 제출 결과(승인 또는 거부)가 수혜자에게 전송하는데 사용되었다.

 

크로스-플랫폼 앱들에서는 백-엔드 또는 서버 측 기술로 무엇을 사용하는가?

클라이언트 측(앱)에 대해 이야기를 했으니, 이제 그 요청을 받는 애플리케이션에 대해 이야기하겠다. 요청을 수신하고, 처리하고, 데이터베이스 안에 유지하고, 그 요청에 대한 응답을 보내는 애플리케이션은 REST JSON API로 구현했다. 일반적으로 설명하자면, 우리가 만든  REST JSON API는 TJSONObject 타입인 오브젝트를 담아서 전송된 HTTP GET/POST 요청을 수신하고, 처리하고, Postgres 데이터베이스 안에 유지하고,  TJSONObject 타입인 오브젝트를 사용하여 그 애플리케이션의 응답으로 제공한다.

spacer.png

데이터 지속성을 위해 사용한 컴포넌트 세트인 FireDAC에 대해 이야기해야겠다. 이를 통해, 우리는 시장에 있는 최신 데이터베이스들와 통신할 수 있다. FireDAC은 컴포넌트들과 내장된 기술들을 광범위하게 갖추고 있으므로, 가장 우수하고 가장 실용적인 데이터 지속성과 쿼리 도구가 되었다.

마지막으로, 델파이 엔터프라이즈 IDE를 통해 이 프로젝트에서는 모바일 디바이스의 카메라 등 물리적 리소스에 쉽게 액세스하고, 사진 앨범에 액세스하고, 푸시 알림을 수행할 수 있었다. 이는 우리 프로젝트에 구현된 기능들 중 일부일 뿐이다. 어떤 회사든 멀티-플랫폼용 모바일 앱들을 단일 코드 기반을 사용하여 개발하고 싶다면, 또한 REST 등 현재 표준을 사용하여 애플리케이션 프로그래밍 인터페이스를 개발하려고 한다면, 델파이 IDE는 확실히 이 분야에서 최고이고, 가장 잘 통합된 도구이다.

 

이 글은 기업용 대형 애플리케이션에 대한 기고 경연 대회(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...

중요한 정보

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