제 13 장 웹서비스 사용하기
제 0 절 마크업 언어
- 다양한 언어(PHP, 파이썬, 자바, 자바스크립트 등)로 네트워크를 통해 정보 전달을 하기 위해 와이어 프로토콜(중간단계)를 거치게 됨.
- 대표적으로 활용되는 언어는 XML, JSON
제 1 절 XML (eXtensible Markup Language)
: HTML보다 구조화된 XML
- 시작태그<~> / 끝 태그</~>
- 문자정보
- 속성 : type="intl"
- 스스로 닫는 태그 <email ... />
- 공백은 의미 없음 (가독성 높이기 위해 사용하는 것 뿐)
제 2 절 XML 파싱
- fromstring : XML 문자열 표현을 XML 노드 '나무'로 변환한다.
- find : XML 나무를 훑어서 특정 태그와 매칭되는 노드를 검색한다. 각 노드는 텍스트, 속성, 자식노드로 구성된다. 각 노드는 노드 나무의 최상단이 될 수 있다.
- ElementTree 같은 XML 파서를 사용하는 것은 장점이 있다. XML은 규칙이 많고, 구문 규칙에 얽매이지 않고 ElementTree를 사용해 XML에서 데이터를 추출할 수 있다.
제 3 절 노드 반복하기
- 종종 XML이 다중 노드를 가지고 있어서 모든 노드를 처리하는 루프를 작성할 필요가 있다.
import xml.etree.ElementTree as ET
input='''
<stuff>
<users>
<user x="2">
<id>001</id>
<name>Chuck</name>
</user>
<user x="7">
<id>009</id>
<name>Brent</name>
</user>
</users>
</stuff>'''
stuff = ET.fromstring(input)
lst = stuff.findall('users/user') #findall 파이썬 리스트의 하위 나무 가져옴
print ("User count:", len(lst))
for item in lst:
print("Name", item.find("name").text)
print("Id", item.find("id").text)
print("Attribute", item.get("x"))
# User count: 2
# Name Chuck
# Id 001
# Attribute 2
# Name Brent
# Id 009
# Attribute 7
+ XSD XML 스키마 (W3C spec) : XML 스키마 = 올바른 형식에 대한 설명, 약속 (개요?, 조건?으로 봐도 될까)
> 제한을 주기도하고, 데이터 타입을 알려주기도 하고..
제 4 절 JSON(JavaScript Object Notation)
제 5 절 JSON 파싱하기
- 딕셔너리(객체)와 리스트를 중첩함으로써 JSON 생성.
- 내장된 json 라이브러리를 사용해 JSON을 파싱해 데이터를 읽어온다.
import json
input = '''
[
{ "id" : "001",
"x" : "2",
"name" : "Chuck"
},
{ "id" : "009",
"x" : "7",
"name" : "Chuck"
}
]'''
info = json.loads(input)
print ("User count:", len(info))
for item in info:
print("Name",item['name'])
print("Id",item['id'])
print("Attrubute", item['x'])
제 6 절 API(Application Program Interfaces, 응용 프로그램 인터페이스)
- 대부분 대형 웹 애플리케이션은 서비스를 이용함. 다른 애플리케이션으로부터 서비스를 이용하기도 함. 이에 따른 규칙을 만듦(API)
- HTTP으로 응용프로그램간에 데이터를 교환할 수 있게 되었다.
- API를 사용할 때 다른 응용프로그램에서 사용할 수 있는 가능한 서비스 집합을 생성한다. 다른 프로그램이 서비스에 접근하여 사용할 때 지켜야하는 API(규칙)도 게시한다.
- 응용프로그램이 웹상에 이용가능한 API로 서비스 집합을 만들 때, 웹서비스 라고 부른다.
제 7 절 구글 지오코딩 웹서비스
제 8 절 보안과 API 사용
- 상용업체 API를 사용하기 위해 API키가 일반적으로 필요.
제 9 절 용어정리
API: 응용 프로그램 인터페이스(Application Program Interface) - 두 응용 프 로그램 컴포넌트 간에 상호작용하는 패턴을 정의하는 응용 프로그램 간의 계약.
ElementTree: XML데이터를 파싱하는데 사용되는 파이썬 내장 라이브러리.
JSON: JavaScript Object Notation- 자바스크립트 객체(JavaScript Objects) 구문을 기반으로 구조화된 데이터 마크업(markup)을 허용하는 형식.
REST: REpresentational State Transfer - HTTP 프로토콜을 사용하여 응용 프로그램 내부에 자원에 접근을 제공하는 일종의 웹서비스 스타일.
SOA: 서비스 지향 아키텍처(Service Oriented Architecture) - 응용 프로그램 이 네트워크에 연결된 컴포넌트로 구성될 때.
XML: 확장 마크업 언어(eXtensible Markup Language) - 구조화된 데이터의 마크업을 허용하는 형식
'코딩 어쩌구 > Data' 카테고리의 다른 글
[패스트캠퍼스 SQLD] 1. 데이터베이스 이론 (0) | 2021.05.27 |
---|---|
[패스트캠퍼스 SQLD] 1. 데이터베이스 실습 (Oracle) (0) | 2021.05.20 |
[edwith] 파이썬을 이용한 웹 스크래핑 (1) (0) | 2021.05.03 |
[생활코딩] Oracle (2) (0) | 2021.01.21 |
[생활코딩] Oracle (1) (0) | 2021.01.21 |