-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path01-intro.Rmd
51 lines (35 loc) · 5.4 KB
/
01-intro.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 공공데이터 이해 {#data}
## 공공데이터 확보하기
대부분의 공공데이터는 공공데이터포탈에서 제공됩니다. 포털(공공데이터포털)이란 각 공공기관이 보유하고 있는 공공데이터를 하나로 통합 관리하는 창구 역할을 합니다. 국민에게 개방할 공공데이터가 모두 모여 있는 공간으로 누구나 공공데이터포털을 이용할 수 있습니다. 만약 개방된 공공데이터 외에 목록에 포함되지 않은 공공데이터가 필요할 경우, 공공데이터법 27조에 의해 추가 개방을 신청할 수 있습니다. 해당기관은 요청을 받고 10일 이내에 공공데이터 제공 여부를 결정한 뒤 신청인에게 통보해야 합니다. 공공데이터 신청이 반려되는 경우, 그에 대한 이유를 통보해야 하며 분쟁조정 신청으로 한 번 더 공공데이터 요청이 가능합니다.
## 공공데이터 분쟁조정
분쟁조정이란 공공데이터의 제공거부 또는 제공중단과 관련하여, 국민들이 복잡한 행정소송을 거치지 않고 간단한 분쟁조정 절차만으로 데이터를 이용할 수 있도록 지원하는 제도입니다. 공공데이터의 제공거부 또는 제공중단 처분을 받은 날로부터 60일 이내에 공공데이터 포털이나 공공데이터제공분쟁조정위원회 [홈페이지](www.odmc.or.kr)에서 신청할 수 있으며, 위원회 이메일 또는 팩스를 통해 분쟁조정신청서를 접수할 수도 있습니다.
공공데이터제공분쟁조정위원회는 공공기관의 제공거부 또는 제공중단처분의 타당성을 심의하고 이와 관련한 분쟁에 대한 조정안을 제공합니다. 분쟁조정신청인과 공공기관이 해당 조정안에 동의하는 경우 조정은 성립하고, 조정의 내용은 재판상 화해와 같은 효력을 가집니다. 분쟁조정이 성립하지 않는 경우, 분쟁조정신청인은 행정소송을 제기할 수 있습니다.
## 공공데이터 이용범위
**대부분의 공공데이터는 제한없이 사용할 수 있습니다.** 다만 일부 데이터에서 제3자 권리가 포함된 공공데이터의 경우 예외사항들이 존재합니다. 따라서 공공데이터 포탈에서는 제3자의 저작물이 포함된 공공데이터를 제공하는 경우 사용권한에 대한 정보를 [제공](https://www.data.go.kr/ugs/selectPortalPolicyView.do)하고 있습니다.
## 파일데이터와 API
공공데이터는 크게 파일데이터와 API로 제공이됩니다.
### 파일데이터
파일데이터는 말 그대로 파일형태로 다운로드 받을 수 있게 제공되는 데이터입니다. 이는 txt, csv, xls, xlsx, xml, json과 같은 문자나 숫자 형태부터 pdf, mp4, jpg, png와 같은 이미지, 영상, 오디오 형태까지 다양한 파일포맷으로 제공이 됩니다. 일반적으로 파일데이터는 다운로드 받아서 사용할 수 있기 때문에, 데이터를 분석하고 시각화하는데 있어서 가장 쉽게 접근할 수 있는 형태입니다. 다만 **파일데이터는 일정한 주기로 업데이트가 되지 않기 때문에, 최신 데이터를 이용하고자 할 때는 API를 이용**해야 합니다.
### Application Program Interface (API)
API는 프로그램과 프로그램 사이에서 데이터를 주고 받을 수 있도록 만들어진 인터페이스를 말합니다. API는 일반적으로 웹사이트에서 제공하는 데이터를 프로그램을 통해 가져올 수 있도록 만들어진 인터페이스를 말합니다. API를 이용하면 웹사이트에서 제공하는 데이터를 다운로드 받지 않고도 프로그램을 통해 데이터를 가져올 수 있습니다. API는 일정한 주기로 업데이트가 되기 때문에, 최신 데이터를 이용하고자 할 때는 API를 이용해야 합니다.
Agify.io는 그들의 이름을 기반으로 나이를 예측해주는 API입니다. API URL은 다음과 같습니다.
https://api.agify.io?name=David
url의 맨 마지막 부분에 위치한 `name=` 다음에 오는 `David`은 요청하는 이름을 의미합니다. 이는 응답 받기 원하는 다름 이름으로 바꿔 요청할 수 있습니다. 위의 URL을 브라우저에 입력하면 다음과 같은 결과를 얻을 수 있습니다.
```json
{
"name": "David",
"age": 35,
"count": 1120
}
```
이 API는 다음과 같이 R에서도 사용할 수 있습니다. 아직 R의 사용법에 대해서 자세히 배우지 않았기 때문에 코드를 이해하지 못하더라도 걱정하지 않으셔도 됩니다. 이 코드는 API를 이용해서 데이터를 가져오는 방법을 보여주기 위한 것입니다.
```{r}
library(httr)
library(jsonlite)
url <- "https://api.agify.io?name=David"
response <- GET(url)
result <- fromJSON(content(response, "text"))
result
```
### 공공데이터 활용신청
공공데이터를 활용하기 위해서는 먼저 1) 공공데이터포탈에서 API key를 발급받고, 해당 공공데이터 API에 대한 2)활용신청을 해야 합니다. API Key는 활용신청한 공공데이터를 이용하기 위한 인증서 역할을 합니다. API가 외부에 노출되지 않도록 보안에 특별히 유의하세요. 공공데이터를 신청하고 활용하는 자세한 방법에 대해서는 뒤에 다루도록 하겠습니다. 그 전에 우리는 데이터를 분석할 수 있는 언어인 R에 대해서 배울 것입니다.