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

Recommended Posts

이 문서의 목적

  • 데브기어 마이그레이션 지원 사업(TODO 링크 넣기)을 통해 진행한 현대화 프로젝트 사례(TODO 링크 넣기)를 기록함으로써, 델파이/C++ 현대화 마이그레이션 (TODO 링크 넣기)을 고려하는 개발자가 참고할 수 있도록 한다.

목차


MTU_MAIN.png

사용 기관 및 프로젝트 소개

사용 기관: 감리교 신학대학교

  • 1887년 설립된 국내최초의 신학교

대상 시스템: 학사 관리 시스템 

  • 학부, 대학원, 평생교육원, 행정 등 대학교 업무 전반을 지원하는 종합 전산 프로그램
  • 델파이 3 버전으로 개발된 후 20년 간 유지해 온 시스템

 

현대화 마이그레이션을 계획하게된 동기

윈도우 10이 보편화 됨에 따라 이에 대한 원활한 지원이 필요

  • 윈도우 10에서 기존 사용자 프로그램의 알수없는 오류 발생 (특히 BDE가 가장 문제임)

품질 향상이 필요

  • 기존 서비스를 모두 제공할 수 있으면서도 디자인, 사용성, 기능, 성능을 향상하고자 함

투자 대비 효과 지속

  • 유지 인력 및 비용 측면에서, 이 시스템은 지난 20년 간 충분히 투자 대비 효과를 실현해 왔으며, 현대화를 통해 장점을 유지 

 

마이그레이션 프로젝트 개요

목표 (와 기대 효과)

개요

  • 기간 : 총 3개월(2016년 5월 ~ 7월)

투입 인원

  • 외부 : 1명(데브기어 컨설턴트 방문 컨설팅 / 상주)
  • 내부 : 1명(담당자)

대상 프로젝트

  • 델파이 프로젝트 : 27개
  • .pas 파일 : 3,000여개
  • .dfm 파일 : 3,000여개

델파이 버전 현대화

조언 또는 팁

  • 현대화 마이그레이션의 프로젝트에서 소스 코드 변환 작업은 가장 기본적이고 가장 많은 부분을 차지한다.
    하지만, 프로젝트 계획에 아래 사항을 반영하면, 프로젝트 완료 후 사용자의 만족도는 더 높아진다.
    • 사용자들이 주로 사용하는 화면을 몇개 선정하여 디자인과 기능을 집중 강화한다.
    • 사용자들이 가장 원했던 기능의 우선 순위를 정하고 가장 높은 몇개의 기능 강화에 집중한다.

 

마이그레이션 프로젝트 진행 단계

이 프로젝트는 데브기어 마이그레이션 프로젝트 절차 - 1.1 버전에 따라 진행되었다. 그 결과,

  • 전체 프로젝트 기간 (3개월) 중 코드 변환 작업 기간은 15% (1~2주) 만으로 충분했다.
  • 나머지 85% 기간 (2.5 개월)은 이슈 해소, 자동화 방안 수립, 테스트, 목표한 향상 작업을 진행했다.   

 

주요 작업 (및 참고 자료)

코드 변환

  • 자동 변환 도구(들) (TODO 자동 변환 도구 소개 링크)
  • 마이그레이션 가이드 문서(TODO 마이그레이션 가이드 소개 링크)

 

BDE를 FireDAC으로 교체 (64비트 윈도우 지원, 배포 편이성 향상, 데이터 처리 성능 향상)

 

윈도우 10 스타일 적용 (일관성 있고 세련된 현대식 디자인)

 

사이드바 메뉴 구현 (사용성 향상)

 

퀵리포트(Quick Report) 업그레이드 (엑셀 내보내기 등 기능 향상)

  • "작업을 따로 하지 않고 퀵리포트 업그레이드" 만으로 얻은 효과
    • 보고서 내보내기 (저장) 기능 추가
  • 기능 추가 작업:  퀵리포트 보고서를 엑셀로 내보내기
    • 보고서 화면에 엑셀 저장 필터 컴포넌트(TQRXLSXFilt)를 추가
    • 해당 보고서 화면이 많았으므로, 텍스트 에디터의 여러파일 찾기 기능과 치환 기능을 이용해 폼파일(*.dfm)과 소스파일(*.pas)에 컴포넌트를 추가하는 코드 삽입 작업을 자동화

 

학생 프로필 사진 DB화 (관리 편이성과 관련 기능 향상)

 

데이터베이스를 호출하는 모든 SQL 구문을 기록 (보안 감사 능력 향상)

  • 요구 사항: "DB에 호출하는 모든 SQL 문을 로그로 남긴다."
  • TFDQuery 컴포넌트 (DB에 전달되는 SQL을 담당하는 컴포넌트)를 상속받고, 메소드 덮어쓰기 (Override)를 이용하여 로그 기록 기능을 삽입
  • 그 결과, 이렇게 커스터마이징 된 컴포넌트를 사용하는 모든 SQL은 자동으로 로그를 남기게 됨
  • (참고자료는 작성 중)
이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

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

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

중요한 정보

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