PYTHON 웹 스크래핑

통계청 SGIS API 사용하기 첫번째 - AccessToken 발급 방법

나루하루001 2025. 6. 23. 23:20
반응형

통계청 SGIS API 인증 체계 개요

 

중요!
통계청 통계지리정보 서비스(SGIS) API는 서비스ID와 보안Key를 발급받은 후, AccessToken을 발급받아야만 API에 접근할 수 있습니다. 이는 API 사용의 보안을 강화하고 서비스 품질을 유지하기 위한 필수 절차입니다.

 

통계청의 SGIS API 인증 체계는 다음과 같은 3단계로 구성됩니다:

 

1. 서비스ID(consumer_key)와 보안Key(consumer_secret) 발급

2. 발급받은 키를 사용하여 AccessToken 발급

3. AccessToken을 사용하여 API 호출

 

이번 블로그에서는 1번과 2번 과정, 즉 서비스ID와 보안Key를 발급받고

AccessToken을 발급받는 방법까지만 다루겠습니다.

 

반응형

서비스ID와 보안Key 발급 방법


SGIS API를 사용하기 위한 첫 번째 단계는

서비스ID(consumer_key)와 보안Key(consumer_secret)를 발급받는 것입니다.

 

발급 절차

 

1. 통계청 통계지리정보서비스(SGIS) 개발자 센터(https://sgis.kostat.go.kr/developer/html/main.html)에 접속합니다.

2. 회원가입 후 로그인합니다.

3. 데이터 API 클릭 후 준비하기로 이동합니다.

4. '인증키 발급 신청' 메뉴로 이동합니다.

5. 필요한 정보를 입력하고 인증키를 신청합니다.

6. 승인 후 서비스ID(consumer_key)와 보안Key(consumer_secret)가 발급됩니다.

 

주의사항
발급받은 서비스ID와 보안Key는 외부에 노출되지 않도록 안전하게 보관해야 합니다. 이 정보가 유출될 경우 다른 사람이 여러분의 계정으로 API를 사용할 수 있습니다.



AccessToken 발급 방법


서비스ID와 보안Key를 발급받았다면,

이제 이를 사용하여 AccessToken을 발급받을 수 있습니다.

AccessToken은 실제 API 호출 시 필요한 인증 토큰으로, 4시간 동안 유효합니다.

 

AccessToken 발급 API 엔드포인트

 

AccessToken을 발급받기 위한 API 엔드포인트는 다음과 같습니다:

https://sgisapi.kostat.go.kr/OpenAPI3/auth/authentication.json

 

요청 파라미터

 

- consumer_key: 발급받은 서비스ID

- consumer_secret: 발급받은 보안Key

 

Python을 사용한 AccessToken 발급 예제

 

Python을 사용하는 경우 다음과 같이 AccessToken을 발급받을 수 있습니다:

import requests

CONSUMER_KEY = "서비스ID"
CONSUMER_SECRET = "보안Key"
BASE_URL = "https://sgisapi.kostat.go.kr"

def get_access_token():
    url = f"{BASE_URL}/OpenAPI3/auth/authentication.json"
    
    params = {
        'consumer_key': CONSUMER_KEY,
        'consumer_secret': CONSUMER_SECRET
    }
    
    response = requests.get(url, params=params)
    print(f"응답코드: {response.status_code}")
    
    data = response.json()

    print(data)
    token = data['result']['accessToken']
    
    return token

if __name__ == "__main__":
    token = get_access_token()
    print(f"토큰: {token}")

 

API 응답 예시

 

성공적으로 AccessToken을 발급받으면 다음과 같은 응답을 받게 됩니다:

{
  "id": "API_0101",
  "result": {
    "accessTimeout": "1750596312574",
    "accessToken": "03b2330f-3348-458f-9679-b2b1f631a9ef"
  },
  "errMsg": "Success",
  "errCd": 0,
  "trId": "vHei_API_0101_1750581912478"
}

 

- result: API 호출 결과 (success 또는 error)

- accessToken: 발급받은 AccessToken

- accessTimeout: 토큰 유효 시간(초)

중요 사항
AccessToken은 4시간 동안만 유효합니다. 만료된 후에는 위 과정을 통해 새로운 AccessToken을 발급받아야 합니다. 실제 서비스 운영 시에는 토큰 만료 시간을 확인하고 자동으로 갱신하는 로직을 구현하는 것이 좋습니다.
[ 파이썬 관련 블로그 글 목록 ] 

파이썬(Python) 블로그 목록
반응형