JSON: 12개의 글
크롬 확장프로그램, JSONView 크롤링을 하거나 기타 등의 작업을 하다보면 JSON 데이터를 마주하게될 때가 있는데 이 때 추천하는 크롬 확장프로그램 중 하나가 바로 JSONView이다. 프로그램 이름으로도 기능을 쉽게 유추할 수 있는데, 바로 JSON 데이터를 가독성있게 볼 수 있도록 해주는 확장프로그램이다. JSON이란? (출처: 위키백과) JSON(JavaScript Object Notation)은 "속성-값" 쌍 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위한 개방형 표준 포맷이다. 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다. JSONView 설치 크롬 확장프로그램이기 때문에 설치는 매우 쉽다. 크롬 웹스토어의 해당 ..
JWT JWT(Json Web Token)란 인증에 필요한 정보들을 암호화 시킨 토큰을 의미한다. JWT 기반 인증은 쿠키/세션 방식과 유사하게 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별한다. 구조 JWT는 .을 구분자로 나누어지는 세 가지 문자열의 조합으로, 실제 해당 JWT 문자열들을 디코딩 하면 다음과 같은 구조를 가진다. 1. header 암호화 해싱 알고리즘 정보와 토큰의 타입. JWT를 어떻게 검증(Verify)하는가에 대한 내용을 담고 있다. 2. Payload JWT의 내용이다. 페이로드(Payload)에 있는 속성들을 클레임 셋(Claim Set)이라 부른다. 클레임 셋은 JWT에 대한 내용(토큰 생성자(클라이언트)의 정보, 생성 일시 등)이나 ..
이번 글에서는 RabbitMQ에서 사용하는 JSON Message Format을 Customize 해보도록 하겠습니다. 1. Customize JSON Format 앞선 글에선 Jackson의 ObjectMapper를 사용해 Employee Entity를 JSON String 형식으로 변경할 수 있었습니다. Employee @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class Employee { private String employeeId; private String name; private LocalDate birthDate; } 기본적으로 Jackson은 Default로 구현되어있는 serialize() 메서드를 참고해 아래와 같이..
이번 글에서는 RabbitMQ에서 사용하는 메세지 포맷인 JSON에 대해 알아보도록 하겠습니다. 0. 왜 JSON을 사용하는가? RabbitMQ는 메세지 Format으로 어떠한 String 형식도 허용합니다. 하지만 이러한 자유도 때문에 오히려 Publisher와 Consumer 사이에 불필요한 자원을 낭비하게 됩니다. 만약 특정 Publihser가 본인만 사용하는 Format으로 Message를 발행할 경우, Consumer는 해당 Message Format을 해석해 사용하기 위한 비용을 소모해야 합니다. 따라서 이러한 낭비를 막고, 비즈니스 로직에 더욱 집중하기 위해 가장 보편적이로 널리 쓰이는 JSON Format으로 메시지 규격을 통일하는 것 입니다. JSON은 대부분의 언어에서 Create 및 ..
쉘에서 curl post할때 json형식의 데이터를 사용하는 방법 쉘에서 json형식의 데이터를 curl을 통해 POST로 요청할때가 있는데, 파라미터로 받은 값, 또는 변수의 값을 직접 사용하면 json의 형태로 만들기 어렵다. 아래 방식을 이용하면 슆게 json 데이터의 형태로 post요청을 할 수 있다. 코드 물론 아래에 POST $HOST -d json을 넣을 수 있지만, 아래 함수와 같이 함수화를 하지 않으면 에러가 난다. #!/usr/bin/env bash generate_post_data() { cat
JSON APIs와 Ajax를 이용해 데이터 로딩 및 완료 된 데이터를 처리해 HTML 화면에 출력하는 예제 들어가며 만약 날씨 정보와 같이 수시로 변하는 데이터를 HTML을 통해 화면에 출력을 해주고 싶다면 어떻게 해야할까요? 이처럼 고정값이 아닌, 항상 변하는 값을 HTML을 통해 출력해야 하기 때문에 로컬 파일이나, 클라우드에 있는 파일에서 값을 가져와 HTML페이지에 출력을 해줘야 합니다. 그렇다면 데이터를 어떻게 어디서 어떤 형태로 가져오는지 알아보겠습니다. APIs(Application Programming Interfaces)는 애플리케이션 사이에 소통하는 인터페이스를 말합니다. 우리가 흔히 말하는 Google APIs도 같은 애플리케이션 간에 소통하는 인터페이스를 제공합니다. 우리가 특정 ..
들어가며 데이터 포맷은 참... 다양합니다. json부터 시작해서 csv, protocol buffer, text 등등.. 이번에는 protocol buffer를 json의 형태로 변환하는 방법에 대해서 알아보려고 합니다. 왜 필요하느냐.. 저 같은 경우에는 spark에서 데이터를 처리하기 위해서 변환을 했습니다. 사실 스파크에서는 protocol buffer를 지원하기 때문에 그대로 읽으면 되지만, tweeter에서 제공하는 elephant-bird 라이브러리를 함께 사용해야 하는 복잡함이 있다. 그것보다 아직 protocol buffer를 읽어서 spark에서 처리한 내용이 거의 없었다. 내가 찾아봤을때는 elephant-bird와 scala를 이용해서 읽어보려고 했으나 많은 dependency 등과..
들어가며 HTTP 통신을 하면서 data를 주고 받을 경우에 json형태로 데이터를 주고 받을 때가 많습니다. 또한 python에서는 dict의 type을 자주 사용하기 때문에 String을 dict으로 변환할 줄 알아야 하는데요. 아래 예제 코드는 json, dict 형태의 string을 json모듈을 이용해 dict의 type으로 변환해주는 코드입니다. python을 다룰때 가장 많이 사용하는 object중 하나가 dict이기 때문에 dict, json, string간의 변환이 자유로우면 상당한 무기가 될 수 있습니다. 예제코드 import json dict_string = '{"foo":"bar", "foo2":"bar2"}' # type(dict_string) # dict = json.loads(..
이번 시간에 다루어볼 내용은 proto message로 생성한 Java를 Json String으로 변환하는 방법이다. proto로 생성한 java 인스턴스를 아래와 같이 json string으로 바꾸려면 예외가 발생한다. #protoJava - proto로 생성한 java instance ObjectMapper mapper = new ObjectMapper(); mapper.writeValueAsString(protoJava); 그렇기 때문에 protobuf의 JsonFormat으로 jsonString을 변환해주면 된다. #protoJava - proto file로 생성한 java instance final String jsonString = JsonFormat.printer().print(protoJa..
참조문서 : https://blog.seotory.com/post/2016/04/understand-jsonp JSONP는 json with padding의 약자이다. 태그는 SOP 정책에 속하지 않는다는 점을 이용해, 서로 다른 도메인간의 javascript 호출을 위하여 jsonp가 사용되었다. 1. 원리 API서버에 데이터를 요청할 페이지에서 서버의 데이터를 받아 처리할 콜백 함수를 준비한다. 그 후에 script 태그를 생성하고 API서버에 request한다. 데이터 요청을 받은 서버에서는 콜백 함수를 실행하는 스크립트를 출력한다. 이 때 callback 함수의 인자에는 요청받은 데이터(기존 JSON)가 들어간다. 즉, 기존에 서버에서 {"key1" : "value1", "key2" : "valu..