Community

데이터베이스에 대하여. 웹개발 을 포함해 앱이나 여러 소프트웨어까지 어느정도 규모의 개발엔 데이터베이스가 빠지지 않는다. 전통적이며 지금까지 가장 주류로 쓰이는 관계형 데이터베이스인 RDBMS

데이터베이스에 대하여. 웹개발 을 포함해 앱이나 여러 소프트웨어까지 어느정도 규모의 개발엔 데이터베이스가 빠지지 않는다. 전통적이며 지금까지 가장 주류로 쓰이는 관계형 데이터베이스인 RDBMS 부터 빅데이터를 다루는 nosql 등 데이터베이스엔 많은 선택지가 있다. 그중에서도 주로 사용되는 데이터베이스는 가장 확고하게 자리를 잡고있는 오라클 과 한때는 오픈소스의 왕좌를 지켰던 mysql 그리고 닷넷 진영의 mssql 까지.. 그리고 오라클에 인수된 mysql 을 우려한 나머지 분리된 mariadb와 postgresql 도 존재한다. 이중에 오라클은 가장 무겁고 다양한 기능을 제공하며 특히 변화를 지양하는 한국 개발의 특성상 가장 많이 사용되며 해외에서도 꾸준히 사용되고 있다. 하지만 상용 목적으론 유료 라이선스를 구매해야하며 불특정 다수가 접속해야하는 웹개발 같은 곳엔 프로세서당 라이선스를 구매해야해 최소 2-3 천의 비용부터 억단위까지 청구될수 있다. 국내엔 티베로가 오라클과 상당히 유사한 제품을 저렴한 비용으로 공급하고 있지만 사실 기능과 안정성 그리고 유지보수에서 오라클에 비해 상당히 떨어지는 것은 사실이다. 또한 mysql도 무료버전은 상용으로 사용할경우 소스 수정만 없으면 유료버전을 구매할 필요가 없지만 오라클 진영이라는게 라이선스에 대한 불투명이 부담으로 작용한다. 또한 무료버전은 이중화라던지 확장기능에 제한이 있어 사실상 어느정도 규모의 프로젝트에서 사용하기 쉽지 않다. 마리아디비 같은경우도 mysql보단 자유롭지만 역시 확장기능을 위해선 유료를 구매해야한다. postgresql 의 경우 현재 새롭게 부상하는 디비로 문법은 mysql과 크게 다르지 않지만 다양한 확장기능을 좀 더 자유롭게 사용할수 있다. 이에 일본에선 가장 많이 사용하는 디비중 하나기도 하다. 그렇지만 오픈소스이기에 오라클 처럼 별도의 유지보수를 바라긴 힘든부분이다. 사실 개발에 자원이 무한하다면 오라클을 선택해서 쓰는게 가장 효율적일수있다. 아무리 dba가 존재한다하더라도 rdbms 자체를 관리할 유지보수인력은 별도로 필요하고 그를 체계적으로 관리할수있는 본사의 시스템은 상당히 안정적이다. 하지만 프로젝트의 규모를 생각하지도 않고 무조건 편리함을 위해서 오라클을 선택하는 것은 전체적인 개발의 질 저하를 가져올수있다. 최근엔 오픈소스라도 많은 방법으로 다중화와 안정성을 확보할수있는 방법이 존재함에도 현실에 도태되거나 새로움을 거부해( 아직 국내엔 새로운 프로젝트에도 자바 1.6 ,1.7 을 통해 개발하기도 한다.) 데이터베이스에 많은 자원을 할당할경우 실제적으로 구현되는 개발자체에 투자가 적어져 비대칭적인 개발이 될수밖에 없다. 쉽게 컴퓨터로 보면 저장장치는 20테라 짜리 nvme ssd를 레이드컨트롤러 까지 붙여 장착해 놓고 정작 cpu와 램은 셀러론에 4기가짜리 하나를 달아논 격이랄까. 항상 개발은 비용에서 자유로울수 없고 오히려 비용을 낮추고 퀄리티를 높여야 되는 일이 비일비재하다. 이때의 기획자는 새로움을 거부하고 내가 했던것중 가장 베스트를 찾는것이 아니라, 내가 할수 있는, 혹은 내가 할수없었던것을 미리 습득하여 이상적이면서도 안정적으로 기획하는 것이다.

알림

알림이 없습니다