'개발'에 해당되는 글 21건

  1. 2007/07/10 ShowFX - Web(Flash) PPT Viewer (8) by 타오
  2. 2007/05/11 Sliverlight & (Flash | Flex) (2) by 타오
  3. 2007/04/20 Eclipse WTP + FlexBuilder Eclipse Plug-in 같이 사용하기 by 타오
  4. 2007/04/01 IE7의 DHTML관련 문제점들 by 타오
  5. 2007/04/01 DHTML 개발시 브라우저별 차이점을 어떻게 다루어야하는가? by 타오
  6. 2007/03/28 OpenAjax Alliance by 타오
  7. 2007/03/22 Java RESTful WS API (JSR-311) 의 첫 구현체가 나왔습니다. (2) by 타오
  8. 2007/03/13 Reflection Tip in ActionScript3, Flex2 (2) by 타오
  9. 2007/02/22 firebug 가지고 놀기 (2) by 타오
  10. 2007/02/13 라이브러리 (2) by 타오
오랫만의 글이네요^^;

오늘은 지난 반년간 열심히 만들어온 결과물인 ShowFX 라는 넘을 소개드리려고 합니다.

ShowFX는 웹상에서 PPT 문서를 바로 볼 수 있는 솔루션으로 Flash로 만들어진 PPT Viewer라 할 수 있습니다.
(ShowFX는 프로젝트 명으로 정식 제품명은 아닙니다)

아래는 ShowFX를 이용해 현재 구글에서 filetype:ppt thinkfree로 2007.07.10에 검색했을때 3번째에 랭크된 문서를 열어본 모습입니다.
(http://eeando.unl.edu/cehs/sydney/download/collaborativeOnlineApps.ppt)




* 미국에 있는 서버이다 보니 이미지가 상당히 늦게 뜨는군요. 이미지가 없는걸로 착각할듯 하네요. 얼렁 고쳐야할듯 ㅠ.ㅠ


보시다시피 ShowFX는 Flash를 이용해 렌더링을 하고 있으며 내부적으로는 swf 형태의 어플리케이션을 만들기 위해 Flex2 기술이 사용되었습니다.

간단히 기술적인 부분을 예기해보면 서버측에서 Thinkfree의 기술을 이용해 PPT 파일을 XML로 변환하고 클라이언트에서 Flex로 만들어진 PPT Viewer가 해당 XML을 화면에 렌더링 하는 구조로, 서버측은 자바기반으로 톰캣, JSR-311(Java Rest API) 등이 사용되었으며 클라이언트는 Flex2를 기반으로 약간의 Ajax가 사용되었습니다.
(구조도... 이런데는 재주가 없다보니 말로 때우렵니다 ;;)

현재 Thinkfreedocs에서 ShowFX가 적용되어 서비스 되고 있으며 조만간 OpenAPI형태로 누구나 자신이 원하는 문서를  원하는 곳에 임베드 할수 있는 형태로 서비스가 제공될 예정입니다^^


* 위의 임베드 된 문서보기처럼 간단히 다른 문서에 대해서 실행을 시켜보시고 싶으신분은
http://showfx1.thinkfreedocs.com:8080/ShowFX/sfx.jsp?url=<문서주소>
형태의 URL을 이용하시면 됩니다. 단 이 방식은 비공식적인 방법으로 간단한 테스트 등에만 사용하시기 바랍니다^^

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/48 관련글 쓰기

  1. Subject: 어디서나 사용하는 PPT - ThinkFree Docs

    Tracked from Inspiration, Feel Good Factor for Flex Dev 2007/07/10 18:23  삭제

    PPT 파일을 SWF로 변환하여 발표하기! 라는 글을 보고 따라가봅니다. 먼저 ThinkFree Online 과 ThinkFree Docs 에 대하여 이해를 하셔야 할것같습니다. 이에 대한 설명은 여러 블로그나 해당 사이트에 자세하게 나와있으니 추가적인 설명은 하지 않도록 하지요. 특히 한컴 씽크프리 8월부터 미국에서 유료 서비스 라는 글에서 보듯이 조만간 유료화된 서비스 모델로 공개가 될 예정이라고 합니다. 글을 올려주신 박재현님은 지난번 WebA..

댓글을 달아 주세요

  1. 이미지 로딩이 정말 많이많이 늦네요, Flex에서 이미지부분을 완전 로딩전에 뭔가로 대체하는 것도 괜찮을 듯 합니다.
    어쨌든 GOOD~
    Thinkfree 어플리케이션 뜨는 것 보다는 훨 좋아요, ShowFX 언능 공개해주세요!!

    • 워워... 누구신가 했음 -0-;;

      이미지 뜨는건 아마존 웹서비스가 좀 느런거도있고 그래서 더 심각한듯 해욤. 곧 개선될 예정입니다 ㅎㅎ

  2. 사진보고 예전에 왔던 기억이 나네요..ㅎㅎ
    thinkFreedocs 에 올라온 문서뿐 아니라
    웹상의 어떤문서라도 ppt 문서를 바로 변환하여 보여주는건가요. 생각보다 무척 난해한 기술이네요.
    실제 ppt 다운받아서 열어본다고 생각하면 엄청 빠른것 같습니다.

    • thinkfreedocs와 별개로 개발된 독립 어플리케이션이라고 생각하시면 좀 더 정확할듯 합니다^^.

      이 썰렁한 블로그에 답방 감사드려요!

  3. 오~ 너무 좋은데요.
    근데.... 너무 맥분위기 물씬 풍기는 듯한데요 ^^

  4. 미쿡서버에서 땡겨오니 확실히 느리구만.
    야튼 간만에 포스팅 잘 보고 감~ㅋ


사용자 삽입 이미지

  • WMV가 재생가능하다는건 정말 큰 장점인듯
  • Flash로 잘 되던건 굳이 바꿀 이유는 없다.
  • XAML을 이용해 디자이너와 협업이 가능하다는데 그건 Adobe CS Studio에서도 가능하며 CSS를 이용하던데 그게 더 좋아보인다. (Flash는 되던데 Flex도 되려나?)
  • Expression Studio는 쓰려는 회사가 얼마나 생길까? 이미 비슷한 기능의 디자이너들이 익숙하게 사용하는 Adobe제품들이 있는데 말이다. (Expression Studio는 Photoshop, Illustrator, Flash, DreamWeaver와 매칭되는 디자이너툴이다)
  • Sliverlight을 제대로 활용해서 개발할려면 개발자는  Visual Studio, 디자이넌 Expression Studio를 써야할듯... ㅡ,.ㅡ;;
  • .Net API를 1.1버젼에서 사용할수 있는것으로 보이는데 맥에서도 제대로 작동되는건가?
  • 그래도 MS니 개발툴은 FlexBuilder보다 좋겠지...


이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/47 관련글 쓰기

댓글을 달아 주세요

  1. * Mac에서도 WMV를 보게 되는거군요.
    * Flash에서 convert해주는 툴이 나오지 않는 이상 말이죠
    * 저도 XAML 생성용 툴 보다는 Illustrator같은 툴에서 SVG export가 되듯이 XAML export plugin 형태로 나오면 더 좋겠다는 생각을 했습니다.
    * Mac에서도 .NET runtime이 들어간다는 거지 기존의 모든 .NET API를 구현하겠다는건 아니겠지요?
    * 개발툴은 좋겠죠. 개발툴로 큰회사니까

    • * 괜한 WMV관련 맥쪽 회사(Flip4Mac같은...)들이 피해를 입을수도 있을듯해요;;
      * SVG export에 id만 제대로 처리해줄수 있으면 그걸로 충분하고 더 좋아보이는군요 ㅎㅎ 거기에 css라면 -0-;;
      * .NET은 아무래도 그렇겠죠 ㅋ? 설마 그걸 다 ;; 그런데 리눅스는 역시 찬밥인가 보네요~

프로젝트와 Flex프로젝트를 분리할 필요없이 "Dynamic Web Project" 형태로 웹프로젝트를 만드시고 프로젝트에 우클릭하셔서 "Add Flex Project Nature" 명령을 내리시면 자바 웹프로젝트이면서 동시에 플렉스 프로젝트가 됩니다.

"Servers" 윈도우를 여시고 톰캣등의 서블릿 컨태이너를 EclipseWTP 등록하신 등록된 서버에 새로 만든 프로젝트를 "Add or Remove Projects" 명령을 통해 Web Application으로서 작동할수 있도록 추가를 해주시고
프로젝트
이름이 test라면 서버를 start 하고 localhost:8080/test/xxx.html 같은 형태로 바로 확인이 가능합니다.

(위쪽 버튼들이 등록된 서버를 디버그나 실행 또는 프로파일 모드로 띠워주는 넘들이고 팝업을 통해서도 가능합니다)


그리고
"Navigator"창에서 프로젝트에 우클릭하셔서 등록정보로 들어가셔서 Flex Build Path output 위치를 WebContent 잡아주시면 컴파일된 swf 바로 위의 주소와 같은 형태로 접근이 가능해집니다.
(ex> http://localhost:8080/projectname/test.swf 또는 http://localhost:8080/projectname/test.html)

버측 디버깅을 하시고 싶으신 경우는 자바 코드에 브레이크 포인트를 걸고 톰캣등의 웹서버를 디버그 모드로 스타를 시키시면 가능하고 클라이언트를 디버깅 하시고 싶으신 경우는 기존 플렉스 개발시처럼 하면 되지만 웹페이지에 포함을 시켜서 디버깅을 하시고 싶으신 경우라면 실행메뉴를 여셔서 "URL or Path to lauch"부분에 swf파일 경로가 명시된부분을 위에서 언급한 http 스타일의 URL 바꾸시면 됩니다.
, swf 디버그 대상으로 하시지 마시고 html페이지를 대상으로 하면 됩니다.


* 예전에 작성하다 말아서 포스팅하지 않은 글인데 디버깅 방법에 대해 묻는 분이 있어서 마무리해서 포스팅합니다 ㅎㅎ

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/42 관련글 쓰기

댓글을 달아 주세요

바로 전 포스트에서 소개드린 글을 보면 IE7의 DHTML관련 문제점 에 대한 예기도 있는데 아래는 그부분을 발췌한 내용입니다. 참고하세요^^

+ Can’t set opacity on any div that contains <input type=”text”/> or <textarea/> without getting nasty visual artifacts in the text field.

+ Must use the AlphaImageLoader if we want opacity to apply to a div and all its children.

+ AlphaimageLoader must have its src property set to the URL of an image to prevent a red x/missing image icon from appearing

+ AlphaimageLoader does not send onload/error events - instead we have to use the img tag mentioned above

+ IE 7 still has memory leaks for apps loaded in iframes

+ Empty divs with style.backgroundColor set appear ~10px tall unless they contain an img (for less than 2px tall) or have style.fontSize = ‘0px’ applied.

+ IE does not support &apos; when setting a div’s innerHTML property

+ IE does not send onclick/onmouse* events for divs without a blank image attached



이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/37 관련글 쓰기

댓글을 달아 주세요

OpenLaszlo blog에 DHTML을 개발할 때 브라우저 별 차이점을 어떻게 다루어야 할지에 대한 코드 레벨의 기술적인 내용을 담고 있는 아주 유용한 글이 올라왔군요. 
*링크:  How we deal with browser quirks, with a compendium of IE 7 issues

간단히 요약해보면 직접 브라우저 체크(Browser Detection)를 되도록이면 하지 말고 가능한한 문제점을 체크(Quirk Detection)하라는 예기내요.

즉, isIE라고 체크하지말고 inner_html_strips_newlines 라는 식으로 각 문제점별로 체크하라는 말인듯합니다~

이렇게 하지말고
if (browser.name == 'Safari' && browser.version < 1.5) {
        ....
}

이렇게 하라는 겁니다.
if (this.quirks.invisible_parent_image_sizing_fix) {
....
}


제가 보기에도 아주 깔금하고 좋아보이네요^^.

글에 언급되어있지만 하나의 추상 레이어가 추가되다보니 걷어내기도 좋고 on/off 하기도 좋으며 매번 브라우저 체크를 하지 않으니 더 빠르기도 하고 거기다가 변수명 자체가 브라우저별 차이점(browser quirks) 에 대한 문서화가 될수있으며 여러 브라우저가 같은 문제를 가질경우 쉽게 추가도 가능하네요.

후... 눈앞에 제가 남발한 브라우저 체크 코드가 날아다니는군요 ㅋㅋ
조금만 더 생각했더라면 이렇게 할수 있는데 말이죠... -0-;;
(과연 할수 있었을까요 ㅋㅋ)

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/36 관련글 쓰기

댓글을 달아 주세요

OpenAjax Alliance

개발 : 2007/03/28 15:24
OpenAjax Alliance라는 단체가 있었군요.

팔글 - 인사이드 구글 블로그를 통해 구글의 가입 소식을 듣게 되어서 해당 사이트에 가보니 이건 뭐 가입 안한 회사가 없네요 -0-;;

그중에서도  Thinkfree 와 웹오피스 시장에서  경쟁하고 있는  Zoho 가 눈에 띄는군요 ㅎㅎ

Thinkfree도 고스고스?
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/32 관련글 쓰기

댓글을 달아 주세요

구현하기는 귀찮고 이미 예제로 보여진 코드를 봐버려서 계속 기다리던 JSR-311의 첫 구현체가 어제 나왔습니다. Sun Web Developer Pack (SWDP)에 포함되어 릴리즈 되었는데요 jMaki라던가 Dynamic Faces등을 같이 포함하고 있네요.

* 다운로드는 위 SWDP 링크에 가시면 받을수 있습니다.

바로 아래 코드가 JSR-311의 예제로 Marc Hadley의 블로그에 포스팅됐던 저를 기다리게 만든  그 넘입니다.

@UriTemplate("widgets/{widgetid}")
@ConsumeMime("application/widgets+xml")
@ProduceMime("application/widgets+xml")
public class Widget {

    @HttpMethod(GET)
    public Representation getWidget(@UriParam("widgetid")
    String id) {
        String replyStr = getWidgetAsXml(id);
        return new StringRepresentation(replyStr, "application/widgets+xml");
    }

    @HttpMethod(PUT)
    public void updateWidget(@UriParam("widgetid")
    String id, Representation<Source> update) {
        updateWidgetFromXml(id, update);
    }

    @LastModified
    public Date getChangeDate(@UriParam("widgetid")
    String id) {
        return getLastChanged(id);
    }
}



보시다시피 annotation으로 해당 bean(POJO) 을 특정 url pattern(URITemplate)에 매핑하고 bean의 method들을 GET이나 PUT 등의 HttpMethod에 매핑하는 방식입니다.

어제 오늘 기존 구현에 적용해 보았는데 예상대로 아주 훌륭합니다! 빠르게 구현할수 있을뿐 아니라 코드가 직관적이라 참 좋네요 ㅎㅎ

머 사실 아직 버그가 눈에 많이 띠긴하지만 아직은 early access형태이고 RESTful WS에 걸맞게 아주 쉽게 구현할수 있다는점은 정말 높은 점수를 주고 싶습니다~
(URL패턴에서 추출된 문자열상에서 "///" 은 "/"로 변환되어버리더군요... 물론 인코딩된상태로 전달되었습니다)

한 가지 문제는 사용하는 방법이 문서가 빈약하기도 하고 NetBeans하고 자꾸 엮는다거나 code-generator까지 붙어 있고 머 좀 복잡하게 만들어놨더군요. 아마도 Marc Hadley 아저씨가 심하게 밀고 있는 WADL이나 JAX-WS등하고 통합때문인거 같기도 한데 시간 부족으로 자세히는 보지 못하고 generate된 테스트 코드를 살펴보고 바로 붙여보았더니 다행히 잘 되더군요^^


톰캣에 간단히 붙여봤는데요 먼저 위의 코드와 같은 방식으로 bean을 만드시고 그 클래스들을 RESTBeanResourceInterface를 상속한 넘에서 class reference를 외부로 제공해줍니다.

package com.wangtao.rest;

import java.util.HashSet;
import java.util.Set;

import com.sun.ws.rest.impl.RESTBeansResourcesInterface;

public class RestBeanResources extends RESTBeansResourcesInterface {
    private Set<Class> classes;
    @Override
    public Set<Class> getResourceClasses() {
        if(classes == null){
            classes = new HashSet<Class>();
            classes.add(RestBean1.class);
            classes.add(RestBean2.class);
            classes.add(RestBean3.class);
        }
       
        return classes;
    }
}



위의 클래스와 HttpRequest들을 해당 bean으로 매핑해줄 ServletAdapter를 web.xml에 적어주면 끝입니다

   
    <servlet>
        <servlet-name>RESTBeans Application</servlet-name>
        <servlet-class>
            com.sun.ws.rest.impl.container.servlet.ServletAdaptor
        </servlet-class>
        <init-param>
            <param-name>resourcebean</param-name>
            <param-value>
                com.wangtao.rest.RestBeanResources
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
        <servlet-name>RESTBeans Application</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>



테스트 해보시면 바로 각 URI형태에 매핑된 객체들의 함수들이 수행될겁니다~



update1.
구현법에 중요한 lib추가를 빼먹었네요^^  swdp.jar:/rest-impl/lib 밑의 4개 jar파일과 swdp.jar:/shared/lib/mail.jar를 WEB-INF/lib에 추가하니 잘 되는군요~

update2.
bean 작성 하는 코드 부분(첫번째 코드블럭)에
@UriTemplate("widgets/{widgetid}")
라고 쓰인부분이 구현체에서는 URI앞이 /로 시작해야합니다.
@UriTemplate("/widgets/{widgetid}")
처럼 말이죠~

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/31 관련글 쓰기

댓글을 달아 주세요

  1. 아 ;; 어렵다 ;; 무슨말인지;;;

    • 걍 서블릿을 상속안하고 일반 클래스를 만들어서 URL하고 연결짓는거였는데 저도 잘 모르다보니 심하게 장황했네요 ㅋㅋ

JavaScript에서는 eval 함수를 통해서 쉽게 reflection을 할수 있는데 ActionScript는 eval함수를 원래 제공하지 않기때문에 Reflection API가 따로 존재합니다~
(JSLint라는 JavaScript Verifier를 통해 eval이 포함된 스크립트를 돌려보면 "eval is evil"이라는 재밌는 문구가 나오는군요 ㅎㅎ)

AS3는 flash.utils 패키지를 통해 reflection 기능을 제공해주는데 그 중에서 클래스의 이름을 통해 Class 객체를 얻을수 있는 getDefinitionByName() 이라는 함수가 있습니다.

재밌게도 이놈이 아래와 같이 flash로 시작하는 class 는 잘 찾아오는데

    var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
    var instance:Object = new ClassReference();


이 코드를 조금 바꿔서 아래처럼 flash.xxx 형태의 패키지가 아닌경우는 ReferenceError를 발생시킵니다

    var ClassReference:Class = getDefinitionByName("mx.effects.Effect") as Class;


원인은 간단합니다. flash로 시작하는 넘들은 Flash Player가 들고 있는 표준 API이고 그 외의 mx로 시작하는 클래스나 그외 custom class들은 모두 compile time에 output에 linking 되는데 문자열로 접근을 하는 경우는 linking에서 제외됐기 때문입니다.

강제로 linking에 포함시키는 법을 찾아봐야겠지만 간단히 아래와 같이 코드에 해당 타입에 대한 선언을 추가해서 linking에 포함시킬수도 있습니다 -0-;;;

    var dummy1:mx.effects.Effect;
    var dummy2:mx.contorls.Alert;


이렇게 되면 진정한 reflection이라고 보기는 힘들겠지만 어쨌든 됩니다! 그게 중요하죠 -0-






이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/30 관련글 쓰기

댓글을 달아 주세요

  1. 자바랑 맞짱을 뜨려는군요. 이미 짱먹고 있지만..

    • 현재는 가장 뛰어난 브라우저 RIA환경인건 사실인것 같습니다. 언어적으로도 기존 자바와 같은 컴파일 언어와 스크립트언어의 양다리를 걸치고 있어 적응이 쉬운편이구요.

firebug 가지고 놀기

개발 : 2007/02/22 22:54
 저는 개발용 말고도 서핑용으로도 파폭을 기본브라우저로 사용합니다. 현재는 맥이라서 당연한 선택이겠지만 윈도에서도 파폭을 사용했었습니다.

 파폭을 사용하는 가장큰 이유는 파폭 애돈들 때문인데요 그중에서도 웹 개발자라면 정말 사랑하지 않을수 없는 FireBug 라는 넘 때문입니다^^

 이미 많은 분들이 개발용으로 firebug를 이용하고 있기 때문에 DOM inspecting 이나  javascript debugging같은 기능은 잘 아실텐데 Net 탭은 사용하는분이 드물더군요. 그래서 이 놈을 가지고 놀아볼까합니다^^


 아래는 tistory 메인 페이지의 tag cloud 입니다. 아래 이미지 말고 첫페이지에서 보신분은 아시겠지만 딱 보는 순간 플래시라는걸 알수 있습니다.
사용자 삽입 이미지

 메인페이지에서 firebug를 열고 Net 탭을 활성화하면 아래와 같이 http 요청 목록에 대한 자세한정보와 마우스를 올리면 이미지의 경우 바로 볼수도 있습니다.

사용자 삽입 이미지

위와 같이 목록이 쭉 뜨는데요 젤 아래에 보면 로딩된 swf 파일도 볼수 있고 로드된 후에 swf가 요청한 http request의 자세한 내용도 볼수 있습니다.

사용자 삽입 이미지

순서를 보시면 아시겠지만 swf파일이 crossdomain access를 위해서 security가 정의된 xml 파일을 요청하고 자신이 허용된 클라이언트인지를 확인하고 해당 서버에 http request를 날리고 결과로 string을 받아온거네요
(firebug는 flash의 http request도 보여준답니다... 대단한넘 ㅋㅋ)

Flash에서 cross-domain 허용하기



스트링의 내용은 머 예상하셧겠지만 tag 들과 각 tag의 점수들이겠죠^^

바로 이런내용이네요 ㅎㅎ

&result=a:60:{i:0;a:2:{i:0; s:6:"구글";i:1;i:36;}i:1;a:2:{i:0;s:2:"C2";i:1;i:23;}i:2;a:2:{i:0;s:12:"싸이 월드";i:1;i:18;}i:3;a:2:{i:0;s:6:"Google";i:1;i:17;}i:4;a:2:{i:0;s:3: "UCC";i:1;i:15;}i:5;a:2:{i:0;s:13:"싸이월드2";i:1;i:15;}i:6;a:2:{i:0;s:6:"축구 ";i:1;i:14;}i:7;a:2:{i:0;s:6:"웹2.0";i:1;i:13;}i:8;a:2:{i:0;s:6:"설날";i:1; i:13;}i:9;a:2:{i:0;s:6:"친구";i:1;i:11;}i:10;a:2:{i:0;s:9:"네이버";i:1;i:11;} i:11;a:2:{i:0;s:6:"가족";i:1;i:11;}i:12;a:2:{i:0;s:6:"리뷰";i:1;i:11;}i:13; a:2:{i:0;s:9:"비스타";i:1;i:11;}i:14;a:2:{i:0;s:3:"삶";i:1;i:10;}i:15;a:2: {i:0;s:15:"파이어폭스";i:1;i:10;}i:16;a:2:{i:0;s:6:"졸업";i:1;i:10;}i:17;a:2: {i:0;s:3:"꽃";i:1;i:10;}i:18;a:2:{i:0;s:3:"봄";i:1;i:10;}i:19;a:2:{i:0;s: 5:"canon";i:1;i:10;}i:20;a:2:{i:0;s:12:"애드센스";i:1;i:10;}i:21;a:2:{i:0;s: 9:"마케팅";i:1;i:10;}i:22;a:2:{i:0;s:2:"cf";i:1;i:10;}i:23;a:2:{i:0;s:6:"캐논 ";i:1;i:9;}i:24;a:2:{i:0;s:9:"휴대폰";i:1;i:9;}i:25;a:2:{i:0;s:9:"리눅스";i:1; i:9;}i:26;a:2:{i:0;s:6:"다음";i:1;i:9;}i:27;a:2:{i:0;s:12:"올블로그";i:1;i:9;} i:28;a:2:{i:0;s:22:"프리즌 브레이크";i:1;i:9;}i:29;a:2:{i:0;s:6:"맨유";i:1;i:9;}i:30;a:2:{i:0;s:12:"태터툴즈 ";i:1;i:9;}i:31;a:2:{i:0;s:6:"생각";i:1;i:9;}i:32;a:2:{i:0;s:9:"카메라";i:1; i:9;}i:33;a:2:{i:0;s:5:"Diary";i:1;i:9;}i:34;a:2:{i:0;s:21:"마이크로소프트";i: 1;i:9;}i:35;a:2:{i:0;s:4:"Blog";i:1;i:9;}i:36;a:2:{i:0;s:6:"결혼";i:1;i: 8;}i:37;a:2:{i:0;s:6:"사람";i:1;i:8;}i:38;a:2:{i:0;s:6:"금연";i:1;i:8;}i:39; a:2:{i:0;s:6:"중국";i:1;i:8;}i:40;a:2:{i:0;s:9:"노무현";i:1;i:8;}i:41;a:2:{i: 0;s:12:"수강신청";i:1;i:8;}i:42;a:2:{i:0;s:6:"바다";i:1;i:8;}i:43;a:2:{i:0;s: 12:"데스노트";i:1;i:8;}i:44;a:2:{i:0;s:6:"미국";i:1;i:8;}i:45;a:2:{i:0;s:6:"생일 ";i:1;i:8;}i:46;a:2:{i:0;s:9:"이은주";i:1;i:8;}i:47;a:2:{i:0;s:5:"photo";i: 1;i:8;}i:48;a:2:{i:0;s:18:"챔피언스리그";i:1;i:8;}i:49;a:2:{i:0;s:6:"소설";i:1; i:8;}i:50;a:2:{i:0;s:7:"adsense";i:1;i:8;}i:51;a:2:{i:0;s:4:"NDSL";i:1;i: 7;}i:52;a:2:{i:0;s:4:"Rock";i:1;i:7;}i:53;a:2:{i:0;s:9:"경희대";i:1;i:7;}i: 54;a:2:{i:0;s:6:"디카";i:1;i:7;}i:55;a:2:{i:0;s:4:"DSLR";i:1;i:7;}i:56;a: 2:{i:0;s:4:"Java";i:1;i:7;}i:57;a:2:{i:0;s:12:"바이러스";i:1;i:7;}i:58;a:2: {i:0;s:6:"추억";i:1;i:7;}i:59;a:2:{i:0;s:11:"IS동영상";i:1;i:7;}}&

JSON로 기술했군요 ㅎㅎ

** 자세히 보니 JSON이 아니네요 ㅎㅎ 흠.. 왜 굳이 새로 만들었을까...

아 대단한넘 파벅!

이상 원제작자의 의도와는 상관없이 파벅의 Net 기능 활용하기 였습니다^^

** 인코딩된 response의 body 부분에 우클릭하셔서 복사하신후 firebug console에 decodeURIComponent("..붙일내용...") 하시면 위처럼 인간이 읽을수 있는 형태로 보실수 있습니다



이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/27 관련글 쓰기

댓글을 달아 주세요

  1. 아- 정말 놀랍습니다/
    웹개발자에게 필수적인 개발도구로 자리잡을 것 같습니다/

라이브러리

개발 : 2007/02/13 11:38

int len = 0;
while((len=in.read(buffer)) != 0){
    out.write(buffer, 0, len);
}

commons-io를 활용하면 아래와 같이 기술할수 있다.

IOUtils.copy(in, out);


무식하면 고생이다!
라이브러리 공부좀 하자 ㅡ,.ㅡ!!
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 타오

트랙백 주소 :: http://taoism.tistory.com/trackback/25 관련글 쓰기

댓글을 달아 주세요

  1. XFUtil.copy()도 똑같다는...