|

앱시트에 빅쿼리 연결하기


1. 요약

이 블로그 포스트에서는 앱시트와 빅쿼리를 연결하는 것의 편의성과 방법에 대해 소개합니다.

빅쿼리를 다뤄본 적이 없는 분이라면 아래의 포스트에서 스프레드시트를 기반으로 빅쿼리를 생성하는 방법을 먼저 살펴보시길 권합니다.

스프레드시트 데이터를 빅쿼리와 루커 스튜디오로 시각화하기

2. 앱시트와 빅쿼리


앱시트는 데이터를 쉽고 안전하게 관리하는 앱을 손쉽게 만들게 해주는데, 일반적으로 구글 시트를 데이터베이스로 활용합니다. 앱시트와 구글 시트를 연동하는 방법은 아래 포스팅을 참조할 수 있습니다.

구글 시트를 데이터베이스로 앱시트에 뷰 만들기

그런데 혹시 빅쿼리를 데이터베이스로 활용할 수도 있다는 점을 알고 계신가요? 빅쿼리는 대규모 데이터를 효율적으로 처리하고 저장할 수 있는 구글의 서비스입니다. 빅쿼리를 데이터 소스로 연결하면, 앱시트에서 빅쿼리 데이터 세트에 대한 읽기/쓰기가 가능합니다.

이러한 구글 시트와 빅쿼리의 확장성을 이용하면 보다 의미있는 데이터 관리가 가능합니다. 예를 들어서 구글 시트에 있는 데이터를 빅쿼리에서 가공하고 쿼리 예약을 통해서 자동화하한 결과를 간편하게 앱시트에서 조회할 수 있습니다. 쿼리 예약 기능을 살펴보시려면 다음 포스팅을 참조해주세요.

빅쿼리에서 쿼리 예약으로 주기적으로 신규 데이터 갱신하기

앱시트를 빅쿼리와 연결하여 빅쿼리의 가공된 데이터를 볼 수 있습니다.


💡 알아둘 점이 있습니다! 앱시트에 연결한 빅쿼리의 테이블이 구글 시트와 연동된 테이블인 경우에는 읽기는 가능하지만 쓰기는 불가능합니다. 만약 앱시트에서 데이터 수정을 시도할 경우 다음과 같은 에러가 발생합니다. 이런 경우에는 앱시트에서 빅쿼리를 읽기 전용으로 설정해주어야 합니다.



이제 빅쿼리와 앱시트를 연결하는 방법을 자세히 살펴보겠습니다.

3. 빅쿼리와 앱시트 연동하기

3.1 빅쿼리 데이터 세트 준비

앱시트와 연동할 빅쿼리의 데이터 세트가 필요합니다. 아래 이미지처럼 빅쿼리의 ‘autooffice’ 데이터 세트appSheet’ 테이블을 연동해보겠습니다. 스프레드시트와 연동된 테이블이나 빅쿼리에서 생성된 테이블이나 어떠한 것을 사용하여도 무방합니다.

빅쿼리로 시트를 통합한 테이블


앱시트와 연동할 빅쿼리 데이터 세트가 준비되었다면, 이제 다음 단계로 넘어가겠습니다.

3.2 서비스 계정 만들기

구글 클라우드 콘솔에 접속합니다.



(1) 콘솔 화면에서 좌측 상단 ‘탐색’ 메뉴 → ‘IAM 및 관리자’ → ‘서비스 계정’ 을 클릭합니다.

구글 클라우드의 서비스 계정은 구글 클라우드 플랫폼에서 리소스에 접근하고 관리하기 위한 식별자로 애플리케이션 간에 인증 및 인가를 관리합니다. 빅쿼리와 앱시트를 연동하기 위해서는 서비스 계정이 필요합니다.

번호 순서대로 커서를 움직여 ‘서비스 계정’을 클릭합니다.


(2) 서비스 계정 화면에서 상단에 있는 ‘서비스 계정 만들기’ 버튼을 클릭합니다.

‘서비스 계정 만들기’ 클릭


(3) ‘서비스 계정 이름’, ‘서비스 계정 ID’, ‘서비스 계정 설명’을 입력 후 ‘만들고 계속하기’ 버튼을 클릭합니다.

서비스 계정 세부정보 입력 후 ‘만들기 계속하기’ 클릭


(4) ‘이 서비스 계정에 프로젝트 액세스 권한을 부여’ 탭에서 해당 서비스 계정에 부여할 빅쿼리의 권한 범위를 설정합니다. 일반적으로 구글 클라우드 서비스 계정은 생성 시 특정 권한이나 역할을 할당받지 않습니다. 따라서 원하는 작업을 위해 필요한 권한을 부여해야 합니다. 우선 ‘BigQuery 작업 사용자’를 선택해보겠습니다.

역할 범위를 선택합니다.


더 많은 권한이 필요하다면 ‘다른 역할 추가’ 버튼을 클릭 후 추가로 권한을 설정할 수 있습니다. 권한 설정을 제대로 하지 않으면 어떻게 될까요? 앱시트에서 빅쿼리 데이터 세트에 액세스를 시도할 때에 다음과 같은 오류가 발생합니다.

‘BigQuery작업 사용자’ 권한만 설정했을 때


‘BigQuery 편집자’ 권한만 설정했을 때



빅쿼리에 한정된 권한이 아닌 아래와 같이 ‘소유자’ 권한을 부여하게 되면 대부분의 구글 클라우드 리소스에 액세스 할 수 있는 권한이 주어집니다.


그 밖의 권한 설정에 관해서 알아보시려면 아래의 레퍼런스를 참조하시기 바랍니다.


이 포스팅에서는 앱시트와 빅쿼리를 연동하는 목적이기 때문에 아래와 같이 ‘BigQuery 작업 사용자’, ‘BigQuery 편집자’ 권한만을 설정하겠습니다. ❗ 비공개 데이터 세트에 연결하는 경우 ‘BigQuery 데이터 편집자’ 역할도 추가해야 합니다. 설정을 마쳤다면 ‘계속 버튼을 클릭합니다.

역할 추가 후 ‘계속’ 버튼을 클릭


(5) ‘사용자에게 이 서비스 계정에 대한 액세스 권한 부여’는 다른 개발자가 이 서비스 계정을 사용하여 데이터베이스에 액세스하고 수정하는 작업을 수행해야 하는 경우, 그 사용자에게 이 서비스 계정에 대한 액세스 권한을 부여하는 기능입니다. 권한 부여가 필요한 계정이 있다면 계정을 추가한 뒤 ‘완료’ 버튼을 클릭하고, 별도의 권한 부여가 필요하지 않다면 공백으로 두고 ‘완료’ 버튼을 클릭합니다.

‘완료’ 버튼 클릭


(6) 서비스 계정 생성이 완료되었습니다.

서비스 계정 생성이 완료되었습니다.


3.3 서비스 계정 JSON 키🔑 만들기

이제 계정 인증을 위한 JSON키를 만들어보겠습니다. 서비스 계정을 사용하여 클라우드 리소스에 액세스하기 위해서는 인증이 필요합니다. JSON 키를 사용하여 구글 클라우드 API에 인증하고 허용된 작업을 수행할 수 있습니다.

(1) ‘서비스 계정’ 화면에서 생성된 계정의 점 3개 버튼 → ‘키 관리’를 클릭합니다.

더 보기(점 3개) → 키 관리 클릭


(2) ‘키 추가’ → ‘새 키 만들기’를 클릭합니다.

‘키 추가’ → ‘새 키 만들기’ 클릭


(3) 키 유형에 ‘JSON’을 선택한 뒤 ‘만들기’ 버튼을 클릭합니다.

키 유형: ‘JSON’ 선택 → ‘만들기’ 클릭


(4) ‘만들기’ 버튼을 클릭하면 *.json 파일이 브라우저의 ‘다운로드’ 폴더에 저장됨과 동시에 아래의 화면이 나옵니다. 정상적으로 파일이 저장되었다면 ‘닫기’ 버튼을 클릭합니다.


*.json 파일을 열어보면 아래와 같이 사용자 인증과 관련된 키 값에 대한 정보들이 저장되어있는 것을 확인할 수 있습니다. 인증 키 값들은 앱시트에서 빅쿼리의 데이터 소스를 추가할 때 필요합니다. 이 데이터들은 보안과 관련된 정보들이기 때문에 외부에 공개되거나 분실되지 않도록 주의해야 합니다.

JSON 인증을 위한 키 값


이제 앱시트에 빅쿼리 데이터 소스를 추가해보겠습니다.

3.4 앱시트에 빅쿼리 데이터 소스 추가하기

(1) 앱시트에 로그인합니다.


(2) 앱시트 메인 화면에서 우측 상단의 사용자 아이콘을 클릭 후 ‘Account settings’를 클릭합니다.

Account settings 클릭


(3) ‘My Account’화면에서 ‘Sources’탭 → ‘New DataSource’를 클릭합니다. ‘Sources’ 탭에서는 데이터베이스를 추가, 수정, 삭제가 가능합니다.

‘Sources’ → ‘New Data Source’ 클릭


(4) 데이터 소스를 선택하는 화면이 나오면 ‘Cloud Database’를 클릭합니다.

‘Cloud Database’ 클릭


(5) 아래의 화면이 나오면 ‘Type’에 ‘BigQuery’를 선택하고 ‘DataSet ID’, ‘Google Cloud Project ID’, ‘Service Account key’ 값을 입력해야 합니다. 차근차근 순서대로 값을 입력해보겠습니다.


(6) DataSet ID를 찾기 위해 빅쿼리 콘솔 화면에 접속합니다.


(7) 콘솔 화면에서 앱시트와 연동하고자 하는 데이터 세트의 더보기(점 3개 버튼) 클릭 후 ‘열기’ 버튼을 누르면 데이터 세트의 정보가 나오는 화면이 노출됩니다. 화면에서 데이터 세트 ID를 확인할 수 있습니다.

데이터 세트 더 보기(점3개) – ‘열기’ – ‘데이터 세트 정보’ 화면에서 ID를 확인할 수 있습니다.

💡 여기서 중요한 것으로, 데이터 세트 ID를 앱시트 데이터 베이스 연결 창에 붙여 넣을 때에는 간단한 수정이 필요합니다. 데이터 세트 ID에 있는 . (마침표)를 :(콜론)으로 교체해주어야 합니다.

예를 들어, 예시의 데이터 세트 ID는 다음과 같습니다.


다음과 같이 중간에 있는 . (마침표)를 :(콜론) 으로 변경해주기만 하면 됩니다. 간단하죠?


앱시트에서 빅쿼리 데이터 세트의 ID 값을 입력할 때 . (마침표)를 : (콜론)으로 변경해야 하는 이유는 빅쿼리의 데이터 세트를 지칭하는 ID 값이 특정 포맷을 따라야 하기 때문입니다.

이제 ‘Google Cloud Project ID’ 값을 찾아보겠습니다.

(8) 구글 클라우드 콘솔 화면 상단에서 프로젝트 이름을 클릭합니다. 생성된 프로젝트의 목록이 노출이 되며, 우측에는 프로젝트 ID값이 나와있습니다. 해당 값을 복사하여 앱시트 데이터 베이스 연결 창의 ‘Google Cloud Project ID’ 에 붙여넣습니다.


(9) 다음으로 ‘Service Account Key’를 입력하겠습니다. 우리는 이전 단계에서 JSON 키를 발급받았습니다. (3.3 서비스 계정 JSON 키 만들기) 다운받았던 json 파일을 찾아서 열어볼까요?


json파일에 담긴 전체 데이터를 복사한 뒤에 앱시트 데이터 베이스 연결 창의 ‘Service Account Key’ 에 붙여넣습니다.

이제, 데이터 베이스 연결을 위한 준비가 갖추어졌습니다. 여기까지 잘 따라오셨다면 다음과 같이 모든 빈 칸이 채워졌을 것입니다. 이제 연결이 잘 되는지 확인해볼까요?

(10) 확인을 위해 ‘Test’ 버튼을 클릭합니다.

모든 값을 입력했다면 ‘Test’버튼을 클릭합니다.


(11) 테스트 결과가 정상이라면 다음과 같이 ‘Authorize Access’ 버튼이 활성화됩니다. 오류 메시지가 나온다면 각각의 ID와 Key값이 정상적으로 입력되었는지 다시 한번 천천히 확인해주세요.

이상이 없다면 ‘Authorize Access’ 버튼이 활성화됩니다.


(12) 데이터 소스가 생성되면 다음과 같이 데이터 소스의 이름이 임의로 생성이 됩니다. 데이터 소스를 잘 관리하기 위해 데이터 소스의 이름을 변경해보겠습니다. 다시 ‘My Account’ → ‘Sources’ 탭에서 방금 생성된 데이터베이스를 클릭해보겠습니다.


(13) 수정 화면에서 데이터베이스 이름을 원하는 대로 수정하고, 아래의 버튼을 클릭합니다.

변경할 이름을 입력하고 아래의 아이콘 클릭


(14) 연결 정보를 입력하는 화면으로 전환되면 다운받았던 JSON 키 값을 복사하고 Service Account Key’에 JSON파일의 내용을 붙여넣기 한 뒤에 ‘Test’ 버튼을 누릅니다. 올바로 인증이 되었다면 ‘Authorize Access’ 버튼이 활성화되고, ‘Authorize Access’ 버튼을 누르면 수정이 완료됩니다. 여기서 JSON파일을 안전하게 보관해야하는 이유를 아시겠죠? 데이터베이스를 추가하거나 수정, 삭제할 때에는 JSON의 키 값이 필요하기 때문입니다.

JSON파일의 키 값을 ‘Service Account key’에 붙여넣습니다.


(15) 데이터베이스의 이름이 잘 변경되었습니다.

데이터베이스의 이름이 변경된 후 화면


(16) 드디어 모든 준비가 끝났습니다. 이제 생성된 빅쿼리의 클라우드 데이터베이스를 기반으로 앱시트를 생성해볼까요? 앱시트의 메인 화면 좌측에서 ‘Create’ – ‘App’ – ‘Start with existing data’를 클릭합니다.

‘Create’ – ‘App’ – ‘Start with existing data’ 클릭


(17) 앱시트의 이름을 설정합니다.

이름 설정 후 ‘Choose your data’ 클릭


(18) 미리 생성해둔 빅쿼리 데이터베이스를 선택합니다.

Cloud Database 선택


(19) 빅쿼리의 데이터 세트 autooffice에 속해 있는 테이블들을 불러왔습니다. ‘appSheet’ 테이블을 선택해보겠습니다.


(20) 앱시트 생성이 완료되었습니다!


(21) 뷰가 정상적으로 작동되는지 확인해보겠습니다. 좌측 메뉴에서 ‘휴대폰 아이콘’ – ‘Views’ 를 클릭해보니 뷰가 정상적으로 작동되고 있네요.





오늘은 앱시트에 빅쿼리를 연동하는 방법에 대해서 살펴보았습니다. 앱시트에 빅쿼리를 연결하는 이번 과정이 꽤 복잡했다고 느끼셨나요? 하지만 이 과정은 가공을 거친 구글 시트 데이터를 앱시트로 볼 수 있는 유용한 방법입니다. 가치있는 노력이라고 할 수 있지요. 오늘 배운대로 앱시트에 빅쿼리를 연결했다면 이제 다양한 앱시트의 기능들을 학습하고 활용해보는 것은 어떨까요?

Similar Posts