'2009/03'에 해당되는 글 3건
- 2009/03/01 [JSON] Jackson JSON Processor
- 2009/03/01 [jersey] 1.0.2 릴리즈
- 2009/03/01 [일상] JCO 컨퍼런스 간단 후기 (6)
jersey 1.0.2 릴리즈 노트를 보면서 한가지 재밌는 놈을 봤습니다.
Jackson 이라는 JSON 처리기입니다.
최근 인터페이스 관련 작업을 하면서 예전에는 XML을 주로 사용했는데 최근에는 JSON을 주로 사용하고 있습니다. 그나마 플래시에는 XML을 사용했는데 플래시에서도 json파싱이 가능하면서 json데이터가 처리하기 더 좋다고 하는군요. 아 얘기가 옆길로 셌습니다.
Jackson 는 JSON데이터를 생성하거나 JSON데이터를 빈으로 변환하는 작업을 하는 라이브러리입니다.
jersey가 내부적으로 사용하는 라이브러리이기도 합니다.
1. User.java
Jackson 이라는 JSON 처리기입니다.
최근 인터페이스 관련 작업을 하면서 예전에는 XML을 주로 사용했는데 최근에는 JSON을 주로 사용하고 있습니다. 그나마 플래시에는 XML을 사용했는데 플래시에서도 json파싱이 가능하면서 json데이터가 처리하기 더 좋다고 하는군요. 아 얘기가 옆길로 셌습니다.
Jackson 는 JSON데이터를 생성하거나 JSON데이터를 빈으로 변환하는 작업을 하는 라이브러리입니다.
jersey가 내부적으로 사용하는 라이브러리이기도 합니다.
1. User.java
public class User {2. JSON 샘플 데이터
public enum Gender { MALE, FEMALE };
public class Name {
private String _first, _last;
public String getFirst() { return _first; }
public String getLast() { return _last; }
public void setFirst(String s) { _first = s; }
public void setLast(String s) { _last = s; }
}
private Gender _gender;
private Name _name;
private boolean _isVerified;
private byte[] _userImage;
public Name getName() { return _name; }
public boolean isVerified() { return _isVerified; }
public Gender getGender() { return _gender; }
public byte[] getUserImage() { return _userImage; }
public void setName(String s) { _name = s; }
public void setVerified(boolean b) { _isVerified = b; }
public void setGender(Gender g) { _gender = g; }
public void setUserImage(byte[] b) { _userImage = b; }
}{3. JSON데이터를 빈으로 변환하는 소스
"name" : { "first" : "Joe", "last" : "Sixpack" },
"gender" : "MALE",
"verified" : false,
"userImage" : "Rm9vYmFyIQ=="
}ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally좀더 다양한 소스는 http://jackson.codehaus.org/Tutorial 를 참고하시면 됩니다.
User user = mapper.readValue(new File("user.json"), User.class);
사내 인터페이스 작성을 위해 jersey를 사용하고 있는데 1.0.2 버전이 릴리즈되었습니다.
많은 버그를 수정했고 다음의 개선사항이 있었다고 합니다.
1. The JSON with JAXB "natural" convention
JAXB 모델을 사용해서 JSON 처리를 하거나 JSON을 다시 JAXB모델로 변경하는데 개선사항이 있다는 것으로 보입니다.
2. JSON with padding provider.
JSONP 에 대한 지원이 추가된 것입니다. JSONP 에 대해 검색을 해보니 다음처럼 설명을 하고 있군요.
4. Atom Abdera support.
아파치의 atom 구현체인 Apache Abdera 프로젝트의 Atom 엔트리와 Feed 자바타입을 지원
5. Implicit produces.
6. Servlet as a filter.
7. Client using Apache HTTP client.
8. Pavel Bucek has added support for SSL configuration of the Client API when using HttpURLConnection
공부를 게을리 했더니 용어들이 모두 어렵습니다.
일단 내일 라이브러리 업데이트하고 API나 문서를 보면서 실제 내용을 파악해야 할 것으로 보입니다.
좀더 자세한 내용은 http://blogs.sun.com/sandoz/entry/jersey_1_0_2_is 를 참고하시면 됩니다.
많은 버그를 수정했고 다음의 개선사항이 있었다고 합니다.
1. The JSON with JAXB "natural" convention
JAXB 모델을 사용해서 JSON 처리를 하거나 JSON을 다시 JAXB모델로 변경하는데 개선사항이 있다는 것으로 보입니다.
2. JSON with padding provider.
JSONP 에 대한 지원이 추가된 것입니다. JSONP 에 대해 검색을 해보니 다음처럼 설명을 하고 있군요.
JSONP(JSON with Padding)는 "Dynamic Script Tags" 혹은 "On Demend Javascript" 라고 불리는 기술을 이용하여 다른 웹사이트로 HTTP 요청을 보내고 자바스크립트 콜백 함수를 통해 실행결과를 통보 받는 방식으로 수행되는 JSON 기반 RPC 규약입니다. 이렇게 하면 브라우저의 보안 정책인 “Same Origin Policy” 제약을 넘어서서 원격 서버와의 통신이 가능해지는데, 야후의 일부 API들, 그리고 최근 개선된 Google Calendar API 등이 이미 이러한 방식을 사용하고 있습니다.3. Resource method specific filters.
4. Atom Abdera support.
아파치의 atom 구현체인 Apache Abdera 프로젝트의 Atom 엔트리와 Feed 자바타입을 지원
5. Implicit produces.
6. Servlet as a filter.
7. Client using Apache HTTP client.
8. Pavel Bucek has added support for SSL configuration of the Client API when using HttpURLConnection
공부를 게을리 했더니 용어들이 모두 어렵습니다.
일단 내일 라이브러리 업데이트하고 API나 문서를 보면서 실제 내용을 파악해야 할 것으로 보입니다.
좀더 자세한 내용은 http://blogs.sun.com/sandoz/entry/jersey_1_0_2_is 를 참고하시면 됩니다.
어제 JCO 컨퍼런스를 다녀왔습니다.
예전에는 주위 지인들에게 모두 전화해서 함께 들으러 다니곤 했는데, 그동안 보고 싶었던 아이와의 점심약속을 제외하고 다른 약속 없이 혼자 가서 듣고 싶은 세션을 들었습니다.
참석한 세션은 아래와 같습니다.
두번째 세션인 PostgreSQL 은 점심약속 덕분에(?) 듣지를 못했네요.
# 강의내용에 대한 후기
1. Java VM Internal
2. CI with Hudson
3. What's New and Cool in Spring's Web Stack
# 기타
1. sdnkorea 인형
2. JCO 행사
내년에는 저도 발표를 해볼까요..?? ^^ 능력도 키워야 하고 발표주제도 잘 찾아야 가능한 일이겠네요.
예전에는 주위 지인들에게 모두 전화해서 함께 들으러 다니곤 했는데, 그동안 보고 싶었던 아이와의 점심약속을 제외하고 다른 약속 없이 혼자 가서 듣고 싶은 세션을 들었습니다.
참석한 세션은 아래와 같습니다.
두번째 세션인 PostgreSQL 은 점심약속 덕분에(?) 듣지를 못했네요.
# 강의내용에 대한 후기
1. Java VM Internal
최근 성능측정에 관심을 가지다보니 자연스레 관심이 가는 부분이 JVM입니다. 강으내용의 많은 부분은 이미 알고 있는 내용이기도 했지만 생소한 개념도 중간중간 나와서 새로운 지식을 얻게 되는 시간이었습니다.
그리고 주로 웹 개발을 하는 저로서는 대개 Java SE 또는 Java EE 를 기준으로하는 JVM에 대해 생각하게 되는데 Java ME 를 기준으로 하는 JVM에 대해 다시 생각하는 계기가 되었습니다.
그리고 주로 웹 개발을 하는 저로서는 대개 Java SE 또는 Java EE 를 기준으로하는 JVM에 대해 생각하게 되는데 Java ME 를 기준으로 하는 JVM에 대해 다시 생각하는 계기가 되었습니다.
2. CI with Hudson
CI 툴에 대해서는 그동안 사내 발표도 있었고 이런저런 자료를 보긴 했는데 이번만큼 명확한 발표는 없었다고 생각될 정도로 인상깊은 시간이었습니다. 굳이 Hudson이 아니더라도 CI툴을 사용해야 겠다는 직접적인 계기를 마련하게된 시간이었습니다. 개념적인 설명도 좋았지만 데모도 한치의 흩어짐 없이 깔끔하게 진행하셔서 굉장히 유익한 시간이었습니다.
어제 저녁 당장 진행중인 프로젝트에 대해 Hudson을 적용하고 있는데 Junit 리포팅 부분에 다소 막히는 부분이 있어 메일로 문의드렸는데 답이 올리는 모르겠습니다.
어제 저녁 당장 진행중인 프로젝트에 대해 Hudson을 적용하고 있는데 Junit 리포팅 부분에 다소 막히는 부분이 있어 메일로 문의드렸는데 답이 올리는 모르겠습니다.
3. What's New and Cool in Spring's Web Stack
프랑스인이라고 들었던것 같은데 SpringSource의 마이클이즈비가 발표했습니다. 초반에는 다소 천천히 얘기했던것 같은데, 시간이 갈수록 집중이 안되고 영어를 알아듣기 힘들어서 중간에 나와버렸습니다.
생각보다는 젊었다는 점과 발표 직후 명함을 주면 차후 국내교육시 10%의 할일을 적용해준다고 했는데, 그냥 나와버렸네요. 우리나라가 SpringSource에서도 관심을 가지면서 최초의 자리였다는 의미는 있으나 시간 자체가 유익했던 자리라는 생각이 그리 들지는 않습니다.
생각보다는 젊었다는 점과 발표 직후 명함을 주면 차후 국내교육시 10%의 할일을 적용해준다고 했는데, 그냥 나와버렸네요. 우리나라가 SpringSource에서도 관심을 가지면서 최초의 자리였다는 의미는 있으나 시간 자체가 유익했던 자리라는 생각이 그리 들지는 않습니다.
# 기타
1. sdnkorea 인형
이번에는 지인분과 특별히 약속을 하고 갔던것도 아니고 초반에는 제가 낮을 좀 가리는 편이라 그냥 지나다녔는데 양수열님이 어떻게 알아보시고 박안나님께 소개를 시켜주셔서 인형 하나 받아왔습니다. 먼저 알아봐주셔서 감사합니다. ^^
2. JCO 행사
아마 다들 같은 생각을 했겠지만 이번에는 컨퍼런스에 참석하는 인원이 많이 적었습니다. 사전 등록 신청을 받으면서 뭔가 잘못 전달되었는지 대부분이 사전 등록한 분들이었것으로 보입니다. 그래서 강의장 마다 다르겠지만 최소 1/3 또는 1/2 정도 빈자리가 보였습니다. 작년에는 너무 많아 불편했지만 이번에는 너무 적어 발표자 분들이 맥이 빠지지 않으셨는지 궁금하네요.
내년에는 저도 발표를 해볼까요..?? ^^ 능력도 키워야 하고 발표주제도 잘 찾아야 가능한 일이겠네요.

Prev
Rss Feed