DUMMY
공지사항
Notice
폼 디자인의 컴포넌트 개수에 따른 디자인창에서 화면갱신시간 안내
작성자 HNS 작성일 2017-06-07 조회수 3294
폼 디자인의 컴포넌트 개수에 따른 디자인창에서 화면갱신시간 안내
해당 내용은 2023.12.04에 SmartX New Framework를 기반으로 테스트가 새롭게 완료되어 일부 내용이 수정되었습니다. SmartX Old Framework 및 .Net Compact Framework의 경우에도 크게 결과값이 다르지 않기 때문에 해당 내용을 참고하시기 바랍니다.
1. 내용설명

Visual Studio 2008을 사용하여 C# 또는 VB.NET용 프로젝트를 생성하여 디자인 창에서 여러 개의 UI 컴포넌트를 사용하여 Form을 구성한 경우 아래와 같은 문제가 발생하게 됩니다.

[CASE-1] Form.cs의 소스코드를 수정하거나 디자인 창을 닫았다 열었을 때 폼 디자인 창을 갱신(Reload)하는 시간이 늘어나는 문제
[CASE-2] .Net Compact Framework의 버그로 인해 디버깅 시작(트레이스 모드)을 진행할 때 연결이 종료되는 문제 (종료 시 오류 발생 메시지가 출력됩니다.)

※ 해당 문제는 .Net Compact Framework와 Visual Studio 2008의 문제로 SmartX와는 관련이 없습니다.

CASE-1. 폼 디자인 창의 갱신 속도가 느려지는 문제

Visual Studio 2008을 사용하여 C# 또는 VB.NET용 프로젝트를 생성하여 디자인 창에서 여러개의 UI컴포넌트를 사용하여 Form을 구성한 경우 Form.cs의 소스코드를 수정하거나 디자인 창을 닫았다 열었을 때 폼 디자인 창을 갱신(Reload)합니다. 디자인 창을 갱신(Reload)하는 과정에서 메모리 릭(메모리 누수)가 발생하여 Visual Studio의 메모리 사용량이 늘어나게 되어 폼디자인의 갱신 속도가 점점 느려지게 됩니다.

메모리 릭의 경우 .NET Compact Framework에서의 문제로 이미지가 사용되는 .NET CF의 컴포넌트에서도 동일한 문제가 발생합니다. (PictureBox 등)

사용되는 컴포넌트의 개수에 비례하여 화면 갱신(Reload)시간과 메모리 사용량이 늘어나게 되며 일정 횟수 이상 Loading이 반복되었을 때 폼 디자인창이 오류와 함께 열리지 않는 문제가 발생할 수 있습니다. 에러가 발생하여 폼 디자인창이 열리지 않는 경우 Visual Studio 2008을 종료 후 다시 실행하시기 바랍니다.

프로젝트에서 많이 사용되는 SmartX Framework 컴포넌트인 SmartLabel, SmartCheckBox, SmartRadioButton, SmartButton의 화면 로딩 시간을 비교해보면 SmartLabel < SmartCheckBox < SmartRadioButton < SmartButton 순서로 컴포넌트가 무거우며 동일한 개수의 컴포넌트라도 가벼운 컴포넌트를 많이 사용하는 경우와 무거운 컴포넌트를 많이 사용하는 경우의 화면 갱신(Reload) 시간은 다릅니다.

CASE-2. 디버깅 시작(트레이스 모드)을 진행할 때 응용 프로그램 에러가 발생하는 문제

권장 개수 이상의 UI 컴포넌트를 추가하고 코드의 복잡도가 높으며, 이벤트가 많이 추가되어 있는 경우 .Net Compact Framework의 버그로 인해 디버깅 시작(트레이스 모드)을 진행할 때 응용 프로그램 에러가 발생하게 됩니다.

응용 프로그램 에러가 발생하는 시점은 프로그램에 따라 다르며, Form_Load에서 발생하거나 임의의 동작에서 발생하게 됩니다.

해당 현상은 디버깅하지 않고 시작으로 프로그램을 배포하거나 실행파일을 Run폴더에 복사해 Runtime Mode로 실행할 경우에는 발생하지 않습니다. 이와 같은 불편함 점을 줄이고자 HNS에서는 프로젝트 제작 시 하나의 폼 당 적정 컴포넌트 개수를 제안 드리니 프로그램 개발 시 참고하시기 바랍니다.

[영상자료]

참고SmartInnerForm도 갱신 시간이 증가하며 사용되는 컴포넌트 개수에 따라 걸리는 시간은 비례하여 증가합니다.
[UI관련 컴포넌트 사용 시 가이드 라인]

프로젝트에서의 하나의 폼에 사용하기 적정 컴포넌트 개수를 안내하오니 프로젝트 제작 시 결과를 참고하여 프로젝트를 제작하시기 바랍니다. 안내해 드린 컴포넌트 개수를 초과하는 경우 소스코드 수정 후 디자인 화면 로딩 시 갱신(Reload) 되는 시간이 늘어나게 되며, 폼 디자인창이 열리지 않고 에러가 발생할 수 있습니다.

[표1] 프로젝트에서 폼에 사용된 컴포넌트 별 디자인 화면의 리로딩 시간 안내
MDI 구성방식 SmartButton
50개
SmartButton
100개
SmartForm
+
SmartForm
2.xx초 4.xx초
SmartForm
+
SmartInnerForm
4.xx초 7.xx초
중요C# 또는 VB.NET 프로젝트를 사용하여 디자인 창에서 컴포넌트를 사용하는 경우
권장하는 컴포넌트의 개수는 50~60개 내외미만이며 동일환경에서 .Net Compact Framework와 SmartX Framework 컴포넌트의 사용시 시간차이는 거의 없습니다.
[표2] 프로젝트에서 권장컴포넌트 개수 참고자료
MDI 구성 방식 권장 컴포넌트 개수
SmartForm(부모폼)
+
SmartForm(자식폼)
50~60개 정도 사용시
갱신시간은 평균 3초
SmartForm(부모폼)
+
SmartInnerForm(자식폼)
50~60개 정도 사용시
갱신시간은 평균 4초
[표3] 폼에 사용된 컴포넌트 개수에 따른 응용 프로그램 에러 발생 안내

※ 해당 표의 경우 실제 제작하신 프로그램에서는 차이가 발생할 수 있으므로 참고하시기 바랍니다.
※ 테스트는 .Net Compact Framework로만 구성된 프로그램과 SmartX New Framework로만 구성된 프로그램 2개로 진행하였습니다.

UI Component 개수 Form 5개 Form 10개
50개 에러가 발생하지 않음 에러가 발생하지 않음
100개 에러 발생 에러 발생
[결론]

1. 컴포넌트의 개수에 비례하여 디자인 화면의 갱신(Reload)시간 및 메모리 사용량은 증가하며 개발 프로젝트의 컴포넌트 사용시 테스트 결과를 참고하여 적정한 컴포넌트 개수를 사용바랍니다. (적당한 컴포넌트 수는 폼당 50~60개 내외)

2. 하나의 폼에서 컴포넌트 개수가 100개를 초과한다고 해서 프로그램에 문제가 발생하지는 않으며 소스 수정 시 디자인 화면의 갱신(Reload) 시간이 늘어나는 불편함이 존재하며, 디자인창의 갱신이 반복될 경우 폼 디자인창이 에러가 발생하면서 열리지 않는 문제가 발생할 수 있습니다.

3. 폼에 적정 개수 이상의 컴포넌트를 추가할 경우 디버깅 시작(트레이스 모드)으로 프로그램을 실행했을 때 연결이 종료되는 문제가 발생합니다. (연결 종료 시 에러 메시지가 출력됩니다.) 해당 문제는 .Net Compact Framework와 Visual Studio 2008의 버그로 SmartX Framework와는 관련이 없습니다.

4. 프로젝트에서 사용된 전체 폼의 개수가 많은 경우 SmartForm(부모폼) + SmartInnerForm(자식폼) 형태의 MDI(Multi Document Interface)보다 SmartForm(부모폼)+SmartForm(자식폼) 형태로 MDI를 구성하여 사용바랍니다. SmartForm(부모폼) + SmartInnerForm(자식폼) 형태의 MDI는 Form 컨테이너 객체위에 포함되므로 폼의 개수가 많아지는 경우 디자인 모드에서 한번에 로드되는 컴포넌트의 개수가 많아져서 폼의 개수만큼 화면의 갱신시간이 증가됩니다.

.
.

5. SmartX에서 특정 기능의 컴포넌트와 .NET Component의 동일 기능의 컴포넌트를 비교하는 경우 폼 디자인창의 로딩 시간과 응용 프로그램 에러 발생 유무는 크게 차이가 없었습니다.

맨 위로
팝업닫기

(주)에이치앤에스('http://hnsts.co.kr/'이하 '(주)에이치앤에스 웹사이트')는 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

(주)에이치앤에스 웹사이트는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

○ 본 방침은 2011년 4월 1일부터 시행됩니다.

1. 개인정보의 처리 목적 (주)에이치앤에스 웹사이트는 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적 이외의 용도로는
사용되지 않으며 이용 목적이 변경될 시에는 사전동의를 구할 예정 입니다.
가. 민원사무 처리
민원인의 신원 확인, 민원사항 확인, 사실조사를 위한 연락 · 통지, 처리결과 통보 등을 목적으로 개인정보를 처리합니다.
2. 개인정보 파일 현황
1. 개인정보 파일명 : 고객의 소리
  • - 개인정보 항목 : 이메일, 휴대전화번호, 자택전화번호, 이름, 서비스 이용 기록, 접속 로그, 쿠키, 접속 IP 정보
  • - 수집방법 : 웹사이트
  • - 보유근거 : 이용자 동의
  • - 보유기간 : 3년
3. 개인정보의 제3자 제공에 관한 사항
① (주)에이치앤에스 웹사이트는 원칙적으로 이용자의 개인정보를 제1조에서 명시한 목적 범위 내에서 처리하며, 본래의 범위를 초과하여 처리하거나 제3자에게 제공하지 않습니다.
다만, 다음의 경우에는 개인정보를 제3자에게 제공할 수 있습니다.
  • – 이용자가 사전에 제3자 제공 및 공개에 동의한 경우
  • – 법령 등에 의해 제공이 요구되는 경우
  • – 서비스의 제공에 관한 계약의 이행을 위하여 필요한 개인정보로서 경제적/기술적인 사유로 통상의 동의를 받는 것이 현저히 곤란한 경우
  • – 개인을 식별하기에 특정할 수 없는 상태로 가공하여 이용하는 경우
4. 정보주체의 권리,의무 및 그 행사방법 이용자는 개인정보주체로서 다음과 같은 권리를 행사할 수 있습니다.
① 정보주체는 (주)에이치앤에스 웹사이트에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.
  • 1. 개인정보 열람요구
  • 2. 오류 등이 있을 경우 정정 요구
  • 3. 삭제요구
  • 4. 처리정지 요구
② 제1항에 따른 권리 행사는 (주)에이치앤에스 웹사이트에 대해 개인정보 보호법 시행규칙 별지 제8호 서식에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 (주)에이치앤에스 웹사이트는
이에 대해 지체 없이 조치하겠습니다.
③ 정보주체가 개인정보의 오류 등에 대한 정정 또는 삭제를 요구한 경우에는 (주)에이치앤에스 웹사이트는 정정 또는 삭제를 완료할 때까지 당해 개인정보를 이용하거나 제공하지 않습니다.
④ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보 보호법 시행규칙 별지 제11호 서식에 따른 위임장을
제출하셔야 합니다.
5. 제3자에게의 개인정보 제공
① (주)에이치앤에스 웹사이트는 다음의 개인정보 항목을 처리하고 있습니다.
<민원사무 처리>
– 필수항목 : 이름, 휴대전화번호, 자택전화번호, 이메일, 서비스 이용 기록, 접속로그, 쿠키, 접속IP 정보
6. 개인정보의 파기
(주)에이치앤에스 웹사이트는 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.
  • –파기절차 이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.-파기기한이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.
  • –파기방법 전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다. 종이에 출력된 개인정보는 분쇄기로 분쇄하거나 소각을 통하여 파기합니다.
7. 개인정보의 안전성 확보 조치
(주)에이치앤에스 웹사이트는 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.
1. 정기적인 자체 감사 실시
개인정보 취급 관련 안정성 확보를 위해 정기적(분기 1회)으로 자체 감사를 실시하고 있습니다.
2. 개인정보 취급 직원의 최소화 및 교육
개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.
3. 내부관리계획의 수립 및 시행
개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.
4. 해킹 등에 대비한 기술적 대책
(주)에이치앤에스 웹사이트는 해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로그램을 설치하고 주기적인 갱신·점검을 하며 외부로부터 접근이 통제된 구역에
시스템을 설치하고 기술적/물리적으로 감시 및 차단하고 있습니다.
5. 개인정보의 암호화
이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의
별도 보안기능을 사용하고 있습니다.
6. 접속기록의 보관 및 위변조 방지
개인정보처리시스템에 접속한 기록을 최소 6개월 이상 보관, 관리하고 있으며, 접속 기록이 위변조 및 도난, 분실되지 않도록 보안기능 사용하고 있습니다.
7. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여
외부로부터의 무단 접근을 통제하고 있습니다.
8. 문서보안을 위한 잠금장치 사용
개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하고 있습니다.
9. 비인가자에 대한 출입 통제
개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.
8. 개인정보 보호책임자 작성
① (주)에이치앤에스 웹사이트는 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를
지정하고 있습니다.
▶ 개인정보 보호책임자
성명 : 김진효
소속 : (주)에이치앤에스
전화번호 : 02-6402-8001
이메일 : hns@hnsts.co.kr
② 정보주체께서는 (주)에이치앤에스 웹사이트의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및
담당부서로 문의하실 수 있습니다. (주)에이치앤에스 웹사이트는 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.
9. 개인정보침해 구제방법
정보주체는 개인정보침해로부터 구제받고자 하는 경우 다음과 같은 기관에 도움을 요청할 수 있습니다.
▶ 개인정보 침해신고센터 (한국인터넷진흥원 운영)
– 소관업무 : 개인정보 침해사실 신고, 상담 신청
– 홈페이지 : privacy.kisa.or.kr
– 전화 : (국번없이) 118
– 주소 : (138-950) 서울시 송파구 중대로 135 한국인터넷진흥원 개인정보침해신고센터
▶ 개인정보 분쟁조정위원회 (한국인터넷진흥원 운영)
– 홈페이지 : privacy.kisa.or.kr
– 전화 : (국번없이) 118
– 주소 : (138-950) 서울시 송파구 중대로 135 한국인터넷진흥원 개인정보침해신고센터
10. 개인정보 처리방침 변경
① 이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할
것입니다.
팝업닫기

본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다.

게시일 : 2011.4.1