게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
re: 클래스로 DB 입,출,삭제한다면? |
---|
작성자: 송원석
작성일시: 2004-04-27 16:35,
조회수: 3,080
|
안녕하세요? 송원석입니다. ^_^
클래스로 데이터베이스의 입출력을 구현하신다는 말씀이 구체적으로 어떤 것을 의미하시는 것인지 잘 이해하지 못했습니다. VBScript 의 클래스를 사용하여 데이터베이스 입출력을 구현하신다는 말씀이신지 아니면 비주얼 베이직 등의 다른 언어에서 지원되는 클래스를 사용하여 데이터베이스 입출력을 구현하신다는 것인지 조금 모호하네요. ^_^;;; 아마도 전후 사정으로 미루어보건데 제 짐작으로는 VBScript 의 클래스를 사용하여 데이터베이스 입출력을 구현하시려고 한다는 말씀이 아닐까 하고 생각해 봅니다. 따라서 이를 기준으로 몇 가지 말씀을 드리도록 하겠습니다. 일단 결론부터 말씀드리자면 성능을 위해서라면 VBScript 의 클래스로 데이터베이스 입출력을 구현하시는 것은 별 의미가 없습니다. 오히려 클래스 디자인이 잘못된 경우에는 성능을 저하시키는 역효과를 가져오기 쉽습니다. 사실 이는 비단 VBScript 의 클래스뿐만 아니라 다른 모든 프로그래밍 언어에서 지원되는 클래스에도 해당되는 이야기지만 말입니다. 그럼에도 불구하고 클래스를 사용하는 이유는 관리상의 목적이라던가 팀 단위의 프로젝트시 코드의 일관성 유지 때문이라는 것이 제 개인적인 의견입니다. ^_^ 이를테면 이런것 입니다. 대략 십 여명 내외의 인원으로 구성된 팀이 존재한다고 가정해볼 때 PM 의 리더쉽이 특출나지 않는 이상 어느 정도는 각각 개발자 개개인의 취향이 코드상에 나타나게 됩니다. 예를 들면 지금처럼 데이터베이스와 관련된 코드만 생각해 보더라도 커넥션 개체나 레코드셋 개체를 만드는 시점이라든가 변수명, 데이터를 리턴하는 스타일, 연결 문자열을 얻어오는 방식 등이 모두들 제각각일 것입니다. 이러한 공통 코드들을 하나의 클래스로 만들어 둔다면 일관된 방식을 유지할 수 있겠죠. 그리고 수정 사항이 발생하거나 했을 때도 해당 클래스에서 필요한 부분의 구현만 변경해주면 거의 모든 수정이 마무리되게 됩니다. 또한 클래스 자체가 네임스페이스의 역활을 해주므로 인클루드 파일에서와 같이 여러 개의 파일에서 동시에 사용되는 경우 변수명의 중복이라든가 사이드 이펙트가 발생할 가능성이 적어지죠. 이러한 장점들에도 불구하고 역시 성능이라는 관점에서 봤을 때는 VBScript 의 클래스로 구현하는 것이 그다지 큰 효과를 가져다 주지는 못합니다. 차라리 성능을 고려해 본다면 COM+ 컴포넌트를 구현하는 것이 윈도우즈 플렛폼에서는 최선의 선택일 것입니다. 이 점을 충분히 고려하고 결정하시기 바랍니다. ^_^ 클래스를 작성하는 요령은 쉽다면 쉽고, 어렵다면 한없이 어려운 내용인데요. 일단 쉽게쉽게 접근을 해보도록 하겠습니다. 먼저 데이터베이스와 관련된 코드들 중에서 가장 빈번하게 사용되는 코드 블럭들을 몇 가지 추리십시요. 벌써 머리속에 떠오르는 내용들이 몇 가지 있으실 겁니다. 이를 테면 보안을 위해 특별한 위치에 저장된 연결 문자열을 얻어오는 코드 블럭, 프로젝트상에서 사용되는 몇 개의 데이터베이스로의 연결을 정의하는 코드 블럭, 단순 SELECT 쿼리를 실행하여 결과를 레코드셋으로 넘겨주는 코드 블럭, 페이징 코드 블럭 등등... 그리고 그 다음에는 이러한 코드 블럭들이 요구하는 인자가 무엇일지, 또 어떤 형식으로 데이터 결과값을 넘겨주면 사용하는 입장에서 편리할지 등을 생각해 보시구요. 그러면 이 코드 블럭들과 인자들 그리고 결과값을 조합하여 몇 가지 메소드들을 만들어 내실 수 있으실 것입니다. 또한 다음으로는 생성자와 파괴자에 넣어야 할 내용들을 생각해 보는 것도 좋겠죠. 데이터베이스 관련 작업을 할 때 언제나 동일하게 반복되는 것들은 생성자로 구현하고, 반대로 언제나 마무리 해주어야 할 것들은 파괴자로 구현하는 것입니다. 예들 들면 파괴자에는 커넥션 개체나 레코드셋 개체들이 아직 열려있는지 확인하고 닫아주는 코드등을 넣어주시면 되겠죠. 그리고 몇 가지 필요한 변수들 중에서 좀 더 세밀한 제어가 필요한 변수들은 프로퍼티로 구현하시면 되겠구요. ^_^ 이와 비슷한 요령으로 클래스를 작성해보시면 그다지 어렵지 않게 원하시바 구현을 하실 수 있을실 것입니다. 그러나 보다 정교하고 효과적인 클래스를 구현하시려면 디자인 패턴등을 공부해 보시는 것도 좋은 방법일 것입니다. 감사합니다. |
IP 주소: 61.80.31.136
|
김지영 |
정말 감사합니다. 어디서 부터 시작해야 될찌 알겠내용..
|
2004-04-27 16:51 |
게시물 | ||||
---|---|---|---|---|
364 | 2004-04-30 | 5,486 | ||
363 | 2004-04-30 | 3,312 | ||
362 | 2004-04-30 | 3,727 | ||
361 | 2004-04-30 | 3,345 | ||
360 |
오마르 |
2004-04-29 | 1,036 | |
359 | 2004-04-29 | 3,050 | ||
358 |
오마르 |
2004-04-28 | 879 | |
357 | 2004-04-28 | 2,951 | ||
356 |
궁금이 |
2004-04-28 | 967 | |
355 | 2004-04-28 | 3,428 | ||
354 |
궁금이 |
2004-04-28 | 879 | |
353 |
김지영 |
2004-04-27 | 897 | |
2004-04-27 | 3,080 | |||
351 |
오마르 |
2004-04-27 | 959 | |
350 | 2004-04-27 | 3,161 | ||
349 |
오마르 |
2004-04-26 | 949 | |
348 | 2004-04-26 | 3,241 | ||
347 |
영호 |
2004-04-25 | 983 | |
346 | 2004-04-25 | 3,124 | ||
345 |
최경우 |
2004-04-24 | 995 | |
344 | 2004-04-25 | 2,994 | ||
343 |
즐거운 주말되세요~ ^^ [1] |
오마르 |
2004-04-24 | 889 |
342 |
궁금이 |
2004-04-23 | 1,021 | |
341 | 2004-04-24 | 3,531 | ||
340 |
오마르 |
2004-04-23 | 1,009 |