솔루션(프로그램) 개발, 구매 전 알아야 할 사항
* 우선 글을 읽으시기 전에 글의 성격상 존칭은 생략하니 양해 바랍니다.

1. 지금까지 없던 무엇을 만들겠다면 스스로 화면을 구성해보자.

소프트웨어 주문개발이란 아무것도 없는 무 에서 새로운 무언가를 만들어 내는 것이다.
그러자면 내가 만들고자 하는 물건(프로그램)에 대해서 제작해야 할 업체에 최대한 소상하게 전달을 해야 한다.
예로 당신이 컵을 만드는 생산공장에 당신만이 생각한 획기적인 모양의 컵을 의뢰한다고 생각해보자.
아마 대부분의 업체는 상세한 설계서가 없으면 아예 당신의 문의를 거들떠도 보지 않을것이다.
이 세상에 얼마나 많은 종류의 컵이 존재하는지 당신이 한번만 더 생각해 보았다면 아마 최소한 크기와 어느정도의 모양은 종이에 그려서 가져가지 않겠는가?  프로그램도 마찬가지다.

솔루션을(프로그램) 개발하기 위해서는 프로그램 자체가 수학적 논리적인 것이기 때문에 Yes 일때와 No 일때 그리고 A 와 B 도 아닐때 등 다양한 수학 공식적인 프로그램 규칙 (즉, 정책) 이 필요하다.
단순히 Yes 와 No 일때 보다도 여러 조건이 충족되기 위한 시스템적인 Flow 가 중료하며 특히, 그중에서도 예외 정책이 중요 합니다.

의뢰자 대부분은 두가지의 실수를 하십니다.
첫째, 모든 기획(실은 아이디어)가 내머리에 다있습니다.
     - 그러면서 명확한 기획서나 설계도 또는 정책을 주지 않는다.
둘째, 전에 말을 했는데요?
     - 기록 없이 거래를 한다는것은 서로에게 위험한 것입니다.
     - 의뢰자의 권리를 위해서라도 최소한 의뢰한 내역을 서로 입증가능한 메일정도는
       주고 받으십시요.


2. 정확한 업무 플로우가 존재하는가? 그렇다면 화면설계는 필요하지 않다.

업무가 명확하다면 그리고 그 업무의 어떠한 부분을 전산화 할지에 대한 정확한 계획이 서 있다면 화면구성은 필요하지 않다. 단지 그 업무플로우에 대한 시작부터 끝까지의 명확한 정의만이 필요할 뿐이다.
고객관리를 한다면 고객의 어떤것을 관리하는지 (예: 이름/성별/나이/키/몸무게/성향 등..) 를 나열해 보고 필수 조건과 부가조건 등을 구분해보자.
그리고 그런 각각의 항목들이 업무프로세스의 어느위치에서 활용되는지를 검토해 보도록 하자.
그리고 그 과정에 대해서 업체에 설명할 수 있을 만큼의 준비를 해야 한다. 가급적 회사에서 사용하고 있는 업무용 서류양식 등이 적합한 자료이다.


3. 이것도 있으면 좋겠고 저것도 있으면 좋겠고..

프로그램은 현재의 업무나 생활을 보조하는 역할이지 그것을 완전하게 대처할 수 있는 수단은 아니다.
그러므로 가장 효과적인 프로그램 제작 및 사용방법은 현재의 업무중 가장 시간이 많이 들어가며 혼돈이 잦은 데이터를 올바르게 정렬하고 백업하기 위한 목적을 최 우선으로 들어야 한다.
그러므로 초기 프로그램 개발시에는 현재 운영중인 업무를 우선하여 집중적으로 개발하여야 하며 앞으로 사용할 예정인 업무 등 현재까지 정형화되지 않은 업무는 가급적 빼고 개발을 하는것이 비용및 효과면에서 효율적이다.
프로그램이 정형화 되고 정밀화 될수록 그 프로그램의 가치는 높아지지만 산도 보지 않고 숲도 보지 않은채 나무만 보아서는 안되는 것 이다.


4. 이미 나와있는 프로그램을 조금만 수정하면 될텐데..?

이야기 전에 CMG솔루션(프로그램)은 솔루션 보안 부분을 제외한(솔루션을 보호하기 위한) 보안파일 몇개외는 프로그램 소스가 공개되어 있는 제한적 오픈소스 입니다.
다만 이야기를 덧붙이자면 이 보안 소스외에도 데모에서도 관리자 체험을 막거나 관리자 페이지 보기권한(관리자모드 회원)은 보지 못하도록 제한한 독자적인 기능이 숨겨져 있습니다.
이 부분은 개발 경쟁업체 또는 벤치마킹 하려는 개인을 막기위한 CMG솔루션의 기술에 대한 정책입니다.

일예로 CMG몰 솔루션 중 모든 솔루션이 CMG 창립 이후 지속적인 업그레이드와 패치를 행하여 온것 처럼 솔루션이 안정화 되고 기능이 독창적이던 아니던 인정받으려면 오랜 기간이 걸립니다.
실제 CMG B2B관련 솔루션(도소매,B2B,유통,딜러몰)의 경우도 출시후 5년여의 꾸준한 업그레이드 있었기에 그 기능을 일반 개발자가 모방하기란 어간 힘든일이 아닐수 없 습니다.
기술이 공개되면 개발자가 모방할 수 있습니다만, 완전한 공개가 있기 전에는 개발자만의 힘으로는 그 구조를 가름할 수 없습니다.
실제 CMG에서는 솔루션 기획부분을 국내 IT 초창기 때부터 기획,마케팅을 하여온 기획자가 하고 있습니다.

그러나..

대부분 판매하는 프로그램이란 소프트웨어 개발자가 작은 논리에서부터 큰 논리까지 각각 개별의 프로그램 알고리즘을 구현하여 제작된 소스(원료)를 알 수 없는 결과물 형태이다.

소스가 공개되어 있는(오픈소스) 프로그램이 아닌 이상 시중에 나와있는 프로그램들은 타 업체나 타 사용자가 소스를 수정할 수 없으며(볼수도 없다)
또한 수정이 가능다고 공개소스라는 솔루션 조차도 그 구조를 자신들만이 아는 방식으로 그 구조파악에 어려움이 있도록 꼬아놓고 있으며 만약 소스를 막아놓거나 저작권보호(솔루션 기술보호)를 위해 암호화 등으로 막아놓은 그 프로그램 소스를 수정하여 사용가능토록 한다고 해도 법적 저작권 문제에서 벗어날 수 없는 큰 범죄로서 모든 프로그램들은 이 처럼 여러가지 정책으로 프로그램의 역 어셈블(역으로 코드를 추적하여 알고리즘을 파악하는) 을 불허하고 있으며 만약 불허한 프로그램 소스를 허가 없이 해체하여 사용할 경우 경우 막대한 손해배상에 대한 책임도 부과하고 있다.(프로그램의 소스코드 조차 법의 보호를 받고 저작권으로 인정 받고 있기 때문이다.)

*참고. CMG몰 보안파일은 CMG솔루션 보호파일로 보안파일 중에는 솔루션내 변경하면 안되는 프로그램 기본 정책에 해당하는 소스가 포함, 연결된 파일도 있습니다.(물론 소스내에서 이 정책을 변경시는 이 파일을 제외한 기존 파일에서 새로운 루틴을 추가하거나 변경하실수 있습니다만, 미리 CMG와 문의. 상담을 권장 합니다.)
그리고, 다행이 CMG몰은 전세계에서 공통으로 사용하는 함수방식 솔루션이라 그 구조만 파악한다면 프로그램을 수정,변경,추가가 용이하며 일반적인 스킨 구현은 A급 개발자가 아니라도 구현할수 있습니다.


5. 의뢰자가 생각하기엔 간단한 작업인데..

"간단하면 직접 하시면 되겠네요.."

사용자가 쉽다고 생각하는 프로그램은 내부적으로 매우 복잡한 알고리즘으로 구현된 경우가 많으며 사용자가 복잡하다고 여기는 프로그램일 수록 제 프로그램이 간단한 경우가 많다. 아무리 간단하다고 해도 요구사항을 듣는 일, 그 요구사항을 가시화 하는 일, 그리고 물건으로 만들어 내는 일은 어떻게 하더라도 간단하지 않다.간단한 부분이라고 생각한다면 그렇게 구현된 프로그램을 구매하는것이 현명 할수 있다.


6. A업체는 얼마라는데 왜 이렇게 가격 차이가 많이 나나요?

당신이 만들고자 하는 프로그램에 대해서 A업체에서 인지하는 업무내용과 현재통화하고 있는 업체에서 인지하고 있는 업무내용이 정확하게 일치하는가?
비슷한 기능이라도 프로그램에 따라 그 구조는 매우 달리 할때도 있다.
통상 전화로 당신이 전달할 수 있는 내용은 당신이 생각하고 있는것에 10분의 1도 채 되지 않는 경우가 많으며 전화를 받는 사람이 그 10분의 1만을 보고 판단을 했느냐 아니면 그 뒤의 나머지 9 를 예측하고 판단을 했느냐에 따라 달라진다.
프로그램 개발업체에서도 어느정도 표준화된 개발견적단가가 존재하며 이는 기간으로 산정된다.
기간이 길면 그만큼 비용이 늘어나는 것은 당연. 모든 업체에게 객관적인 견적(실제개발할 수 있는 견적)을 받으려면 당신이 요구내용을 최대한 세부적으로 묘사하여 전달 하여야 한다.
만약 저렴한 프로그램이 있고 그것이 귀사에서 원하는 프로그램이라면 그 프로그램을 사용하면 될것이다.


7. 이미 만들어져서 판매되는 프로그램과 주문개발하려는 프로그램의 비용은 당연히 차이가 날 수 밖에 없다.

이미 만들어져서 판매되는 프로그램(패키지)은 제품으로 말하면 금형이 준비되어 찍어내기만 하면 되는(오히려 그보다 더 편한) 것이며 초기 투자비용(적게는 수천만원 많게는 수억원)을 업체에서 자체 투자하여 개발한 후 많은 사용자에게 판매하여 수익을 올리는 시장구조를 가지고 있다.
그러므로 비용이 적게는 수십,많게는 수백만원 선에서 처리가 될 수 있다.
그러나 주문개발 프로그램은 그때그때 개발비용 ( 패키지업체 입장에서보면 투자비용) 이 소요되므로 당연히 비용의 차이가 날 수 밖에 없다.
만들어져서 나오는 휴대폰을 구매하는데는 몇십만원 이면 되지만 당신 하나만을 위하여 모든 생산공정을 새로이 작업하여 휴대폰을 만들어야 할 경우엔 상상도 할 수 없는 금액이 나올 수 있는 것과 같다.


8. 이걸 만들면 당연히 다른것들도 같이 만들어 지는게 아닌가요?

예, 정확하게는 아닙니다.
프로그램이란 논리적으로 따라갈 수 있는 모든 업무의 형태를 개발하는 것은 아니며 사용자가 요구한(그러므로 사용자가 요구하지 않은 그외의 것들은 개발 이 되지 않습니다.)항목을 기준으로 하여 프로그램을 개발합니다. 예를들어 고객이 "사용자의 정보를 관리하고 싶어요" 라는 말을 했을 경우 기본적으로는 사용자의 정보(고객이 제공해 준)항목을 기반으로 입력/수정/삭제/검색 정도의 기능이 들어갈 뿐입니다.

*주: 여기서 한가지 집고 넘어갈것은 솔루션 구매나 프로그램 주문에는 분명 차이가 있기는 하지만 그 결과물은 비슷한 성격을 가진다. 솔루션을 구매시는 이미 만들어진 기능을 구매하므로 원하는 다른기능이 당연히 있다는 생각은 위험하며 위에서 언급한것 처럼 프로그램 의뢰시에는 의뢰자가 원하는 기능 하나하나 정책 하나 하나를 요구하여야 합니다.프로그램 개발자 또는 회사는 최소한의 견적으로 일을 수주하고 최대한의 단축 개발기간으로 수익을 내는것이므로 요청한 것에 대해서만 개발 제공하게 되는 것이 자본주의 사회의 현실인 것 입니다.

"사용자 정보관리라고 하면 상담관리나 생일이 되면 생일축하메세지도 보내주고 그런것도 다 되는거 아닌가요?" 라고 생각할 수 있지만 그런 전제 하에 놓고 볼때 "사용자 정보관리" 라는 개념이 무한확장되어 현존하는 최고의 "사용자정보관리" 기능으로 상호접근하게 되는 논리적 모순이 발생합니다.

통상 의뢰시 아래와 같이 하는것이 효율적입니다.
"사용자 정보관리를 하고 싶어요"
"사용자의 정보는 약 10여가지 정도가 될것 같습니다."
"사용자 정보등록/수정/삭제 가 되면 되고요"
"SMS 기능을 넣고 싶은데 우선 전체sms 발송하기와"
"사용자 생일,결혼기념일,명절때마다 보낼 수 있는기능과"
"사용자와의 전화 또는 미팅내용을 일자별로 보관하고 추후에 열람할 수 있는 기능이 있으면 좋겠어요"


9. A/S 는 언제까지 인가요?

A/S 는 초기 협의하게 구현된 프로그램이 정상적인 방법으로 사용시 문제를 발생할 경우를 말한다.
이 경우 법적으로 1년이라는 판례가 있어 보편적으로 1년을 A/S 기간으로 두고 있으나 대부분의 개발업체에서는 자신들이 만든 프로그램에 한하여 고객이 사용하는 기간동안 꾸준히 지원을 해 주는 경우가 많다.
그러나 고객이 많은 부분 착각하는 부분이 있다.
그 부분은 웹솔루션에서 지원하는 OS , 브라우져 , 모듈(PG업그레이드) 지원이 어디까지 인가 또한, 이 부분이 업그레드 버젼이 출시 되어 환경이 변경되던가 새로운 버젼이 나왔다던가 기존 버젼이 폐지되는 경우등은 개발사에서도 무상지원의 한계가 있고 제공한다고 해도 직접 수정해주지는 않는다.
또한, 쇼핑솔루션의 경우 대형쇼핑몰, 홈쇼핑, 오픈마켓에서조차 그 솔루션의 정책이 다른 부분이 각기 다르기 일수 이다.
이런 솔루션의 정책이 특정 사이트와 다르다고 구매한 쇼핑솔루션이 오류이고 잘못된것이고 A/S대상이라고 생각하는 오류를 범하게 된다.


10. A/S 와 유지보수의 차이점.

A/S 는 초기 협의에 의해서 구현된 프로그램 자체의 오작동등을 말하며 유지보수는 초기협의에 의해서 구현된 프로그램에서 필요에 의하여  추가 또는 변경되는 작업을 말한다.


11. 웹솔루션은 모든 호스팅 및 서버에 동작되어야 한다?

결론 부터 이야기하면 그렇지 않습니다.

물론 제공 호스팅 또는 서버측에서 웹솔루션에서 요구하는 사양 및 설정을 제공한다면 가능합니다.

웹솔루션은 같은 서버의 OS라도 버젼 및 웹서버솔루션(Apache, PHP, MySQL)의 버젼에 따라서 그리고 각 APM 의 설정에 따라서 그 웹플로그램(솔루션)의 동작이 되고 안되고 하는 제한이 있으며..서버 설정에 따라서 프로그램의 실행은 물론 업로드 파일의 종류 및 용량제한 그리고 웹파일서버 와 DB서버(보통 대부분 국내 호스팅이나 중소형 서버들은 웹파일 서버와 DB서버를 나누어 쓰지 않고 통합하여 제공합니다.그러나 해외는 이 웹서버와 DB서버를 나누어쓰는 일이 비일비재 합니다.)와의 통신간의 제약(DB통신 시간 및 웹방화벽 등등)  을 둘수 있습니다.

웹호스팅은 한 서버에 수많은 계정(아파트로 동이 바로 서버이며 호스팅은 호와 같은 한 세대를 이야기함)를 전세 또는 월세를 내어 쓰는 것이므로 서버의 환경이 바뀌면 다른 사용자들의 웹프로그램들이 오류를 가져올수 잇으므로 근본적으로 이를 불허 합니다.

서버호스팅을 제공하는 회사는 그 만큼의 전문인력과 노하우 그리고 장비와 소프트웨어 및 솔루션을 가지고 가지고 운영합니다만 일반 개인들의 대부분은 그렇지 못하므로 메뉴얼을 보고 서버를 셋팅하여 운영한다거나 하는 것은 매우 어리석은 일이고 비전문가로 중요한 사업 기밀 및 영업을 맡기는 것 과 같습니다.


12. 호스팅 및 서버의 회선속도가 어느 지역에서나 시간에 따라서 동일하다?

결론 부터 이야기하면 그렇지 않습니다.

실제 국내에서도 호스팅은 4M/sec 를 일반적으로 제공하는데 서버 및 호스팅 상품에 따라서는 5M/sec 또는 10M/sec 를 제공하기도 하고 큰 업체에서는 메이져급 상업 제공업체(포털커뮤니티 또는 대형 오픈마켓)는 50M/sec 를 제공하기도 합니다.

서비스 업체의 회선과 위치가 같은 A(10m/sec) 와 B(5M/sec) 라는 업체가 있고 동일 시스템 및 솔루션으로 서비스르 제공하며 각 서버 동시접속자가 비슷하다는 가상 아래 사용자가 동일 지역에 같은 인터넷을 사용하는 C 와 D라는 사용자(고객)이 있다면 이 경우에는 A 가 B 보다 이터넷 접속 및 이용 속도가 당연히 빠른것은 맞습니다만..

접속 인터넷 회선(고객 , 이용자가 사용하는 지역 및 인터넷 회선)에 따라서 (서버로 부터 고객의 인터넷 사용 위치까지 수많은 회선을 그것도 한 회사가 제공하는 회선이 아닌 수많은 회선을 타고 고객의 사용하는 인터넷 업체의 회선으로 고객의 PC가 인터넷 통신을 하므로)만약 서비스 업체에서 서버의 회선을 10M/sec 로 서비스를 한다고 해도 지역과 사용하는 인터넷 회선에 따라서는 그 체감속도가 5M/sec 만큼 밖에는 체감될수 없는 경우도 비일비재하며 사용자(고객)이 접속하는 시간 서버시 업체의 서버에 접속자수(동접 인원수)등에 따라서 그 속도가 다를수 있습니다.

더욱이 해외간의 호스팅 또는 서버는 사실상 해저 광케이블을 통해 통신을 하는것이므로 실제 해외에서 제공하는 호스팅, 서버의 경우 해외 업체의 실제 제공속도와 국내에서 접속하는 속도는 그 서버에 해외 현지인이 얼마나 그 서버에 접속하는 가 그리고 실제 국내에서 해외 현지까지 접속시 유실되는 인터넷 패킷이 얼마나 되는가에 따라서 호스팅 또는 서버 현지 까지의 속도가 달라집니다.

심지어는 국내에서의 웹호스팅은 HTML 파일에 PHP 이던 ASP 이던 자바이던 .NET 이던이 섞여도 실제 운영가능하도록 서비스를 하고 있지만 해외의 대부분 업체들은 오로지 .HTML 는 .HTML 만 .PHP 는 .PHP 에서만 동작되게 한다든지 웹파일서버와의 DB 서버와의 통신시간의 제한등 여러 규약이 있으며 서버 IDC 이용료, 인건비, 회선비가 비싸므로 국내만큼 저렴한 가격에 좋은 양질의 서비스가 불가한게 사실이며 또한, 해외는 서버들이 각 OS 및 웹서버프로그램이 셋팅되어 제공되는것이 아닌 C Panel 같은 서버를 동시 업데이트 하거나 설정하는 등의 관리 툴로 연결되어 제공되어 지는 경우가 대부분 이므로 해외 현지에 서비스를 하실 고객 분들은 전문가의 조언을 듣고 실제 솔루션을 구매하거나 서비스 하셔야 합니다.



여러분이 어떤 솔루션, 어느 업체 솔루션을 구매하던 이 부분은 참고하고 심각히 생각 해보고 구매하기를 권장 드립니다.



감사 합니다.