개요

구글 Sheet API를 이용하여 구글닥스의 스프레드 시트 데이터를 접근할 일이 있어 내용을 살펴 본 뒤 정리한다. 이번 포스팅의 목적은 자바 클라이언트로 커맨드라인 형태로 구글 API를 연동하여 형태를 활용하는데 있다.

기본 개념 이해

오랜만에 작업을 하여 가물가물한 Oauth 2.0 및 구글 Sheet API 사용법에 대해서 아래와 같은 자료를 참고하면 도움이 된다.

Google Sheet API 권한관리 체계

구글 Sheep API 연동방식은 크게 2가지가 존재한다. 하나는 Oauth 2.0 방식이고 나머지 하나는 서비스 계정키 방식이다. 자세한 내용은 https://developers.google.com/sheets/api/guides/authorizing에서 확인하자.

구글제공 예제 코드(Oauth 2.0 방식)

https://developers.google.com/sheets/api/quickstart/java

구글제공 예제 코드(서비스 계정키 방식)

구글 Sheet API 사용 Flow

구글 Sheet API를 사용하는 Flow는 아래와 같다.

Google Dev Console에서 Sheet API 사용 활성화 -> Google Dev Console API 키 설정 및 발급-> 자바 API로 발급받은 키 파일을 이용하여 연동 -> Oauth 20 or 서비스 계정키 방식으로 연동

코드로 따라해보기

필자가 이번에 계정 연동을 하며 코드를 https://github.com/lks21c/google-sheet-quickstart 정리해 두었으니 참고하면 된다. 해당 repo에 메이븐 설정 및 코드가 수록되어 있다.

기본 구글 Sheets API 설정

기본적인 Oauth 2.0 방식으로 연동하는 것을 진행해보자. Google Dev Console의 대시보드 메뉴에서 API 및 서비스 사용 설정을 클릭하자.

구글 관련된 다양한 서비스 API 전체 리스트를 볼 수 있다.

라이브러리 메뉴에서 sheet라고 입력한다.

구글 Sheets API가 활성화 되어 있지 않다면 활성화를 해준다.

Oauth 2.0 방식

콘솔에서 “사용자 인증 정보”를 클릭한다.

파란색 “사용자 인증 정보 만들기”에서 Oauth 클라이언트 ID만들기를 선택한다.

웹 어플리케이션을 클릭 후 정보를 입력한다.

생성 이후 제공되는 JSON을 다운로드해준다.

다운받은 client secret을 위에서 클론받은 github 프로젝트에 아래의 이름으로 resource를 위치시킨다.

메인 함수에서 아래와 같이 OAUTH20 연동방식을 선택해준다. 이후 코드를 실행하면 정상 실행됨을 알 수 있다.

서비스 계정 키 방식

구글 콘솔에서 “서비스 계정 키”로 사용자를 생성한다.

계정키 생성시 JSON형식으로 생성을 선택한다.

다운받은 파일을 아래와 같이 프로젝트에 이름을 바꾸어 위치시킨다.

메인 함수를 실행할 때 서비스 계정키 방식을 선택한다.

구글 시트가 정상 연동됨을 알 수 있다.