국산 시스템 소프트웨어에 대한 단상

김성진의 이미지

최근 1-2년 사이에 국산 시스템 소프트웨어가 시장에 하나둘씩 나오고 있습니다.

물론 대부분의 전시회에 가서 보면 응용 어플리케이션이 주류를 이루지만 그 가운데서도 가끔씩 시스템 소프트웨어가 하나둘씩 보이더군요.
시스템 소프트웨어와 응용 어플리케이션이라는 이분법이 맞지 않겠지만, 과학으로 이야기한다면 기초과학과 응용과학으로 나누는 것과 유사한 것이라고 이해할 수 있겠습니다.

아마 대부분 들어보셨을 듯한 가장 유명한 국산 시스템 소프트웨어는 "티맥스" (성공시대에도 나옴)를 들 수 있겠구요, 유니SQL이라는 국산 DBMS, GIS DBMS인 제우스 등이 기억나네요.

국산이라는 이름이 붙을 때 자연적으로 발생하는 제품의 불신 혹은 선입견 들이 어떠한 형태로 나타나는지, 정말로 그 제품들을 사용해 보니 그런지 궁금하네요.

많은 고수님들의 귀한 경험들을 나눌 수 있으면 좋겠습니다.

* 관리자 코멘트(권순선):
글올리신 분의 회사 제품에 대한 언급은 광고로 오해받을 소지가 있으므로 뺐습니다. 우리나라에서 만든 소프트웨어가 세계적인 제품이 되기 위해 갖추어야 할 요건 및 현 시점에서 존재하는 격차에 대해 선진 제품과 비교할 수 있는 토론이 되었으면 합니다.

익명 사용자의 이미지

저는 98년도 부터 비교적 최근까지 UNISQL로 개발을 해온 개발자입니다.
글을 읽다가 몇가지 오해가 있는듯 싶어 글을 올립니다.
참 저는 UniSQL의 직원이 아닙니다. 그러므로 일부러 옹호하고 싶은 생각은 없습니다.

UNISQL이 객체관계형DBMS 라는건 맞습니다. OODB의 기반에 RDBMS에 대한 표준을 상당부분 수용하고 있습니다.
다만, 기본구조 자체가 OO로 설계되어 있으므로, table 설계가 RDBMS 기반으로 되어있다면 성능이 많이 떨어집니다.
UNISQL Tunning이라는 Reference를 따르면 조인이 필요한 대부분의 것을 Object(or table)에 대한 참조로 대체하는 것을 보여줍니다. 이렇게 사용했을 경우 RDBMS에 비하여 많은 성능의 향상을 얻을 수 있습니다.

KCC가 판권을 인수한 것 또한 맞습니다. 그러나 현재는 UniSQL에 대한 상표권을 취득하여 UniSQL이라는 회사명을 사용하고 있습니다. URL 또한 취득했더군요.(www.unisql.com)

Connection Pool에 대한 문제는... UNISQL의 경우에는 기본적으로 Connection을 관장하는 미들웨어인 UNICAS(UniWEB, Vision3의 업그레이드 버젼)를 통하여 질의를 하도록 권장하고 있습니다.
직접 DBMS와의 Connection을 관리하고 싶다면 C나 C++로 만드셔야 합니다.(그게 UNICAS입니다. ^^;)
Connection Pool을 구현한 UNICAS가 존재하므로 UNISQL의 입장은 Conneciton Pooling을 할 필요가 없다는 것입니다.
그러나 미들웨어를 구현하는 것 또한 많은 노하우가 필요한 부분이므로, 이전의 미들웨어인 UniWEB과 Vision3, 초기의 UNICAS 등에서는 많은 문제가 있었던 것 또한 사실입니다. 이 부분에서 UniSQL에서는 나름대로 R&D 팀을 미국 지사에도 설립하여 노력한 결과 현재의 미들웨어에서는 많은 결점을 극복한 것으로 판단됩니다.
(개인적으로는 그렇다고 만족할만한 수준이라고 하기는 그렇지만요...)
그리고... UNICAS가 미들웨어이므로... 관리가 필요합니다. 그냥 내비둔다고 잘 돌아가는게 아닙니다.
서버 튜닝, DB 튜닝을 하듯이 UNICAS에 대한 튜닝도 필요합니다.
이러한 튜닝을 통해서도 많은 성능의 향상을 볼 수 있습니다.

PHP와 UniSQL과의 연동은 실제 프로젝트에 사용해본 적이 없어 뭐라 말씀드리기는 힘들겠네요.
그러나 PHP로 UniSQL에 UNICAS없이 직접 접속할 수 있는 방법은 없습니다.
저로서는 UniTCL, Java, VB, C, C++로 연동해보았습니다만은, 위와 같은 튜닝과 더불어 개발에서도 UniSQL의 장점을 최대한 활용한다면 몇백명 붙는다고 죽는 일은 없었습니다.
실제 개발에서는 조인은 가급적 피해야 합니다. 객체에 대한 참조를 최대한 활용하는 것이 가장 좋습니다. 또한, Class(table)의 상속을 십분 활용하는 것도 좋은 방법일 것입니다.

그리고, UniSQL의 영문 매뉴얼은 매우 충실한 편입니다. 한글 매뉴얼도 있습니다.
다만 UniSQL의 홈페이지에서 이러한 많은 레퍼런스를 모두 제공하지 않는 점은 유감이더군요. 정책때문인지...
UniSQL에서는 매뉴얼을 먼저 영문으로 만듭니다. 차후에 한글버젼을 만들더군요.
한글 매뉴얼이 부실하다고 불평하는 분도 계시겠지만, 어차피 외국제품들 매뉴얼 다 영문입니다.
한글 매뉴얼도 나오겠지만, 영문 매뉴얼에 비해 시간차가 발생합니다. 그만큼 경쟁력에서 뒤쳐지지는거라 생각합니다.
현재 우리의 실정으로, 개발자라면 영문 매뉴얼을 부담없이 보는것이 필요하다는 생각입니다.

UniSQL에도 단점이 있습니다. 무엇보다 멀티스레드가 제대로 지원되지 않아 시스템의 사양이 매우 높더라도, 모두 사용하는데에는 한계가 있다는 것입니다. 이것은 Enterprise급의 DBMS의 성능이라는 관점에서 매우 취약한 약점입니다. 이 부분에서는 UniSQL 측이 조만간 Upgrade 버젼을 내놓을 계획이라고 하더군요.
(개인적으로 DB가 CPU를 다 잡아먹는 경우는 10% 정도 발생했습니다. 대부분 미들웨어인 UNICAS가 시스템 자원을 많이 잡아 먹더군요.)

UniSQL의 성능을 최대한 활용하려고 개발한 다음에 다른 DB에 연동하려면 다시 개발하는게 좋을 정도로 호환성이 떨어지게 됩니다. 이 부분은 다른 ORDBMS나 OODBMS를 사용해도 마찬가지일 것입니다.

현재 많이 뜨고 있는 J2EE와 UniSQL의 연동 문제는 나름대로 아쉬운 점이 많습니다.
UniSQL 자체가 ORDBMS 이므로, J2EE의 entity를 그대로 연동하는 것이 가능할 법도 한데... 그 부분에서는 이렇다할 말이 없더군요. 다만 XML 기반 DB에 대한 연구는 활발히 진행하고 있다더군요.
이것은 신문에서 본것이고 본사 직원에게 들은게 아니라서... 정확히 어느정도나 진행되었는지 모르겠네요.

원래 이 토론의 주제와는 상관없는 내용이고 특정 제품을 홍보하는 듯한 글이 되어 조금 찜찜하긴 한데요.
국산 제품에 대한 제 개인적인 생각은 그렇습니다.

가장 불만을 가지는 것이 서비스입니다. 이 부분은 우리나라 사람들이 이중의 잣대를 들이대는게 아니냐는 생각입니다.
외국제품 구입하게되면 필요한 유지보수 비용이나 교육등에 대한 서비스 비용이 별도로 지급되어야 한다면 원래 그런줄 압니다. 외국에서도 그렇게 한다고 하면 고개를 끄덕입니다.
그러나 국산제품은 가까운 곳에 있으니깐 서비스비용은 무료로 생각하는 경향이 있습니다.
외국제품들도 하자 많이 발생합니다. 국산제품이라고 해서 발생하지 말라는 법 없습니다.
국산제품의 하자에는 유난히 혹독합니다. 이중의 잣대가 아닌 냉정한 판단이 필요할 것 같습니다.
(UniSQL에는 유난히 병특이 많습니다. 그리고 이 병특들이 서비스의 상당수를 지원하고 있습니다. 그러니 질이 떨어질 수 밖에 없었습니다. 그러한 문제점이 많이 제기되어 수정되어 현재의 서비스는 충실한 편에 속한다고 생각합니다. 외국제품들의 서비스보다는 훨씬 낳습니다. ^^;)

국산제품 무조건 옹호하거나 애용하자고 하기는 좀 그렇습니다. 이 치열한 세상에서 그러한 논리를 내놓으면 뒤떨어진 수국론자로 취급되기 일쑤입니다. 하지만, 나름대로 외국제품과 경쟁해도 뒤떨어지지 않는 제품을 국산이라는 미명하에 깎아내리지는 말았으면 좋겠습니다. 애초에 외국제품들 끼리 비교하듯이 성능을 비교해보고 비슷하다면 기왕이면 다홍치마라고 국산제품을 선택하는 모양새면 좋겠습니다. 국산제품이 서비스를 받기에는 더욱 용이합니다.
정 갑갑하면 본사로 쳐들어갈 수도 있잖습니까? ^^;

-본의아니게 겁쟁이로 올리는군요 : 처리~-

익명 사용자의 이미지

아래의 '(비교적)최근'에 Unisql을 써본 이 입니다.
만져본건 기껏해야 1개월 밖에 안되고, 당시 사이트 마감이 2-3개월여 밖에 남지 않아서 (네, 프로젝트 막판에 손보러 들어갔던겁니다) UniSQL에 대해서 잘 모르는 상황이라는 점은 인정합니다.
(집에 UniSQL 교육자료라고 좀 부실한 한글 매뉴얼이 있긴 합니다.)

저는 매뉴얼이 부실하다는것 이외에 제품에 대한 다른 입장은 없습니다. (다만, 오라클이나 MS-SQL처럼 공부하는 사람이 많으면 어디 물어볼 곳이라도 있지만 UniSQL은 그런게 없어서 좀 답답하더군요. 기술지원부에 문의했는데 어리둥절한 대답이 돌아왔던 적이 한두번 있어서.. 그런게 좀 아쉽더군요.)

약간의 오해 해명을 위해서...
당시 상황은 UniSQL - UniCAS 까지가 한 서버에 설치되어 있고 웹서버에서 PHP모듈이 UniCAS로 접속을 합니다. UniCAS를 빼먹어서 오해를 샀나 보군요. ^^
웹서버와 DB서버가 분리된 환경이라 TCP/IP였구요. 당연히 UniCAS가 없으면 접속 자체가 안되지요.
제가 지적한 쪽은 웹서버 부분의 문제였습니다.
1User 접속시 DB Connection Open 이 평균 4회 일어났으니 UniCAS가 견딜리 없죠. 겨우 200명 붙었는데 자폭하더군요. 테스트때는 더 심해서 20명에 다운된 적도 있었습니다. ;;
Connection Pool 등이 있는 미들웨어 이야기는 웹서버쪽의 이야기였습니다. (웹서버 측에도 UniCAS 같은 녀석이 있어서 Connection을 관리해 줘야 하는데 그런게 없으니 난리가 난거죠. 넷스케이프 서버에 어설픈 설치라서 php가 CGI식으로 실행되다보니 Connection 공유도 안되었고..)

DB쪽은 어떻게 손댈수가 없어서 (개발자들이 받아온 매뉴얼이라고는 부실한 한글 교육자료가 전부였거든요) 테이블 설계 개선은 포기했고 시스템 튜닝만 KCC측에 의뢰했었지요. 잘못짜여진 테이블에 대해서도 문의했었는데 거기서도 손써보려 하다가 포기하더군요. 인덱스만 걸어주고 끝.. --;
(처음에 그 프로젝트에 투입된 사람들이 제대로 신경 안쓴 부분이 있었습니다. 시스템의 특성을 이해하지 못했던 거지요.. 중간에 개발자들이 계속 바뀐것도 이유기도 하구요. 노하우 전수가 안되서 코드도 디비도 뒤죽박죽..)

oid를 이용한 빠른 fetch 같은 장점도 꽤 매력적입니다만..
아직도 그 특성은 잘 모르겠습니다. document 도 없구요.
알려지지 않은 이유는 document 라는 점도 꽤 중요한 이유일듯..
한글문서도 잘 못알아먹는 개발자들이 많은데 영문문서면 오죽했겠어요.. ^^;

김기한의 이미지

제가 프로그래머가 아니고 경영학을 배운거라 눈에 이런거만 보이는데요...
우리나라 SW는 자신이 시장을 제한하는 부분이 있습니다.
미국산 SW는 만들 때 영어로 만들어지니까 영어 쓰는 나라는 시장으로 볼 수 있는데
우리나라는 "토종"을 강조한 나머지 우리나라 밖으로 퍼져나가기 어려운 마케팅을 하는 아쉬운 부분이 보입니다.
처음부터 개발을 영어로 한다음에 한글판을 별도로 두는 것이 더 넓은 시장에 접근하는 방법이 아닐까 생각합니다..
--
서명 :

서명 :

익명 사용자의 이미지

우리나라 실정에서 영어를 기본으로 소프트웨어를 개발한다는건 쉽지 않습니다.
우선은 소프트웨어를 개발하는 구성원들이 영어를 어느정도 알아야하는데,
이놈의 나라에선... --;;;;
차라리 중,고,대학교 영어교육의 문제점을 고치는게 어떨까요?

익명 사용자의 이미지

근데, 문제는 학생들이 외국어를 기피한다는 점이지요.
그리고 대학교에서는 중학교 때 배운 것과 수준히 비슷한 것만 가르치더군요.(거의 복습수준) (새내기 때 학교 영어시간에 무척 실망했지요.)Anonymous wrote...
> 우리나라 실정에서 영어를 기본으로 소프트웨어를 개발한다는건 쉽지 않습니다.
> 우선은 소프트웨어를 개발하는 구성원들이 영어를 어느정도 알아야하는데,
> 이놈의 나라에선... --;;;;
> 차라리 중,고,대학교 영어교육의 문제점을 고치는게 어떨까요?

익명 사용자의 이미지

시스템 소프트웨어의 정의가 뭡니까? 궁금해지네요...

lovehis의 이미지

뭐 정의는 아니고... 책을 보니까.. 이렇게 나와 있군요..

An Application program is primarily concerned with the solution of some problem, using the computer as a tool;
the focus is on the application, not on the computering system.
System programs, on the other hand, are intended to support the operation ans use of the computer itself, rather than any particular application;
for this reason, they are usually related to the structure of the machine on which they are to run.
.
.

Leland L. Beck, System Software - An Interoduction to Systems Programming 2Ed.

제가 해석에 자신이 없어서 원문을 올림니다... 그럼 이만...
--
늘...

익명 사용자의 이미지

아마도 시스템 소프트웨어는 시스템(즉, 하드웨어)들을 관리하기 위한 소프트 웨어이고,
응용소프트웨어서 시스템이 갖추어졌다는 전제하에 사용자들에게 편익(혹은 툴?)을 제공키위한 소프트웨어가 아뉠까염? ^^

익명 사용자의 이미지

그런데 티멕스하고 제우스는 티멕스 소프트거 아닌가요?

그 제우스하고 여기 나오는 제우스 하고 다른건가봐요?
그런데 어쩌다 같은 이름을 사용하지?
제가 아는 제우스는 ApplicationServer이고
얼마전에 버전 4.0이 나온걸루 아는데 뭐가 뭔지 모르겠네요.
-영희-

익명 사용자의 이미지

영희야 놀자.

- 철수 -

익명 사용자의 이미지

멍멍

-바둑이-

익명 사용자의 이미지

티멕스의 제우스는 JEUS(Java Enterprise User Solution)이고

위에서 말한 제우스는 GEUS(이건 머의 약잔지 몰겠네요. 저희 회사에서 게우스라고도 하죠..-_-;) 입니다.

아마.. 어떻게 약자로 하다보니 이름이 비슷해 진거겠지요..:)

익명 사용자의 이미지

아하~ 그렇군요.

감사합니다.

-영희-

익명 사용자의 이미지

딴지가 아니라 정말 궁금해서 적어봅니다..

DBMS가 시스템 소프트웨어 맞나요?
아닌걸로 아는데..
OS,compiler,linker & loader는 시스템 소프트웨어가 맞는걸로 아는데..
요즘은 DB나 미들웨어도 확장개념의 시스템 소프트웨어로 처주나요?
DB나 미들웨어 없이도 어플리케이션은 잘 작동가능한걸 보면요..
요즘 어떤 책에선 c API몇개 끄적거려 놓고도 시스템 소프트웨어라고 하길래요..

익명 사용자의 이미지

물론 User영역에서 사용하는 DB도 많이 있죠.
하지만 Real Time DB(DataBase)는 System Software에서 많이 사용됩니다.
Message Queue혹은 Signal혹은 Timer 관리, Task관리, 각종 Structure관리를
하기 위해 사용됩니다.
예를 들자면 GateWay나 전화망에 들어가는 ATM장비도 Real Time DataBase를 사용합니다.
다시말하자면,
kernel이나 시스템 프로그램도 Data를 사용하고 있고 그런 것들을 핸들링 하기 편하게 Real Time DataBase를 사용하지요..
주로 많이 사용하는 알고리즘은 Doubly LinkedList나 Tree 알고리즘(정말 대단한 알고리즘입니다....)을 많이 사용합니다.Anonymous wrote...
> 딴지가 아니라 정말 궁금해서 적어봅니다..
>
> DBMS가 시스템 소프트웨어 맞나요?
> 아닌걸로 아는데..
> OS,compiler,linker & loader는 시스템 소프트웨어가 맞는걸로 아는데..
> 요즘은 DB나 미들웨어도 확장개념의 시스템 소프트웨어로 처주나요?
> DB나 미들웨어 없이도 어플리케이션은 잘 작동가능한걸 보면요..
> 요즘 어떤 책에선 c API몇개 끄적거려 놓고도 시스템 소프트웨어라고 하길래요..

익명 사용자의 이미지

Database Management System
D...B... M......... S

lovehis의 이미지

DBMS도 System Software 임니다...
--
늘...

익명 사용자의 이미지

아직 쓰고 있습니다.
Mandrake를 쓰고 있는데, 여기서 console에서 한글을 쓰려고 X를 띄우는 것이 불편해서 알짜에서 han을 가져다가 쓰고 있죠 ^^;

익명 사용자의 이미지

UniCon

익명 사용자의 이미지

이글은 지워주십시오. 밑의 콘솔에서 한글을 쓰고 싶어하시는 분의 글에 답장을 달려 했습니다.

익명 사용자의 이미지

UniSQL을 94년도에 써 본 경험이 있었고
UniSQL이 국산이라기 보다는 대표이사가
김원박사였던걸로 기억하는디 ..맞남..^^

객체지향개념이 적용되었고,
또한 관계지향 데이터베이스를 지원한다는 면에서
OODB라기 보다는 ORDB라고나 할까..

지금은 모르겄는디 94년도 사용할당시에
기술지원상, 기술적인, 문제들이 있어서
결국 포기했어야 했는데염..

그리고 그후 국내 모 회사에서
UniSQL사를 인수한 것으로 알고 있는데염 ,,맞나염..

익명 사용자의 이미지

원래 Unisql 회사는 망했구요, 그 회사에 투자를 했던 NTT나 KT에서
소스판권을 샀던 것으로 알고 있습니다. 그 중에 하나가 한국 컴퓨터 통신(KCC)
이라는 회사구요.

KT에서는 제우스라는 GIS DBMS를 만들어서 얼마전에 코스닥 등록까지 했구요,
KCC에서는 현재 그 제품을 이어받아서 판매하고 있습니다. 얼마전 캄보디아에
2천만 달러어치 수출했다더군요.
DBMS로 해외 판매는 처음이라는 이야기가....

그럼.
Anonymous wrote...
> UniSQL을 94년도에 써 본 경험이 있었고
> UniSQL이 국산이라기 보다는 대표이사가
> 김원박사였던걸로 기억하는디 ..맞남..^^
>
> 객체지향개념이 적용되었고,
> 또한 관계지향 데이터베이스를 지원한다는 면에서
> OODB라기 보다는 ORDB라고나 할까..
>
> 지금은 모르겄는디 94년도 사용할당시에
> 기술지원상, 기술적인, 문제들이 있어서
> 결국 포기했어야 했는데염..
>
> 그리고 그후 국내 모 회사에서
> UniSQL사를 인수한 것으로 알고 있는데염 ,,맞나염..

익명 사용자의 이미지

UniSQL이 국산 이라고 하기에는 좀 어폐가 있다고 봅니다.
원래 미국회사죠. KT가 당시 투자를 했다가 이 회사 부도 나면서
소스및 판권을 인수한걸로 알고 있습니다. 당시 KCC도 망하기전에 소스 라이센스를 구입했던걸로 알고 있습니다.

익명 사용자의 이미지

어쩐지, 매뉴얼셋이 참 부실하더군요.
한국꺼라 들었는데 제대로 된 한글 매뉴얼이 없었거든요. -_-;;
2000년, 2001년에도 여전히 그랬습니다.
(유승준 사태며 요즘 히딩크에게 명예국적을 어쩌구 하는 그 정부기관에서 웹 데이터 저장용 디비로 사용합니다. 아주 잠시 참여한 경험이 있어 압니다.)

외국회사였군요. 원 제작사는 망했고...
이해가 갑니다. 끄덕.

아주 잠시 써봤는데 테이블을 Object처럼 다루는게 재밌긴 했었는데
자세한 한글 매뉴얼이 없어서 다들 대충 설계했던 기억이 납니다.
(그냥 보통의 RDBMS처럼 다뤘지요. 덕분에 엄청 느렸구요.)
개발언어가 하필 PHP여서 굉장한 삽질을 했었지요.
KCC에서 PHP용 라이브러리를 주긴 했었는데 이게 말을 잘 안듣더군요.
Connection Pool 도 없어서 수시로 Connection Over. (그게 PHP의 한계였지만.. 미들웨어 없이 PHP에 DB모듈 링크해서 바로 접속해 댔으니.. 수백명 몰렸더니 Connection Over로 다운되더군요. netstat 해보면 가관이었습니다.)
(프로젝트 당시 프로그래머들도 마구 갈아치워대서 게시판 하나에 Connection이 4개고 5개고 마구 열리는 상황이 연출되기도 했었고..)

삼천포까지 와버렸군요. ^^;
뭐 그랬었다는 기억. ^^

익명 사용자의 이미지

이런거 하나 나왔으면 좋겠다
부팅할 때 첫화면부터 한글이 나오는 OS

리눅스 텍스트모드로 띄우면 한글로 입출력이 안되던데...
X Window 띄우고 아미,한텀 등등을 쓰면 한글 입출력이 되기는 하지만...

익명 사용자의 이미지

그럴려면 BIOS에 한글 Font를 저장해야하지요.
그것이 조합형이라면 아주 큰 Font Data를 요구하지는 않지만 조합형을 처리하는 Code가 필요하겠지요. 완성형이라면 엄청난 Font Data가 필요합니다. 그러니 Unicode는 지원이 어렵지요.

그리고 BIOS에서 지원하는 Font를 System Font라고 하며 따로 Font를 가지고 있지 않은 아주 저급한 운영체제에서도 사용할 수 있는 유일한 Font이지요.

익명 사용자의 이미지

한글입출력이 됩니다..^^

익명 사용자의 이미지

윗글 쓴사람은 아니지만 그 답좀 가르쳐 주십시요....

콘솔에서 한글 입출력 나오는 비법을...

익명 사용자의 이미지

20세기 말에는 han 이라는 패키기지를 이용해서 콘솔에서 한글을 사용 했었져.. Mizi Linux 1.0에서는 han을 사용해서 Installer부터 한글이 나오도록 했었져... 요즘 배포판에는 들어 있지 않더군요...
워낙에 X 가 보편화 된 데다가 OS Loader에서 OS목록에 한글이 지원되는 데다가..

익명 사용자의 이미지

20세기 말... 무척 오래전의 얘기처럼 들리는군요-_-;