본문 바로가기
database

2022.12.30 데이터베이스 첫걸음 3장 정리

by 해맑은 코린이 2022. 12. 31.

ㅎㅇㅎㅇ 1일 1포스팅 얼마만이야... 내일까지 하면 올해가 마무리 되는데 연말에 포스팅이라니 낭만적~~~

오늘은 데이터베이스 첫걸음 책의 3장을 정리하로 꼬!

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=94059951

 

데이터베이스 첫걸음

데이터베이스와 관련이 적은 일반인도 읽을 수 있게 구성하였다. 이 책은 실습과 강의로 나누어 설명한다. 데이터베이스를 구성하는 다양한 요소를 먼저 확인(실습)한다. 그런 다음 그 요소에

www.aladin.co.kr

 

 

3장. 데이터베이스에 얽힌 돈 이야기

3장에서는 데이터베이스의 초기비용과 운영비용을 토대로 비용 얘기들을 정리할 예정!

 

 

왜 시스템에 돈을 내는가

애초에 우리는 왜 시스템을 새로 만들거나 서비스로써 제안하는 목적이 뭘까. 

정말 단순하지만 책에서도 편리한 기능을 세상에 제공하고, 그 대가로 이익을 얻기 때문이라고 말하고 있다.

아주 정밀하게 만들어진 고품질 시스템이라 하더라도 사용자가 불편해서 전혀 사용하지 않으면 채산성도 얻지 못하고 '실패한 프로젝트' 의 순서를 밟게 된다. 시스템 개발 실패의 예에는 개발 프로젝트 그 자체가 붕괴하는 데스매치(개발자가 가혹한 환경에서 노동을 강요당해 실패할 가능성이 높은 프로젝트를 가리킴.) 패턴이나 '시스템으로써는 잘 완성되었지만 릴리스해보니 투자금 회수를 못하고 적자' 라는 패턴이 의외로 많다.

또한 직접적인 이익추구를 하지 않더라도 서비스 향상과 업무 효율화에 따른 비용 절감 등의 목적으로도 시스템은 존재할 수 있다.

이처럼 시스템의 개발이나 유지란 것도 인간이 하는 경제활동의 일환인 이상 항상 이익과 비용의 균형을 취하는 것이 요구된다.

엔지니어 또한 자신이 하는 일이 고객이나 회사에서 어떤 가치가 있는지를 생각하지 못한다면, 결국 자기만족으로 끝나버리게 될 것이다.

 

 

 

- 데이터베이스의 초기 비용

시스템의 전체 비용 내역

여러 관점이 존재하지만, 데이터베이스에 한정하지 않고 시스템 전체를 볼 경우 중요하게 여겨지는 분류가 초기비용과 운영비용이다.

초기비용과 운영비용의 구분은 시스템 업계에 한정되지 않고 사업에서 Pricing 의 기본이라고 생각하면 될 듯!

 

초기비용

최초에 지급하는 돈

ex) 하드웨어 구매비용, 엔지니어나 프로그래머의 급여 등

 

운영비용

서비스를 이용하는 기간에 계속해서 지급하는 돈

ex) 시스템 가동 후 장애 대응비, 유지보수 비용 등

 

일반적으로 운영비용의 단위 금액(예를 들어 월 비용 또는 연간 비용) 은 초기비용에 견주어 낮게 설정된다. 하지만 운영 비용을 합한 금액을 보면 초기비용을 초과하는 경우도 드물지 않다. 또한 초기비용과 운영비용의 비율을 바꿔서 전체비용을 낮게 보이려는 심리적인 트릭도 존재한다.

 

데이터베이스의 초기비용

DBMS를 도입할 때의 초기비용은 한마디로 소프트웨어의 라이선스 요금이다. 라이선스 요금이란 '소프트웨어 사용허가료' 이다.

유료 소프트웨어를 사용하는 경우 라이선스료를 지급하는데, 이는 소프트웨어 제품을 만든 회사에 개인 또는 기업이 사용을 허락해 달라며 돈을 내고 부탁하는 것이다. 이또한 DBMS에만 국한되는 것이 아닌 모든 유료 소프트웨어 제품에 통용되고 있다. (유사단어로는 Subscription - 구독 이 있음.)

 

 

라이선스 요금과 가격의 차이

이렇게 보면 라이선스료는 해당 소프트웨어의 가격이라고 생각할 수 있지만, 라이선스료를 지급하면 소프트웨어를 사용할 수 있다는 점에서는 의미가 동일하지만, 일반적으로의 가격의 의미와는 조금 다르다. 

그 차이를 판매 단위가 특수하다는 점운영비용을 지급하지 않으면 현실적으로 사용할 수 없다는 점으로 크게 2가지로 구분한다. 

일단 초기비용부터 살펴볼 것이기 때문에 판매 단위 부분을 먼저 정리해보자!

 

DBMS를 포함한 소프트웨어 제품에서는 그 실체를 확인할 수 있는 물리적 단위가 없어서 '0개' 와 같은 셈을 할 수 없다.

또한 간단히 복제를 할 수 있는 방법이 존재하기 때문에 낮은 비용으로 구매하여 복제본을 늘릴 수도 있다. 따라서 물리적 단위가 아닌 논리적 단위로 판매 되고 있는데, 여기서 또 2가지의 단위로 나뉠 수 있다.

 

프로세서 라이선스 (Processor License)

DBMS를 설치해서 동작하는 하드웨어(DB 서버)의 CPU 성능에 따라 가격이 결정되는 라이선스 체계.

사용자 수가 많거나 불특정 다수가 이용해서 사용자 수를 셀 수 없는 경우에 적용한다.

CPU 개수가 아닌 성능 단위인 이유는 1개의 CPU에 복수의 프로세서 코어가 있는 멀티 코어 CPU를 탑재한 서버 머신이 주류이기 때문.

또한 프로세서 종류에 따라 코어 계수를 사용해 보정을 걸어 균형을 취하고 있는 경우도 있음.(ex) Oracle)

 

사용자 라이선스 (User License)

DBMS를 이용하는 사용자 수에 따라 가격이 결정되는 라이선스 체계.

일반적으로 사용자 수가 적은 경우에 유리하다.

 

이 두가지 라이선스는 DBMS가 동작하는 시스템의 규모가 커질수록 데이터베이스 서버의 프로세서 수는 증가하고 이용하는 사용자 수도 많아지기 때문에 라이선스료도 올라간다는 특징이있다.

PostgreSQL 이나 MySQL 과 같은 오픈소스 DBMS는 라이선스료 자체가 무료인 경우가 있다.

이것은 이 2가지 오픈소스 제품이 사용자에게 폭넓은 권한을 부여하는 라이선스 체계를 채택하고 있기 때문. 이는 초기비용을 0원으로 할 수 있기 때문에 인기가 있는 이유 중 하나라고 할 수 있다.

 

 

- 초기비용을 늘리는 범인

에디션과 옵션

위의 내용들은 기본적인 계산 로직이므로 실제 데이터베이스 벤더에서 제공하는 초기비용 계산표를 이해해서 적당한 금액인지를 확인하기에는 어렵다.

좀 더 복잡한 내용을 덧붙이자면, '에디션' , '옵션' 선택 부분이 있는데, 이부분은 초기비용을 좌우하는 매우 중요한 부분

여기서 에디션 또한 크게 2가지로 나뉜다.

 

• 스탠다드 에디션(SE, Standard Edition)

일반적으로 중소규모 시스템용.

 

•엔터프라이즈 에디션(EE, Enterprise Edition)

일반적으로 대규모 시스템용.

실제 제공하는 기능은 제품에 따라 차이가 있지만, 엔터프라이즈 에디션에서는 스탠다드 에디션에 없는 편리한 기능이 추가 된다.

당연히 가격도 더 높음!

신뢰성(가용성 : 클러스터 구성, 리플리케이션) , 성능(일정 수량 이상의 프로세서 기술지원, 테이블 파티셔닝, 성능 리포트 출력, 데이터 압축) , 보안(데이터 암호화, 감사로그 기록) 등이 제공된다.

이러한 옵션들을 제공하여 더욱 비싼 가격으로 형성되어 있는 것이 엔터프라이즈 에디션!

참고로, 시험판의 느낌과 같은 익스프레스 에디션 또한 일부 제품에서는 존재한다.

 

 

- 데이터베이스의 운영비용

운영비용의 필요성

상용 시스템에서는 당연히 초기비용 못지 않게 운영비용이 발생한다.

운영비용은 기간이 정해진 비용으로, '월 단위 또는 연 단위 얼마' 처럼 반드시 일정 기간으로 비용을 계산하게 된다. (보통은 월별)

이는 데이터베이스의 이용 기간이 길면 길수록 비용도 증가한다는 의미이다. 이것이 처음 일정액을 내면 그 이상으로 지급할 필요가 없는 초기비용과의 큰 차이점이 존재한다.

 

데이터베이스의 운영비용

데이터베이스에서의 운영비용이란 기술지원 비용을 뜻한다.

데이터베이스를 사용하다 보면 버그나 이해할 수 없는 동작이 종종 발생하는데, 심한 경우 데이터베이스가 Crash 되어 시스템 전체가 정지되는 중대한 버그가 발생할 수도 있다.

이런 경우에는 데이터베이스 개발자의 지원이 없이는 문제를 해결하기 어렵다.

 

이러한 기술 지원 항목으로는 기술 Q&A, 버그 수정을 위한 프로그램(패치) 배포, 최신 버전으로의 업데이트 권리, 새로운 OS 나 하드웨어의 대응, 전문 기술자나 컨설턴트를 통한 문제 해결, 노하우나 버그 정보 같은 기술 데이터베이스로의 접근 권리 등이 있다.

데이터베이스 뿐만 아니라 대부분의 상용 OS 나 미들웨어 또한 기술지원 없이 사용하는 경우는 없다.

 

이러한 기술 지원이 필요한 이유는 기술 지원이 없다면 사고가 일어났을 때는 자력으로 해결해야 하는데, 이는 해결을 할지도 미지수일뿐더러 결국 별도의 비용이 더 발생하기 때문이다. 가장 중요한 점은 장애의 책임을 자신의 조직이 지게 된다는 것이다. 책임의 분산 + 보험이라고 생각하면 좋을 것 같다.

 

기술지원 수준은 매년 내려간다.

기술지원 서비스를 이용할 때 서비스의 레벨은 제품 구매 시점이 아닌 제품의 배포 시점을 기점으로 해서 시간이 경과함에 따라 낮아져서 최후에는 기술지원 종료를 맞게 된다. 구매 시기와 기술지원 기간은 관계가 없다는 것을 한번 더 기억하자.

제품이 배포된 시기인 한동안은 제품을 널리 보급하려는 벤더의 전략과 신속한 패치나 새로운 환경의 대응 등을 위해 다양한 기술지원을 제공한다. 이런 서비스 레벨은 점차 낮아져서 최후에는 신규 버그에 대한 패치를 제공하지 않음으로써 기술지원을 종료하는데, 이 타이밍을 EOSL(End Of Service Life) 라고 한다. 소프트웨어를 채택할 지 검토할 때 자주 나오는 용어라고 하니 기억해두면 좋을 듯.

 

복잡한 점은 구매 시기가 기술지원 기간과 관련이 없어 무작정 최신 버전을 사용하면 좋을까 ..? 당연히 아님.

소프트웨어라는 것은 어떤 의미에서는 버그의 집합체와 같은데 사용자가 적은 최신 버전은 안정성이나 신뢰성에 결함이 있는 경우가 많다. 9.0.0.0 , 11.0.0.0 처럼 마이너 버전을 표시하는 숫자를 000까지 갖춘 최신 버전의 소프트웨어는 아무리 상용제품이라 하더라도 동작이 안정화되지 않는 경우가 있다.

버전에 관한 설명은 요기에 잘 정리해주셔서 살짝쿵 참고차 링크 남기기!

https://kiwinam.com/posts/33/version-naming/

 

Software 버전 관리 규칙, 너만 모르는 Semantic versioning :: 키위남

소프트웨어를 개발하다보면 정말 수많은 규칙들을 세우고 없애고 수정하는 것 같아요. 저도 혼자 개발하고 흡–족 할 때는 이런 규칙과 컨벤션들에 대해 무관심 했었는데, 이제 프로로 데뷔한

kiwinam.com

오늘도 멋진 블로그는 참 많다 ㅎ 감사합니답

 

 

운영비용에서 또 고려해야하는 고민거리에는 트레이드오프(어떤 장점을 선택할 때 그 대가를 지급하지 않으면 안 되는 상황)가 있다.

트레이드오프 또한 데이터베이스에 한정된 이야기는 아니고 OS, 업무 패키지 등에 이르기까지 소프트웨어를 선정할 때 항상 고민거리가 된다. 기본적으로 소프트웨어 벤더는 되도록 편리하고 향상된 신버전을 개발하고 싶어한다. '구버전의 기술지원' 이라는 퇴행적이고 창조적이지 않은 일을 계속할 필요가 없게 되기 때문이다. 하지만 섣불리 신버전을 출시했다가는 버그 덩어리인 극악 품질 제품으로 인해 쉬지 못하고 트러블 대응에 쫓기게 된다.

 


 

이렇게 초기비용, 운영비용을 각각 정리했으니 이제 조합은 어떻게 될까!

초기비용을 라이선스, 운영비용을 기술지원 비용으로 정리한다면 논리적으로 3가지 모델을 생각할 수 있다.

 

초기비용 있음 + 운영비용 있음

초기비용 있음 + 운영비용 없음

초기비용 없음 + 운영비용 있음

 

초기비용 없음 + 운영비용 없음 은 완전한 무료 소프트웨어여서 현실적으로 상용시스템에는 적용할 수 없다.

초기비용과 운영비용이 모두 있는 경우인 Oracle, SQL Server 등 일반 벤더 제품의 데이터베이스를 사용하는 경우로 상용 시스템용에서 가장 일반적이다. 아까 말했듯이 운영비용, 즉 기술지원 비용이 없는 경우 또한 현실적으로 불가하다.

초기비용 없음 + 운영비용 있음의 경우는 OSS(오픈소스 소프트웨어)를 사용하고 기술지원료만 유상으로 지불 또는 기한이 정해진 소프트웨어 사용권과 기술지원을 받을 수 있는 권리를 묶어서 판매하는 서브스크립션 형식을 따르는 것들이 있다. 대표적인 제품으로는 Linux OS 사의 Red Hat 과 My SQL 등이 있다.

 

 

아까 잠시 언급했던 서브스크립션이 다시 나와 정리하자면, 서브스크립션은 말그대로 구독제 즉 임대의 느낌으로 책에선 비유하고 있다.

사용자는 매년 일정액의 운영비용만 부담하면 된다.

임대모델의 장점으로는 '처음에 일정 금액을 가지고 있지 않아도 이용할 수 있다'는 점을 들 수 있다. AWS 등의 클라우드 서비스에서도 제공되어 시험판으로 사용해보고 싶은 라이트 유저가 선택 폭이 넓어진 것처럼!

또한 시작도 간단하기 때문에 그만두는 것도 간단하다. 계약을 갱신하지 않으면 비용을 지급을 하지 않아도 되고 다른 것으로 갈아타면 되기 때문. 최종적으로 의사결정 비용이 적게 들게 된다. 하지만 장기적 관점으로 보았을 때는 당연히 이 모든 것들이 단점으로 돌아오겠지 비용이 적은만큼 기능은 적으니까

 

 

 

 

 


후.. 오늘은 진짜 일반적인 내용에 대해서 다루어본 것 같다 ㅋㅋㅋㅋㅋㅋ 이 뒤에도 초기비용의 트릭 부분이 2장 정도 나오는데 참고 note 부분에 사람은 모두 조삼모사의 원숭이라는 말이 나오는뎈ㅋㅋㅋㅋㅋㅋㅋ 책에서도 인간미가 있고 먼가 tmi 들을 듣는 느낌이라 아직까지는 재밌다! 사실 이렇게 블로그로 정리하면서 으웩.. 이론 싫어 ( 원래 엄청 시러함 ) 했지 그냥 가볍게 읽기에는 정말 친절한 책이라고 생각한다. 29일에 완성시키려했는데 미루다 결국 30일 새벽 3시에 완성하네.. 난 머 원래 새벽반이니까 ㅎ

오늘도 그치만 정리를 완수했다는데 초점을 두자고! 오늘은 독후감이다 생각하고 가볍게 읽어보시길 ㅎㅎ

그럼 모두 굿빰 🧚🏼‍♀️

댓글