본문 바로가기
조회 수 661 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
대학교 2학년때 데이터베이스를 배우면서 교수님이 하신 말씀 중에 "프로그램을 짤 때 가급적 데이터베이스 서버내에서 돌리면 좋다." 라고 하신 적이 있다. 
당시에는 그게 무슨 소리인지 이해할 수가 없었다. 
 
병원 프로그래밍, 뭐 다른 SI업계도 마찬가지겠지만 환경이 모두 다르기 때문에 같은 유형의 프로그램이더라도 병원마다 환경이 다르고 사람이 다르기 때문에 어쩔 수 없이 소스코드가 달라진다. 그 중 하나가 데이터베이스 쿼리.. 쿼리가 코드안에 있게 되면 즉 하드코딩되어 있다면 당연히 이것때문에 라도 병원 별로 코드가 달라지게 된다. 
 
솔루션 내부에서 사용되는 쿼리는 달라질 것이 없으므로 본 요지에서는 병원과 솔루션 간 인터페이스에 대해서 이야기 해보자. (다른 SI업계도 마찬가지겠지? 어딜가나 이기종간의 시스템 인터페이스가 가장 솔루션화 하기가 어렵다. 솔루션화가 되지 않는다면 고객 수가 늘어날 때마다 관리포인트가 많아지고 내부유지보수 비용이 늘어난다.)
 
인터페이스 라고하면 상호간 Select(1)해서 로컬 Select(2)한 후, Insert(3) or Update(4)이다.
많아봐야 쿼리는 6개 ~ 8개
 
방안1. 하나의 트랜잭션을 프로그램에서 돌리고 이 쿼리를 밖으로 뺀다. (INI, XML 등의 파일형태로)
  장점: 젤 편하다. 
  단점: 한계가 있다. Select 컬럼개수가 달라질 경우? T_T
 
방안2. Select할 컬럼을 각각 설정이 가능하도록 하고 Insert/Update할 컬럼과 매핑하는 부분을 모두 설정할 수 있도록 프로그래밍 한다. 
  장점: 한계는 없다. 
  단점: 배보다 배꼽이 더 커진다. 프로그래밍 뿐만 아니라 설정하는 사람도 분명 복잡하다고 느낄 것이다. 
 
방안3. 스토드 프로시저 사용
  장점: 코드가 짧아진다. 같은 DB일 경우 궂이 프로그램으로 돌릴 필요도 없어진다. 
  단점: 병원 DB가 다양하기 때문에 DB별 프로시저를 죄다 만들어야 한다.
코드가 오픈이 된다. (암호화 하면 될지도)
병원에서 DB를 오픈하지 않는 경우 못한다. 가끔 보안상의 이유로 DLL만 주는 경우도 있다. 
 
필자는 방안1을 주먹구구식으로 개발할 때 사용하고 시간이 나면 방안3을 사용한다. 방안2는 비추.. 생각은 했는데 막상 그런 프로그램을 보니 이해하기가 어려웠다.  
 
인피니트에 있을 때 분당제생병원에서 LG CNS가 하는 방식을 보고 깨작깨작 조금 적용하고 1300 패키지 준비하면서 완전히 개발방식을 틀어버렸었다. 방안3을 구현하기 위해서 말이다. 그때 아마 나 때문에 고생한 사람들이 많았을 것 같다. 뭐 프로시저는 내가 어느정도 다 짜긴 했지만... 
그 결과물은 내 인피 마지막 프로젝트 였던 아주대병원이었다. 그때 예상대로 유지보수도 맺지 않고 프로시저들 수정도 거의 하지 않은채 지금까지 잘 돌고 있는 것 같다. 
 
코드에서는 프로시저만 호출하면 되기 때문에 엄청나게 가벼워지고 단순해졌다. 프로시저를 이해하지 못하고 배우기를 꺼려한다면 물론 이 방법을 원치 않는 사람도 많을 것이다. 

알림터

엔조이데브 쥔장의 알림터입니다.

List of Articles
번호 분류 제목 날짜 최근 수정일 조회 수
52 홈피소식 XE v3 업데이트 하려고 봤더니 XE 1.x네요. 2024.01.25 2024.01.25 4
51 홈피소식 엔조이데브 서브 홈페이지 2020.11.12 2020.11.12 154
50 홈피소식 엔조이데브 로고 file 2020.11.11 2020.11.12 144
49 쥔장소식 근 2년만에 글을 쓰네요. 2020.06.08 2020.06.08 150
48 쥔장소식 MS MVP Reconnect 참가 file 2018.07.03 2018.07.03 131
47 홈피소식 오랜만에 와서 Xe플랫폼 버전 업그레이드 하였습니다. 2018.02.21 2018.02.21 118
46 홈피소식 홈페이지 Ver.7 리뉴얼 file 2016.07.19 2016.07.19 175
45 그외 쉽게 PDF에서 워드로 변환해주는 사이트 2015.07.10 2015.07.10 803
44 홈피소식 개인홈페이지로 회원을 관리하지 않습니다. 2015.03.17 2016.07.19 206
43 그외 웨어러블 기기에 들어갈 수 있는 센서정리 2015.02.09 2016.07.19 189
42 쥔장소식 쥔장이 생각하는 객체지향(OOP) 개발방법론 2015.02.02 2016.07.19 280
41 쥔장소식 VB와 C#의 차이 file 2014.12.15 2016.07.19 1394
40 쥔장소식 Visual Basic 6.0 13년차 경력자의 노하우 2014.12.11 2016.07.19 5450
39 그외 Adele - Someone like you 2014.07.05 2016.07.19 706
» 쥔장소식 프로그램 코드 < 데이터베이스, 당신은? 2014.06.08 2016.07.19 661
37 쥔장소식 새로운 프로젝트 진행 중 2014.04.18 2016.07.19 1412
36 그외 새해 복 많이 받으세요. file 2014.01.08 2014.01.08 2241
35 세미나 [2013-11-06(수)] {KOSA} 2013 SW 테스팅 베스트 프랙티스 세미나 2013.10.30 2013.10.30 2056
34 세미나 [2013-11-07(목)] 2013 지식서비스 국제 컨퍼런스 file 2013.10.22 2013.10.22 2361
33 그외 숭실대학교 정보과학대학원 2014년도 (전기) 신/편입생 모집 file 2013.10.21 2013.10.21 3265
Board Pagination Prev 1 2 3 Next
/ 3