FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird FAQ
[14] 파이어버드의 장단점
박지훈.임프 [cbuilder] 21470 읽음    2006-01-06 18:36
질문 김호광님

파이어버드의 장단점과 특성은?


답변 박지훈.임프님

장점은, 많은데.. 금방 생각나는 것만 몇가지 써보겠습니다.

먼저, 가장 큰 장점은 완전히 무료다! 라는 거죠. MySQL처럼 어떻게 하면 유료고 불법이다, 그런 거 전혀 없습니다.
무조건 무룝니다.

두번째, 작습니다. 설치를 위해 필요한 파일도 불과 2~3메가 정도로 작고, 메모리를 차지하는 용량도 작습니다.
이게 RDBMS라고는 믿기지가 않을 정도로 작습니다. 필요하면 다른 애플리케이션을 배포할 때 설치 프로그램에 같이
넣어서 배포하기도 쉽습니다. 또 데이터가 RLE 압축이 되기 때문에 데이터 파일도 작습니다.

세번째, 빠릅니다. 이건 관점에 따라 다를 수도 있고 또 테스트하는 방법에 따라 다르겠지만, 써보시면 금방 느끼실 겁니다.
외국 MySQL 사용자들이 하는 말로는 트랜잭션 지원을 위해 MySQL에서 InnoDB를 사용하게 되면 파이어버드가
MySQL보다 더 빠르다고 하더군요. (아시다시피 파이어버드는 MySQL과 달리 기본 상태에서 트랜잭션 지원합니다)
그리고 로컬 디비인 액세스보다도 빠르다는 것은 일반적으로 인정되는 사실인 것 같습니다. (파라독스보다는 느립니다)

네번째, 필요하다면 로컬 디비로 쓸 수도 있습니다. 파이어버드 임베디드 서버라는 걸 쓰면 됩니다.
RDBMS를 로컬 디비로 써야 할 경우는 몇가지 있을 수 있는데, 예를 들면 로컬 디비처럼 외부에서 네트워크로 접근할 수
없고 특정 애플리케이션에서만 독점적으로 접근해야 하면서도 업무의 특성상 고급 SQL이 필요한 경우입니다.
임베디드 서버의 기능이나 성능은 일반 파이어버드 서버와 완전히 똑같고, 배포도 가볍게 할 수 있습니다.

다섯번째, UDF라고 하여 사용자 정의 함수를 dll로 만들어 쓸 수 있습니다. 이건 델파이나 C++빌더, 비주얼 C++로 할 수
있고 그리 어렵지 않습니다. (MS SQL은 이번 2005 버전에서 지원하기 시작한다고 들은 것 같네요)

여섯번째, MySQL만큼 다양한 플랫폼 버전이 나와있습니다. 윈도우나 리눅스는 말할 것도 없고 HP UX나 매킨토시,
솔라리스 등등등 사용자가 어느정도 되는 플랫폼에는 다 포팅되어 있습니다.

일곱번째, 백업이 정말 간편합니다. 파이어버드 디비로 일반 서비스를 하는 동안에도 백업을 해도 되고, 그 경우에도
그렇게 큰 부하가 추가되지 않으므로 아주 러시아워 시간대만 피한다면 백업은 수시로 해도 됩니다.


물론 단점도 없지 않습니다.

첫번째, 아직 대중화가 덜 되어 기술 자료가 적은 편입니다. 하지만 최근 들어 파이어버드가 급속도로 전파되고 있더군요.
올해 초 에반스 데이터 그룹의 조사에 따르면, 파이어버드가 급성장해서 MySQL을 위협하는 정도라고 합니다.
이렇게 성장세를 이어가면 자료의 부족은 계속 나아질 것으로 생각되고요.

두번째, 사소할 수도 있고 심각할 수도 있는 문제지만, 스토어드 프로시저 안에서 트랜잭션을 쓸 수 없습니다.
트랜잭션은 무조건 프로시저를 호출하는 클라이언트 프로그램쪽에서 시작하고 커밋해야 합니다.
이건 2.0에서 개선 예정인지 어떤지는 알아보지 않았습니다.

세번째, 이건 어떤 디비이든 주력 디비를 바꾸려면 어쩔 수 없는 부분이긴 하지만 현실적인 부분이죠. 다른 RDBMS와
표준 안시 SQL 문법 외의 다른 문법들이 꽤 다릅니다. 물론 MS SQL과 오라클도 이정도로 다르고, MySQL도 마찬가집니다.
MS SQL을 쓰셨다면 스토어드 프로시저에서 쓰는 문법이 많이 달라서 특히 불편을 많이 느끼실 수 있습니다.


안정성 부분은....
지금까지 파이어버드나 그 전신인 인터베이스가 실행중에 뻗는다든지 하는 문제는 들어보지 못했고, 제가 쓰면서도
전혀 겪어보지 못했습니다. 하지만 예전 버전의 인터베이스를 썼던 개발자들중 일부가 디비 파일이 깨지는 경우가 있다는
얘기가 몇번 나온 적 있습니다. 하지만 이 경우는 모두 서버가 갑작스레 전원이 나간 경우였습니다. 더 안정적인 디비도
있을 수 있지만 기본적으로 하드웨어가 갑자기 꺼져버리는 데 대해 완벽한 해결책은 어디에도 없겠죠. 물론 복구 방법은
있습니다.


사족: 처음 제가 위 답변글을 썼던 때는 파이어버드 2.0이 알파 상태였지만 지금은 더 안정적인 베타가 나온 상태입니다.
이에 따라 처음 답변글에 있었던 단점 한가지, "서브쿼리가 현재 버전인 1.5.x에서는 안된다"를 삭제했습니다.

+ -

관련 글 리스트
14 파이어버드의 장단점 박지훈.임프 21470 2006/01/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.