'컴퓨터'에 해당되는 글 6건

  1. 2010/08/18 Java에서 keep-alive를 이용한 HTTP Persistent Connection
  2. 2010/07/30 마이크로소프트의 스트리트 슬라이드(Street Slide)
  3. 2008/07/22 Data Link & Semantic Web 세미나 후기 (4)
  4. 2008/06/26 Semantics의 Qrobo
  5. 2008/05/03 The First IEEE International Conference on the Applications of Digital Information and Web Technologies
  6. 2007/10/02 블로고스피어의 평판관리 서비스

Java에서 keep-alive를 이용한 HTTP Persistent Connection

컴퓨터/개발 2010/08/18 20:06

HTTP의 커넥션은 기본적으로 stateless입니다. 즉, 하나의 request/response에 대해서 하나의 TCP 커넥션을 맺고 난 이후에 커넥션을 재사용하지 않고 끊어버립니다. 이는 새로운 request가 있을 때마다 계속해서 새로운 커넥션을 맺어야 하기 때문에 HTTP/1.1에서는 다수개의 request/response에 대해서도 기존에 맺은 TCP 커넥션을 재사용할 수 있도록 protocol이 추가되었습니다. 이러한 커넥션 재사용을 HTTP Persistent Connection 이라고 합니다.

HTTP/1.1부터 Persistent Connection을 위해서 keep-alive를 지원합니다. 일부 HTTP/1.0 이용하는 웹서버 구현에서 keep-alive가 사용가능하지만 공식적인 스펙으로는 1.0에서는 지원하지 않습니다. Keep-alive를 사용하는 방법은 Connection 속성값에 사용을 명시하면 됩니다.


  • Connection: keep-alive   = Persistent Connection 사용
  • Connection: close           = Persistent Connection 사용 안함

물론 웹서버에서 keep-alive를 지원해야지만 이용가능합니다. 웹서버가 Persistent Connection을 지원하지 않는다면 헤더에 keep-alive를 사용하더라도 Persistent Connection을 사용할 수 없습니다. 따라서 Persistent Connection의 전제 조건은 "웹서버에서 지원해줘야 한다" 입니다.

이 Persistent Connection을 Java에서 사용할 때는 단순히 keep-alive 설정만으로는 사용할 수 없습니다.

Java가 지원하는 HttpURLConnection 객체를 사용시에는 다음의 내용을 만족해야만 Persistent Connection을 사용합니다. 다음의 내용을 만족하지 않으면 커넥션을 재사용할 수 없습니다.

  1. 커넥션에서 얻은 inputstream을 끝까지 다 읽어야 함. 끝까지 읽지 않으면 HttpURLConnection이 해당 커넥션에 clean 작업을 시행하지 않기 때문에 커넥션을 재사용 불가.
  2. getInputStream을 하다가 IOException이 발생한 경우, catch에서 커넥션에 getErrorStream 메소드를 호출하지 않으면 clean 작업을 시행하지 않기 때문에 커넥션을 재사용 불가.

따라서 컨텐츠의 내용을 직접 사용하는 경우가 아니라면 HEAD 메소드만을 사용하는게 좋습니다. GET이나 POST를 사용한다면 불필요한 컨텐츠임에도 불구하고 inputStream을 끝까지 읽어야 하기 때문이죠.


Keep-alive 사용 예시

    URL realUrl = new URL("http://www.diquest.com/);
    uCon = (HttpURLConnection)realUrl.openConnection();
    uCon.setRequestMethod("GET");
    uCon.setUseCaches(false);
    uCon.addRequestProperty("Connection", "keep-alive");    
    is = uCon.getInputStream();
    br = new BufferedReader(new InputStreamReader(is, "utf-8"));
    String line = null;
    while((line = br.readLine()) != null) {
//    끝까지 읽어야 함

    }
   } catch (IOException e) {
    uCon.getErrorStream();
   } finally {
//      close 작업 수행
   }

좀 더 효율적으로 사용하기 위해서는 재사용할 커넥션의 수를 시스템 프로퍼티인 http.maxConnections를 설정하면 됩니다. 이 프로퍼티는 default로 5로 설정되어있습니다.


참고 URL
http://download.oracle.com/javase/1.5.0/docs/guide/net/http-keepalive.html
http://imhoratiu.wordpress.com/2010/03/22/httpurlconnection-over-https/

'컴퓨터 > 개발' 카테고리의 다른 글

Java에서 keep-alive를 이용한 HTTP Persistent Connection  (0) 2010/08/18
Trackback 0 : Comment 0

마이크로소프트의 스트리트 슬라이드(Street Slide)

컴퓨터/웹 2010/07/30 20:30

마이크로소프트에서 Street Slide라는 서비스가 나옵니다. 구글의 Street View 서비스와 유사한 서비스인데, 데모에서 보여주는 모습은 구글 Street View 이상으로 편리해 보이네요. 특히나 인상적인 부분은 파노라마 영상으로 거리의 모습을 보여줘서 맵의 이동의 편의성을 높인 부분입니다.
구글 Street View나 다음 로드뷰를 이용할 때 360도 회전이나 거리 모델링은 잘 되어 있는데, 거리의 전체적인 모습을 살펴보기가 힘들었는데, Street Slide에서 파노라마 영상이나 맵과의 연동을 통해 이동하는 기술은 이런 불만 사항을 없애 줄 수 있을 것 같습니다.





거리 이름을 통해 이동하는 기술도 상당히 유용해 보이는데, 블록별로 거리 명칭이 잘 정리 되어 있는 미국에서나 가능할까요? 우리나라에서도 이용할 수 있다면 매우 유용할 것 같습니다.

 

'컴퓨터 > ' 카테고리의 다른 글

마이크로소프트의 스트리트 슬라이드(Street Slide)  (0) 2010/07/30
Data Link & Semantic Web 세미나 후기  (4) 2008/07/22
Semantics의 Qrobo  (0) 2008/06/26
Trackback 0 : Comment 0

Data Link & Semantic Web 세미나 후기

컴퓨터/웹 2008/07/22 17:43
지난주 수요일(7/16) 역삼동 포스틸 타워에서 열린 Data Link & Semantic Web 세미나에 다녀왔습니다. 귀차니즘때문에 너무 늦게 후기를 쓰게 되네요;;
'Semantic Web이 무엇일까'에 대한 정의는 아직도 확실히 내릴 수 없지만, 버너스리 아저씨가 말하는 Data Web이 제가 생각하는 Semantic Web의 모습에 가깝습니다. 이런 제 생각을 확고히 할 수 있을거란 기대감으로 세미나에 참석하게 되었지요. 제가 구독하고 있는 Semantic Web 팀블로그를 운영하고 있는 김광섭님과 정지웅님이 발표자로 오시고, 김학래 연구원님(저희 연구실 형들은 블로그 명칭을 따서 소나기 아저씨로 부르고 있습니다^^) 발표자로 오신다는 기대감도 세미나에 참석하게된 큰 이유 중 하나고요. Semantic Web에 대한 국내 자료를 찾기가 쉽지 않은데, Semantic Web 팀블로그를 통해서 좋은 소식을 접하곤 했는데, 요새는 포스팅이 좀 뜸해져서 어떤 내용으로 발표하실지 기대를 하며 참석하였습니다.

세미나는 총 4개의 세션으로 진행하였습니다.

첫번째 세션에서는 김홍기 교수님께서 전반적인 Semantic Web의 흐름 및 기술에 대한 설명과 Linked Data에 대한 내용을 발표해 주셨습니다. Linked Data란 이런 것이다란 개념을 정리하는데 많은 도움이 되었습니다.

두번째 세션은 김광섭님의 '데이터를 웹으로'라는 타이틀의 발표였습니다. Linked Data의 개념뿐만 아니라 실제로 사용될 수 있는 모습들을 보여주시며 Data를 연결 짓는 방법과 그 Data의 유형에 따라 Data를 구축하는(제가 이해한 바로는 Data Modelling)에 사용되는 스펙들에 대한 소개를 해주셨습니다. 이것이 이 발표에 주제라며 여러번 강조하셨는데, Linked Data란 'URI를 통해 어디서든 연결할수 있는 데이터'. 이게 핵심이였습니다(색깔도 문구도 똑같습니다ㅎ^^) 발표 내용도 좋았지만, 김광섭님을 통해서 NHN에 시맨틱웹 팀이 있다란 사실도 알게 되었습니다. 생긴지 2주(이제 한주 더해져 3주)밖에 안된 TF팀이라고 하셨지만, NHN이 앞으로 웹의 발전 방향을 이끌고 선도하기 위해서는 꼭 정식 팀이 되었으면 하네요.

세번째 세션은 정지웅님께서 현재 웹에서 Data Web의 모습을 볼 수 있는 다양한 사이트들에 대한 정보를 제공해 주셨습니다. 뿐만아니라 이런 다양한 사이트들의 공통적으로 지향하고 있는 바는 내가 중심이 되는 데이터의 연결이고, 이런 모습이 앞으로 나아가야 할 모습 혹은 나아가고 있는 모습에 대한 이야기를 다이나믹하게 발표해 주셨습니다. 아쉬운 점은 이런 웹의 발전 모습이 외국(or 미국)에만 해당된다는 것이였습니다. 우리나라도 얼른 차세대 웹이라는 궤도에 올라서야 하는데 아직 갈길이 멀은 것 같아 많이 아쉽더군요.

네번째 세션은 소나기 아저씨^^ 아니 김학래 연구원님께서 'Semantic Social Network'란 주제를 가지고 발표해 주셨습니다. 개인적으로는 가장 흥미 있는 세션이였습니다. 현재 유행하고 있는 Social Network가 단순한 사람간의 연결이였다면 앞으로는 그런 관계에 대한 Semantic이 존재하게 될 것이고, 의미를 가진 tag를 통한 관계 형성이 가능하다란 사실을 참석자들이 제시한 키워드로 데모를 보여주신게 인상적이였습니다. 소나기 아저씨의 세미나 후기에 나와 있는 그림을 보면 제 이름(김건수)이 중심인 것 같은데 세미나에서는 다른 분을 중심으로 지목하셔서 좀 아쉬워 하기도 했답니다.  마지막에 킬러어플리케이션만 기다리지 말고, 직접 참여할 수 있는 기회가 있는데 왜 주저하는지에 대한 내용을 언급할 때는 저도 많이 뜨끔했네요.

기묘에서 앞으로도 계속 Semantic Web 세미나를 할 예정이라고 하니, 첫번째 세미나 놓치신 분들도 다음 세미나 때 관심있는 주제가 나오면 참석하셔서 같이 Semantic Web의 방향에 대해 얘기해보는 시간을 가지면 좋을 것 같네요.^^


'컴퓨터 > ' 카테고리의 다른 글

마이크로소프트의 스트리트 슬라이드(Street Slide)  (0) 2010/07/30
Data Link & Semantic Web 세미나 후기  (4) 2008/07/22
Semantics의 Qrobo  (0) 2008/06/26
Trackback 0 : Comments 4

Semantics의 Qrobo

컴퓨터/웹 2008/06/26 15:35
시맨틱스의 Qrobo 드디어 정식 오픈을 했나보네요.
차세대 검색엔진을 지향하는 Qrobo는 포스트 Google보단 포스트 Yahoo라고 보는게
맞을 것 같네요.
에이전트 로봇이 자동으로 웹 페이지를 분석하고, 그 웹 페이지를 적합한 카테고리로 분류하는 것이 Qrobo의 특징입니다.
온톨로지와 시맨틱 웹에 관심이 많아서 예전부터 Qrobo에 거는 기대가 컸는데, 예전 베타시절부터 점차 진보하고 있는 모습을 보니 계속해서 관심을 가져도 되겠네요.

'컴퓨터 > ' 카테고리의 다른 글

마이크로소프트의 스트리트 슬라이드(Street Slide)  (0) 2010/07/30
Data Link & Semantic Web 세미나 후기  (4) 2008/07/22
Semantics의 Qrobo  (0) 2008/06/26
Trackback 0 : Comment 0

The First IEEE International Conference on the Applications of Digital Information and Web Technologies

컴퓨터 2008/05/03 10:48

ICADIWT 2008
8월 4일~6일에 체코에서 열리는 학회입니다.
올해 첫번째로 개최되는 학회인지라 많이 알려달라고 하네요.

5월 5일까지 논문을 받는다고 합니다.
자세한 내용은 학회 사이트를 참고하세요.
www.dirf.org/diwt2008

Trackback 0 : Comment 0

블로고스피어의 평판관리 서비스

컴퓨터 2007/10/02 13:17

  블로그코리아에서 새로운 서비스를 하나보네요. 포스팅한 글의 수나 글의 인기 여부에 따라서 인기도를 판단한다고 합니다.
 기사를 보고나서 저도 한번 봤는데 3만명 중에 1800등 정도 되네요. 세달 동안 8개 밖에 포스팅을 안했는데..; 블로그코리아에 가입하신 분들은 한번 자기 인기도 확인해보세요.

Trackback 0 : Comment 0