Q&A

  • 감사합니다. 추가적인 중요한 질문입니다.
선생의 답변에 진심으로 감사드립니다.

그런데 이런 의문은 아직 해결이 안되는군요.

사실 이부분의 문제는 단순한 문제가 아니라 무척 심도있게 다뤄져야 할 것이기 때문에 다른 분들도 관심을 가지셔야 할 것 같군요.

참고로 저는 델파이에서 객체지향과 상속성의 기능을 거의 완벽하게 사용하려고 하고 있는데 이 구현과정에서 아주 상당한 수준의 코딩양의 절약과 효율을 보고 있으나 리소스 문제로 애를 먹고 있습니다.

저는 최근 한주이내의 국내외 고급 서적 약 30 권 이상의 델파이 서적을 가지고 있는데 심도 있는 상속성 거론은 단 한권에서만 보았고 그 책도 약 3 페이지에 걸쳐 거론되어 있는데 저는 제 프로그램에서 약 95 % 이상을 상속성을 사용하여, 파일의 크기와 코딩재사용성과 유지보수성의 장점을 아주 높게 평가하고 있습니다.

실제 상속성 이용전과는 비교할 수 없는 상당한 진보가 있지만 이부분에 대한 서적이 없어서 제 경험적인 노하우를 많이 습득한 상태인데 결과적으로 메모리 관리에 대한 제 일천한 지식으로 한계를 느끼고 있습니다.

여러 고수들의 도움이 있다면 이부분에 대한 부족함이 크게 채워질 것으로 믿습니다.



다음과 같은 의문을 정리해 보겠습니다.



1. 그렇다면 참조가 되는 unit 안의 procedure 나 function , 각종 변수들은 실제 그들이 담겨있는 자신의 폼이 호출되지 않아도 다른 폼에서 참조할 수 있도록 해 놓은 상태만으로 이미 메모리의 자리를 차지하게 되면 그 만큼 리소스를 낭비하게 되는 것 아닙니까 ? 그렇다면 어떻게 리소스 낭비를 막을 수 있는지요 ?

2. 그리고 메모리 낭비를 어떤방법으로 확인할 수 있는지요 ?

3. 또, 참조되도록 public 에 선언한 변수 이외의 함수와 프로시져는 어떤 기준으로 메모리를 차지하게 되는지요.

결과적으로 참조되도록 public 으로 선언된 각종 변수와 함수, 프로시져가 많을 수록 실제 메모리의 부족현상은 심화될 수 밖에 없는것인지요 ?

4, 만일 A 유닛을 B 유닛에서 참조하고 B 는 C 에서 참조하는 상황에서 메인폼이 D 일 경우, C 가 호출되어 화면에 보여지게 될 때 비로소 A 와 B 의 유닛안의 변수와 프로시저 함수등이 메모리 리소스를 차지하게 되는 것이고 C 가 폼을 닫게 되면 역시 참조를 제공하는 A 와 B 유닛의 변수와 프로시저, 함수등의 리소스도 함께 제거되는 것입니까 ?



2  COMMENTS
  • Profile
    아무게 1999.06.23 19:58


    이용민 께서 말씀하시기를...



    > 다음과 같은 의문을 정리해 보겠습니다.

    >

    > 1. 그렇다면 참조가 되는 unit 안의 procedure 나 function , 각종 변수들은 실제 그들이 담겨있는 자신의 폼이 호출되지 않아도 다른 폼에서 참조할 수 있도록 해 놓은 상태만으로 이미 메모리의 자리를 차지하게 되면 그 만큼 리소스를 낭비하게 되는 것 아닙니까 ? 그렇다면 어떻게 리소스 낭비를 막을 수 있는지요 ?



    -> 흐흐.....그렇지 않습니다....얼마나 큰 프로젝트를 하고 계신지는

    모르겠으나 리소스가 낭비는 님이 생각하시는 것보다 크지 않습니다.

    그것은 정적인 관리가 아니라 동적인 관리가 가능하기 때문입니다.

    그리고 하나 착각하시는 것이 있으신거 같은데 리소스는 쓰라고 있는

    것입니다. 펑펑 남아도는 리소스를 안쓴다는 것은 정말 우수운 일입니다.

    다만 우리는 우리가 쓴 리소스를 작업이 끝난 후 쓴만큼 돌려 주면

    되는 것입니다...





    > 2. 그리고 메모리 낭비를 어떤방법으로 확인할 수 있는지요 ?



    -> 수동적인 방법으로 프로그래머의 자질입니다.

    자동적인 방법으로 터보파워사의 메모리 슬루스,

    누메가사의 바운드체커등이 있습니다.





    > 3. 또, 참조되도록 public 에 선언한 변수 이외의 함수와 프로시져는 어떤 기준으로 메모리를 차지하게 되는지요.

    > 결과적으로 참조되도록 public 으로 선언된 각종 변수와 함수, 프로시져가 많을 수록 실제 메모리의 부족현상은 심화될 수 밖에 없는것인지요 ?



    -> 음....정말 갈수록 태산이군

    정말 얼마나 큰 프로젝트길래 저런 적정을 하는 걸까.....

    델파이를 무시하지 마세요. 메모리의 부족현상은 프로그래머의 자질입니다.

    프로그래머가 사용한 리소스는(동적생성) 프로그래머 자신이 해결해야 합니다.



    > 4, 만일 A 유닛을 B 유닛에서 참조하고 B 는 C 에서 참조하는 상황에서 메인폼이 D 일 경우, C 가 호출되어 화면에 보여지게 될 때 비로소 A 와 B 의 유닛안의 변수와 프로시저 함수등이 메모리 리소스를 차지하게 되는 것이고 C 가 폼을 닫게 되면 역시 참조를 제공하는 A 와 B 유닛의 변수와 프로시저, 함수등의 리소스도 함께 제거되는 것입니까 ?





    -> 뭐든지 자동으로 하려는 생각이 팽배 하시군

    A, B 유닛이 C의 자식일 경우이면 함께 제거되고

    그게 아니라면 A, B 유닛이 종료될때 델파이님이 쓰신 리소스는

    자신이 해제 할테고, 프로그래머라고 하는 선생이 쓰신 리소스는

    선생의 자질에 달려 있소.....









  • Profile
    이용민 1999.06.24 11:23
    (주) 천의무봉의 이용민입니다.

    선생의 말씀 고맙습니다.

    그런데 깨끗한 정리는 안되는 군요.

    자질을 말씀하시기에 이왕 자질이 의심받고 있으니 더 깍일것이 없다는 생각해 한가지 더 여쭤보지요.

    프로시저나 함수등은 참조를 위해 공개되어 사용되도록 하면 이것들도 리소스를 차지하게 되는 겁니까 ?

    참고 말씀을 좀 드리면

    선생께서는 얼마나 큰 프로젝트냐고 물으셨는데

    제가 하고 있는 프로젝트의 크기가 문제가 아니라 저는 국내외의 거의 대부분의 프로그래머들이 실제 깊이 활용하지 못하고 있는 객체지향형 프로그램의 핵심이라 할 수 있는 상속성에 대한 활용을 거의 모든 프로그램에서 사용하고 있기 때문에 어떤 부분도 소홀히 다룰 수 있는 입장이 아니거든요.

    선생께서는 모든 코딩과 폼을 상속성으로 사용해 보신적이 있으십니까 ?

    말씀드린데로 국내외 고급서적 약 30 권이상을 가지고 있는데 이중 단 한권에서만 약 3 페이지에 걸쳐 상속성을 다뤄주고 있지요.

    아마도 깊은 부분이라서 실전 노하우가 없으면 사용에 어려움이 많을 것으로 압니다.

    저는 이부분에 상당한 진척을 보고 있거든요.

    그래서 다른 프로그래밍 기법과는 구현 방법이 달라 코딩양과 재사용성이 아주 뛰어난 편인데 C 에서 시작한 프로그래밍의 지식이 아니어서 이부분에 대한 부족함을 늘 느끼고 있습니다.

    도움주신 말씀이 사실 저도 알고 있는 바인데 좀 더 깊은 내용의 조언을 필요해서 여쭤보려고 합니다.

    아 그리고 선생께서 혹시 말씀하셨던 리소스 자동 확인 프로그램을 가지고 계시면 어떻게 입수할 수 있는지 조언을 좀 부탁드립니다.

    그럼 좋은 시간되십시오.







    • 안창주
    • 1999.06.23 20:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.06.23 21:02
      안창주 께서 말씀하시기를... > 저는 델파이 책을 처음보는 초보자입니다. > 1데이타베이스에서Alias라는...
    • 최석기
      1999.06.23 20:25
      이종진 께서 말씀하시기를... > DBGrid에서 text값을 다른값으로 바꿔주는 방법을 알고 싶습니다. > ...
    • VMNT
    • 1999.06.23 15:12
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이슬
      1999.04.15 03:34
      1. ParamByName과 FieldByName의 차이점이 무엇인지요? 2. 폼에 성별(남,여:radiobutton) 체크가 있는데...
    • 김영해
      1999.04.17 08:00
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 신호성
      1999.04.16 01:36
      > 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다. > 근데, DBGrid에...
    • 박종모
      1999.04.15 04:44
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 글쎄요
      1999.04.15 05:41
      추가로 답변합니다. 2번째 건데 답변이 잘 못된 것 같아요. 가장 좋은 방법은 DBGRID 대신에 STRINGGRID...
    • 이용민
    • 1999.06.23 12:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하남수
      1999.06.23 19:46
      이용민 께서 말씀하시기를... > 안녕하십니까 ? (주) 천의무봉의 이용민입니다. > 작업하다 간간히 의문...
    • 정남용
    • 1999.04.16 01:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김정선
      1999.04.23 00:51
      저두 같은 문제로 올렸는데 고맙게도 web@ns.nilex.co.kr라는 분이 메일을 보내왔더라구요.. Autoexec.bat...
    • 이정욱
      1999.04.17 02:26
      저도 역시 이런 문제 때문에 고생을 한적이 있었습니다. 전 엑세스 DB를 사용했을때 문제였죠. 그래서 결...
    • 김정선
      1999.04.16 22:56
      저두 같은 문제가 있었어요.. 아시는 분 꼭좀 가르쳐 주세요 전 델파이4.0 오라클 8.0.5버젼을 가지고 ...
    • francis
    • 1999.06.23 12:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이용민
    • 1999.06.23 09:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 아무게
      1999.06.23 19:58
      이용민 께서 말씀하시기를... > 다음과 같은 의문을 정리해 보겠습니다. > > 1. 그렇다면 참조가 ...
    • 이용민
      1999.06.24 11:23
      (주) 천의무봉의 이용민입니다. 선생의 말씀 고맙습니다. 그런데 깨끗한 정리는 안되는 군요. 자질을 말...
    • 이정욱
      1999.04.16 02:17
      아무래도 케이블을 그냥 두갈래로 뽑으신것 같군요. 그렇게 하면 아마도 제데로 안될것 같네요... 그것보...
    • 화랑
      1999.04.16 03:06
      답변 감사합니다.. 문제는 제가 그 서버를 건드릴수가 없습니다. 지금 현재 나와있는 것은 프린터로 가...
    • 이정욱
      1999.04.16 05:08
      프린터포트를 제어하는것은 문제가 없습니다. 그것을 지원하는 컴포넌트를 본적이 있는데.... 아마도 찾아...
    • 화랑
      1999.04.17 18:11
      매번 감사합니다.. 저기 한가지만 더 하고 싶은데.. 프린트는 앱슨을 쓰거든요.. 혹시 서로 전달되는 ...
    • 강민주
    • 1999.06.23 09:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박흥태
      1999.06.25 03:38
      강민주 께서 말씀하시기를... > 안녕하세요.^^; > 외상장부처리를 위해 외상테이블과 수금 테이블로 > 2...
    • 남윤혁
    • 1999.04.15 22:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 남윤혁
      1999.04.16 02:34
      -.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
    • 남윤혁
      1999.04.16 00:37
      다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
    • 이정욱
      1999.04.16 01:06
      화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
    • 안치봉
      1999.04.15 23:28
      남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
    • 박성훈
    • 1999.06.23 05:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이용민
      1999.06.23 12:56
      질문에 대한 답은 아니지만 얼핏보이기에... 선생이 쓰시는 이코드는 다음과 같이 간단히 할 수 있거든...
    • 고부성
    • 1999.04.16 00:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.16 01:04
      음.. 두가지 가능성이 있습니다. 먼저 첫째, Path가 잘못되어있을 경우이죠. 실제로 C:sample.txt 에 저...
    • 이현옥
    • 1999.06.23 05:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.06.23 08:22
      이현옥 께서 말씀하시기를... > 급하게 도사님들의 처방을 기다립니다. > > 프로그램을 실행시키면 > ...
    • 이정석
    • 1999.04.16 00:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.16 00:56
      이정석 wrote: > 안녕하십니까? > ActvieX Form으로 웹에서 데이타베이스를 사용하는 프로그램을 > 만...
    • 류성호
      1999.06.23 05:13
      변상준 께서 말씀하시기를... > 델파이4 프로페셔널 버전에서 오라클 7.3.2 연결을 하는데 준비 사항 및 ...
    • 남윤혁
    • 1999.04.15 22:13
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 황하강
      1999.06.23 04:00
      [질문]기본 프린터의 온라인 상태 체크... 델파이 2.0 에서 기본 프린터가 켜져있는지, 온라인 상태인지...
    • 남윤혁
      1999.04.16 02:34
      -.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
    • 최석기
      1999.06.23 17:28
      황하강 께서 말씀하시기를... > [질문]기본 프린터의 온라인 상태 체크... > 델파이 2.0 에서 기본 프...
    • 남윤혁
      1999.04.16 00:37
      다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
    • 황하강
      1999.06.24 00:44
      최석기 께서 말씀하시기를... > 황하강 께서 말씀하시기를... > > [질문]기본 프린터의 온라인 상태 체크...
    • 이정욱
      1999.04.16 01:06
      화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
    • 안치봉
      1999.04.15 23:28
      남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
    • 김민오
    • 1999.06.23 02:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정석
      1999.04.16 00:10
      안녕하십니까? ActvieX Form으로 웹에서 데이타베이스를 사용하는 프로그램을 만들려고 합니다. 아시겠...
    • 신인재
      1999.04.16 00:56
      이정석 wrote: > 안녕하십니까? > ActvieX Form으로 웹에서 데이타베이스를 사용하는 프로그램을 > 만...
    • 고부성
    • 1999.04.16 00:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김민오
      1999.06.23 02:45
      네트웍으로 연결된 파라독스가 엑세스 바이올레이션과 파라이 일치하지 않느다고 에러가 나옵니다. sql문...
    • 이정욱
      1999.04.16 01:04
      음.. 두가지 가능성이 있습니다. 먼저 첫째, Path가 잘못되어있을 경우이죠. 실제로 C:sample.txt 에 저...