[출처] 자바 스크립트에서 sleep 기능을~|작성자 소년하루
http://www.json.org/json-ko.html
JSON을 활용한 HTTPService 개발
FLEX 어플리케이션을 개발할 때 FLEX 2 SDK나 Flex Builder 2를 사용하면 HTTPService와 WebService 방식으로 서버와 통신을 할 수 있다. 두 통신 방법의 공통점은 HTTP 프로토콜을 사용하는 것과 XML 포맷으로 통신을 한다는 것이다. 하지만 XML은 가독성이 좋은 반면, XML을 생성하는 서버와 생성된 XML을 사용하는 클라이언트에 많은 부하를 준다는 단점이 있다.
보통 XML을 파싱하여 사용할 때 DOM(Document Object Model) Parser를 이용한다. 이 DOM 파서는 메모리에 XML 구조를 트리 형태로 구성하여 자료를 찾아는 방법을 사용한다. 그렇기 때문에 검색을 위해 많은 양의 데이터 구조가 메모리를 차지하게 된다.
특히 Flash Player는 XML을 메모리에 올린 후 사용이 완료되어도 잘 지워주지 않기 때문에 작은 양은 별 문제가 없지만 많은 양의 데이터를 XML 포맷으로 받는다면 사용자의 메모리를 많이 차지하게 되어서 컴퓨터가 느려지는 요인이 되고 있다.
실제 다수의 프로젝트를 보면 XML을 이용한 대용량 전송에서 Flash Player가 메모리를 효율적으로 관리하지 못해 브라우저가 자동으로 같은 페이지를 로딩하게 해 Flash Player를 초기화 하는 방식으로 문제를 해결하는 것을 본적이 있다. 물론 XML 포맷이 나쁘다는 것은 아니다. 하지만 효율적인 사용을 위해 더 좋은 방법을 찾아보자는 것이다.
필자가 해결 방법으로 추천하는 것은 JSON(JavaScript Object Notation) 포맷을 이용하여 통신하는 것이다. 이제부터 JSON이 무엇이며 어떻게 Flex에서 사용할 수 있는지에 대하여 알아보고 Yahoo에서 제공하는 Open API를 연동하는 예제를 만들어 보도록 하겠다.
JSON은 무엇인가?
JSON은 경량의 데이터 교환용 포맷이다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999의 일부분을 기반으로 만들어 졌다. 보통 JavaScript나 ActionScript에서 객체나 배열을 선언할 때와 같은 방식으로 데이터를 포맷화 한다.
그리고 2006년 7월에 공식적으로 RFC 4627로 표준으로 승인되었다. JSON은 언어에 종속되지 않기 때문에 많은 언어들의 JSON Parser가 존재한다.
JSON은 두가지 구조를 기본으로 하고 있다.
1. name/value 형태 [Collection 타입]
대부분의 언어에서 object, record, struct, dictionary, hash table 등의 형태로 사용한다.
2. 값의 배열 형태 [Array 타입]
대부분의 언어에서 array, vector, list 등의 형태로 사용한다.
JSON에서 사용되는 타입에 대해 하나씩 알아보도록 하자.
Object
Object는 name/value 형태로 정의한다. 정의 방법은 “{“ 시작하고 “}”로 끝내어 표현한다. 그리고 각 name 뒤에 “:”을 붙이고 value을 입력하고 “,”로 값의 쌍을 구분한다.
{ name:”홍길동”, age:30, address:”서울시”}
object 구조도
Array
Array는 값들의 순서화된 배열이다. 정의 방법은 “[“ 시작하고 “]”로 끝내어 표현한다. 그리고 “,”로 값들을 구분한다.
[1,2,3,4,5,6,7,8,9]
array 구조도
Value
Value는 큰 따옴표 안에 string, number, true, false, null, object, array 등이 올 수 있다.
value 구조도
String
String은 큰 따옴표 안에 둘러 싸인 유니코드 문자들의 조합이며 (역슬러시) 문자도 지원한다.
string 구조도
Number
Number는 10진수만 사용한다. 8진수, 16진수는 사용되지 않는다.
number 구조도
JSON의 장점
1. 가독성이 좋다.
2. 데이터 크기가 작다.
3. 파싱이 빠르다.
4. 메모리 사용량이 적다.
5. RFC 표준으로 승인되었다.
6. 객체 구조를 쉽게 표현 할 수 있다.
7. 많은 언어가 지원하고 있다.
JSON을 사용하기 위한 Core Library 사용 방법
FLEX 2에서 JSON을 사용하려면 JSON을 파싱해 주는 관련 라이브러리가 필요하다. Adobe Labs에서 Core Library 안에 JOSN Parser를 제공해주고 있다. Adobe Labs에서 라이브러리를 다운 받고 프로젝트에 Library Path에 잡아주면 JSON 포맷을 사용할 수 있게 된다. 서버와 데이터 통신하기 앞서 기본 API와 간단한 예제를 살펴보도록 하겠다.
JSON API 사용법
1. JSON 클래스를 임포트한다.
- import com.adobe.serialization.json.JSON;
2. 객체를 JSON을 이용하여 작업한다.
- 객체를 JOSN 포맷으로 변경
var json:String = JSON.encode(obj);
- JSON 포맷을 객체로 변경
var obj:Object = JSON.decode(json);
<코드 1> JSON Example
http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="initApp()">
<코드 1>의 내용은 간단히 사람 이름과 나이를 객체에 저장하고 JSON 포맷으로 바꾸고 바꾼 내용을 출력하고 바꾼 내용을 다시 객체로 만들어 이름과 나이를 출력하는 예제이다.
<결과 1> JSON 간단 에제
{"name":"홍길동","age":30}
홍길동
30
<결과 1>는 <코드 1>의 결과 출력이다. 첫번째 줄이 JSON 포맷 형태이고, 나머지는 객체로 만든 후 이름과 나이를 출력한 결과이다.
JSON을 사용하여 Yahoo Open API 연동하기
간단히 JSON Parser를 사용하는 것을 해보았으니 실제 서버에 데이터를 JSON 포맷 형식으로 가져와서 객체화 시켜서 데이터 그리드에 출력하는 예제를 만들어 보도록 하겠다.
JSON으로 Yahoo API 연동 예제 [ 메모리 측정 추가 ]
서 버 프로그램을 배우는 것이 아니기 때문에 Open API를 사용하겠다. Open API는 웹 사이트에서 자신들의 서비스를 개발자가 사용할 수 있게 열어주는 서비스이다. 국내에는 Naver Open API가 있고 국외에는 Google, Yahoo, Amazon 등이 있다.
우리는 Yahoo의 이미지 검색 Open API에서 검색을 하여 검색된 결과를 데이터 그리드에 출력해보도록 하자.
우선 해야할 것은 Yahoo 웹사이트에 가서 Application ID를 발급 받아야 한다. <참고 사이트>에서 “Yahoo Application ID 발급 페이지”로 가서 Application ID를 발급 받는다.
그리고 Flex 어플리케이션에서 HTTPService로 서버에서 JSON 포맷으로 데이터를 가져 온다. HTTP Service의 url은 이미지 검색이기 때문에 다음과 같이 설정한다.
http://api.search.yahoo.com/ImageSearchService/V1/imageSearch
<참고 사이트>에서 “Yahoo 이미지 검색 매뉴얼”을 참고하면서 파라미터를 입력해주고 서버로 데이터를 요청한다.
서버로부터 JSON 포맷 형식의 데이터를 받으면 JSON Parser로 객체를 만들고 데이터 그리드의 데이터 프로바이더에 객체를 넣는다.
private function onJSONLoad(event:ResultEvent):void
{
//서버로 받아온 JSON 결과를 파싱한다..
var obj:Object = JSON.decode(event.result as String);
//JSON을 파싱한 결과를 Grid에 적용시킨다.
grid.dataProvider = obj.ResultSet.Result;
//Flash 사용 메모리를 측정한다.
memory.text = System.totalMemory + "Byte";
}
실제 구동 예제는 첨부된 파일을 실행해보면 될 것이다. 첨부된 파일을 실행하기 전에 Yahoo에서 발급 받은 Application ID는 수정해 주어야 한다.
이제까지 XML 포맷의 단점을 보완하는 JSON 포맷에서 대해 알아보고 실제 예제를 만들어 보았다. 실제 작동시켜 보면 XML 포맷과 속도와 성능 그리고 메모리 사용량의 차이를 알 수 있을 것이다. 현재 Ajax에서도 XML 포맷보다는 JSON 포맷을 선호하고 있고 필자 개인적으로도 통신 포맷은 JSON이 최적이라고 생각한다. Flex로 구현하였는데 데이터가 많다거나 성능을 높여야 한다면 JSON 포맷을 머리 속에서 한번 떠올려보는 것도 괜찮을 것이다.
<참고 사이트>
• JSON 공식 홈페이지 http://www.json.org/
• JSON 한글 페이지 http://openframework.or.kr/JSPWiki/Wiki.jsp?page=IntroducingJSON
• JSON - RFC 4627 페이지 http://www.ietf.org/rfc/rfc4627.txt?number=4627
• ActionScript 3.0 라이브러리 페이지
http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries
• Yahoo 이미지 검색 매뉴얼 http://developer.yahoo.com/search/image/V1/imageSearch.html
• Yahoo Application ID 발급 페이지 http://api.search.yahoo.com/webservices/register_application
출처 : http://flytojin.springnote.com/pages/1406608
==================================사용법==================================
HP rx2600
Red Hat Enterprise Linux ES release 4 (Nahant Update 4)
Kernel 2.6.9-42.EL on an ia64
사양의 서버입니다.
5분마다 온도를 측정하여 로그를 저장하고 싶은데요..
명령어를 알 수가 없네용.
아시는 분 도움 부탁드릴께요~
Proliant Support Pack을 깔려고 했는데, 잘 안깔리네요..ㅡㅜ
흐미...
VMWare의 스프링소스 인수를 이상한 눈으로 보는 사람들이 많이 있는 것 같다. 스프링이라는 자바 엔터프라이즈 프레임워크와 VMWare 가상화 솔루션과 무슨 상관이있다고 5천억이라는 적지 않은 돈을 들여서 인수를 했을까 하는 것이다. 그냥 초고속으로 성장하면서 잘나가는 회사의 생각없는 돈지랄이라거나, 돈에 환장한 로드 존슨이 회사 팔아먹고 J사의 M처럼 먹튀하려는게 아닌가 하는 식으로 생각하는 인간들도 있는 것 같다.
내가 인수 당사자가 아니니 속사정이나 진행과정은 잘 모르겠고, 인수경쟁자가 있었는지도 모르겠다. 나를 포함해서 많은 사람들은 스프링을 초기부터 친 스프링적인 모습을 보였고(스프링 1.0시절에 등장한 TopLink스프링지원 기능은 오라클이 먼저 나서서 제공한 것이다) 심지어 스프링을 자신의 미들웨어 솔루션의 핵심 엔진으로 가져간 오라클이 인수하지 않을까 하는 생각을 했을 것이다.
아무튼 VMWare가 인수했고 로드 존슨은 그것이 단순한 투자목적 내지는 인력확보를 위한 인수가 아니라 새로운 비즈니스와 기술적인 기회를 만드는 것이라고 설명했다.
스프링소스 하면 스프링 프레임워크만을 생각하기 쉬운데 이미 스프링소스는 몇낸 째 서버플랫폼과 관리를 위한 기술에 더 많은 투자를 하고 있다. 사실상 스프링의 개발은 유겐횔러 1인이 대부분 진행하고 있고, 보조적으로 몇명의 개발자들이 필요할 때만 돕는 수준이다. 그에 반해 그동안 스프링소스는 많은 인력을 각종 서버제품과 dm,tc플랫폼, 툴 등에 투입했고 Build, Run, Manage라는 구조의 엔터프라이즈 개발과 운영에 관한 종합 서비스와 플랫폼을 만드는데 힘을 쏟아왔다. 그런면에서 스프링 프레임워크 자체는 스프링소스의 가장 중요한 자산이긴 하지만 비즈니스적으로는 작은 한 부분에 불과하다.
스프링소스가 서버와 플랫폼에 치중하면서 가장 신경을 쓴 것은 바로 OSGi기반의 DM서버이다. 기존의 JEE와는 차원이 다른 진정한 "차세대" 자바 모듈 플랫폼으로서의 OSGi의 가치를 일찍 인지하고 이에 전력을 기울인 결과 스프링소스은 자바 엔터프라이즈 OSGi의 가장 앞서나가는 리더가 되었다. 이미 다음 버전 OSGi의 엔터프라이즈 서비스 표준은 스프링소스가 주도했고, 스펙을 보자면 거의 이름만 다르지 스프링 그 자체이다. 스프링은 2.0부터 스스로 OSGi호환 모듈로 패키징 되어서 제공되고 있고, 가장 방대한 OSGi호환 번들을 제공하는 리포지토리도 운영하고 있다.
OSGi의 매력은 바로 배포이다. JEE와는 비교도 할 수 없을 만큼 유연하고 안정적인 배포기술이 바로 OSGi플랫폼의 매력이다. 거기에 JEE의 솔루션을 그대로 가져다 쓸 수 있도록 만드는 Spring OSGi-DM기술이 결합하면 스프링으로 만들기만 하면 아주 손쉽게 OSGi호환 모듈로 만들 수 있고, 플랫폼에 라이브 배포와 관리가 가능해진다. 거기에 편리한 관리기능이 첨부된 SpringDM서버까지 제공하고 있다.
DM서버가 좀 서두른 감이 있긴 하지만 1.0으로 공개되고 본격적으로 발전하려는 계획을 설명하면서 스프링소스의 리더들이 언급한 것이 바로 VMWare가상화와 OSGi/DM기술의 결합이다. 소위 Cloud 시스템으로 만들어진 VMWare의 대용량 서버가상화기술과 OSGi플랫폼의 장점을 극대화하고 스프링 기반의 JEE애플리케이션을 잘 공급할 수 있는 SpringDM 기술이 결합하면 환상적인 Cloud-OSGi/DM 플랫폼을 만들어 낼 수 있는 것이다. 기껏해야 제한된 API만을 지원하고 서블릿 수준의 배포만 가능한 구글의 GAE(AppEngine)와는 차원이 다른 배포환경을 만들어 낼 수도 있다.
작년에 이미 VMWare와 스프링소스는 이 플랫폼 개발과 스프링 솔루션의 각종 가상화 기술에 대해서 파트너쉽을 맺었고 이를 공동으로 연구해오고 있었다. SpringDM과 VMWare의 통합솔루션 진행에 대해서는 SpringOne에서 밝힌 바가 있고, 스프링 플랫폼을 가상화하는 부분에 대해서는 http://www.eweek.com/c/a/Application-Development/SpringSource-Teams-with-VMware-for-Virtualized-Spring-Solutions/ 이 기사에 잘 나와있다. VMWare는 이미 그 이전부터 스프링소스의 전략적인 파트너였기도 했다.
내 생각엔 아마도 그런 공동의 플랫폼과 JEE/OSGi 환경에 대한 가상화 연구의 결과가 매우 흡족하게 나왔고, 그에 대한 충분한 비전을 공유할 수 있었기에 이번 인수가 진행될 수 있었다고 생각된다. 물론 앞으로의 진행은 두고봐야 겠지만, 비즈니스로서 스프링소스 입장에서 또 VMWare입장에서 볼 때 이번 인수는 상당히 의미있고 가치있는 것이라고 평가될 수 있을 것이다.
이클립스 JEE 패키지에 기본으로 포함된 편집기입니다. 파일을 선택하고 오른버튼메뉴에서 Open With > Web Page Editor 를 선택해서 엽니다. 한 번 열면 계속 그 파일은 마지막 열었던 편집기로 열리게 됩니다.
마치 드림위버처럼 웹페이지 디자인 편집이 가능한 편집기가 열립니다. 파일 탭부분의 아이콘을 보면 지구표시가 함께 보입니다.
툴바에 있는 네 개의 아이콘을 클릭하면 다르게 볼 수 있습니다.
가로 분할, 세로 분할, 디자인 보기, 코드 보기가 지원되고 하단의 Preview를 통해서 브라우저에서 보이는 모습을 확인할 수 있습니다.
파일이 이것저것 열리면 에러창이 뜰 수도 있는데, 모든 파일 다 닫으시고 새로 시작하면 됩니다.
1. SVN 기본 플러그인 설치
eclipse 메뉴 Help > Install New Software... >
상단 Work with 항목에서 Galileo - http://download.eclipse.org/releases/galileo 선택 후 1~5분 기다립니다.
아래 창의 Pending... 사라지면 Collaboration 항목의 + 를 확장합니다.
Collaboration의 제일 아래 있는 Subversive SVN Team Provider(Incubation) 만 선택합니다.
Next 버튼 > Next 버튼 > I agree 체크하고 > Finish 로 설치합니다.
시간 아주 오래 걸립니다. 지금 20분째. ㅡㅡ;
2. SVN Connector 설치
http://www.eclipse.org/subversive/downloads.php
사이트에 접속해서 SVN Connector를 선택할 차례입니다.
polarion 사이트를 통해서 다운로드 받아야되는 라이선스 이슈가 있지만, 일단 설치하면 안정적인 듯 합니다.
다음 주소줄을 복사해서 eclipse 메뉴 Help > Install New Software... >
상단 Work with 항목에 붙여놓고 우측 Add... 버튼을 클릭합니다.
http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/
다음 항목들을 선택합니다.
Subversive SVN Connectors
- JavaHL 1.6.0 Win32 Binaries (Optional)
- Native JavaHL 1.6 Implementation (Optional)
- Subversive SVN Connectors
- SVNKit 1.3.0 Implementation(Optional)
Next > Finish
eclipse를 재시작하고 우측 상단의 Perspective Selector 아이콘에서 SVN Repository Exploring을 선택합니다.
http://daysago.googlecode.com/svn/ 주소를 넣어 연결해 봅니다.
points
ㅡㅡ;;
내 질문이 그렇게 어려운가...
ㅡㅜ
points
전 FreeBSD에서 xmbmon -
전 FreeBSD에서 xmbmon - http://freshmeat.net/projects/xmbmon/ 의 결과를 cron으로 빼서 mrtg 그래프로 뽑아놓고있습니다만
메인보드 센서에 따라서 작동되지 않는 경우도 많더라고요.
온도와 팬속도, 전압등 센서가 지원하는 범위내에서 잘 잡아냅니다.
time to wait...
points
오오
답글이... ㅎㅎ
감사합니당~~ ^^
points
man smartctl ----- 오늘
man smartctl
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
points
답글
감사합니당~~