---
title: "Google Cloud SQL 사용 방법"
date: "2016-01-06"
categories: 
  - "data-integration"
  - "mobile"
  - "software"
  - "technology"
tags: 
  - "baseball"
  - "cloud-sql"
  - "database"
  - "google-cloud-sql"
  - "lahmans-baseball-database"
  - "sql"
description: Lahman 야구 데이터베이스를 활용하여 Google Cloud SQL을 설정하고 사용하는 방법을 알아보고, 이를 통해 모바일 앱 백엔드 기능과 데이터 분석 능력을 향상시키는 방법을 알아보세요.
---
Status: #blog

Tags:  #baseball #cloud-sql #database #google-cloud-sql #lahmans-baseball-database #sql

Categories: [data-integration](/blog/ko/category/data-integration.md) 
# Google Cloud SQL 사용 방법

Google [최근에 발표되었습니다](http://googlecloudplatform.blogspot.com/2015/12/the-next-generation-of-managed-MySQL-offerings-on-Cloud-SQL.html) 저희는 클라우드 SQL에서 제공되는 차세대 관리형 MySQL 서비스를 시험해 보고, 이를 활용하여 모바일 앱의 백엔드 데이터베이스로 사용하거나, 심지어 데스크톱 환경에서도 고급 데이터 분석을 수행할 수 있는 클라우드 기반 SQL 데이터베이스를 구축하고자 했습니다.

구글에 따르면, 클라우드 SQL의 두 번째 세대 주요 목표는 달러당 더 나은 _성능_과 _확장성_을 제공하는 것이었습니다. 그들이 이러한 목표를 달성한 것으로 보입니다. 두 번째 세대 클라우드 SQL은 첫 번째 세대보다 7배 이상 빠릅니다. 또한, 데이터 용량은 10TB, IOPS는 15,000, RAM은 104GB까지 확장 가능하며, 이는 첫 번째 세대보다 훨씬 뛰어납니다. 따라서 모바일 앱을 위한 이상적인, 확장 가능한 클라우드 기반 데이터베이스 백엔드라고 할 수 있습니다.

![클라우드 기반 데이터](/blog/images/shutterstock_68942902.jpg)

<!--more-->If you follow the instructions on the the [Google blog post](http://googlecloudplatform.blogspot.com/2015/12/the-next-generation-of-managed-MySQL-offerings-on-Cloud-SQL.html), you will first have to create a trial account for Google Cloud. Then, once you are logged into the Google Developer Console, click on the top-left menu button and select SQL under the storage section. This will enable you to create a new second generation Cloud SQL instance:

![Google Cloud SQL 콘솔](/blog/images/GoogleCloudSQLConsole-1030x880.png)

루트 비밀번호를 변경하고, 개발 환경이나 모바일 앱의 백엔드 서버에서만 클라우드 인스턴스에 접근을 허용하는 것이 좋습니다. 예를 들어, 향후 블로그 게시글에서 이 데이터베이스를 기반으로 모바일 앱을 개발하는 방법을 설명할 예정이며, 이때 저희 모바일 앱의 모든 서버 기능과 워크플로우를 제공할 [MobileTogether 백엔드 서버](https://www.altova.com/ko/mobiletogether/server.html)는 이 Cloud SQL 인스턴스에 접근할 수 있어야 합니다.

데스크톱 개발 환경에서 Cloud SQL 인스턴스를 사용하려면, 먼저 해당 환경에 맞는 [MySQL 도구](http://dev.mysql.com/downloads/)를 다운로드해야 합니다. 이를 통해 **mysql** 명령줄 도구를 사용할 수 있습니다. 또한, 컴퓨터의 다른 애플리케이션에서 Cloud SQL 데이터베이스를 사용하려면, 해당 [MySQL Connector](http://dev.mysql.com/downloads/connector/)를 다운로드해야 합니다. 이번 블로그 게시물에서는 SQL 인스턴스에 접속하고, 데이터를 업로드한 다음, 분석 작업을 수행하기 위해 [Altova DatabaseSpy](https://www.altova.com/ko/databasespy.html)를 사용할 예정입니다. 따라서 [Windows용 MySQL Connector/ODBC](http://dev.mysql.com/downloads/connector/odbc/)를 다운로드해야 합니다. DatabaseSpy는 기본적으로 Toad와 유사하지만, 여러 개의 서로 다른 데이터베이스 서버에 있는 여러 데이터베이스 인스턴스에 동시에 연결할 수 있다는 장점이 있습니다. 따라서 하나의 작업 공간 내에서 Cloud SQL에 대한 연결, 로컬 SQL Server에 대한 연결, 그리고 Oracle 데이터베이스에 대한 연결을 동시에 유지할 수 있습니다. 매우 유용한 기능입니다.

중요한 점은, 올바른 Connector/ODBC 드라이버를 다운로드해야 한다는 것입니다. DatabaseSpy의 64비트 버전을 사용하신다면, MySQL Connector/ODBC 드라이버의 64비트 버전도 함께 다운로드해야 합니다. 또는, 더 좋은 방법은 Connector/ODBC의 32비트 및 64비트 버전을 모두 다운로드하여 설치하는 것입니다. 이렇게 하면, 컴퓨터에서 32비트 및 64비트 소프트웨어 모두에서 Cloud SQL을 사용할 수 있습니다.

실험 및 추가 분석을 위해 Cloud SQL 인스턴스에 유용한 데이터를 추가하기 위해, 훌륭한 [라만 야구 데이터베이스](http://www.seanlahman.com/baseball-archive/statistics/)를 다운로드했습니다. 이 데이터베이스는 편리하게 압축된 MySQL 덤프 파일 형태로 제공됩니다. 컴퓨터에 다운로드한 후, 모든 SQL 데이터베이스 테이블 설명과 데이터가 하나의 SQL 파일에 담겨 있어, Cloud SQL 인스턴스에 쉽게 업로드할 수 있습니다.

가장 먼저 해야 할 일은 다음과 같습니다 [Cloud SQL에서 새로운 데이터베이스를 생성하세요](https://cloud.google.com/sql/docs/create-database) 예를 들어, 데이터베이스를 생성할 수 있습니다. 이는 MySQL 명령줄 유틸리티, Google 개발자 콘솔 또는 cURL을 통해 가능하며, 자세한 내용은 이 단락의 시작 부분에 있는 링크를 참조하십시오. 여기서는 이 데이터베이스를 간단히 "lahman"이라고 부르겠습니다.

이제 DatabaseSpy를 사용하여 이 데이터베이스에 연결할 수 있습니다. "데이터베이스에 연결" 명령을 선택하고 연결 마법사를 통해 다음 단계를 따르면 됩니다. 먼저 데이터베이스 기술로 MySQL을 선택합니다

![Google Cloud SQL 연결 (1)](/blog/images/GoogleCloudSQLConnect1.png)

그런 다음, 이전에 다운로드한 MySQL Connector/ODBC 드라이버를 사용하는지 확인합니다

![Google Cloud SQL 연결 2.0 (또는 Google Cloud SQL 연결 2)](/blog/images/GoogleCloudSQLConnect2.png)

마지막으로, 클라우드 SQL 인스턴스의 IP 주소, 사용자 이름, 비밀번호를 지정한 후 "테스트" 버튼을 눌러 연결을 확인합니다. 연결이 성공하면, 데이터 소스 이름을 지정하고, 이전에 생성한 "lahman" 데이터베이스를 지정하여 데이터 소스를 생성할 수 있습니다

![Google Cloud SQL 연결 (3)](/blog/images/GoogleCloudSQLConnect3.png)

이제 새로운 데이터베이스에 모든 데이터를 테이블 형태로 업로드할 준비가 되었습니다. 이를 위해, 이전에 다운로드하고 압축을 해제한 Lahman 야구 데이터베이스의 SQL 덤프 파일을 열기만 하면 됩니다. DatabaseSpy에서 해당 파일은 다음과 같이 보입니다

![LahmanSQLdump (Lahman 데이터베이스 덤프)](/blog/images/LahmanSQLdump-1030x854.png)

보시다시피, 해당 데이터베이스의 SQL 덤프 파일에는 새로운 클라우드 SQL 인스턴스에 모든 테이블을 다시 생성하는 데 필요한 모든 명령이 포함되어 있습니다. 이제 우리가 해야 할 일은 "실행" 버튼을 누르고 기다리는 것뿐입니다. 인터넷 연결 속도에 따라 시간이 다소 걸릴 수 있습니다. 현재 1871년부터 2014년까지의 매우 상세한 야구 통계를 포함하는 24개의 테이블을 생성하고 있는데, 이 중 일부 테이블은 16만 개 이상의 행을 가지고 있습니다. 제 경우에는 완료하는 데 약 8분이 걸렸습니다.

이제 DatabaseSpy의 온라인 데이터베이스 브라우저에서 "새로 고침" 버튼을 클릭하면, 모든 테이블과 그 안에 포함된 데이터를 탐색할 수 있으며, [Lahman 데이터베이스의 구조](http://seanlahman.com/files/database/readme2014.txt)도 확인할 수 있습니다. 또한, 이 데이터베이스를 활용하여 흥미로운 역사적 데이터를 계산하고, 통계 분석을 수행하며, [세이버메트릭스](https://en.wikipedia.org/wiki/Sabermetrics)에서 자주 사용되는 다른 도구들을 적용하여 선수들의 실력을 더 잘 이해할 수 있습니다.

예를 들어, 다음 내용을 살펴보겠습니다 [데이비드 오티즈](http://www.baseball-reference.com/players/o/ortizda01.shtml)선수 전체 경력 동안의 타석 대비 홈런(HR) 비율을 계산하고, 이를 선수의 나이에 따른 변화로 그래프에 표시합니다. 선수의 타격 기록은 "타격" 테이블에서, 이름, 생년월일 등은 "기본 정보" 테이블에서 확인할 수 있습니다. SQL을 사용하여 두 테이블을 연결하고 데이비드 오티즈의 데이터를 선택하는 것은 간단하며, 그의 경력 홈런 추세는 타석 대비 홈런 비율(HR/AB)을 계산하여 특정 연도의 그의 나이와 함께 그래프로 나타낼 수 있습니다

```
SELECT yearID-birthYear AS Age, HR/AB AS CareerHRTrajectory FROM Batting, `Master` 
WHERE Batting.playerID = `Master`.playerID AND nameLast='Ortiz' AND nameFirst='David'
ORDER BY Age ASC
```

"실행" 버튼을 누르면, 이 쿼리가 Cloud SQL 인스턴스로 전송되고, 그 결과 데이터가 거의 즉시 테이블 형태로 반환됩니다. 그 후, 결과 테이블 보기에서 "그래프" 버튼을 클릭하여 데이터를 그래프로 표시하고, 해당 직원의 연령에 따른 경력 및 인사 관련 추세를 시각화할 수 있습니다

![DBSpy Google Cloud SQL](/blog/images/DBSpyGoogleCloudSQL-1030x863.png)

보시다시피, 새로운 Google Cloud SQL 인스턴스를 Altova DatabaseSpy 또는 다른 Altova 개발 도구(XMLSpy, MapForce, MobileTogether, StyleVision, UModel 등)를 통해 매우 쉽게 연결하고 활용할 수 있습니다. 또한, MapForce 서버를 통해 데이터 통합 및 변환 프로젝트에 Cloud SQL 인스턴스를 쉽게 활용할 수 있습니다.

향후 블로그 게시글에서는 이 Cloud SQL 인스턴스에 모바일 앱을 연결하고, Lahman 야구 데이터베이스를 기반으로 편리한 모바일 앱 인터페이스를 구축하는 것이 얼마나 쉬운지 살펴보겠습니다.
