C# DB 코딩 강좌 2008. 11. 14. 21:25

    우리가 만들어 놓은 것은 일종의 DB의 접속이다.

    clip_image001

    예를 들어서 테스트 삼아 엑셀디비를 이용해서 우리가 어떤 어플리케이션을 만들었다고 생각하자. 그런데 이 규모가 점점 커지다 보니 ms-sql로 변경을 했다는 가정을 해보도록 하자.

    실제적으로

    clip_image002

    디비의 연결은 위에 한줄 적게되니 크게 많이 적지는 않는다. 각 폼마다 몇번 바꾸어 주면 되는것이고 심지어 static같은 형태로 선언이 되어 버렸다면 더군다나 수정할만한 가치가 없는게 아닐까 싶은 수준이다.

    하지만 만약 DB의 변경이 일어나면 어떻게 해야하는가?

    결국 우리는 "컴파일"이란 작업을 다시 해야지만 하는것이다.

    그것도 클래스를 일일이 다 바꾸어서 말이다.

    그런데 사실 겨우 우리가 만드는 사소한 프로그램은 그런것들이 문제시 될것이 없다.

    더군다나 DB를 변경할일도 없고,./

    그렇다고 대형 프로젝트에서는 아키택쳐들이 다 알아서 할테고 말이다.

    즉 지금 내가 글을 적을 이유가 없는것이다.

    이걸 팩토리 패턴이란것으로 만들만한 이유가 없는것이다.

    말그대로 그냥 구현하기도 싫으니 대충 손으로 몇번 끄적거리고 컴파일만 다시하면 그게 더욱 더 쉬울것 같다.

    팩토리를 이야기 하려다 보면 설정파일도 한번쯤 끄적여야 겠고

    게다가 팩토리 패턴도 결국 새로운 개체가 생성되면 컴파일을 다시해야 되는것들이고 그런것이 아닌것을 보여주려면.. 리플랙션같은(reflection 이건 또 뭐야?? 사전에는 있긴 하다만… 어쩌라고)이야기 까지 가야하니 참 한심나름이다.

    이글의 주 대상(?)이 또한 이런걸 알길 원하지 않을것이고 말이다.

    계속 글을 적었다 지웠다를 반복하다가. 이게 아니다 싶은 생각에 이런 결정을 내렸다.

    글을 읽는건 읽는사람 맘이니 … 알게 뭐냐

    적는건 내맘이니.. 알게 뭐냐..

    그렇다.

    역시 낙서란 개념은 맘편한것이다. 그러니 이제부터 진정 낙서의 세계로 가보자.

    주구장창 앞뒤고 뭐고 일명 뜬금없는 이야기를 해보자.

    //------------------------------------------------------------------------------------------------------

    자… 내맘대로의 이야기를 시작해 보자.

    기본적으로 사용자란 넘이 있다.

    clip_image003

    이 사용자는 요구사항이 있을것이고

    clip_image004

    이걸 해결할 것은 DB와의 이야기 일것이다.

    clip_image005

    저 요구사항을 해결하기 위해서 어플리 케이션이 필요하게 되고 우리 코딩하는 사람들은 프로그램을 작성해야 할것이다.

    clip_image006

    그러다 사용자 2라는 녀석도 비슷한 유형의 프로그램이 필요하게 된것이다.

    그래서 프로그래머들은.. 위의 프로그램을 다른 사용자에게 팔았다.

    clip_image007

    하지만 사용자 2는 요구사항이 달랐다. 결국 프로그램을 열심히 수정해 줘야지만 했고

    예전로직과 함께 이상한 덩치큰 괴물이 되어버린것이다.

    clip_image008

    어찌되었든 돌아는 갈것이다. 만들어는 줬으니 이런일이 잦아 지니 여러가지 고민을 하게 되었다.

    좀 더 유용한 방법은 없을까?

    clip_image009

    그래서 만든게 이런 형태의 3단계를 나누어서 하는게 어떨까 하는 생각을 가지게 되었다.

    이렇게 나누어 두면 사용자 1의 경우 sql을 포기하고 oracle로 가더라도 변경이 가능하기 때문이다.

    clip_image010

    예를 들어서 이런게 가능하다는것이다. 여기서 전체를 변경하는것이 아닌 오라클과 관계된 부분의 코드만 바꾸게 되니 일단 전반적인 1/3만 코드를 수정하면서 전체를 구성하는 무리가 없어진것이다.

    이게 비로 MVC가 아닐지라도?... 그냥 MVC 라고 적어보도록 하자.

    clip_image011

    즉 저기에 적은 M이란 녀석만 바꾸면 되는것이다.

    우리가 만든

    clip_image001[1]

    이 3개의 클래스는 각각의 M에 속할것이다.

    MVC 가 사전에 안 나와 있어서 뭔 뜻인지는 나도 모르겠다.

    여기서 우리가 주목할것은

    clip_image012

    이부분이다.

    이녀석은 우리가 적은..

    clip_image013

    인터페이스가 아닐까 하는 생각을 해본다.

    //--------------------------------------------------------------------------------------

    clip_image014

    그럼 이녀석은 뭔가? 그렇다. 그것은 당신이 해야되는 숙제이다.

    인터페이스를 만들던지 약속을 어떻게 하던지 그건 당신의 숙제이다.

    자.. 우리는 여기서 저기에 있는 "M"이라고 적은 이상한것을 두어번 바꾸어 본듯하다.

    그럼 이번에는 저기에 있는 V라는것을 두어번 바꾸어 보도록 하자.

    clip_image015

    참 그림 얄긋다…. (그려주는거에 감사해라..!!!)

    Ps)

    솔찍하게.. 다 그리고 보니 그림 참 아니다. 젠장할…

    이렇게 살아야 하는거야 그런거야?

    원본 위치 <http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1592&page=1>

'C# DB 코딩 강좌' 카테고리의 다른 글

C#을 이용한 DB코딩 17  (0) 2008.11.14
C#을 이용한 DB코딩 16(실습파일포함)  (0) 2008.11.14
C#을 이용한 DB코딩 15  (0) 2008.11.14
C#을 이용한 DB코딩 14  (0) 2008.11.14
C#을 이용한 DB코딩 13  (0) 2008.11.14
C#을 이용한 DB코딩 11  (0) 2008.11.14
C#을 이용한 DB코딩 10  (0) 2008.11.14
C#을 이용한 DB코딩 9(인터페이스)  (0) 2008.11.14
C#을 이용한 DB코딩 8  (0) 2008.11.14
C#을 이용한 DB코딩 7  (0) 2008.11.14
posted by 삶의여유로움
: