ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API의 종류와 파싱하는 법 짱이네
    카테고리 없음 2020. 2. 22. 15:41

    어플을 만들 때 만든 어플이 과인 프로그램에서 다른 프로그램과 연결해서 사용해야 할 때가 있어요. 예를 들어 날씨를 나타내는 프로그램이라면 기상청의 데이터베이스와 연결하여 날씨를 나타내야 할 것입니다. 이렇게 프로그램과 다른 프로그램을 연결하는 하나의 다리 역할을 하는 인터페이스가 API(Application Programming Interface)입니다. 결론적으로 API는 당사가 만든 앱이 과인 프로그램에 개인 개발자와 대형 기업, 기관이 제공하는 기능 또는 프로그램을 사용할 수 있도록 지원하는 중간 매체입니다.


    >


    이곳에서 API가 프로그램을 연결할 때 데이터를 누구에게 전달해서는 안 되기 때문에 API는 허가받은 사람에게만 접근을 부여하여 데이터베이스에 접근할 수 있도록 하고, OS 구분 없이 누구 본인이 동일한 접근을 할 수 있도록 하여 설정을 바꾸지 않고도 자유롭게 접속할 수 있도록 합니다.API에 대해서는 어느 정도 알았으니 API의 종류인 XML과 JSON에 대해 알아보겠습니다.XML은 HTML과 매우 유사한 구조로 문자를 기반으로 한 마크업 언어이다. 여기서 마크업 언어란 태그를 이용하여 문서본인 데이터의 구조를 명기하는 언어로, HTML은 데이터를 나타낼 목적으로 만들어지지만 XML은 데이터를 저장하고 전달하는 API 목적으로만 만들어져 있습니다.따라서 HTML의 태그는 미리 정의되어 있지만 XML은 사용자가 직접 정의하고 태그할 수 있습니다. 과거 XML은 데이터를 다른 형식으로 변환하기 쉽고 데이터 전송이 매우 쉽다는 이유로 사용자들이 많이 사용하였습니다. 하지만 장황하고 복잡하다는 단점이 있고, 특히 데이터가 특정 앱에 맞게 구조화된 경우에는 점점 복잡해지고, 또 본인의 XML 안에 태그의 수가 많아져 응답 속도가 느리다는 단점도 있었습니다. 이 귀취에서 XML의 복잡함과 용장함을 보완한 간결한 JSON이 등장하면서 JSON이 급속도로 퍼지기 시작했습니다. 또한 XML에서는 보안 취약점을 일부 보유하고 있어 개발자가 확인하고 피해야 하는 반면 JSON은 적절하게 개발하면 보안이 뚫리기 어렵다는 장점도 있었습니다.그러나, 그렇다고 해서 XML이 전혀 사용되고 있지 않는 것은 아닙니다. JSON은 전송된 데이터의 완전성을 직접 검증해야 하지만 XML은 스키마를 이용해 완전성을 검증할 수 있기 때문에 데이터 검증이 필요한 곳에서는 아직 많이 사용되고 있습니다.그러면 JSON은 뭘까요?JSON은 JavaScript Object Notation의 약자로 JavaScript를 이용한 API이다. 위 스토리와 같이 가벼운 데이터 교환 형식으로 자바스크립트로 오브젝트를 만들 때 사용하는 포현식으로 볼 수 있습니다. 사용하는 노하우는 본인이 직접 패싱할 때도 설명합니다.


    >


    JSON에서 parsing하기 전에 parsing이란 하나련의 문자열을 의미있는 token으로 분해하고 그것으로 이루어진 Parsetree를 만드는 과정이라고 설명되어 있는데 간단하게 스토리를 하기 위해서는 어떤 데이터를 원하는 형식의 데이터로 변환하는 것을 스토리합니다. 위의 그림과 같이 gallery라고 한다 token으로 분해하여 그 안에 있는 데이터를 꺼내서 사용할 것. json passing을 한다면 json형태의 문자열을 객체로 변환한다고 보시면 되겠습니다.그러면 사양 파이썬을 사용해서 json 퍼싱하는 프로그램을 만들어 보면서 설명을 계속 하겠습니다. json구문해석에 사용할 수 있는 데이터의 형식이 있습니다.1. 숫자:숫자를 사용할 수 있습니다. 2. 문자열:value가 String의 경우에 큰 따옴표("")에 한꺼번에 줘야 합니다.3.boolean:true와 false(소문자로 표기해야 합니다.)4.null값:아무런 가치가 없을 때 사용합니다.5. 순서:[로 출발하여]에서 닫고에 배열 순서를 구별합니다. 6. 목적:{로 시작하여}에서 닫아 name-value의 집합임. 각각의 커플은 쉼표로 구별됩니다. 그래서 :로 값과 연결이 됩니다.


    >


    위의 사진은 파이슨을 사용하여 json을 실행한 사진입니다.import json에 json의 모듈을 가져옵니다.그래서 변수를 정의한 후 배열 안에 객체로 name과 value를 넣어줍니다. 객체 안에서 배열을 넣을 수도 있습니다.name의 자리에 있는 이름이 자신과 같은 값은 반드시 string이므로 큰 따옴표로 묶어 주어야 할 것이다.그래서 저는 확인하기 위해 아래에 json.loads()를 이용해서 문자열을 파이썬자료형으로 출력하는 것과 json.dumps()를 이용한 파이썬자료형을 json문자열로 출력하는 값을 print로 보여줬습니다.왼쪽에 실행된 파일을 보면 위에는 파이썬 자료형이 자신감을 가지고 있고 아래에는 파이썬 자료형이 아니라 json 문자열로 출력되어 있는 것을 볼 수 있습니다.


    >


    이번에는 json파일이 따로 있을 때 파싱하는 방법을 설명하겠습니다.파이썬 파일이 있는 폴더에 왼쪽 사진과 같은 json 파일이 있으면 withopen('/json 파일명')과 asjson_file:을 코딩한다.저는 한국어로 썼기 때문에 encoding까지 써주었습니다. json_data라는 변수에 json_load(json_file)로 json 파일을 읽습니다.이리하여 오브젝트 키를 이용하여 변수=json_data["꺼낼 데이터 키"] 뒤에 print(변수)하여 값을 나타냅니다.str은 숫자로 되어있고 문자열로 읽기 위해서 써놨습니다.이렇게 코딩을 하면 아래와 같이 본인이 오게 됩니다.​


    >


    이것은 제이슨 배열을 퍼싱한 사진입니다. 코드에대해서설명해보겠습니다.1단 json문자열을 String형식의 jsonInfo의 변수에 적어 주시겠어요. channel이라고 하는 키를 배열해서 만들고, 그 소리의 오브젝트를 씁니다. 파싱을 위해 Json Parser 객체를 만든 후 Json Parser 객체를 Object에서 파싱합니다.그런 다음 JsonArray에서 키인 channel을 get하여 해당 object를 array 배열에 저장합니다.마지막으로 for 문으로 오브젝트의 개수대로 결과가 나오도록 하겠습니다.그렇기 때문에 오류 시 에러를 출력할 수 있도록 캐치문을 이용하여 어디가 오류인지 확인할 수 있도록 합니다.파이슨에서 파싱 했을 때는 json이 내제되어 있었기 때문에 간단하게 할 수 있었기 때문에 자바에서도 그러한가 확인해 본 결과 자바는 외부 라이브러리를 추가하지 않으면 가능하다는 것을 알았고, 파이손보다 코드도 복잡한 것을 볼 수 있었습니다. 하지만 여러 언어로 패싱하는 법을 배우게 되어 즐거운 시간이었습니다.​


    ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 그림 한가지 출처:http://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%8개%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/


    댓글

Designed by Tistory.