델파이에서 유지보수 작업을 하시거나 소스를 수정하실 경우 수동으로 루틴을 옮기거나 구조를 변경하시면서 어렵게 코드 작업을 하고 계신가요 ? 이번 기회에 델파이에서 제공되는 리팩토링 기능들을 정리하여 올리도록 하겠습니다.

 

리팩토링이란?

소프트웨어 공학에서에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻합니다. 주로 가독성을 높이고 유지보수를 편하게 해줍니다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아닙니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위입니다.

그 중 대표적인 것 몇 가지를 들자면, 필드 숨기기, 메서드 추출, 타입 일반화, 메소드 이름변경 등등이 있습니다.

델파이 리팩토링은 2007 버전부터 지원됩니다 다음은 델파이 메뉴에 있는 리팩토링 기능들을 정리해 보겠습니다.

확인 하실 수 있습니다.

 

  1. 클래스,정적메소드,속성, 필드 이동하기

      클래스 및 정적 메소드, 정적 필드 및 속성 등을 다른 클래스나 다른 유니트로 이동시킵니다.

      아래의 예제는 UTest4.pas에 있는 TDog 클래스를 UTest3.pas로 이동하는 예제입니다.

 

  •       TDog 클래스를 선택하고 주 메뉴나 팝업에서 Refactor > Move를 선택하면 다음과 같은 대화상자가 표시됩니다..

 

리팩토-이동1.png

 

  •      이동하고 싶은 네임스페이스 uTest3.pas를 선택합니다.

리팩토-이동2.png

 

  • 아래와 같은 리택토링 확인 창이 표시되면  리팩토링 내용을 확인하고 화살표로 표시된 리팩토링 버튼을 클릭합니다.

 

리팩토-이동4.png

 

  • 리팩토링이 수행되어 uTest4.pas에 있던 TDog 클래스와 관련 메소드들이 uTest3.pas로 옮겨진 것을 확인 하실 수 있습니다.

리팩토-이동5.png

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 21880
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20527
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22553
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28309
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29596
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 24930
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 45873
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181426
463 [다음 버전 정보] 멀티-디바이스 미리보기 창 관리자 2015.03.19 1361
462 [FireDAC Skill Sprints] 6. 전처리: SQL문을 유연하게 작성할 수 있는 Param와 Macro 사용하기 Humphery 2015.03.13 1759
461 [FireDAC Skill Sprints] 5. Cascading Options: 고급기능을 활용 할 수 있는 FireDAC 옵션 Humphery 2015.03.11 1363
460 [FireDAC Skill Sprints] 4. ArrayDML로 30배 빠르게 데이터 입력하기 Humphery 2015.03.11 1548
459 엠바카데로에 직접 문의해 답변을 받아볼 수 있습니다.(퀄리티 포털 사용방법 안내) 험프리 2015.03.09 1255
458 [고객 사례- 의료, 델파이] 전북대학교 병원 file 관리자 2015.03.09 2352
457 [FireDAC Skill Sprints] 2. FireDAC으로 DBMS 사용 내역 추적, 모니터링 하기 Humphery 2015.03.07 1595
456 [FireDAC Skill Sprints] 3. 캐쉬를 이용한 업데이트와 자동증가필드(Identity) 적용 Humphery 2015.03.07 1541
455 웹사이트의 인증서 오류를 무시하고 http 결과 조회하기(WinInet 이용) Humphery 2015.03.06 2176
454 [XE7] iOS 시뮬레이터 배포 시 'Please specify exact device preset UUID.' 오류 대응 Humphery 2015.02.26 1566
453 안드로이드 하드웨어 백버튼 제어하기 Humphery 2015.02.25 2558
452 [VCL] TaskDialog 컴포넌트 소개 Humphery 2015.02.25 1119
451 이 달의 기술자료 - 2015년 03월 험프리 2015.02.25 15899
450 20150224 [온라인세미나] VCL개발자를 위한 Speed UP! RAD스튜디오 발표자료 관리자 2015.02.25 911
449 파이어몽키 용 그리드 컴포넌트 안내 - FirePower Humphery 2015.02.23 1463
448 [Delphi week 2015] 윈도우 3.11에서 델파이1.0 사용하기 관리자 2015.02.13 1155
447 [VCL] 에디트/버튼의 다양한 속성 소개 Humphery 2015.02.13 1775
446 [XE7] 안드로이드 WiFi 상태조회와 설정하기 Humphery 2015.02.12 1907
445 [XE7] 안드로이드 블루투스 활성화 조회와 설정하기 [1] Humphery 2015.02.12 1798
444 [무료 온라인 세미나] Delphi Week 2015 file 관리자 2015.02.07 1034