본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/Python

210510_Json 구현 및 웹 서비스

by 케리's 2021. 5. 10.

* json 형식을 이용한 파일 입출력의 구현 및 실행
* 웹 페이지에 연동에 관한 구문 확인 및 실행
* 정적 페이지 연동의 이해 및 실행
*  xml 형식을 이용한 파일 입출력을 구현 및 실행

 

MEAN stack

: mongoDB, Express.js, AngularJS, Node.js

MongoDB - document database
Express(. js) - Node.js web framework
Angular(. js) - a client-side JavaScript framework
Node(. js) - the premier JavaScript web server

 

 

Json 이란?

Json (JavaScript Object Notation)


: 데이터 교환용으로 설계된 경량 텍스트 기반 개방형 표준을 말한다.


JavaScript


: 객체 표기법을 의미하고, Json 공식 인터넷 미디어 타입은 application/json이고. json 확장자를 가진다.


- Xml은 파싱 하기 위해 메모리에 올려놓고 작업을 하는데 데이터량이 많을 경우 파싱 자체에 부하가 걸리거나 파싱에 실패할 경우도 많아서 json을 사용하게 된다.
- C, C++, java, python, perl 등을 포함한 규칙을 사용하게 된다.
- 브라우저 확장 프로그램 또는 웹사이트를 포함하는 JavaScript 기반 응용 프로그램을 작성할 때 사용된다.
- Json 형식은 네트워크 연결을 통해 구조화된 데이터를 직렬화 및 전송하는 데 사용되며 주로 서버와 web 응용 프로그램 간에 데이터를 전송하는 데 사용된다.
- Web 서비스와 API는 공개 데이터를 제공하기 위해 Json 형식을 사용한다.

 

Json 특징

 1. 텍스트 기반으로 읽고 쓰는 것이 간단하다.
 2. 프로그램 언어와 플랫폼에 독립적이므로 서로 다른 시스템 간에 객체를 교환한다.
 3. 자바스크립트 문법을 사용한다.
 4. Json 전용 파서 기능을 웹 브라우저에 내장하고 있다..
 5. 데이터 포맷 xml 보다 가볍고 빠르다.
 6. 통신 프로토콜을 실행한다.
 7. xml 데이터는 모두 string인 반면 json은 타입을 가진다.

 

웹 서비스

 

웹서비스(Web Service)?

 

: 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호 작용을 하기 위한 서비스 지향적 분산 컴퓨팅 기술의 일종으로 SOAP, WSDL, UDDI 등의 주요 표준기술로 이루어진 소프트웨어 시스템을 말한다.


- 웹서비스에서 네트워크상에서 메시징 작업을 이용해서 DATA를 전송하게 되는데 웹상에서 데이터를 교환하는 방법은 두 가지 형식이 많이 사용된다.
- 문서 형식(Document-style)을 이용해서 데이터를 교환하는 XML('eXtensible Markup Language'), dict, list 혹은 내부 정보를 프로그램으로 서로 교환할 때 사용하는 Json (http://json.org) 이 있다.

 

 

웹 서비스 구성요소


- SOAP(Simple Object Access Protocol)

 : XMLHttp 등의 프로토콜을 기본으로 하여 다른 컴퓨터에 있는 데이터나 서비스를 호출하기 위한 통신규약
- WSDL(Web Service Description Language)

 : 웹서비스에서 제공하는 기능들(서비스)을 외부에서 이용할 수 있도록 그 사용법을 알려주는 인터페이스로 xml기반을 작성된다.
- UDDI(Universal Description, Dicscovery and Integration)

: 개방형과 표준과 비독점적인 기술을 기반으로 개발된 전역 비즈니스 레지스트리로 다양한 웹서비스를 사용자가 검색해서 사용할 수 있는 요소이다.

 

 

XML('eXtensible Markup Language')

 

: 1998년에 w3c에서 표준으로 채택한 다목적 마크업 언어로 많은 곳에서 서비스를 메시징 하고 있기 때문에 사용한다.

 

  ex) 선진형 방재 기상 정보 웹 서비스, 기상예보, 기상특보 등의 정보를 제공,

       우편번호 API와 종추적 API, EMS 종추적 API
       개별 웹 사이트 소유자 및 개발자에게 웹 서비스를 할 수 있게 제공되는 무료 플랫폼 등

 

 

Json의 주요 메서드

 

인코딩 (python → json, 객체 → 문자열)


1. dump (obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True,
cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
  : 객체를 dict/ list 변환해서 지정된 파일에 문자열로 저장한다.

2. dumps (obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True,
cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
 : 객체를 dict/ list 변환해서 지정된 파일에 문자열로 리턴한다.

 

디코딩 (json →python, 문자열 → 객체)


3. load (fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None,
object_pairs_hook=None, **kw)
 : 파일에서 Json 형식을 로드해서 python dict/list로 리턴한다.

4. loads (s, *, cls=None, object_hook=None, parse_float=None, parse_int=None,
parse_constant=None, object_pairs_hook=None, **kw)
: Json 형식을 로드해서 dict/list로 리턴한다.

 

 

 

  #  json.dumps ( ) : 문자열(str)로 리턴 (" " 로 리턴됨)

     json.loads ( ) : 객체로 dict / list 로 리턴

 

     repr : 해당 객체를 문자열로 리턴함

 

 

 

# dict(객체) 를 json.dumps를 통해 문자열(str)로 변환

 

 

 

# 1. str(문자열)을 json.loads 를 통해 dict(객체)로 변환 후

   2. obj(dict,객체)타입을 json.dumps를 통해 문자열(str)로 재 변환

 

 

# 파일에 쓰기/ 파일에서 읽어서 화면 출력하기 

  : Test04() , obj_json 은 dict 형태로 쓰고 저장가능 

 

 

 

object_hook

대상을 클래스인 객체로 연동해서 구현된다.

 

# class와 object_hook 사용하여 출력하기

  : My_str 은 str 이지만 __dict__ (내장함수)를 통해 dict로 출력

 

# class와 함수를 이용해 파일 출력하기

 

 1. json 모듈로 STUDENT.json 파일을 읽어오자
 2. Object_hook 을 이용해서 Student 클래스를 만들어서 데이터를 대입한다.
 3. 이름 : 총점으로 출력한다ex) Ruse : 270

 

'|Playdata_study > Python' 카테고리의 다른 글

210512_웹 크롤링2  (0) 2021.05.12
210511_웹 크롤링  (0) 2021.05.11
210507_모듈 활용 및 csv  (0) 2021.05.07
210506_예외처리  (0) 2021.05.06
210504_객체 단위 파일 입/출력  (0) 2021.05.05

댓글