2013년 1월 26일 토요일

WebSocket 아니라 Pure Streaming Ajax 가 답

Http 프로토콜은 한번 요청을 보고 응답을 받는 것을 기본으로 한다.
네트워크 비용이 말도 안되게 비싸던 시절 만들어진 규약이 그렇다.
그 넷 비용을 획기적으로 낮추는 것이 웹이 활성화되는 결정적인 역할 중 하나다.

Http에서는 뭔가 할 수 있는 것이 없었으나
2000년 초반 XmlHttpRequest라는 것이 ActiveX 형식으로 IE에서 지원되면서
Dynamic HTML에서 통신요소가 깔끔하게 정리되어 정말 유용했었다.

그런데 브라우저들은 보안에 매우 취약하여 웬만한 자원접근은 막아두었다.
심지어 프린터까지...

부정적 활용에 대해 제약을 걸었으나 제약은 제약인지라
모든 긍정적 쓰임도 차단된다.

Httptcp/ip에 기반한 Socket 위에서 구현된 규약이라 없으나
보안이란 명목으로 접속중이라도 서버와 클라이언트가 대화하기 곤란하다.
XMLHttpRequestHttpClient의 일종이다.

그래서 웹소켓websocket이 대두 되었으나 여러모로 아랫단 소켓과 자잘한 문제들이
다시 대두되는 번거로움이 있다.

짧은 데이터야 ajaxiframe으로 돌아도 문제될 것이 없다.
그러나 긴..형태의 데이터라면..

그런데 생각해보면 매우 간단한 방법이 있다.

1. Ajax api에 대화만 허용하면 된다.
즉 여러번 메시지를 주고받으면 된다는 것이다.
다른 보안 제약은 그대로 유지해도 좋다.(파일시스템접근제약 등...)

2. responsestreaming해주면 된다.
현재는 responseText는 streaming가 아니다. 물론 ResponseXML도 streaming일 수 없다.
오로지 한꺼번에 다 읽어야 한다.

둘다 socket에 있는 기능이다.
이 두가지면 번거롭게 websocket운운하지 않아도 간단히 해결된다.

서버측에는 엄청난 라이브러리들이 있어서 streaming 기반 통신 API가 널렸다.
HttpClient류에서는 InputStream OutputStream을 바로 참조할 수 있다.
그러나 클라이언트측(브라우저들)에는 너무 심한 제약으로 구현의 제약 뿐만 아니라
streaming으로 처리해야하는 다양한 데이터처리에 bottle neck역할만 한다.

Http는 한번 보내고 한번 받는 것이 기본룰이라 될 수가 없다.
그래서 그 복잡한 websocket이야기가 나오는 것인지..
그렇게되면 Http에서 처리하는 것들(도메인,계정,쿠키,보안..기타등등...)

그렇다면, 왜 이름이 웹소켓이면서 http서버로 바로 접속하면 안되는지..
이또한 http서버들의 구현문제


이문제는 protocol... 규약이 제약.
socket하나 얻자고 클라이언트에 java applet 환경을 강요하는 것은 말도 안된다.
(자바가 브라우저에서 실패한 요소 중 하나이다.)
flash는 상대적으로 가볍다고 해도, 모바일이 대세인시대에
flash도 java와 동일한 문제가 발생한다.
오로지 브라우저에서 지원해야 한다.

WebSocket은 정말 궁여지책으로 나온 것이다.
client 브라우저들은 거짐 준비가 된 것 같다.
다만 서버사이드가 표준이라하기엔 다양한 구현이 나와버렸다.
http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations

개인적인 생각이지만 위의 두가지 기능만 제공된다면
어떤 작업이 안되는지 궁금할 정도다.

만일 별개의 서버로 간다면..
jWebSocket 이 보여주듯, 수많은 중복구현이 불가피할 것이다.

HTTP2.0도 나올때가 되지 않았나?

window8 의 경우 StreamWebsocket 이란 걸 제공한다는데..
cross browsing-html5 의 이야기를 하는데
오로지 자기지향으로 달리는 것 같아 답답하다..

어쨌던 당장 XMLHTTPRequest에서 stream을 읽을 수 있다면
복잡한 것이 없다.

도중에 통신을 끊지 않고, 메시지를 보낼 수 있다면 더할 나위 없다.

통신되는데, 뭐가 문제야.. 데이터는 문제없다.
------------
문제가 되는 지점은 chatting 형..... 즉 다자간 동기대화형 application이다.
구지 socket이어야 하는 이유지... 주된 영역이 아니라 할말이 없다.

여튼 5개 브라우저와 톰캣으로 간단한 chatting 예제를 돌려보았으나..
Safari는 되지도 않았고(tomcat7과 safari는 맞지 않단다. nio와 맞지 않는다는데..)
같은 IP라서 그런지.. 브라우저에 상관없이
커넥션을 몇개를 생성하건 한놈만 응답을 받는다.
subprotocol 관련된 것인지.. 싶기도 하고.
server에서 IP단위로만 구분하는지..... 참 어렵다.
추가적인 다른 작업이 필요한건지...

서버사이드도 짧지 않은 이야기가 진행중이다.
올해(2013)에 모두 선보이게 될 것 같은데
annotation 기반 POJO Bean 경향으로 다가오게 될 것 같다.

지금 당장 어찌해야 한다면, atmosphere를 이용해야 할 듯.
atmosphere..... 이건 또 오로지 maven이군.
2013-01-31.
-------
atmosphere 로 간단한 채팅예제를 해 보았다.
Window7에서 safari를 제외한 Chrome,IE10,Opera,FireFox는 잘 되었다.
safari만의 문제가 아니라 mac의 전체가 아직 websocket을 지원하지 않는다.
예를 들어 vmware에 osx를 설치후 chrome으로 접속해도 마찬가지고
아이패드3에서 safari,chrome 접속도 마찬가지.

톰캣용 예제의 문제점은 없었다.
다만 문자열에 " "로 감싸져서 왔다. 왜 그런지는 모르겠다.

Websocket 2013년 어느 시점부터 java WAS들에 모두 장착되어 배포될 것으로 보이는데
양방향(full-duplex) 통신이다보니  활용영역이 ajax와는 비교할 수 없을 정도로
다양할 것이다.
용도에 따른 적절한 패턴으로 활용되어야 할 것이다.
2013-02-03
--------
HTTP2.0이 2014년에 표준이 개발될 것이라고 한다.
Google의 SPDY가 수용될 것이라고 한다.
spdy는 밑단에서 브라우저와 웹서버만 되는 것인지..
websocket와 같은 클라이언트의 쉬운 api는 없다.. 있을 것 같은데..

Websocket 은 java was가 지원하더라도
웹서버는 그런 기능이 마련되지 않아서 proxy를 세워 해결한다고 하는데...
kaazing 상용으로 잘 나가는 듯 하다.
2013-02-06
----------------------

2013년 1월 24일 목요일

영화 클로저(Closer:2004) - 영화. 그냥 그렇다

Closer 2004

Julia Roberts - Anna
Jude Law - Dan
Natailie Portman - Alice
Clive Owen - Larry

뉴욕에서 영국으로 온 Alice가 어떤 매체의 부고란 Dan(작가지망)과 만나 사랑?을 하다가
Dan이 탈고하고 사진을 사진찍으러 사진작가 Anna와 만나 이야기하다 Alice가 오게 되고...
Dan이 의사인 Larry와 채팅장난으로 Larry와 Anna가 만나고...
이렇게 네사람이 벌이는 어떤 사람들에게 소위 사랑?이라 불리는 어떤 일련된 행위들이
줄거리다.

남녀들의 소위 애정? 사랑?등에 대한 이러저러한 것들에 대한 어떤 보임이다.
적지 않은 사람들이 이런 소재들이 일상에 있는 것 같다. 따분할 뿐이다.
잘 모르겠으나 딱히 체험,공감할 의도도 없고 그렇게 되지도 않는다.

지금의 나에겐 영화는 그냥 그렇다.

영화를 보면서 배우,스텝,감독등의 노동행위가 보이면서 영화는 재미없어졌다.
그들의 벌이수단, 연기기술, 연출기술, 기획.. bla bla bla ....이런 것이 보이기 때문이다.

사실 모든 미디어가 그렇지 않나?

살이가 바쁘고 피곤하신 분들은 미디어를 끊어라.
스스로에 집중할 수 있다.


어떤 자리에서 이야기 소재였다.
일견 강추를 받아 보게 되었다.

심리,세상,사람들,행위,의도,경의 소절,육아,생활,견해 등등이 소재가 되는
자기관점에 대한 관찰이 이야기 내용이다.

'향 싸던 종이에서는 향내가 나고 생선 싸던 종이에서는 비린내가 난다'
불경의 한 소절이다.

향을 싸자.
종이로 싼 것이 뭔지를 보자.
무엇을 싸던 종이는 종이다.
싸고 있는 것으로 종이를 보지 말자.
향, 생선, 종이 버려.
그런게 다 머대.
그냥 그렇다.

등 여러 견해가 있을 수 있다.

입장이 먼저인지 견해가 먼저인지 알 수 없으나
견해를 갖는 다는 것은 장애를 갖는 피곤한 일이다.
견해,입장이 있지만 빠져있지 않다는 영악한 사람들도 많다.

어쨌던 타인의 견해 입장으로 스트레스 받지 않으려면
견해,입장을 알아차리고 대응하는 것이 나아 보인다.

모르면 또 어때

다만 주입된 것들에 대해 속아대는 피곤함이 지겹다.



2013년 1월 22일 화요일

XSL-FO master-reference 를 조건에 따라 by condition


왼쪽 오른쪽....페이지 레이아웃이 다양한데 조건값이 있을 때
xsl:if를 써서 master-reference 값을 바꾸고 싶을 때

............
<fo:page-sequence master-reference="any">
<xsl:if test="@number mod 2 = 1">
<xsl:attribute name="master-reference">odd</xsl:attribute>
</xsl:if>
<xsl:if test="@number mod 2 = 0">
<xsl:attribute name="master-reference">even</xsl:attribute>
</xsl:if>

.........

@number는 페이지 값이 될 수도 있다.

뭏든 위와 같이 master-reference 값을 바꿀 수 있다.

2013년 1월 20일 일요일

2012년 12월 30일 일요일

모바일 데이터종량제 - 소비자에 미늘

무선인터넷서비스는 여러가지가 있지만, 기본요금부터가 비싸다.

데이터종량제 - 통신의 데이터패킷량에 따라 요금을 부과하는 서비스

무선에 오면 소비자에겐 미늘이다.

간단한 예로, 자주가는 포털의 이미지나 동영상의 용량이 커진다면,
소비자는 인지하지 못하는 사이에 많은 데이터를 사용하게 된다.

개인적으로 매우 잘못된 제도라고 생각한다.
그래서 정부가 이를 허용하는 것이
통신같은 기간산업을 기업의 사회적 역할을 고려하지 않고
별 생각없이 허용한 것이라 생각된다. 모피아의 짓이라 생각된다.
(공무원이 작은 숫자도 아닌데 공짜로 쓰거나 특별혜택이 있나보다...)

고정요금제인 유선인터넷도 마찬가지였지만
특히 무선인터넷은 도회지를 벗어날수록 서비스의 질도 보장되지 않고
아직도 불통지역도 많다.

이런 불균형은 제도를 그릇되게 도입하는 한 계속될 것이다.

즉 시설취약지역에서는 통신이 없는거나 마찬가지고
도시지역은  비용이 부담된다.

전반적으로 비용때문에 장애가 되고 있고, 장애가 될 것이다.

기업의 특히 한국기업의 특징은
아무리 좋은 것이라도 돈이 되지 않으면 하지 않을 뿐더러
좋은 뜻으로 하고 있는 것까지 살아갈 수 없게 해꼬지를 한다.

구글,유튜브,페이스북,팟캐스트 의 사업모델과는 반대 방향에 가깝다.
(구글과 네이버의 서비스컨텐츠 대비 미디어독점도를 따져봐라)

이런 기업들 공공성이란 찾아보기 힘든데
공공영역이 통신영역에서 사업을 하게 했고,
그래서 소비자들은 갈수록 힘들어진다.

교육,미디어도 다 마찬가지다.

이것은 국가체계가 명백이 그 기능을 상실했거나 상실해가는 중인 것이다.
그래서 한국이란 나라는 거품제국같다.

부동산비용때문에 모든 컨텐츠(음식,공간사용,이동속도,주거)가
비용대비 매우 저질이 되어가고, 그 비용은 고스란히 미래의 댓가가 따를 것이다.

그리고 그것은 저지른 자가 아닌 불특정 다수에게 심각한 피해로 다가 올 것이다.

눈앞에서는 속여서 보이지 않으나 엄청난 불평등과 완력을 이용하여
그들이 직접 폭력행사를 한 것과 마찬가지라 같은 결과가 나오는 것이다.

잘못된 정부는 폭력조직과 같다.
잘못된 기업은 암과 같다.

2012년 12월 20일 목요일

詩 001 - 정좌 (正座)


정좌 (正座)

잘 고르고 반듯이 앉으니
몸이 편하구나.

이것도 지나가고 저것도 지나가고

모든 말을 벗어나 생각 없이
고요함에 젖는다.

쉽고 쉬운 길 놔두고 헤맸음을 뉘우치고
깊이 고요함에 젖는다.

그윽하게 평온해 온다.

몸도 맘도 없는 듯 하구나.

미치게 하는 세상이란 것 - 던져버려~!!!

좋은 세상과 나쁜 세상은 아주 작은 차이에서 시작된다.
난 이세상의 목적이 뭔지 잘 모르겠다.

진리는 영원이고 영생이 사람에게서 진리라 외치는 사람도 보았는데...
이 사람도 자기일 안된다고 허구헌날 푸념이더라.
그러면서 거의 초인처럼 부지런히 살더라.

적어도 인간들은 그들이 알아야할 것보다
몰라도 또는 하지 않아도 되는 것에 훨씬 더 집착한다는 것이다.

문제는 그들의 체계속에서 이런 것들이 모두 관계된다는 것이다.

그래서 좀 알게된 어른들은 그저 농사짓거나
그저 아무말 없이 먹고 사는 일에 충실했나보다.
뛰어나려하지도 않고 나아지려고도 하지 않는 사람처럼.

그러나 그들은 정말  찬찬히 맞게 살려하더라.
너무나 치밀해서 단 한 순간도 방심할 수 없는 것 처럼.

사람인생 별거 아니다.

모르면 이것인가 저것인가 주어보고 맞춰보다 가지만,
맘잡으면 할 일 한다.

그런데 지금의 나란 왜 이렇게 딴짓에 빠져 있는 것인지..