게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
re: 오늘은 회원 정보 수정에 대한 질문인데요 ^^ |
---|
작성자: 송원석
작성일시: 2004-10-01 20:42,
조회수: 2,778
|
오마르님의 질문은 거의 매번 사지선다형 문제가 아닌 논술 시험 문제를 연상시킨답니다. ^_^;;
말씀하신 문제는 아마 대부분의 프로그래머들이 별다른 생각없이 넘어가는 부분일 것입니다. 저 역시도 마찮가지구요, 제 기억으로는 정말 순수한 마음으로 프로그램에 대해서 고민하던 시절에 잠깐 생각해 본 적이 있는 주제인 것 같습니다. 그 뒤로 얼마의 시간이 흐른 뒤 부터는 이미 타성에 잠겨서 습관적으로 아무 생각없이 사용해온 방법이기도 하구요. 아마도 이 문제는 뛰어난 실력을 가지고 계신 분들에게 여쭤봐도 각각 다른 답변이 나오기가 쉽지 않을까 생각해봅니다. 일단 제 나름대로의 의견을 말씀드려 보겠습니다. 저는 이 문제를 몇 가지 관점에서 생각해보고자 합니다. 한 가지는 말씀하신 것처럼 업데이트해야 하는 정보의 갯수입니다. 말씀하신 대로 많은 항목에 대해서 이러한 작업을 처리해야 한다면 단 하나의 정보를 처리하기 위해서 전 항목을 업데이트해야만 하는 비효율적인 문제가 발생하게 될 것입니다. 따라서 업데이트해야 할 항목이 적정한 수준 이상으로 많고 한 두 개의 항목만 업데이트가 필요하다면 말씀하신 것처럼 몇 가지 항목씩 그룹을 지어서 업데이트를 하는 방법도 충분히 고려할만 한 것 같습니다. 그러나 이 때 고려해야만 할 점은 특정 항목이 변경되었는 지를 검사하는데 소요되는 비용과 일괄 업데이트시에 필요없는 데이터에 대해서 발생하는 트래픽과 같은 비용을 비교하여 어떤 방식이 더 효율적인지를 판단하는 것이 이슈가 되겠지요. 또한 개개인이 작성한 변경 점검 메커니즘이 얼마만큼 효율적으로 작성될 수 있을지, 그리고 프로젝트 전체에 걸쳐 모든 구성원들이 동일한 퀄리티를 얻어낼 수 있는지 등이 관건이 될 것입니다. 그리고 이에 대한 판단은 해당 프로젝트의 환경을 고려하여 매번 다시 생각해봐야 하겠지요. 또한 유지 보수의 용이성등도 고려를 해 봐야 할 것입니다. 결국 제 의견은 오마르님의 고민이 절대로 쓸모없는 고민이 아니라는 것과 그에 따르는 기술적인 문제들 뿐만 아니라 프로젝트 전반에 미치는 영향과 유지 보수까지 고려해야만 한다는 점입니다. 그리고 재미있는 것은 이미 오마르님이 고민하신 것과 같은 문제를 위한 메커니즘이 ADO 와 ADO .NET 에 존재한다는 것입니다. 실제로 웹 프로젝트에서 사용되는 것을 본적은 한 번도 없지만 사실은 이미 이러한 문제점에 대응할 수 있는 기능들이 존재하고 있답니다. ^_^ 예를 들어서 ADO 의 Recordset 개체를 살펴보도록 하겠습니다. 일반적으로 Recordset 객체의 Field 개체를 사용할 때 Value 프로퍼티만을 사용하는 것이 일반적입니다. 즉 다음과 같은 코드가 대표적일 것입니다. objRec("Name") objRec.Fields("Name").Value이 두 라인의 코드는 완벽하게 동일한 코드입니다. 원래는 두 번째 라인의 코드가 정상적이라고 말할 수 있습니다만 디폴트 프로퍼티들을 생략하여 첫 번째 라인의 코드와 같은 결과가 나오는 것이죠. 그런데 놀랍게도 사실 Field 개체에는 Value 프로퍼티 뿐만이 아니라 OriginalValue 프로퍼티와 UnderlyingValue 프로퍼티가 존재합니다. OriginalValue 프로퍼티는 Recordset 개체가 생성될 때 설정된 원본값입니다. 반면 UnderlyingValue 프로퍼티는 데이터베이스에 현재 존재하는 값이죠. MSDN 을 살펴보시면 이와 관련된 예제들을 쉽게 찾아보실 수 있습니다. OriginalValue and UnderlyingValue Properties Example (VB) 이 밖에도 ADO 관련 서적을 살펴보시면 관련 예제들을 찾아보실 수 있을 것입니다. 엄밀하게 말해서 사실 이 기능은 한 사용자가 데이터를 장시간에 걸쳐서 편집하고 있는 사이에 다른 사용자가 원본 데이터를 수정했는지 여부를 판단할 때 사용되는 기능입니다만 오마르님의 뜻하시는 부분에서도 활용이 가능하다고 생각됩니다. ^_^ 또 한 가지 관점은 데이터베이스의 잠금과 관련된 부분입니다. 어짜피 데이터베이스에서 지원되는 잠금의 최소 수준은 행 잠금입니다. 따라서 하나의 행에서 한 컬럼만을 업데이트하던지 모든 컬럼을 업데이트하던지 해당 행은 잠기게 됩니다. 따라서 잠금과 관련된 데이터베이스 수준의 이득은 아주 미미하다고 봐야할 것입니다. 이런 점들을 고려해 볼 때 결국 얻을 수 있는 이득은 네트워크 트래픽상의 이득과 데이터베이스의 내부 처리 과정중의 얼마간의 속도 향상 정도가 아닐까 생각됩니다. 반면 변경 검증 로직으로 인해서 얼마간의 속도 저하가 역으로 발생할 것입니다. 그렇다면 결론은 결국 어느쪽이 더 고려할 만한 가치가 있느냐로 결정되겠지요. 또한 데이터가 얼마나 가치있는 데이터인지도 중요한 판단의 근거가 될 것이라고 생각합니다. ^_^ 감사합니다. |
IP 주소: 211.216.133.198
|
오마르 |
히~ 감사합니다~~ 많은 도움이 됐습니다~ ^-^=
|
2004-10-02 10:30 |
게시물 | ||||
---|---|---|---|---|
745 |
lang2 |
2004-10-01 | 628 | |
744 | 2004-10-01 | 2,480 | ||
743 |
오마르 |
2004-10-01 | 618 | |
2004-10-01 | 2,778 | |||
741 |
똥강아지 |
2004-09-26 | 720 | |
740 | 2004-09-29 | 2,463 | ||
739 |
똥강아지 |
2004-10-01 | 681 | |
738 | 2004-10-01 | 2,527 | ||
737 |
PDF파일이 안열리는거 해결 [2] |
쏭밤 |
2004-09-25 | 990 |
736 |
오마르 |
2004-09-23 | 678 | |
735 | 2004-09-23 | 2,702 | ||
734 | 2004-09-24 | 2,588 | ||
733 |
오마르 |
2004-09-22 | 734 | |
732 | 2004-09-22 | 2,776 | ||
731 |
jinny |
2004-09-24 | 683 | |
730 |
폴라리스 |
2004-09-22 | 745 | |
729 | 2004-09-22 | 2,495 | ||
728 |
nnnekh |
2004-09-20 | 897 | |
727 | 2004-09-20 | 2,947 | ||
726 |
궁금이 |
2004-09-20 | 730 | |
725 | 2004-09-20 | 2,725 | ||
724 |
jinny |
2004-09-24 | 940 | |
723 |
오마르 |
2004-09-20 | 642 | |
722 | 2004-09-16 | 2,644 | ||
721 | 2004-09-16 | 3,154 |