게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

re: ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^;
작성자: 송원석
작성일시: 2006-12-16 12:20,  조회수: 3,495
안녕하세요? 송원석입니다. ^_^

잠시 올려주신 글을 살펴봤습니다. 정말 많은 분량이면서도 정성들인 내용이네요. 이렇게까지 정성스레 질문을 올려주셨으니 저로서도 최선을 다해서 답변을 드릴 수 밖에 없을 것 같습니다.

다만, 저로서는 올려주신 코드가 좋다 또는 나쁘다라고 단번에 뭐라고 평가내릴 수는 없을 것 같습니다. 만일 올려주신 라이브러리를 사용해보지도 않고서 그런 평가를 내린다면 그건 제가 너무 오만하다던가 제 주제를 모른다고 밖에는 말할 수 없을 것 같네요. 게다가 이런 부류의 코드는 한 두번 사용해보는 것만으로는 그 실제 가치를 알기도 어려우니까요. 이 부분에 대해서는 답변의 마지막 부분에 제 개인적인 의견을 밝히는 것으로 대신하도록 하겠습니다. 일단은 먼저 답변부터 드리도록 하구요. ^_^


질문 1) 제가 지금까지 발전 시킨 모듈입니다. 성능상 문제가 없을까요??

답변 1) 만일 성능상의 문제가 있다고 한들, 크게 문제가 되지 않을 것이라는 것이 제 의견입니다. 물론 엄밀하게 말해본다면 그냥 코드를 한 라인씩 작성하는 것보다는 당연히 그 실행 속도가 느리겠죠. 그러나 그건 어짜피 피할 수가 없는 일이고, 이런 라이브러리를 작성하는 가장 큰 이유가 실행 속도를 다소 희생시키는 한이 있더라도 코드를 표준화시키고, 프로젝트 구성원들의 스킬에 상관없이 일정수준 이상의 품질을 지닌 코드를 만들어 내는 것이라는 점을 고려해볼 때, 그만한 가치는 충분하다고 봅니다.

만일 성능만을 우선시하는 논리대로라면 모든 프로그램은 어셈블리로 짜야하지 않겠습니까? 작업의 퍼포먼스와 품질을 보장할 수 있다면 반대급부는 충분히 얻는 것이라고 생각합니다.


질문 2) 클래스를 사용하다보니 메서드의 값을 수정해야 할때가 있습니다. 그래서 시도 해본게... let , get , set 입니다. let , get 은 용도를 알겠는데.. set 은 많이 애매하내요;;

답변 2) 이미 잘 아시겠지만 비주얼베이직 계열의 언어에서 변수에 값을 설정하는 방법에는 다음과 같은 두 가지 방법이 존재합니다.
1. : MyVal01 = 1
2. : Set  MyVal02 = SomeObject
먼저 1. 번의 경우는 일반적인 변수에 값을 설정하는 것이고, 2. 번의 경우는 개체 변수에 임의의 개체 참조를 할당하는 것이죠. Let 과 Set 의 차이도 바로 이와 같습니다. 클래스에 존재하는 어떤 프로퍼티가 단지 일반적인 값 변수라면 Let 을 사용하면 되는 거죠. 그러나 만일 프로퍼티가 개체 변수라면 Set 을 사용해야만 합니다. 바로 그 차이입니다.
http://www.egocube.pe.kr/Lecture/Content/asp-script/200208190001
이 문서를 보시면 문서 중간쯤에 이에 관한 설명이 나와 있습니다.


질문 3), 3-1) ...

답변 3), 3-1) 민망하긴 하지만 그냥 솔직하게 제 의견을 말씀드리도록 하겠습니다. 장윤태님께서는 아직 완벽하게 Let, Set, Get 문을 이해하고 계시지 못한 것 같습니다. 사실 letConn 프로퍼티는 자주 사용하면 약간 위험할 것도 같습니다만, 확실히는 말씀드리기 어렵네요. 왜냐하면 클래스의 Initialize 이벤트에서 이미 하나의 연결 개체가 생성된 상태에서 letConn 프로퍼티가 실행되면 또 다른 연결 개체가 생성되고 그 개체가 Conn 변수에 할당됩니다. 바로 이 부분이 문제입니다. 엄밀하게 말해서 첫 번째 연결 개체는 아직 오픈된 상태로 남아있게 되는 것이라고 생각됩니다. 즉 참조는 해제되었지만 연결 개체 자체는 남아있고 더군다나 연결이 오픈된 상태인거죠. 따라서 먼저 기존의 연결 개체 상태를 확인하여 존재하는 연결을 닫고 Nothing 처리를 해주고 난 다음에 새로운 개체를 할당하는 것이 보다 안전하리라고 생각합니다. ^_^;;;

그리고 말씀하신 것처럼 이 프로퍼티는 프로시저로 만드는 편이 더 나을 것 같습니다. 어떤 기능을 구현함에 있어서 프로퍼티로 구현할 것인지 프로시저로 구현할 것인지를 결정하는 가장 간단한 방법은 전산 커리큘럼 과정의 가장 기초부분을 떠올려 보시는 것입니다. 예를 들어 동물이라는 클래스를 만든다면 동물의 속성, 즉 색깔, 이름, 식성과 같은 요소들은 프로퍼티로 만드는 것이 적당하겠죠. 그러나 동물의 행위, 즉 울음, 걷기, 뛰기 등과 같은 것들은 메서드로 만드는 것이 적당합니다. letConn 프로시저가 하는 작업은 새로운 연결 개체를 생성하여 클래스 변수에 할당하는 것이죠. 저는 이 작업이 동작에 해당된다고 봅니다. 따라서 프로시저로 구현하는 편이 더 좋다고 생각합니다. 그러나 지금처럼 프로퍼티로 만드신다 한들 문제가 될 것은 없을 것 같습니다.


질문 4) 메서드 안에 있는 개체는 접근이 불가한가요? 개체의 프로퍼티를 조정할려고 하는데... 접근이 안되내요.(자바스크립은 되던데요)

답변 4) 자바스크립트는 조금 특이한 사례입니다. 엄밀하게 말씀드려서 이 경우는 메서드 내의 지역 변수에 접근이 가능한 것이 아니라, 메서드 내부에서 변수를 선언하지만 변수 자체를 전역 변수로 선언하는 것이니까요. 만약 비슷한 기능을 얻고 싶으시다면 ByVal 인자와 ByRef 인자의 차이점에 대해서 알아보시기를 권해드립니다. ByRef 인자를 사용하시면 메서드로부터 리턴값 외에도 값을 얻으실 수가 있습니다.

그러나 지금 장윤태님께서 원하시는 것은 이런 기능이 아닌 것 같습니다. 예를 들어서 레코드셋의 정렬을 변경하고 싶으시다면 그 것도 역시 인자로 넘기시면 됩니다. 안타깝게도 비베스크립트에서는 Optional 키워드가 지원되지 않기 때문에 여러가지 인자를 모두 넘기셔야만 합니다. 예를 들어서...
usp_RunSQLReturnGR(strSPName, Params())
메서드는...
usp_RunSQLReturnGR(strSPName, Params(), strSort, strFilter)
와 같은 형태로 변경하셔야만 되겠죠.


질문 5), 6) 트랜잭션을 시도 하려합니다.

답변 5), 6) 역시 이 프로퍼티도 프로시저로 만드시는 것이 옳을 듯 합니다. Sub 가 적당하겠네요. 괜히 프로퍼티로 만드셨기 때문에 필요없는 = "" 가 코드에 붙게 됩니다. 그리고 트랜젝션은 이 경우 연결 개체 단위로 만들어지므로 일단은 원하시는 대로 동작할 것이라고 말씀드릴 수 있겠네요. 그러나 이 부분의 코드도 역시 장윤태님께서 Let, Set, Get 문을 모두 이해하고 만드신 것이 아니기 때문에 조금 비효율적인 코드가 된 경향이 있습니다. ^_^;;;


결론적으로 제 의견을 말씀드린다면 장윤태님의 가장 최우선의 목표는 Let, Set, Get 문을 완벽하게 이해하시는 것이라고 생각됩니다. 그리고 그 다음에 필요한 목표는 프로퍼티와 프로시저를 구분하여 사용하는 요령을 터득하시는 것이구요. 그리고 나면 한 결 코드가 깔끔해지고, 이해하기 쉬운 코드로 바뀌어져 있을 것이라고 생각합니다.

감사합니다.
IP 주소: 218.49.112.18
전체 2 건의 댓글이 존재합니다.

장윤태

^.^ ( _ _) 고견 감사합니다. 몇번더 읽어 봐야 겠내요.. ^^
2006-12-17 18:02

장윤태

하루 하루 뜻깊은 시간되세용... 즐건 연말... 메리구리스마스~~ ㅋ
2006-12-17 18:02
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 22 페이지입니다.
게시물
1,612

DB 내용을 자바스크립트로.. 아래 질문 추가입니다.. 도움좀..

이영주

2007-01-09 1,182
1,611

re: DB 내용을 자바스크립트로.. 아래 질문 추가입니다.. 도움좀.. [3]

송원석

2007-01-10 3,162
1,610

ASP로 트리구조 만들고 있습니다. 질문좀.. [3]

이영주

2007-01-08 12,464
1,609

페이지 UI 구성 문제입니다. 효율적인 UI 인데.. 딱 한가지가 걸리내요;;

장윤태

2007-01-05 4,225
1,608

re: 페이지 UI 구성 문제입니다. 효율적인 UI 인데.. 딱 한가지가 걸리내요;; [1]

송원석

2007-01-08 3,218
1,607

혹시 어떠한 UI 구성을 사용하시는지요? 모든 파일별로

장윤태

2007-01-08 3,046
1,606

re: 혹시 어떠한 UI 구성을 사용하시는지요? 모든 파일별로 [8]

송원석

2007-01-08 3,242
1,605

윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ ^^

Feel~

2006-12-21 1,476
1,604

re: 윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~

송원석

2006-12-21 3,408
1,603

re: 윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~

Feel~

2006-12-30 1,234
1,602

re: 윈도우 2000 서버에 Dextupload 2.0을 이용하여 file server로 SaveAsVirtual method를 이용하여 업로드를 구현 시 문제 좀 도와주세요~~ [1]

송원석

2006-12-31 4,251
1,601

ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^;

장윤태

2006-12-15 4,365

re: ADO 활용할려고 하는데... 이부분에서 막히내요. 가르침을 주세요. ^^; [2]

송원석

2006-12-16 3,495
1,599

특정 파일이 다운로드 안되는 이유

박우문

2006-12-13 3,297
1,598

re: 특정 파일이 다운로드 안되는 이유

송원석

2006-12-13 3,232
1,597

re: 특정 파일이 다운로드 안되는 이유

박우문

2006-12-13 3,355
1,596

re: 특정 파일이 다운로드 안되는 이유

송원석

2006-12-13 3,250
1,595

UTF형식의 파일 저장

이길용

2006-12-04 3,202
1,594

re: UTF형식의 파일 저장 [3]

송원석

2006-12-05 3,722
1,593

데이터 손실 문제

질문자

2006-11-02 1,286
1,592

re: 데이터 손실 문제

송원석

2006-11-02 3,253
1,591

파일업로드시 로딩효과에 대해

질문

2006-10-24 1,365
1,590

re: 파일업로드시 로딩효과에 대해 [3]

송원석

2006-10-24 4,270
1,589

웹에서 엑셀데이타 다루기 [1]

몽중인

2006-10-23 4,122
1,588

re: 웹에서 엑셀데이타 다루기

송원석

2006-10-23 4,557