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

비주얼 C++을 벗어나 델파이로 전환해 60배라는 놀라운 속도 향상을 달성한 방법


Recommended Posts

(지난 2023년 5월에 번역되었던 글을 보강한 후 다시 게시하는 글입니다)

이안 바커 (Ian Barker)"This Is How I Ditched Visual C++ For Delphi And Got A Mind-Blowing 60x Speed Boost" 을 번역했습니다. (원문 작성: 2023년 2월, 최종 번역: 2024년 2월)

Rick Kamenos는 비주얼 스튜디오 C++로 작성되었던 엔터프라이즈 앱을 가져다가 어떻게 우리가 선호하는 IDE인 RAD스튜디오, 델파이로 재작성했는지 그 경험을 공유한다. 새로 작성된 델파이 앱은 이전에 몇 시간이 소요되던 앱 실행 시간을 단 몇 분으로 단축했다. 종종 C++은 가장 빠른 프로그래밍 언어라고 언급된다는 점에 비추어 볼 때, 이 전환 결과는 델파이의 능력을 입증하는 상당히 흥미로운 내용이다!

차례


그 거대한 기관이 당면하고 있던 문제는?

이 거대한 기관에는 비주얼 스튜디오 C++을 사용해 구축된 시스템들 여러 가지가 있었다. 이 시스템들은 정부 기관에 중요한 보고를 하는데 사용되었다. 하지만, 계속해서 실패했다. 이 기관은 성공할 수 있는 해법들이 필요했으며, 신속하게 구축해야 했다.

문제가 되는 첫 번째 것은 데이터를 가져오는 시스템이었다. 이 시스템을 CD에서 정보를 읽고, 그 데이터를 깨끗하게 만들고 변환하여 데이터 웨어하우스 안에 넣어주는 것이었다. 이 절차는 몇 시간이 소요되었으며, 완료되기 전에 실패하는 경우도 잦았다.

 

그 외 다른 문제는?

두 번째 문제는 정부 리포트들이었다. 이것 역시 오랜 시간이 걸렸고 완료하지 못하는 경우가 가끔 있었다. 이 리포트들은 첫 번째 문제에서 언급된 데이터를 기반으로 하고 있었는데, 거기에 더해 기관 내부에서 생성된 데이터들도 사용했다.

 

그 문제를 어떻게 해결했나?

가장 먼저 해결해야 할 문제는 당연히 데이터 가져오기였다. 두 번째 문제는 첫 번째 문제와 관련된 데이터를 기반으로 리포트를 최신 상태로 유지하는 것이었으며, 좋은 데이터를 반드시 확보해야만 했다. 나는 C++ 코드를 살펴봤는데, 프로그래밍 수준이 그다지 좋다고 보기는 힘들었다. 그뿐 아니라, 몇 가지 코드들은 델파이의 팔레트 안에 있는 컴포넌트들이 지원하고 있는 것들이었다. 그랬기 때문에, 나는 모든 것을 델파이로 다시 작성하는 것이 가장 최선이라는 생각이 들었다. 델파이의 가장 큰 강점 중 하나는 신속하게 개발하는 즉 RAD 능력이다. 타입을 엄격하게 지키는 언어를 사용하고 대규모 시스템을 쉽고 빠르게 개발할 수 있도로 하는 컴포넌트들을 사용하기 때문이다.

 

데이터는 어떻게 저장했나?

데이터베이스에 있는 레코드들은 CD에 저장되어 있었으며, 쉼표로 구분되는 단순한 형식이었다. 하지만, 필드들의 길이가 가변형이었다. 그래서, 나는 데이터 필드들을 고정 길이로 변경할 것을 요청했다. 그렇게 하면, 레코드 하나를 통째로 읽고 그것이 담기는 필드에 맞게 즉시 형변환(type cast)을 할 수 있었다.

그 다음에는, 그저 데이터 이상(anomaly) 검사와 문자열 변환 규칙을 적용해 데이터를 데이터 웨어하우스로 부어 넣을 준비만 하면 된다. 나는 "깨끗해진" 각 레코드를 델파이 데이터베이스 컴포넌트들을 사용해 데이터베이스 안으로 가져왔다. 코드 몇 줄만 작성하면 되는 일이었다. 델파이에서 기업용 개발에 적용할 수 있는 또다른 놀라운 장점은 뛰어난 데이터베이스 컴포넌트들이다. 이 컴포넌트들은 빠르게 작동하고, 연결하기도 쉽다. 매우 복잡한 애플리케이션에서도 그렇다.

간단한 테스트를 했더니, 몇 시간에서 몇 분으로 가져오는 시간이 단축되었다. 컴포넌트 몇 가지와 많지 않은 코드만으로, 델파이를 사용하기 전에 이 기관에 있었던 시스템에 비해 훨씬 앞선 시스템을 가지게 되었다. 좋은 결과이다. 그 전까지는 경영진을 괴롭히던 많은 문제들이 있었기 때문이다.

다음으로 고쳐야 할 것은 리포트들이었다. 여러 가지 리포트들이 생성되고 있었다. 그 모든 리포트들은 정부 기관으로 보내져서 검토를 받도록 되어 있었다. 그 리포트들 안에 있는 데이터는 엑셀 파일 형식으로 들어 있어야 했다. 그 스프레드시트들은 내부 데이터를 가지고 계산을 한다. 계산 결과는 검토를 거친 후 보관되었다.

spacer.png

 

비주얼 스튜디오와 C++에서 델파이로 교체했다고 했는데 - 그 교체를 통해 또 어떤 다른 도움을 받았는가?

델파이는 우리의 구조대였다! 델파이 안에 있는 컴포넌트 중에는 엑셀 파일 형식을 열고, 읽고, 쓸 수 있는 것들이 있다. 따라서 나는 그 컴포넌트들을 사용해 단순하게 데이터 웨어하우스에 연결하는 조그마한 애플리케이션 하나를 만들어 해결할 수 있었다. 쿼리를 열어 데이터를 추출하고, 엑셀 컴포넌트들을 사용해 그 데이터를 엑셀 파일로 작성했다. 스프레드시트의 알맞은 셀에 데이터를 넣어서, 스프레드시트가 적합한 결과를 제공할 수 있도록 했다.

끝이 좋으면 다 좋다. 델파이를 사용하면 대체로 그렇게 된다. 또 하나 언급하고 싶은 점이 있다. 나는 메뉴 확장을 만들어서 서버 확장과 짝을 지었다. 그 결과, 관리자들은 리포트 검토 후 모두 올바로 되었다고 확인하면, 그 파일을 해당 정부 기관에게 바로 보낼 수 있게 되었다. 그저 해당 엑셀 파일에서 마우스 오른쪽 버튼을 클릭하여 메뉴를 열고, 메뉴 항목 중에 "Remit To"를 클릭하는 방식이다. 그러면 기관들의 목록이 나타난다. 그 목록에서 해당 기관을 선택하면 그 파일은 서버에 의해 FTP로 전송된다.

또 다른 복잡한 문제가 해결된 것이었다. 델파이를 사용해 만든 간단한 해결책이다.  이것은 잘 작동했다. 그리고 작업을 완료하기도 쉬웠다.

 

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

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

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

  • Kori changed the title to 비주얼 C++을 벗어나 델파이로 전환해 60배라는 놀라운 속도 향상을 달성한 방법

이 토의에 참여하세요

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

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

중요한 정보

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