Background Image
조회 수 51502 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

무중단 서비스를 위한 DB 서버 이중화 구축
죽지 않아야 한다. 날리지 말아야 한다. 빨라야 한다.

 

* 본 게시글은 월간 마이크로소프트웨어 7월호에 게재된 내용입니다.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
오보명 obm@nhn.com | NHN Business Platform 서비스 플랫폼 개발 센터에서 플랫폼 확산 업무 및 오픈소스 라이선스 컨설팅 업무를 담당하고 있다. 4년 전 CUBRID라는 국산 DBMS와 인연을 맺은 이후, CUBRID 의 국내/해외 확산 업무를 담당하고 있으며 CUBRID 글로벌 커뮤니티 사이트(http://cubrid.org)를 운영하면서 전세계 개발자들과 소통하고 있다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 


2011년 6월 17일(금) 자정 00:00부터 오전 09:30분까지 국내 홈쇼핑 선두 업체의 쇼핑 사이트가 시스템 점검을 이유로 서비스 운영을 일시 중단했다. 해당 업체의 2010년 매출액과 온라인 쇼핑 매출 비율(30%)을 고려할 때, 1시간 당 매출액은 약 2,700만원이고, 9.5시간 동안 올릴 수 있는 매출액은 약 2억 5천만 원에 이른다. 물론, 대부분 고객들이 잠을 자는 시간이어서 실제 손실액은 훨씬 적었을 것이다. 당일 필자는 에어컨 가격을 알아보고 있었는데, 결국 다른 쇼핑 사이트에서 이를 구매했다. 서비스가 죽지 않아야 하는 이유? 바로 매출과 직결되기 때문이다.

 

왜 서비스는 중단되는가?
서비스 중단의 유형은 원인에 따라 크게 두 가지로 구분할 수 있다. 운영자가 예측하지 못한 장애 상황이 발생한 경우, 그리고 운영자가 의도적으로 서비스를 중단하고 시스템 점검과 같은 상시 운영 업무를 처리하는 경우이다. 이때 문제가 되는 것은 전자의 경우이다. 천재지변, 네트워크 단절, 운영 서버 리소스의 과다 사용, 하드웨어 고장 등의 이유로 장애가 발생하는 경우, 운영자가 원인을 판단하고 서비스를 정상 복구하기까지 상당한 시간이 소요되기 마련이다. 후자의 경우는 다행히 작업 시간을 미리 예측할 수 있지만, 사용자 방문이 가장 적은 새벽에 점검 작업을 수행하여야 하므로 운영자는 늘 피곤할 수 밖에 없다. 근본적으로 피곤은 “간” 때문이기는 하지만, 운영자의 피곤을 줄일 수 있는 확실한 방법은 바로 HA(High Availability) 시스템 구축이다.

 

서비스에 적합한 HA 솔루션 선택
서비스 가용성을 높이기 위한 방안으로 DBMS벤더들은 각각 다양한 방식으로 HA 솔루션을 지원한다. 아래 표는 각 제품 별 특징을 요약한 것이다.

table 1.jpg

 

표 1. 제품별 HA 솔루션의 특징 요약

 

Oracle RAC 및 MS-SQL Cluster는 공유 스토리지 기반의 구조를 따르고 있으며, MySQL과 CUBRID는 복제(Replication)을 사용하여 데이터베이스를 여러 대의 서버에 분산하는 구조를 채택하고 있다. 그 외에도 마스터/슬레이브 데이터베이스 간 동기화 방식과 복제 방식, 자동 절체(Auto-Failover) 기능의 유무, Failover 이후 어플리케이션의 자동 연결 여부 등 제품마다 동작 방식, 지원 기능 및 구축 비용이 매우 상이하다. 운영자는 예산, 서비스 규모 및 부하 패턴을 고려하여 적합한 솔루션을 채택할 수 있다.
지금부터는 비용 부담 없이 공개된 매뉴얼만으로 쉽게 고가용성 시스템을 구축할 수 있는 MySQL과 CUBRID에 대해 더욱 상세히 살펴보고자 한다.

 

목표 1. 죽지 말아야 한다.

 

웹 서비스 제공자는 누구나 서비스 가용성이 100%이기를 바랄 것이다. “서비스는 죽지 말아야 한다”는 목표를 달성하기 위해서는 데이터베이스 서버의 죽음을 미리 대비하고, 죽음을 반드시 알려야 한다. 이를 위해 CUBRID HA는 아래와 같은 기능을 제공한다.

• DB 서버 다중화 구성
• 복제 기반의 데이터베이스 동기화
• 장애 감지 및 Failover

 

1) DB 다중화 구성
CUBRID HA는 읽기/쓰기 부하를 담당하는 마스터 노드, 장애 시 마스터 기능을 대체하는 슬레이브 노드, 읽기 부하 분산을 담당할 수 있는 복제 노드를 조합하여 다양하게 구성할 수 있다. 아래는 CUBRID HA 구성의 예이다.

 

table 2.jpg

 표 2. CUBRID HA 구성의 예시

 

아래 그림처럼 CUBRID HA 기본 구성을 한 후, 마스터 서버에 장애가 감지되면, 브로커 미들웨어가 등록된 슬레이브 DB 서버의 상태를 확인하여 연결을 수립한 후, 사용자 요청(읽기/쓰기)을 처리한다. 만약, 브로커 서버와 DB 서버를 각각 분리한 구성에서 브로커 서버에 장애가 감지되면, 마찬가지로 인터페이스(JDBC, PHP, CCI 등)에 등록된 2차 브로커 서버의 상태를 확인하고 연결을 수립한다.

  

pic 1.jpg


그림 1. CUBRID HA 구성에서 마스터 장애 시 Failover

 

MySQL 기반의 HA 환경을 무료로 구성하는 대표적인 방법으로는 1) MySQL 복제와 Linux Heartbeat 패키지를 사용, 2) MySQL 복제와 MMM(Master-Master Replication Manager) 솔루션을 사용하는 것이다. 1)은 운영 편의성 측면에서 매우 취약한 구성인데 이유는 마스터 DB 서버에서 장애가 감지되더라도 운영자가 수동으로 Failover를 하고, 슬레이브 DB 서버와 연결되도록 어플리케이션의 연결 정보를 수동으로 갱신하여야 하기 때문이다. 한편, 2)의 경우는 CUBRID와 마찬가지로 자동 Failover 및 어플리케이션 자동 연결 기능이 지원된다.
 

pic 2.jpg


  

그림 2. MySQL 복제+ Linux HB 구성에서 마스터 장애 시 Failover

 

2) 복제 기반의 데이터베이스 동기화
CUBRID와 MySQL는 데이터베이스 동기화를 위해 복제 기법을 사용하지만, 복제의 동작 방식이 서로 다르다. CUBRID는 마스터 노드에서 데이터(row)의 변경 사항을 로깅하여 이를 복제하는 row-based 복제 기법을 사용하고, MySQL은 마스터에서 수행된 SQL 문을 그대로 로깅하여 복제하는 statement-based 복제 기법을 사용한다. Row-based 복제는 마스터의 모든 변경 사항에 대해 복제할 수 있고 보다 적은 LOCK을 사용하게 되어 동시성이 높다는 장점이 있다. 한편, statement-based 복제는 슬레이브로 SQL문만 복제하므로 마스터 서버에 부하를 덜 주지만 마스터와 슬레이브 사이에 데이터베이스 불일치가 발생할 수 있다.
그림 3은 CUBRID HA 구성에서 복제 방식을 나타낸 것이다. 마스터 노드에서 데이터가 변경되면 트랜잭션 로그와 복제 로그가 슬레이브 노드로 복사 및 반영되면서 마스터 및 슬레이브 데이터베이스가 동기화된다.
 

pic 3.jpg


 그림 3. CUBRID Row-based 복제 방식

 

3) 장애 감지 및 Failover
CUBRID는 HA 기능이 구현되었던 초기 버전(2008 R2.1이하 버전)에서는 MySQL HA와 마찬가지로 Linux Heartbeat 패키지를 사용하여 노드 상태를 감지하였으나, NHN 내/외부 서비스에 CUBRID HA 적용 후 Linux Heartbeat 패키지의 불안정한 문제들(예: 부정확한 장애 감지로 인해 원치 않는 failover 발생)과 설정의 어려움이 있어, 이후 버전부터는 자체 구현한 CUBRID Heartbeat을 내장하고 있다.
CUBRID HA로 구성된 모든 노드들은 네트워크를 통해 heartbeat 메시지를 주고 받으며 자신을 제외한 노드의 상태를 감시한다. 만일, 일정 시간 동안 특정 노드로부터 heartbeat 메시지를 수신하지 못하게 되면, 해당 노드에 장애가 발생한 것으로 판단한다.
만약, 마스터 노드에서 장애가 발생하면 즉시 구성 정보와 다른 노드들의 상태 정보를 조합하여 슬레이브 노드 중 마스터가 될 수 있는 후보 노드를 선택하고 이 노드에서 쓰기 연산이 가능하도록 해당 노드의 역할을 변경하기 위한 Failover를 수행한다.

  

pic 4.jpg


그림 4. CUBRID Heartbeat에 의한 장애 감지와 Auto-Failover

 

목표 2. 날리지 말아야 한다.

 

목표 1을 달성했다고 하여 모든 문제가 해결된 것은 아니다. 만약, 장애가 발생한 순간의 트랜잭션이 정상적으로 반영되지 않거나, 마스터 노드와 슬레이브 노드 간 데이터베이스 불일치가 발생한다면 어떻게 될까? 쓰기 연산이 비교적 많은 SNS또는 메신저 사용자라면 누구나 겪었을 경험, 열심히 글을 입력했는데 그 글이 보이지 않는 황당함을 서비스 고객이 겪을 수도 있다.
“날리지 말아야 한다”는 목표를 달성하기 위해 CUBRID HA는 세가지 동기화 모드를 지원하며, 운영자는 서비스 유형에 따라 적절한 모드를 설정할 수 있다.

 

table 3.jpg

 표 3. CUBRID HA의 동기화 모드 비교

 

목표 3. 빨라야 한다.

 

목표 1, 목표 2를 달성했다고 해도 여전히 남은 문제, 바로 HA 성능이다. 장애 발생 시점부터 서비스가 정상화될 때까지의 소요 시간을 최소화하기 위해서는, 1) 복제 지연 최소화, 2) 신속한 장애 감지, 3) 가용한 슬레이브 노드로 Failover 수행, 4) 어플리케이션이 슬레이브 노드로 즉시 연결 등 일련의 과정들이 신속 정확하게 수행되어야 한다. 그래야만 서비스 고객들이 순간의 서비스 중단을 눈치채지 못할 것이다.

 

1) HA 환경에서의 복제 지연 테스트
서비스 가용성과 안정성을 향상시키기 위하여 HA 솔루션을 도입할 때 반드시 고려해야 할 반대 급부가 바로 성능이다. HA 환경에서는 슬레이브 노드로 복제를 수행하므로 마스터 노드에 부하가 증가한다. 또한, 데이터 무결성을 보장하기 위하여 HA 동작 모드를 동기 모드(sync mode)로 설정한 경우, 비동기 모드(async mode)에 비해 마스터 노드에 부하가 증가한다. 문제는 이러한 복제 지연이 “얼마나” 실제 서비스에 영향을 주느냐인데, 이를 검증하기 위하여 간단한 테스트를 수행하였다.
마스터 노드 1개와 슬레이브 노드 1개로 구성된 HA 환경을 구축하고, 테이블 1개에 일정 개수의 레코드가 축적될 때까지 100% INSERT 연산을 수행하는 테스트이다. 일반 환경, HA환경(Async모드), HA 환경(Sync 모드)에서 각각 테스트를 수행하였다.
(CPU: Xeon(R) CPU 3065 @ 2.33GHz, Memory: 4G, OS: Linux CentOS 2.6.18, CUBRID 2008 4.0.0233, MySQL 5.5.11)

 

table.jpg

 

최신 버전의 CUBRID과, MySQL을 적용하여 테스트한 결과, 일반 환경에서는 MySQL의 입력 성능이 평균 20% 더 높지만, HA 환경(Async모드)을 구성했을 때는 CUBRID의 입력 성능이 평균 9% 더 높았다. 또한, HA 환경(Sync모드)을 구성했을 때는 슬레이브 노드에서 트랜잭션이 커밋된 이후에 마스터 노드에서 트랜잭션을 완료 처리하므로 Async일 때보다 약 2배의 시간이 소요되나, 복제 지연은 거의 없는 것으로 확인되었다. 단, 서비스 부하 패턴 및 장애 발생 시점의 복제 데이터 양에 따라 테스트 결과는 상이할 수 있음을 고려하여야 한다.

 

2) Failover 테스트
서비스 운영 중에 자주 발생되는 장애 유형을 6가지로 분류하고, 각 장애 상황에서 CUBRID HA가 성공적으로 Failover를 수행하는지에 관한 테스트이다. 덧글을 입력할 수 있는 게시판 어플리케이션에서 30개의 동시 쓰레드가 QPS 700 수준의 쓰기 및 읽기 연산을 수행하는 도중 장애가 발생하는 시나리오이다. 단, Failover 시간 및 TPS가 정상화되는데 소요되는 총 시간은 서비스 부하 패턴 및 장애 발생 시점의 복제 데이터 양에 따라 상이할 수 있음을 고려하여야 한다.
(CPU: 4 core * Xeon(R) CPU X3350 @ 2.66GHz, Memory: 4G, OS: Linux CentOS 2.6.18, CUBRID R2.2 Patch 9)

 

table 4.jpg

 표 4. CUBRID HA의 Failover 성능 테스트 결과

 

결론. 궂은 날 빛나리라.


지금까지 DB 서버 이중화 구축을 위한 각 제품별 HA 솔루션의 특징을 살펴보고, 비용 고민 없이 도입할 수 있는 오픈소스 제품인 MySQL과 CUBRID의 HA 의 동작 방식과 특징, 그리고 성능을 세가지 목표 관점에서 검토해 보았다.
만약, HA 시스템을 구축할 계획이 있다면 이것만은 명심하자. 걱정 없이 슬레이브 데이터베이스에 실시간 백업(hot backup)을 걸 수 있는 날, 서버 장비가 갑자기 고장 나도 서비스가 중단 없이 운영되는 날, 근무 시간 동안 DB 엔진 버전 업그레이드 작업을 완료하고 퇴근하는 날, 그 날은 온다는 것을.

 

 

참고문헌

[1] High Availability, http://en.wikipedia.org/wiki/High_availability, Wikipedia
[2] Failover, http://en.wikipedia.org/wiki/Failover, Wikipedia
[3] Shared Nothing Architecture, http://en.wikipedia.org/wiki/Shared_nothing_architecture, Wikipedia
[4] Oracle Database High Availability, http://www.oracle.com/technetwork/database/features/availability/index.html
[5] Database Mirroring in SQL Server 2005, http://technet.microsoft.com/en-us/library/cc917680.aspx
[6] MySQL HA/Scalability, http://dev.mysql.com/doc/mysql-ha-scalability/en/index.html
[7] CUBRID 4.0 매뉴얼, http://www.cubrid.com/manual/840/index.htm


 


  1. CMT(CUBRID Migration Tool) 활용

    CMT를 이용하여 데이터 마이그레이션 작업하면서 여러가지의 팁이 있겠지만 4단계에서 유용하게 사용할 수 있는 팁중 PK가 없는 테이블에 대해서 데이터 수행전에 PK 선택하거나 또는 테이블 생성 후 PK 컬럼을 추가하여 데이터 마이그레이션하면 되는 팁을 알려 드리겠습니다. 1) PK가 없는 테이블에 대해 이관전 PK 컬럼 선택 후 데이터를 이관하는 방법 2) PK가 없는 테이블 정보를 그대로 생성하고 데이터를 이관전에 seq 컬럼을 추가하여 그 컬럼에 대해 PK로 만들어 주므로 PK에 대한 재작업이 안해도 되는 방법 위 두가지를 병행하여 데이터 이관 작업을 진행하면 좀 더 쉽게 데이터 이관 작업을 할 수 있다. 1단계 - 원본과 대상 유형을 선택한다. - 다음버튼을 클릭한다. 2단계 - 편집버튼을 클릭하여 "원본 정보"를 등록하여 접속이 되는지 테스트버튼을 클릭하여 확인한다. (연결이름 : 임의로 작성, 호스트 주소 : IP주소, 연결 포트 : 사용하는 접속 포트, 데이터베이스 이름 : SERVICE_NAME, 사용자 이름 : 실제사용자ID, 비밀번호 : 실제비밀번호) - 테스트버튼을 클릭하여 접속이 안되는 경우는 연결포트 또는 데이터베이스 이름, 사용자이름, 비밀번호가 틀리...
    Date2018.12.31 Category제품 여행 By엄기호 Views2387 Votes0
    Read More
  2. No Image

    CUBRID 매니저 가져오기 마법사 유용한 팁!

    CUBRID 매니저 가져오기 마법사 유용한 팁! 다량의 데이터를 엑셀로 작성해서 넣는 경우가 많으실 텐데요 CUBRID 매니저에서 UI로 간단하고 쉽게 데이터를 넣을 수 있습니다. 바로 가져오기라는 기능인데요 가져오기는 스키마, 데이터를 파일로부터 데이터베이스 서버로 import를 하는 기능 입니다. (스키마는 SQL 파일만 지원하며, 데이터는 SQL, CSV, XLS, TXT를 지원합니다.) 가져오기 마법사는 아래의 3단계로 구성되어 있습니다. •가져오기 유형 선택 • 가져오기할 데이터 소스 및 옵션 선택 • 가져오기 옵션 확인 여기서 팁 한가지! XLSX 파일은 엑셀 2007부터 추가된 파일 포맷이며 CUBRID 매니저는 XLSX 파일을 지원하지 않으므로, XLSX 파일을 원본으로 하여 데이터 가져오기 작업을 수행하는 경우 정상적인 데이터 입력을 보장할 수 없습니다. 따라서, XLSX 파일은 "다른 이름으로 저장" 메뉴를 통해 반드시 XLS 파일로 변환한 후에 사용해야 합니다. 그리고 XLS 파일로 저장 시 파일 문자집합을 신경 써 주셔야 합니다. 엑셀 한글 버전에서는 따로 문자집합을 설정 안 할 경우 기본 인코딩이 EUC-KR로 되어 있어 파일의 문자집합 옵션을 맞지 않게 데이터를 가져오...
    Date2018.12.31 Category제품 여행 By강주원 Views2980 Votes0
    Read More
  3. Docker, Kubernetes 환경에서 CUBRID 컨테이너 서비스 해보기

    Docker, Kubernetes 환경에서 CUBRID 컨테이너 서비스 해보기 최근에 여러 기업에서 Docker, Kubernetes를 사용하여 컨테이너로 서비스 하는 사레들을 많이 보았습니다. CUBRID도 컨테이너로 만들어서 Docker, Kubernetes 환경에서 서비스 해보려고 합니다. Docker는 '가장 빨리 만나는 Docker: 클라우드 플랫폼 어디서나 빠르게 배포하고 실행할 수 있는 리눅스 기반 경량화 컨테이너'라는 책으로 처음 접하였습니다. 책을 구매해서 보는 것을 권장드리지만 'http://pyrasis.com/docker.html' 페이지에서 책의 내용을 공개하고 있습니다. 책이 너무 길다면 Slideshare, 'https://www.slideshare.net/pyrasis/docker-fordummies-44424016' 페이지에서 슬라이드로 요약된 내용을 볼 수 있습니다. Docker는 Docker라는 회사에서 OS에서 제공하는 가상화 기술을 사용하여 만든 오픈소스 Container 프로젝트의 결과물입니다. 컨테이너는 호스트에 게스트 환경을 구성한다는 점에서는 가상머신과 비슷하지만 OS를 별도로 설치해 줄 필요가 없고, 호스트와 동일한 성능을 낼 수 있다는 장점이 있습니다. 이외에도 여러가지 장점이 많지만 가장 큰 장점은 배...
    Date2018.12.31 By주영진 Views24200 Votes0
    Read More
  4. No Image

    기술지원 중 자주받는 질문들을 살펴보자 !

    큐브리드 엔지니어로 기술지원을 수행하면서 자주 받는 질문들을 크게 10개 단락으로 나누어 모아 보았습니다. 큐브리드를 사용해주시는 많은 분들에게 작게나마 도움이 되기를 바라는 마음으로 작성해 보았습니다. 자세한 내용은 하단에 매뉴얼 링크를 달아 두었으니 참조 부탁 드립니다 1. DB 백업/복구 1) 백업 명령어를 알고 싶어요. ① $ cubrid backupdb -D <백업 경로> -z --no-check <DB명> 2) 증분 백업도 지원하나요? ① 큐브리드는 1차, 2차 증분 백업을 지원합니다. ② 증분 백업을 하기 위해서는 백업 옵션 중 -l 옵션을 사용하면 됩니다. 백업수준은 0,1,2 3가지로 나뉘어 지며 각각 전체 백업, 1차 증분 백업, 2차 증분 백업을 의미합니다. ③ 예시 : cubrid backupdb -D <백업 경로> -z --no-check -l 1 <DB명> 3) 복구는 어떻게 해야 하나요? ① $ cubrid restoredb -B <백업 파일 경로> <DB명> 4) 시점 복구도 지원하나요? ① 큐브리드는 어떠한 옵션도 지정되지 않은 경우 기본적으로 마지막 커밋 시점까지 데이터베이스가 복구됩니다. 시점 복구를 하기 위해서는 -d 옵션으로 시간을 지정할 수 있으나, 지정한 복구 시점까지 복구하기 위한 활성로그/보관 로그 ...
    Date2018.12.30 Category제품 여행 By허서진 Views2752 Votes1
    Read More
  5. DBMS? 힐끗 다른 쪽을 바라봤다

    시스템 소프트웨어 개발자로 딱 60살까지만 이런저런 시스템, 특히 대용량 데이터를 다루는 시스템을 직접 설계하고 만들어보고 싶은 마음은 지금도 여전하다. 그리고 그러한 미련에 들어온 DBMS 개발바닥이다. 원래 우직하니 한 우물만 파는 스타일은 아닌데.. 어찌어찌 하다보니 10년째 데이터 처리 엔진쪽으로만 일하고 있는 자신을 바라보며 기특하단 생각도 든다. 하지만 최신 유행하는 다른 분야로 발빠르게 움직이지 못한 것이 못내 아쉬울 때도 종종 있다. 이런 내 마음에는 아랑곳 없이 데이터환경이 휙휙 바뀌면서 하루가 멀다하고 새로운 모양의 시스템, DB들이 마구 쏟아져 나온다. 이런 추세속에서 여전한? 것들을 하고 있는 내 자신을 바라보고 있자면 old school에서 벗어나지 못하고 있는 듯 느껴져 왠지 마음이 급해진다. 이 글을 쓰고 있는 지금도 어디에선가는 새로운 DB(용어따지기 좋아하는 사람들을 위해 여기서 'DB'는 데이터베이스 자체가 아니라 DBMS혹은 DMS를 의미한다는 것을 밝힌다)가 글로벌 DB시장에 런칭하는 소리가 들리는 듯 하니 말이다. 그러나 이쪽 분야에서 일을 하면 할수록 데이터를 다루는 일에 신구라는 것이 없다는 생각이다. 다...
    Date2018.12.28 Category나머지... By조성룡 Views991 Votes0
    Read More
  6. CUBRID 10의 새로운 기능 "문자열 압축"

    CUBRID 10은 새로운 기능이 추가 되었습니다. 그 중에서 문자열 압축기능이 추가되었습니다. 지금부터 문자열 압축 기능에 대해서 알아보도록 하겠습니다. 문자열 압축 기능은 아래의 표와 같습니다. CUBRID 문자열 압축은 255byte 이상에서만 실행되고, 압축이 효율적이지 않으면 압축을 실행하지 않습니다. 문자열 압축률이 얼마나 좋은지 테스트하기 위해서 문자열 압축 기능이 없는 CUBRID 9.3과 10.1에서 테스트 데이타 10만건을 입력하고, 테이블 크기를 확인하는 방법으로 진행하였습니다. “케이스 #1”은 중복 되지 않는 문자열 데이타를 입력하고 압축률을 확인하였고, “케이스 #2”는 중복 된 데이타를 입력하고 압축률을 확인하였습니다. 각 케이스별로 데이타 10만건을 생성한 방법은 아래 표와 같습니다. 먼저 테스트 데이타 1건을 입력하고, “insert 테이블 select ...” 구문에서 카탈로그 테이블과 카테시안 곱(Cartesian Product)을 활용하여 테스트 데이타를 생성하였습니다. 위 표의 SQL문으로 데이타 10만건을 입력하고 테이블 크기를 확인하였습다. 테이블 크기는 “show heap capacity of 테이블명;” 명령을 실행하고 Num_pages 값을 확인하였고, 결과는 아...
    Date2018.12.26 Category제품 여행 By권호일 Views657 Votes0
    Read More
  7. GitHub Desktop을 활용한 소중한 소스 코드 관리

    1) 소중한 자신의 소스 코드가 손상 되거나 손실 되는 경우 2) 외부에서 자신의 소스 코드를 열람해야할 경우 3) 소스 코드의 변경 된 부분을 찾아야 하는 경우 소스 코드를 사용하다 보면 위와 같은 문제로 업무의 연속성이 끊어지는 경우가 발생 합니다. 이러한 문제를 GitHub Desktop을 통해 아주 간단하고 편리하게 사용 및 관리 하는 기능을 소개 하려 합니다. - 비용 : 무료 단, 소스 코드를 비공개하려면 과금 필요 - GUI 프로그램으로 git bash(커맨드 라인) 보다 편리하며, 손 쉽게 사용할 수 있습니다. [1 : GitHub 회원 가입] - 회원 가입 URL : https://github.com/ - IMAGE #1 GitHub 공식 홈페이지 접속 화면 사용할 정보 입력 : Username, Email, Password - IMAGE #2 STEP 1 : 계정 생성 동의 하기 - IMAGE #3 STEP 2 : 계정 유형 선택 - IMAGE #4 사용자 유형 선택 (Skip 해도 무관) - IMAGE #5, 6, 7 STEP 3단계 모두 마치면, Email 확인 후 계정 사용 가능 [2 : GitHub Desktop 설치] - 설치 URL : https://desktop.github.com/ - 지원 OS : Windows, OS X(MAC) - IMAGE #1 공식 홈페이지에서 GitHub Desktop 설치 파일을 받으 실 수 있습니다. (약 80MB) ...
    Date2018.12.03 Category나머지... By윤준수 Views12410 Votes0
    Read More
  8. 오픈소스 DBMS 10년의 여정

    10년 전인 2008년 11월 22일 NHN(현, 네이버)의 첫번째 개발자 행사인 DEVIEW 2008을 통해 CUBRID 오픈소스 버전이 첫 선을 보였습니다. 사용자 확산을 위해 2006년 5월 무료 라이선스를 선언을 한 이후 2008년 초부터 1년 가까이 오픈소스 전환을 위한 준비 과정을 거쳐 결국 오픈소스 DBMS로 변신을 한 것입니다.   -> CUBRID 2008 신제품이 출시되던 날…   오픈소스 DBMS 전환에 대한 사용자들의 인식을 제고하기 위해 버전 표기는 기존 숫자(CUBRID 6, 7) 중심에서 연도 체계 방식으로 변경하여 “CUBRID 2008”로 명칭을 했으며(2013년 3월 출시한 CUBRID 9부터 다시 숫자 표기로 변경), 라이선스의 경우 많은 논의 과정을 통해 엔진은 소스 코드 수정/배포 시 공개 의무가 있는 GPL v2 or higher, 인터페이스와 도구는 자유롭게 수정/배포가 가능한 BSD 라이선스를 채택했습니다.   CUBRID 2008 출시 후 초기 2년 동안의 미션은 개발자 및 사용자 확산이었습니다. CUBRID Inside라는 개발자 중심의 커뮤니티 행사를 통해 내부 개발자와 외부 개발자간에 만남의 장을 마련했고, 닉네임 Pcraft님 같은 경우에는 CUBRID Manager에 컨트리뷰션을 하시다가 추후 CUBRID 개발팀...
    Date2018.11.30 Category오픈소스 이야기 By정병주 Views1237 Votes0
    Read More
  9. 2018년 CUBRID 정기교육을 마무리 하며..

    큐브리드에서는 매년 정기적으로 정기교육을 실시하고 있습니다.   금년도에는 공개SW개발자센터에 공개SW커뮤니티를 등록하여 커뮤니티 활성화 및 큐브리드를 사용자를 위한 교육을 진행했습니다. 정기교육이 어떻게 진행되고 있는지, 커리큘럼, 자주 듣는 궁금증 등에 대해 알아보겠습니다. 『2018년 정기교육 일정』 일시 장소 참석인원 03월 20일 ~ 21일 공개SW역량프라자(상암) 23명 05월 29일 ~ 30일 공개SW개발자센터(선릉) 06명 09월 04일 ~ 05일 공개SW역량프라자(상암) 24명 10월 16일 ~ 17일 공개SW역량프라자(상암) 13명       정기교육은 2일 과정으로 4회 진행되며, 교육에 참여해주신 분들에게 교육 교재와 자료를 나눠드리고, 점심식사도 제공하고 있습니다. 『신청방법』      http://www.cubrid.com/education에서 일정을 확인할 수 있으며, 교육일정 1개월 전에 온라인 신청을 오픈합니다. 『커리큘럼』      다음과 같이 1일차, 2일차로 교육내용이 다르며, 2일동안 교육을 참여해주시는 것이 도움이 됩니다. 또한 실습과정도 포함되어 있습니다.       2일 과정을 수료해주신 분들에게는 큐브리드에서 발급한 수료증을 나눠드립니다. 1일차 CUBRID 소개 ...
    Date2018.11.15 Category알려요~ By정훈 Views503 Votes0
    Read More
  10. timezone, tz data

    Timezone Timezone 하면 딱 생각나는 것은 +09:00, 우리나라는 그리니치 표준시 (GMT)보다 9시간 빠르다는 것이다.  해외 여행중 한국에 국제 전화할 때 꼭 알아야 할 것, "한국 시간 몇시인가?" 잘못하면 식구들 자는 중에 집에 전화할 수 있다. Timezone이 뭔가? 사전적 정의는 “특정 국가나 지역의 현지시간 (local time)” 이다. 그리니치 표준시의 정오는 경도 0도에 위치한 그리니치 천문대 남중 자오선을 태양이 지나가는 시간이다. 1925년 부터, 특정 지역의 local-time은 그리니치 표준시를 기준으로 몇시간 빠르고 느린가로 표현되어왔다. 그리니치 동쪽은 +, 서쪽은 -로 표현한다. GMT 시간이 그리니치 천문대를 지나는 태양을 기준으로 하기 때문에 시간이 지구의 자전 주기와 관련 되며, 자전의 흐름이 늦어지면서 오차가 발생되었고 새로운 표준시 제정에 대한 요구가 나오게 되었다. 1972년, 국제 표준시는 그리니치 표준시에서 UTC (Coordinated Universal Time)로 변경되었다.   UTC는 세슘 원자 시계 기반의 세계 표준시이며,  UTC와 GMT는 소숫점 단위에서만 차이가 나기 때문에 일상적으로 같은 수준으로 혼용해서 사용하기도 하나 기술적인 표현에서는 UT...
    Date2018.11.14 Category제품 여행 By한기수 Views8859 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 16 Next
/ 16

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales