본문 바로가기
programming/DataManage

내장 DB 데이터베이스 종류 대중적인 것이 좋은 것

by 개코 - 개발과 코딩 2024. 4. 1.

프로그램 개발시 간단한 DB ( 데이터베이스 )가 필요한 경우가 있다. 내장 DB는 이런 경우 적당하다. 작고 가벼우며 속도도 빠르다. 단지 다른 DB들과는 다르게 프로그램 종속적이기 때문에 애플리케이션 없이는 구동되지 않는다. 간단한 애플리케이션으로 데이터 테스트를 하기에도 부담이 없다. 내장 DB는 그 종류도 많은데 선택이 어렵다면 가장 대중적인 SQLite 를 사용해 보는 것도 나쁘지 않다. 한가지 더 있다면 H2도 쓸만하다.

내장 DB SQLite

내장 DB 데이터베이스 종류
대중적인 것이 좋은 것

간단한 프로그램을 제외하면 거의 모든 프로그램은 DB ( 데이터베이스 )를 사용한다.
대표적인 DB 라면 MySQL, MSSQL, Oracle 이 있지만, 이외에도 많은 것들이 존재한다.
언급된 대표적인 DB 들은 별도의 프로그램을 사용하여 사용할 수 있지만, 프로그램에 종속된 작은 DB 들도 존재한다.
소위 내장 DB 라 하여 Built-in 형식으로 동작하는 것들이 그렇다.
별도의 프로세스 서비스가 존재하지 않지만, 프로그램 동작시 같이 실행되어 DB 처럼 사용할 수 있다.
내장 DB 의 장점은 작고 빠르고 가볍다는 장점이 있다.
대표적인 내장 DB 라면 SQLite 가 있다.
시간이 지난 지금 다양한 종류의 내장 DB 가 있고 관계형 데이터베이스와 같은 쿼리를 하여 사용할 수도 있다.
어떤 경우 파일로 기록을 할 때도 있지만 늘어나는 파일 때문에 내장 DB 를 사용하는 경우들도 있다.
어쨌든 내장 DB 가 어떤 것이 있고, 특성이 무엇인지 알면 프로그램 개발시 유용할 것 같은 생각이다.

사용 목적

내장 DB를 사용하는 이유가 무엇일까?
굳이 무거운 데이터베이스를 설치하지 않고, 가공되는 데이터들을 가볍게 처리하기 위함이다.
또한, 파일로 저장하는 것보다 편한 점도 있다.
프로그램을 사용하는 로컬 사용자정보. 로그정보 또는 프로그램의 환경설정 등을 이용할 수 있다.
이런 점에서 내장 DB 는 가볍고 빠르게 효과적이다.
그렇다면 많은 내장 DB 들 중 선택의 기준을 세우는 것이 좋다.
개발과 프로그램 유지보수를 위해 어차피 내장DB 를 설치하고 쿼리를 사용해야 하며, DB 에 접속하여 사용하듯이 코딩도 해 주어야 한다.
개발 편의성과 유지보수와 같은 수정의 용이함이 결정적이겠지만, 혹여라도 관계형 데이터베이스처럼 사용하고자 할 수 있다.
선택의 기준이라.
생각없이 결정한다면 다른 사람들이 많이 사용하는 것을 선택하면 그것도 방법이다.
일단 내장 DB ( 데이터베이스 ) 의 종류를 찾아보고 홈페이지를 둘러보자.
그리고, 다른 사람들의 의견도 찾아보도록 하자.

선택의 기준

업무를 위한 여러가지 편리한 툴들은 넘쳐난다.
이런 여러가지 툴들 중에 정말 자신에게 맞거나 또는 팀원들에 도움이 되는 것을 고르는 것은 어렵다.
또한, 개발중인 언어와의 호환성과 개발 편의성도 고려해야 한다.
이런 경우 개발자에게 선택장애가 오겠지만, 선택의 기준으로 가장 쉬운 방법은 많은 사람들이 사용하는 것 또는 가장 많은 포스팅이 있는 것을 선택하는 것이 좋다.
새로 접하는 프로그램이 아무리 편하고 좋다는 소문이 있어도, 자신에게 맞지 않는 경우라면 인터넷에서 도움을 받을 수 없기 때문이다.
그럼에도 선택에 어려움이 있다면 IT 서적중에 번역이 되어 있거나 또는 개발자가 작성한 책자가 있다면 그것을 선택하자.
검색하는 시간보다 책 한권을 구입하고 개발일과 병행하는 것도 나쁘지 않다.
참고로, 많이 사용되고 언급되는 내장 DB들 중 유명한 것은 SQLite와 H2 이다.
본인이 이것을 선택한 것은 내장 DB를 사용하지 않더라도 이런저런 내용들에서 한번쯤 보거나 들었던 것들이기 때문이다.

내장 DB 종류

대표적인 DB ( 데이터베이스 ) 3가지는 MySQL, MSSQL, Oracle 정도지만, 이들의 공통점은 관계형데이터베이스이며, 외부 DB 이기도 하다.
이것은 테이블들 즉, 데이터들간의 관계가 있고, 연관이 있어, 데이터가 저장된 테이블간의 관계를 통해 데이터를 가공하고 화면에 표현할 수 있다는 것을 말한다.
내장 DB 는 별도의 서비스가 없고, 애플리케이션이 실행될 때만 구동되며, 작고 가볍기에 부담이 없다.
이런 점은 장점이긴 하지만, 단점일 수 있다.
독자적 실행이 아니며, 프로그램 종속적이기에 애플리케이션이 실행되지 않는다면 구동되지 않는다.
단순히, 관계형이 아닌 것들도 있기에 내장 DB 에 관심이 있다면 최소한 기능 정도는 파악해 두는 것이 있다.
아래는 여러가지 내장DB 를 기술한 것이다.

  • SQLite
  • H2
  • Berkeley DB
  • Apache Derby
  • LevelDB
  • RocksDB
  • Tokyo Cabinet

사용 편의성을 찾아본다.

개발자라면 한번쯤 가장 유명한 3대 DB ( 데이터베이스 )를 다뤄봤을 것이다.
MySQL, MSSQL, Oracle 이 그것이다.
이들의 공통점은 관계형 DB 라는 것이며, 행과 열로 구성된 테이블의 형태로 데이터를 보관한다.
그리고, 각 테이블은 서로 연결이 되어 관계를 맺는다.
내장 DB 를 사용하고자 한다면, 위의 3대 DB와 사용법이 비슷한지 살펴볼 필요가 있다.
새로운 기술을 익히는 것도 좋지만, 가급적 자신에 익숙한 것을 선택하는 것이 업무에도 도움이 될 것이기 때문이다.
이들의 공통적인 특징은 3가지가 있다.

  • 작고, 빠르다.
  • key-value 형태를 가진다.

내장 DB 특성상 개발자가 만든 애플리케이션에 종속적일 수 밖에 없고, 독립적으로 실행되지 않는다.
그렇기에 필요한 기능만 제공된다.

하지만, 이들을 사용해 데이터를 저장하고 사용한다면 조금 더 관심을 가질 몇가지가 있다.

  • 관계형 테이블의 join 지원 여부
  • 트랜잭션 가능 지원 여부
  • 고유키( PK ), 참조키( FK ) 지원 여부

참고로 내장DB인 Tokyo Cabinet 의 경우 참조키와 join 을 지원하지 않는다.

대중적이 좋은 것

내장DB를 이미 사용하고 있거나 사용할 예정이라면 아마도 SQLite 나 H2 내장 DB를 확인해 봤을 것이다.
검색을 통해 또는 커뮤니티를 통해 한번쯤 봤을 단어이다.
그만큼 자주 언급되었단 것은 사람들이 가장 많이 사용하고 있다는 것과 같다.
출시된 시점도 나름 오래되었으며, 지금까지 서비스하고 업데이트도 진행하고 있다.
어쩌면 신뢰성도 자연스레 높아졌고, 사용법도 쉽고, 참고할 내용도 많을 것이란 생각이다.
새로운 것을 익힐 때는 대중적인 것을 선택하는 것도 좋다고 한다.
그만큼 참고할 내용도 많을 것이며, 도움을 받을 것도 많을 것이기 때문이다.
여러 개의 내장DB 때문에 고민이 생긴다면 대중적인 SQLite 를 사용해 보는 것은 어떨까 싶은 생각이다.
본인 또한 내장DB 로 SQLite 를 사용하여 쉽게 개발을 한 적이 있다.
사용법도 쉽고, 간단하며, 기존의 MySQL, MSSQL, Oracle 과 문법 또한 비슷하기에 금방 익숙해 질 수 있다.

반응형

댓글