'DB구성'에 해당되는 글 2건

  1. 2010.11.05 웹 페이지 구축비용을 알고싶어요.
  2. 2009.04.08 호텔 예약 DB
2010. 11. 5. 16:37

[질문]

현재 홈페이지는 운영중입니다.
저희 내부에서 사용하는 WinForm으로 된 회원관리 프로그램이 있는데요...
그 프로그램의 정보와 동기화를 시키려 합니다.
회원가입, 회원정보 수정, 탈퇴 요청 등이 일어나면 회원관리 프로그램의 회원정보에도 반영되야 하구요...
회비 납부에 있어서 CMS자동이체, 신용카드 자동이체 등의 기능도 구축해서
그 또한 회원정보 프로그램의 DB에 반영 되어야 합니다.
회비 납부에 대한 정보변경 기능도 역시 가능하고 또 자동으로 반영되어야 하구요..
그리고 회원관리 프로그램에서 제공하는 것 처럼
온라인으로 회비납부 내역을 확인할 수 있어야 하고
회비납부 영수증도 출력할 수 있어야 합니다.
DB구축은 MS-SQL로 되어 있으며 호스팅도 이미 구축되어 있습니다.
도대체 위 기능 정도를 외부에 맡겼을때 얼마의 비용이 들까요?
비용이 많이 든다면 내부의 인력으로 한번 만들어 보라고 하고
적당하다면 외부에 맡기고 싶은데....
그리고 추천 업체 있으면 좀 알려주세요...
부탁드립니다.....


[답변]

안녕하세요. IT전문 컨설턴트입니다.

현재 상황에서는 통합구축을 염두해 두고 전략을 수립하시는것이 효율적입니다.
동기화를 통해서 운영될 경우 DB의 무결성 부분에 있어서 취약점이 예상됩니다.
DB간의 데이타가 100% 실시간으로 처리가 되더라도 네트워크의 특성에 따라서 일부 DB의 유실 또한 예상할수 있는 부분입니다.

홈페이지를 통해서 회원에 대한 운영이 되고있고, winForm으로 한번더 회원관리를 하고 있는 상황이라면 Web기반의 CRM구축이 필요할 것으로 보입니다.  쉽게 생각해 본다면 홈페이지를 재구축하면서 홈페이지 관리자 모드를 통하여 회원들을 관리할수 있는 CRM기능을 구현하고, 기타 회계와 관련된 모듈과 연계해서 1개의 회원DB로 프로세스를 단축시키는 전략이 필수적입니다.

회사의 정확한 사업모델 및 고객관리방법론에 따라서 특정 솔루션을 사용하여 구축할수도 있고, 신규구축을 진행할수도 있습니다. 즉, 현재 회사의 상황을 분석해 보지 않고서는 제대로된 답변이 될수가 없습니다.

고객 DB가 1000만건일 경우와 고객DB가 1만건일 경우.. 동일한 개발방법론을 사용할수가 없습니다.
만약 동일한 개발방법론을 사용한다면 1000만건의 DB중 원하는  DB를 추출해서 사용하는데 무리가 있을 가능성이 높습니다.  여기에 Table을 Join형식으로 2~3개만 연결해서 사용하게 되더라도 느려서 사용할수 없다는 불만을 받아야 할듯 합니다.

또한 기존 DB구조가 얼마나 정규화를 시켜서 진행했느냐에 따라서 앞으로 회사의 정책변경에 따라서 현시스템을 고쳐쓸수가 있느냐, 새로 구축해야만 하느냐 하는 심각한 문제점이 발생할수도 있습니다.

현재 회원수가 많지 않고, 내부인력중 개발인력이 있는 경우라면 내부인력으로 시스템을 개발할수도 있습니다. 회사의 회원정책이 자주 바뀌는 경우나 회원DB의 보안이 필수적인 회사구조라면 반드시  내부에서 개발하실 것을 추천드립니다.
물론 외부 개발사를 통해서 개발을 할 경우 어떤 업체의 어떤 솔루션을 기반으로 하느냐에 따라서 심각할 경우 회사의 회원정책을 변경해야 할수도 있습니다. 

비용부분을 위의 상황만으로 판단을 할수없을듯 합니다. 기존 시스템을 Web화 시킬수 있는 경우 100만원 미만으로도 구축이 가능하겠지만, 솔루션을 사용하지 않고 자체개발을 해야하는 상황이라면 수천만원 이상의 개발비용을 예상할수도 있습니다. 회원수가 많거나 정책이 복잡다면 수억원이상의 견적이 나올수도 있는 것이 CRM입니다. 현 시스템에 대한 정리와, 요구사항에 대한 정리를 하신후에 업체미팅을 진행해 보실것을 추천드립니다.

만약 통합구축을 진행하는데 있어서 효율성을 높이길 원하신다면 전문적인 컨설턴트를 통해서 회사업무프로세스 분석을 기반으로한 제안을 받아보시길 바랍니다.


Posted by ToTb
2009. 4. 8. 14:27

[질문]

호텔 예약 프로그램을 만들고 있습니다.
여러므로 해보려 했지만 DB설계가 너무 어려워서 질문 올립니다..
우선 예약시스템인데..
객실, 레스토랑, 연회실, 회의실 4종류의 예약이 있고
각 서비스마다 예약 방식이 다르니 4개의 예약 테이블이 있어야 된다고 들었습니다.
객실은 4가지의 타입이 있고 각 타입별 room수를 정합니다.

싱글룸(10개)  5만원

더블룸(8개)    7만원

트윈룸(5개)    10만원

스위트룸(2개)  15만원

필요한 테이블과 관계들을 알고 싶고 날짜별 잔여객실수 계산가능 해야 되거든요.
그리고 보통 호텔 예약을 하면 객실타입은 선택해도 호실 선택하거나 몇호실인지 정보는 알수 없는데...
어떤 처리과정에 의해서 손님들이 오면 알아서 호실키를 제공하는거죠??
객실예약시에는 지정하지 않고 관리자 모드에서 지정하게 되나요???


[답변]


안녕하세요. IT전문컨설턴트입니다.
예약시스템의 경우에는.. DB구조를 입체화시켜야 하고, 정규화 기법을 통한 설계를 진행해야 합니다.
현재 궁금해 하는 테이블과 관계의 경우.. 수백가지 이상의 경우의 수가 있습니다.

객실, 레스토랑, 연회실, 회의실 4종류의 예약이 있다고 해서 4개의 테이블이 필요한것은 아닙니다. 관계형DB구성을 한다면. 2개로도 가능한 부분이죠...^^  단, 어떻게 시스템을 구상하느냐의 문제인듯 합니다.

극장에서 사용하는 예매시스템의 경우를 예를들면..
직접 고객들이 영화,시간,좌석 등의 요소를 직접 모니터에서 확인후에 선택을 할수 있습니다.

이경우에는.. 극장의 전체 관수를 지정한 인자값으로 구성을 하고, 가상View를 구성합니다.

가상View에는 각 해당관별로 지정석 만큼의 값이 생성이 되고, 예약이 된경우에는 1을 예약이 되지 않은 상황에는 0을 표시합니다.. 예약이 된 경우라도.. 할인예약, 청소년, 무료관람 등의 값을 2,3,4 등의 값으로 치환해서 DB에 넣어둡니다.. 전체적인 예약시스템에서는 이런 가상의 View를 각 시간대별 영화를 기준으로 생성함으로써,

1. 영화에 대한 정보 테이블

2. 상영시간 테이블

3. 상영관 정보 테이블

4. 결재정보 테이블

5. 예약정보 테이블

6. 회원테이블

7. 관리자 테이블

의 7가지 기본적인 테이블에서 확장 및 정규화를 통한 DB구성을 진행합니다.

가장 널리 사용하고 있는 Ms-SQL, My-SQL, Oracle 등의 DBMS 시스템은 객체관계형 데이터 베이스 모델링을 기본으로 구성이 되어있기때문에 해당 테이블의 관계에 따라서 엄청난 기능을 발휘할 수 있습니다.
물론 생성된 최종 DB의 경우.. 수십개에서 수백개가 생성될수도 있습니다.
여기까지의 정보라면.. 호텔예약시스템을 구성하는 기본적인 DB 도 어렵지 않게 생각하실수 있을듯 합니다.

호텔예약시 호실을 제공하는 방법은.. 관리자 모드에서 지정을 하기도 하지만, 관례상으로는 앞번호 방부터 자동으로 배정이 되도록 진행하는것으로 알고있습니다. 방번호를 부여할때.. 순서대로 부여를 하고, 메이트가 청소를 하는 순서도 여기에 따라서 진행하는 등 여러 운영시스템상에서 방번호 순을 중심으로 운영을 합니다. 물론 고객의 요청이 있다면. 방을 변경할 수 있도록 관리자 페이지에서 운영이 되겠죠.

다시 원점으로 돌아가서 생각해 본다면..  훨씬 간단하게 구성이 가능할듯 합니다.
물론 4가지 종류의 예약을 어떤 방식으로 접수를 하고.. 기존에 운영되는 Pos 및 시스템과 어떻게 연계할 부분이냐에 따라서 달라질수 밖에 없습니다. 만약 외부적인 시스템과 연계를 하는것이라면.. 해당 시스템과 DB구조를 유사하게 만들어야 추후 연계가 어렵지 않게 진행될수 있습니다.

아무런 정보가 없는 현상황에서 위의 요소만을 가지고 정확한 테이블과 DB관계를 구성할수는 없습니다. 대략적으로 구성을 한다고 하더라도, 상황에 맞게끔 변형하는 부분은 지금까지의 상황과 지금까지의 인력이라면 불가능합니다.

제 생각에는 현재까지 개발을 담당해 오시던 분이 DB관련한 전문적인 지식이 없으시거나 해당분야에 대해서 경험이 적은 것으로 추측이 됩니다. 그게 아니라면, 클라이언트 측에서 요구사항에 대해서 정확한 분석 및 전달이 않된 것으로 판단이 됩니다... 시스템은 하나의 기능을 위해서 여러 유기적인 요소들이 모여서 움직이는 구성입니다. 한두명의 인력이 뚝딱하고 만들수 있는 규모는 아닌것 같습니다.

전문적인 컨설팅을 통해서.. 현재까지의 구축프로세스상의 문제점을 진단해 보고, 요구사항에 대한 분석을 진행해야.. 성공적인 개발을 완료할수가 있습니다.


Posted by ToTb