사용자 삽입 이미지

간혹 예고편이 오히려 본 영화보다 더 나은 영화가 있다. 이런 경우 예고편이 본편보다 더 좋은 점은 예고편이 던져주는 떡밥에 가슴을 설레며 개봉을 기다리는 재미가 있기 때문이기도 하고, 구태여 허접한 영화 본편의 내용을 보면서 그간의 기대가 무너져 내리는 마음 상하는 경우를 겪을 필요가 없기 때문이기도 하다. 뭐, 굳이 이런 이런 영화가 그렇다고 예를 들 필요도 없이, 극장에서 영화를 보고 나오면서 "에이, 차라리 예고편이 더 나았어."라고 투덜거렸던 경험이 누구에게나 한두 번 쯤은 있지 않았을까 싶다.

안타까운 일이지만 지금 이야기하려는 점퍼도 나누자면 이런 부류에 포함되는 영화다. 본 영화의 연출이나 특수효과의 화려함은 예고편에서 보여주었던 것보다 더 나은 무엇을 선사하지 못하고, 영화가 다루는 이야기는 흡사 화장실에서 변을 보다가 누군가 문을 똑똑 노크하는 소리에 놀라서 어중간하게 끊고 나왔을 때의 그런 찝찝함을 선사한다.


점퍼는 단연코 평작 이하의 작품이다. 점프, 즉 순간이동이라는 능력의 컨셉을 의식한 듯 의도적으로 짧고 빠르게 밀어붙이는 전개는 경쾌하지 못하고 산만함만 더한다. 게다가 90분에도 채 이르지 못하는 짧은 러닝타임도 - 블록버스터 영화의 러닝타임이 점점 길어지는 요즘 추세와 비교해 보면 그 짧음이 더욱 부각된다 - 이야기가 아닌 볼거리에 주력하며 영화를 겉모습만 화려한 빈 깡통으로 만드는데 일조하고 있다. 관객들에게 세계관을 설명하기도 빠듯한 시간에 주인공이 점프 능력으로 무슨 일을 하면서 놀고 어떻게 여자를 꼬시는지 보여주느라 정신 못 차리는가 싶더니만 아니나 다를까, 남은 시간 동안 이것저것 이야기를 벌려놓다가 제 풀에 포기하고 적당히 수습하고 급조한 결말로 대충 덮어버리고 만다. 이 정도면 디 워가 부럽지 않은 수준이다. 여튼 점퍼는 한 편의 완결된 영화라고 보기에는 차려진 음식의 양이 너무나 적다. 영화를 본 수많은 사람들이 지적하듯 '점퍼' 시리즈의 Pilot Episode, 딱 그 정도 수준이다.

그래도 나는 이 영화에 객관적인 평가치보다 별 반 개 정도를 더 얹어주고 싶은데, 그 이유는 점퍼의 세계관과 캐릭터가 주는 매력이다. 점퍼와 팔라딘의 대결로 귀결되는 점퍼의 세계는 무척 잘 짜여져 있다. 직접 눈으로 본 적이 있는 장소로만 점프를 할 수 있다는, 이런 능력에 으레 따를 법한 제약을 비롯해서, 점프를 하면 공간에 흔적이 남아 그것을 타고 다른 점퍼가 따라올 수 있을 뿐 아니라 추적 장치로 점프 장소를 찾아낼 수도 있고, 점퍼의 몸에 고압전류를 흘려보내면 장거리 점프를 할 수 없다는 등 점프 능력에 명확한 한계선을 그으면서도 평범한 순간이동 능력과 차별화하는 디테일한 설정이 무척 즐겁다. 게다가 성격이나 하는 짓이나 뻔하기 짝이 없지만 매력적인 외모 탓에 사랑할 수 밖에 없는 캐릭터들을 보는 재미도 나름 쏠쏠하다. 하지만 이런 장점들이 영화 자체의 힘에서 온다기보다는 영화가 의지하고 있는 원작 소설과 역할을 맡은 배우들로부터 나온다는 것은 안타까운 일. 그만큼 영화가 구리다는 소리 되겠다.


영화의 결말은 아주 노골적으로 후속편을 암시하지만 정작 영화를 보고 나오면 후속편에는 별 관심이 안 가고 원작 소설을 찾아서 읽고 싶다는 생각만 든다. 마침 영화 개봉에 즈음해서 점퍼 1, 2권이 각권 6800원이라는 아주 저렴한 가격으로 출간되었으니 한 번 읽어보는 것도 좋을 법 하다. 원작 소설은 영화와는 달리 퍽 잘 쓴 소설이라는 평이 많아서.

'문. 화. 생. 활. > 영화감상' 카테고리의 다른 글

캐리비안의 해적 4 - 낯선 조류 (2011)  (0) 2011.05.21
11월 14일 강남CGV에서 미인도를 봤지...  (7) 2008.11.16
미쓰 홍당무  (0) 2008.10.17
이글아이  (0) 2008.10.10
용의주도 미스 신 (2007) - ★  (0) 2008.03.10
어느덧.... 나도 모르는 사이에... 블로그 하루 평균 방문자가 ... 200명을 넘어 서고 있다...

예전에 처음 시작했을때... 평균 하루 5명...? 이 5명도... 내가 모두 카운트 한거지만...
이젠 아닌가보다... 내 블로그에서 어떠한 자료와 정보를 얻어 갈까 라는 생각이 든다...

솔찍히 말해... 내 블로그에는 지금 다른 블로그들과 실시간으로 포스팅이 되거나,
하루 한번 포스팅도 하지 않으며, 방문자수에 반해... 댓글도 없고, 트랙백도 존재 하지 않는다...

가끔 내 블로그에 하루 방문자가 300명을 육박 할때가 있다...
이럴땐 과연 이 방문자들이 모두 사람일까 싶기도 하다...

사람이라면 댓글 정도는 달아 주고 갈텐데 라는생각에서다...
블로그를 운영 하는 사람이라면 누구나 한번쯤 내가 포스팅한 글에 많은 댓글이 달리기를 원해본다.

하지만,

난 아직 그 댓글이 달릴만한 블로거가 못 되는가 보다...
하긴... 내 블로그의 50% 이상이 내가 쓴 글이 아니니 말이다...

그것도 그럴것이...
난 내 블로그를 알리기 위해, 나를 알리기위해, 등등 수단으로 사용하려고 만든건 아니다.

인터넷을 하다보면 좋은 정보들이 많이 있다.
이 정보들을 한곳에 모아 놓고 싶은 마음에 난 이런 블로그를 만들어 운영한다.
분명 나와 같은 정보를 찾는 사람들에게 더 좋은 양질의 데이터를 쉽게 찾게 해주기위해서였다...

아직도 나만 보기위헤 비공개 되어 있는 글도 많고, 여기저기서 긁어 온 글도 많다.
시간이 없고, 바쁘다는 핑계로 내 얼굴과도 같은 블로그를 이렇게 페허 처럼 방치해두다니...

다시 한번 모든 것을 정리 하고 다시 시작해야 할 것 같다.
하루 한번 포스팅은 아침 7시 출근에 저녁(?) 11시~12시 퇴근 하는 직장인에게는 분명 무리가있다고 생각을 한다. 이에 처음부터 크게 잡는 것 보다 작게 잡고 다시 시작해보련다.

1주일에 무조전 1개 이상 포스팅하기...

과연 난, 저 약속을 제대로 지켜 낼 수 있을까...? ㅡㅡ?

웹 2.0의 개념도 아직 완전히 정립되지 않은 단계에서, 정보통신 업계와 컴퓨터과학 학계에서는 벌써 “웹 3.0”에 대한 논의가 시작되고 있다. 웹 3.0은 좀 더 인간에 가깝고 영리한 검색 엔진의 등장과 긴밀히 연계될 것이라는 예상이 전문가들로부터 나오고 있다.

뉴욕 타임즈의 존 마르코프(John Markoff)가 웹 3.0은 컴퓨터가 온라인 데이터를 기반으로 하나의 결론을 끌어내는데 필요한 효율적 시스템을 제공하는 기술이라고 정의한 이래 이 정의가 널리 알려졌다.

또한, Project10X가 발표한 “Semantic Wave 2008:Industry Roadmap to Web 3.0 Multibillion Dollar Market Opportunities(시맨틱의 물결 2008 : 수십억 달러 시장의 기회)」라는 보고서에서 웹 3.0은 “인터넷을 유저에게 보다 편리하고 즐겁게 하기 위해 의미를 표현하고 지식을 이어주는 것”이라고 정의되고 있다. 아울러, 웹 4.0은 유비쿼터스 웨이브 환경으로 이어가며, 인간과 그 외의 것이 명확한 의사를 가지면서 서로 통신하는 것이라고 정의하고 있다 [관련기사].

사용자 삽입 이미지

[그림] 웹의 진화

 영국신문 Guardian 웹판은 “웹 3.0을 정리한다고 하면 레코멘데이션(Recommendation)과 개인화이다”라는 기사를 게재하였다. 웹 3.0의 정의는 ReadWriteWeb에서도 몇번 정의한바 있다.

 영국신문 Guardian는 현지시간 2월 4일, Jemina Kiss씨가 웹 3.0은 레코멘데이션을 가리키는 것이 될 것이다라고 시사하였다. “만약 웹 2.0을 한마디로 「상호작용」이라고 한다면, 웹 3.0은 레코멘데이션과 개인화가 될 것이다”라고 同씨는 말하고 있다. Kiss씨는 Last.르, Facebook의 Beacon을 예로 들면서 개인화된 레코멘데이션 서비스가 새로운 음악, 제품, 레스토랑 등의 정보를 우리에게 가져오는 것으로 웹의 미래상을 그리고 있다고 하였다.

 지금까지 웹 3.0에 대해 최근 몇 년동안 수 없는 정의들이 산재해 있다. 지금까지의 거의 모든 기사에서 공통된 웹 3.0 테마의 하나는 시맨틱웨이브로 끊을래야 끊을 수 없는 관계에 있는 것 같다.

 2007년 4월, ReadWriteWeb은 독자들이 생각하는 웹 3.0의 정의 콘테스트에서 우승한 Robert O`Brien씨의 정의는 “비집중화한 비동기의 나(decentralized asynchronous me)”라고 하였다.

 “웹 1.0은 집중화된 그들, 웹 2.0은 분산화된 우리, 그리고 웹 3.0은 비집중화한 나”라고 정의하고 있다. “웹 3.0은 자신의 환경에 누군가를 끌어 들여 보다 강하게 제어하고 싶은 나와 관계된 것이다. 웹 3.0은 나의 주의를 대상으로 누구에게, 혹은 무엇에게 자신을 보여주는 것이다. 이것이 나에게 있어서 보다 효율적인 커뮤니케이션이다.”라고 O`Brien씨는 말했다.

 O`Brien씨의 말은 기본적으로 Kiss씨의 말과 같은 개인화와 레코멘데이션이다. 그리고, 이것은 시맨택웨이브에서 제공하거나 약속하고 있는 것이기도 하다. 시맨틱웨이브의 비전을 유저에게 알리는(판매하는) 가장 간단한 방법은, 그들의 생활을 편리하게 해 준다고 이야기를 하는 것이다. 기계가 인간의 말을 이해하여 유저의 지식을 이용할 수 있다면, 우리가 언제 무엇을 원하는지 알 수 있는 웹을 만들 수 있다.

ReadWriteWeb의 Sramana Mitra씨는 웹 3.0에 대해 개인화에 콘텍스트(Context)를 더하는 것이라고 하였다. “MyYahoo의 개인화 시도는 만족할 수 없는 한정적인 것으로, 문제는 출발 지점이 되는 콘텍스트를 가지지 않은 것에 있다.”라고 지적하고 있다. “내가 예상하는 웹 3.0은 구성요소가 다수 존재한다. 예를 들면 영화(Netflix)나 음악(iTunes), 요리?음식, 일하는 여성, 싱글 부모 등의 콘텍스트를 기본으로 알게 되는 것이다. 그리고 그 콘텍스트들의 집합으로 소비자가 필요로 하는 것을 이끌어내는 웹 3.0의 공식을 만들어낼 수 있다”, 바꾸어 말하면, 웹 3.0은 자신이 갖고 싶을 때에 갖고 싶은 정보를 (적절한 콘텍스트로) 피드 해 주는 것이다.

위에서 말한 웹3.0의 공식은 Web 3.0 = (4C + P + VS)이다. 4C중에서 3C는 Content, Commerce, Community이고, 네번째 C가 Context 인 것이다. P는 Personalization 이고, VS는 Vertical Search로 정의하고 있다.

참고자료 : Readwriteweb, 2008/2/5


원본 : 2008년 시맨틱의 물결, 웹 3.0의 모습

'IT트랜드 & 정보 > Web(웹) 2.0' 카테고리의 다른 글

오픈 아이디 (OpenID)  (0) 2008.05.02
SOA(Site Open API) 활용법  (0) 2008.03.21
2008년 시맨틱의 물결, 웹 3.0의 모습  (0) 2008.03.10
W3C, HTML 5 초안 공개  (0) 2008.03.10
왜 RSS를 지원해야 하는가?  (0) 2008.02.13

웹 2.0의 개념도 아직 완전히 정립되지 않은 단계에서, 정보통신 업계와 컴퓨터과학 학계에서는 벌써 “웹 3.0”에 대한 논의가 시작되고 있다. 웹 3.0은 좀 더 인간에 가깝고 영리한 검색 엔진의 등장과 긴밀히 연계될 것이라는 예상이 전문가들로부터 나오고 있다.

시맨틱 웹 분야는 거품이라는 반발이 있을 정도로 언론을 통해 많은 홍보되었고, 대형 기업들이 많이 뛰어든 분야이다. 그러나 요란한 출발에 비하면 주류로의 편입은 늦어지는 편이다. 하지만, 시맨틱 웹이 현재처럼 특정 분야에서만이 아니라 전체 웹 공간으로 확대 도입될 때 웹 3.0의 시대가 열릴 것으로 예측되고 있다[GTB2007030578].

이러한 시맨틱 기술과 시장을 다룬 “Semantic Wave 2008:Industry Roadmap to Web 3.0 Multibillion Dollar Market Opportunities(시맨틱의 물결 2008 : 수십억 달러 시장의 기회)」라는 제목의 400 페이지 리포트를 Project10X가 발표했다. 이 리포트는 소비자 전용의 시맨틱 기술과 기업 어플리케이션의 등장, 그리고 웹 2.0에서 이른바 「웹 3.0」으로의 진화에 대해 다루고 있다.

 이 리포트에서 웹 3.0은 “인터넷을 유저에게 보다 편리하고 즐겁게 하기 위해 의미를 표현하고 지식을 이어주는 것”이라고 정의하고 있다. 즉 시맨틱 웨이브 그 자체이며, 「웹 3.0」이라는 말은 별로 좋아하지 않지만, 시맨틱 기술이 현재의 소셜 웹 시대를 강화하고 넓히는 시대에 접어 들은 것에는 동의 한다. 이와 관련된 기사는 ReadWriteWeb의 Alex Iskold가 최근 쓴 「시맨틱 웨이브 : 유저층에서 활용의 기폭제가 된 킬러어플리케이션은?」이라는 기사이다.

아울러, 시맨틱 웨이브에서 뜻하는 ‘의미표현’은 인간뿐 아니라 기계(프로그램)도 이해할 수 있는 ‘의미’를 뜻한다. 기계가 이해한다는 말은 매우 중요하다. 즉, 인간이 메타정보를 주면, 그것을 이해하여 프로그램이 의미에 따라 정보를 통합하여 제공할 수 있어야 한다는 전제조건을 가정한 것이다. 따라서 응용분야에서 기계가 하나로만 해석할 수 있는 ‘의미’단위를 가정해야 한다는 것이다.

또, 이 리포트에서 「웹 4.0」을 다음과 같이 정의하고 있다. “웹 4.0은 유비쿼터스 웨이브 환경으로 이어가며, 인간과 그 외의 것이 명확한 의사를 가지면서 서로 통신한다”. 다음의 그림은 이러한 웹의 버젼을 잇는 개념을 잘 나타내고 있다.

사용자 삽입 이미지

(그림) 웹의 진화

 시맨틱 어플리케이션의 새로운 시대는 전통적인 W3C 기술에 한정된 것이 아니라고 올바르게 지적하고 있다. 여기에서 “웹 3.0은 플랫폼으로서 현재의 웹상에서 적용할 수 있는 모든 시맨틱 기술과 오픈 표준을 포함 하는 것이다. 이것은 현재 시맨틱웨이브 표준에 한정된 것은 아니다.”라고 기술되어 있다.

 또, 이 시맨틱웨이브로 기대되는 성과에 대해 유익한 논의를 하고 있다. 예를 들면, 웹 브라우저에서 “웹 3.0의 브라우저는 데이터의 시맨틱스를 이해하여 정보를 매개로 메타데이터를 자동적으로 번역한다”라고 하고 있다.

 또, 이 리포트는 몇개의 흥미로운 트랜드도 분석하고 있다. 예를 들면, 아이덴티티에 관해서 “이러한 트랜드는 개인이 인터넷의 모든 장소에서 자신의 개인정보를 운용/관리하는 것이 가능해진다”라고 말하고 있다.

 이러한 흥미로운 트랜드는 “집합 지식(knowledge) 시스템”으로, 여기에서는 유저가 “콘텐츠, 시맨틱스, 모델, 행동을 더하여 서로 협력하고, 시스템은 학습하면서 사용하기 쉽게 되어 간다”라고 한다. 이와 관련된 트랜드는 ”부흥기에 있는 시맨틱웨이브, 주목되는 10개 어플리케이션”을 참조하면 된다.

사용자 삽입 이미지


출처 : ReadWriteWeb.com, 2008/1/17

웹3.0 관련 기사들 참고 사이트
http://www.radarnetworks.com/ (새 창으로 열기)

World Wide Web Consortium(W3C)는 10년만에 HTML을 발표하였다.

 미국 시간 1월 22일에 릴리스 된 「HTML 5」의 최초 워킹 드래프트는 개발자, 브라우저 벤더, 콘텐츠 프로바이더가 참가하는 W3C HTML Working Group의 작업에 의해 탄생했다.

 HTML 5는 2010년까지 최종 권고할 예정이지만, 음성이나 멀티미디어 콘텐츠를 제어하는 새로운 API군을 포함시키고, HTML을 오늘의 리치한 인터넷 환경에 맞추어 진화시키는 것을 목적으로 하고 있다.

 “HTML은 말할 필요도 없이 매우 중요한 규격이다”라고 HTML 최초 버젼의 저자이며 W3C의 디렉터인 Tim Berners-Lee씨는 말한다. “나는 브라우저 벤더를 포함한 개발자 커뮤니티가 협력하고, 웹에 대한 생각을 나눌 수 있는 자리가 있다는 것에 기쁘게 생각한다. 많은 개발자의 의견을 정리하는 것도 대단한 작업이지만, 무엇보다도 혁신성과 안정성의 밸런스 및 이상주의와 실용주의의 밸런스를 맞추는 일도 큰 과제이다”라고 Berners-Lee씨는 말했다.

W3C HTML Working Group은 웹의 진화에 대해 연구하면서, Ajax의 발전 프로세스 등의 동향과, 단순하고 정적인 페이지 집합체를 넘어 오늘의 웹에 어울리는 새로운 규격을 작업하고 있다.

HTML 5의 새로운 기능은 오늘날 인기 높은 웹 사이트에서 대부분 사용되고 있는 요소가 규격화되어 상호 운용성이 높아지게 된 것이다. 최종적으로는 authoring tool 적용의 시작과 동시에 보급되는 것이라고 전문가들은 주장하고 있다.

 HTML 5는 클라이언트측의 데이터 보존에 초점을 맞추어 유저가 문서를 쌍방향으로 편집할 수 있도록 하고 있다. 또, HTML 문서를 손쉽게 취급하기 위해 간결한 룰과 함께 에러를 수정하는 방법에 대한 설명서를 제공하는 것으로 코스트 문제에도 대처한다고 한다. 이러한 강화와 함께, 화면에 친숙한 페이지 섹션이나 네비게이션 요소를 도입한 새로운 기능도 계획되고 있다. HTML 5는 「고전적인」HTML 과 XML 웹 어플리케이션의 모바일 플랫폼으로 확장키 위한 상호 운용성도 목적으로 하고 있다.

“웹에는 방대한 양의 데이터가 HTML 형식으로 기록되어 있지만, 특정 프로그램으로 동작하도록 코드화 되어 있는 케이스도 많다. 이러한 정보를 잃지 않으려면, 설계된 특정 프로그램이 없어도 정보를 처리할 수 있는 방법을 알아 둘 필요가 있다”라고 모바일 브라우저 기업 Opera의 최고 표준 기술 책임자(CSO)인 Charles McCathieNevile씨는 말한다. “새로운 HTML 5의 초안은 사양에 따라 기존 HTML을 신뢰성 높은 방법으로 명기할 수 있으며, 향후 이 사양들에 따라 자유롭게 적용할 수 있게 된다. 또, 과거 10년 이상에 걸쳐서 적용되고 받아 들여져 온 중요한 몇 개의 웹 기능에 대한 사양도 추가되고 있다” 라고 McCathieNevile씨는 말했다.

 HTML 5의 초안은 Microsoft 등의 벤더가 브라우저 상호 운용성을 주장을 강하게 하고 있는 시기에 공개되었다. Microsoft는 지난 12월 「Internet Explorer 8」(IE8)이 Web Standards Project의 일부인 「Acid2」테스트에 합격한 것이다. “Acid2의 렌더링에 성공한 것은 우리가 IE8의 릴리스에서 본격적인 상호 운용성, 규격의 준거 및 호환성을 강조하는 결과로 IE8에 있어서 획기적인 사건이다”라고 Microsoft의 관계자는 말하고 있다.

 그러나, 일부 전문가는 Microsoft가 Acid2에 합격했다고 표명하는 것은 시기 상조라고 주장하고 있다. Microsoft는 IE8의 렌더링 모드의 방법에 관해 일부 개발자로부터 비판을 받고 있기 때문이다.

o HTML5는 기존의 정적인 페이지를 넘어, 쉽고 역동적인 멀티미디어화된 형식으로 발전할 것이며, 모바일로의 진화도 가속화 될 것임

  - 위키피디아, UCC, 블로그 등 사용자가 생산한 콘텐츠를 담기 위해 기존 HTML 형식에서 벗어나 상호 연결성을 강조한 협업과 공유에 기반한 웹 애플리케이션의 요구에 의해 탄생

iptables은 강력한 패킷필터링 툴입니다.
기존의 iptables에 관한 자세한 문서들이 많이 나와있지만
이 문서는 리눅스 환경을 전제로 하며 iptables의 초심자들을 위해 설명을 하고자 합니다.
오타나 틀린 내용이 있으면 홈페이지에 관련부분을 기제해주기바랍니다.


작성일 2002.10.13

작성자 : 김창현 [CTCquatre] http://www.eyetolife.com




[ 패킷필터링 지식 ]


패킷필터링이란?

패킷필터링은 지나가는 패킷의 해더를 보고 그 전체 패킷의 운명을 결정하는 것을 말한다.
(iptables의 경우 많은 개발중인 기능에서 헤더에 그치지 않고 data의 내용을 검토하기도 한다. 가장 대표적인것이 string match기능이다.)

*:(일반적으로 패킷은 헤더와 데이타를 가진다. 헤더에 필터링할 정보인 출발지IP:PORT,도착지 IP:PORT, checksum,프로토콜 옵셋등을 가지며 데이터는 각각의 전송데이터가 들어간다.)



리눅스 박스의 패킷필터링의 역사

리눅스는 커널 1.1버젼 부터 패킷필터링을 포함하기 시작했다.
제 1세대는 BSD의 ipfw을 기본으로 하였고
2.0버젼에서 ipfwadm이 사용되었으며
1998년에 2.2기반 패킷필터링툴인 ipchains를 내놓았다.
그리고 이글에서 논의하고자 하는 제 4세대 필터링툴인 iptables이 2.4커널을 위해
만들어졌다.



netfilter?

일반 iptables사용자들이 가장간과하기 쉬운부분중 한 부분이다.
iptables이 패킷을 필터링 하는것이 아니다.
패킷필터링은 커널에 탑제된 netfilter기능으로 하며
iptables은 단지 netfilter의 룰을 세워줄 뿐이다.
즉 다시 말하자면 iptables은 룰셋구축 툴이라는 말이다.







[ 패킷필터링 ]


iptables에 대해

iptable에 기본 Chain은 아래와 같다.

INPUT chain
FORWARD chain
OUTPUT chain

위의 3가지가 기본 체인이다. 체인들의 모식도는 아래와 같다.


------>INPUT------> Linux Box ------>OUTPUT--------->
---------↕----------------------------↕
---------└--------- FORWARD ----------┘


여러분의 Linux box를 도착지로 삼는 모든패킷은 INPUT Chain을 통과하게 되며
여러분의 Linux box에서 생성되 외부로 보내지는 모든패킷은 OUTPUT Chain을
통과하게 된다.

Forward chain은 *엄밀히 말하자면 도착지가 여러분의 Linux box가 아닌 패킷이 통과하게 되는 체인이다.

*:(다음문서에 다루게 될 Masqurading시에 패킷의 destnationIP정보는 여러분의 Linux box이지만 패킷의 최종도착지는 내부네트워크의 어떠한 컴퓨터일것이다)



지금 커맨드라인에 아래와 같이 쳐보기 바란다.

# iptables -A INPUT -j DROP

엔터키를 누르는 즉시 여러분의 Linux box로 오는 패킷은 모두 거부당할것이다. 즉 모든 통신이 끊어진다.

위의 룰을 굳이 말로 옮기자면

-A:룰을 추가한다
INPUT: 패킷이 들어오는 체인에
-j:패킷의 운명을 결정한다.
DROP: 패킷을 버려라.

즉, INPUT체인으로 들어오는 패킷을 모두 버리는 룰을 추가하는 명령이다.

적용시킨 룰을 보고 싶다면

# iptables -L

이라는 명령을 치면된다.

-A와 같은 위치에 있는 옵션은 아래와 같다.

체인에 새로운 규칙을 추가하기 (-A)
체인의 어떤 지점에 규칙을 삽입하기 (-I)
체인의 어떤 지점의 규칙을 교환하기 (-R)
체인의 어떤 지점의 규칙을 제거하기 (-D)
체인에서 일치하는 첫번째 규칙을 제거하기 (-D)

이제 위에서 내린 룰을 지워 통신이 되게 하자.
아래와 같이 명령을 내리면 된다.
# iptables -D INPUT 1
또는
# iptables -D INPUT -j DROP 하면 될것이다.

첫번째 방법은 index(룰의 순서)를 지정해서 지우는 방법이고, 두번째는 룰의 내용으로 지우는것이다.

-I,-R은 첫번째 방법과 유사하게 쓸수있다.





룰을 다시 세우고 목록을 보자.

# iptables -A INPUT -j DROP
# iptables -L

살펴보면

Chanin INPUT (policy ACCEPT)

위와 같은 줄을 볼수있을것이다.
저 줄 밑에는 여러분들이 세운 룰의 정보를 볼수있을것이다.

(policy ACCEPT)를 설명하자면 여러분들이 세운룰에 해당되지 않을때
마지막으로 기본정책을 따라 패킷의 운명을 결정하게 된다. 여기서는 ACCEPT이므로
패킷은 받아드려질것이다. 아지만 이것을 DROP으로하면 패킷은 버려질것이다.

그리고 패킷필터링을 알아가면서 여러룰들을 세울것이다.
기본적으로 룰은 세워진 순서대로 패킷을 검사한다.

이제 기본정책을 바꾸어 보자.

# iptables -P INPUT DROP

위의 명령을 내리고 다시 iptables -L을 하면

Chanin INPUT (policy DROP)으로 된걸 볼수있다.


-P와 동등 위치의 옵션은 아래와 같다.

새로운 체인 만들기 (-N).
비어있는 체인을 제거하기 (-X).
※ 이 두옵션은 직접체인을 만들었을경우와 제어할경우에 해당된다. 기본체인(INPUT,OUTPUT,FORWARD) 에는 해당되지 않는다.

미리 만들어진 체인의 정책을 바꾸기 (-P)
어떤 체인의 규칙들을 나열하기 (-L)
체인으로부터 규칙들을 지우기 (-F)
체인내의 모든 규칙들의 패킷과 바이트의 카운드를 0 으로 만들기 (-Z)




[ 패킷의 목적지또는 출처 제어 ]


패킷출처 제어옵션 -s

# iptables -A INPUT -s 192.168.10.10 -j DROP

위에 같은 명령을 내렸다면 192.168.10.10으로 부터 온 패킷은 모두 버려지게 된다.

-s(--source,--src와 같은 옵션이다.) : 패킷의 출처 IP 지정




목적지 제어옵션 -d

# iptables -A INPUt -d 192.168.10.12 -j DROP

위와 같은 명령을 내렸다면 192.168.10.12의 IP를 도착지로 가지고있는 패킷은 모두 버려지게된다.

-d(--destination,--dst와 같은 옵션이다.): 패킷의 도착지 IP지정


※ IP지정 이외에 몇 가지 방법이 더 존재한다.
-s www.xxxx.com : 도메인으로 제어
-s 192.168.10.0/24 : 네트워크 또는 집단으로 제어
-s 192.168.10.0/255.255.255.0 :위와 동일

※ 보통 프로그래밍 약속기호처럼 !는 역('not')이라는 것을 표시한다.
ex) -s ! 192.168.10.10 이라고 하면 "출발지가 192.168.10.10이 아닌" 이라는 뜻이된다.





[ 프로토콜 제어 ]

프로토콜제어 옵션은 -p이다

-p옵션의 인자는 TCP,UDP,ICMP가 될수있다.

# iptables -A INPUT -p TCP -j ACCEPT

라는 명령을 내렸다면 tcp프로토콜을 쓰는 모든 패킷은 ACCEPT에 의해 허락될것이다.

※ -p의 인자로 TCP,UDP,ICMP의 프로토콜번호를 알고있다면 번호를 써도 상관없다.

포트 제어

포트제어 옵션은 --sport와 --dport이다

--sport는 패킷의 출발지 포트이다.( --source-port와 같은 옵션이다.)

--dport는 패킷의 도착지 포트이다.( --destination-port와 같은 옵션이다.)


# iptables -A INPUT -p tcp --dport 80 -j DROP

위와 같은 명령은 tcp프로토콜의 80(www:웹서버포트)번 포트를 목적지로 하는 패킷을
버리는 것이다.

※ --dport나 --sport의 인자로 서비스이름을 적어도 된다.
ex) --dport www

※ 여러 포트를 지정해야 된다면 --dport 1024:65535 와 같이 지정할수있다.
뜻은 1024 부터 65535번까지라는 뜻이다.






[ 인터페이스 지정 ]

인터페이스는 -i (input interface), -o (output interface)로 지정할수있다.

# iptables -A INPUT -i eth0 -p tcp --dport 80 -j DROP

위의 명령은 -i eth0옵션을 빼고는 port지정 예와 같다.

-i eth0는 eth0로 들오는 모든 패킷을 뜻한다.

보통 리눅스 박스처럼 인터넷과 연결된 디바이스가 1개라면 필요없는 옵션이 되겠지만
만약 eth0, eth1등 2개이상의 인터페이스가 인터넷과 연결되어있다면 위의 옵션은 유용하게 쓰일것이다.

※ INPUT 체인은 -i 옵션만 쓸수 있고, OUTPUT 체인에는 -o옵션만 쓸쑤있다.
반면에 FORWARD 체인은 -i,-o 옵션 두가지 다 쓸쑤있다. 이유는 다음문서에서 다루겠다.



총괄적인 예:

# iptables -A INPUT -i eth0 -d 192.168.10.10 -p tcp --dport 80 -j DROP

해설: INPUT 체인에 - 입력인터페이스가 eth0이고 도착지가 192.168.10.10이고
프로토콜은 tcp이며 도착 포트는 80(www)인 패킷은 DROP시켜라.





이제까지는 별 다른 지식이 없이도 이해할수있는 부분이었다.
하지만 지금부터 나오게될 내용은 tcp/ip의 기반적인 지식을 가지고있어야
이해하기 쉬울것이다.
tcp/ip지식이 필요한 옵션에 대해서는 그에따른 자세한 설명을 하겠지만
이해가 되지 않는 부분은 다른 문서나 책을 찾아보길 바란다.





[ 패킷의 행동 유형에 따른 필터링(--tcp-flags,m state --state) ]


! 주의 : 밑에 나오는 모든옵션은 TCP프로토콜옵션(-p TCP)가 먼저
선행되어 있어야 적용되는 옵션이다.



1)
--tcp-flags 옵션은 상태에 따라 유용하게 설정할수있다.
이 옵션을 설정하는 가장 큰 예는 한방향으로만 통신이 되게끔설정하기 위해
많이 사용한다.
tcp/ip는 3핸드쉐이크의 접속방식이다.
즉. 접속요청패킷,접속허가 패킷,확인패킷

접속 단계를 좀더 자세하게 보면

C: Client S:Server

1) C --------- syn -------▷ S
2) C ◁------- syn ack ----- S
3) C --------- ack -------▷ S

이런식으로 접속절차가 이루어진다.

syn패킷은 접속요청 플래그(syn)가 설정된 패킷이므로 syn패킷만 막으면 상대편에서 접속을 할수 없다는 것이다.

※ Dos공격의 일종인 Syn Flooding이 서버에 위에서 말한 syn형패킷을 무수히 많이
보내는 것이다.


이제 본격적으로 --tcp-flags옵션으로 syn 접속형 패킷을 막는것을 하겠다.

# iptables -A INPUT -p TCP --tcp-flags SYN,RST,ACK SYN -j DROP

--tcp-flags에 첫번째 인자는 검사할 리스트 마스크이다.
두번째 인자는 설정되어있어야할 플래그다.
즉 syn,rst,ack플래그중 syn이 set이 1로 되어있으면 위의 --tcp-flags설정에
해당이 되므로 패킷은 DROP된다.


위의 옵션과 같은 뜻을 가진것이 있는데 그것은 --syn이다.
--syn은 '--tcp-flags SYN,RST,ACK SYN'의 뜻을 가지고 있다.





2)
--tcp-flags보다 더 간단하게 설정하는 방법이 있다.
바로 tcp의 상태천이 다이아그램을 축소시켜 놓은듯한 느낌을 받는 상태에 따른 패킷분류를 iptables은 지원한다.

이것은 확장기능이므로 -m 플래그로 설정은 한다.

사용옵선은 -m state --state 이다.

인자값으로 들어가야할 상태에따른 리스트는 아래와 같다.



NEW : 새로운 접속을 만드는 패킷

ESTABLISHED :존재하는 접속에 속하는 패킷 (즉, 응답 패킷을 가졌던 것)
즉 접속이 허가되고 통신하면서 발생되는 패킷이다.

RELATED :기존의 접속의 부분은 아니지만 연관성을 가진 패킷으로 .
ICMP 에러 나 (FTP 모듈이 삽입 되어있으면) ftp 데이터
접속을 형성하는 패킷.

INVALID :어떤 이유로 확인할 수 없는 패킷. 알려진 접속과 부합하지 않는 ICMP 에러와
'out of memory' 등을 포함한다. 보통 이런 패킷은 DROP 된다.



이제 이 state 옵션을 사용해보자

위의 --tcp-flags옵션에서 예제와 같은 작용을 하는 룰을 만들어보겠다.

# iptables -A INPUT -p TCP -m state --state NEW -j DROP

왜 룰이 이렇게 되는지 차근차근 읽어보았다면 쉽게 이해가 될것이다.

일반적으로 서버는

# iptables -A INPUT -p TCP --dport 특정포트 -m state --state NEW,ESTABLISHED -j ACCEPT

이렇게 룰을 많이 세운다.
뜻은 tcp 특정 포트에 new:접속패킷과,established:통신패킷(정확히 쉽게 설명할
단어가 생각나지 않아 부적절하지만 통신패킷이라 부른다)을 허용하라.


그리고 클라이언트 측에서는 위의 state상태에서 NEW를 빼고 사용한다.

# iptables -A INPUT -p TCP --sport 특정포트 -m state --state ESTABLISHED -j ACCEPT

왜 NEW를 뺄까? 그 이유는
그 이유는 클라이언트입장에서 보면 접속을 허가해달라는 패킷이 필요없다는것이다.
더 쉽게 말하자면 클라이언트는 접속허가를 요청하는 위치이지 요청받는
위치가 아니라는 말이다.
그러므로 ESTABLISHED만 있으면 일반적으로 통신하는데 아무런 문제가 없다

그리고 주의깊게 본 사람이라면 위에 --sport가 쓰여진것을 볼수있을것이다.

왜 서버에서는 --dport로 제어를 하면서 클라이언트는 --sport로 제어를 할까?

지금 리눅스 박스라면 wget을 쓰던지 x-windows에서 브라우져를 쓰던지 아무런 웹사이트에 접속을 하고 바로 콘솔에서 'netstat -nat'라는 명령을 내려보자.

무슨말인지 알겠는가?

서비스를 한번이라도 해본적있는 사람이면 알겠지만 서버는 특정PORT를 열어놓고 접속을 기다린다.
클라이언트는 특정 서버에 접속을 하기 위해 별도로 포트를 생성하고 접속을 시도한다.
이때 클라이언트가 생성하는 포트번호는 1024이후의 랜덤값이다. 이런이유로 클라이언트입장에서는
--dport로 제어를 하지않는게 보통이다. 제어를 하더라도 상관없다. 하지만 그것은
상당한 비효율적인 룰이 될것이다.



[ftp를 위한 상태천이를 이용해 룰 설정]


ftp는 참 유별난 프로토콜이다. 특히 마스커레이드때 쓰이는 nat과 잘 맞지도 않을뿐더러.
ftp서버에서 passive모드로 운영을 할시 iptables로 제어하고 싶다면 따로 모듈이 필요하다.


passive로 1025:65535까지 임이의 데이타 전송포트를 쓸때
상태천이로 제어를 하자면,보안상 NEW를 사용하지 않는다.
즉,새로운 접속을 허가하지 않고
RELATED로 기존접속에 관련된것만 접속을 허용한다.

즉 실제 룰을 보면 아래와 같다

# iptables -A INPUT -p tcp --dport 1024:65535
-m state --state ESTABLISHED,RELATED -j ACCEPT

※ 만약 NEW를 사용한다면 방화벽 구실을 못할것이다.
왜그런지는 직접 생각해보라 위에서 이미 충분히 설명하였다.


ftp에서 위처럼 RELATED로 방화벽룰을 설정했다면
ip_conntrack_ftp라는 모듈없이 연결이 제대로 되지 않을것이다.

ip_conntrack_ftp는 ftp서버의 ftp접속 추적 모듈이다.





[ 조각(Fragments) 처리하기 ]


때때로 하나의 패킷이 한 번에 한 회선을 통과하기에는 너무 큰 경우가 발생한다.
이 때는 패킷이 `조각'으로 나뉘어 여러 개의 패킷으로 전송된다.
받는 쪽에서는 이 조각을 모아 하나의 패킷으로 재구성한다.


패킷 필터링 HOWTO에서는 nat이나 접속추적을 할때에는 분절패킷이 하나의 패킷으로

재구성되어 필터링되기때문에 해당되지 않는다고 명시되어 있다.

하지만 위와 같은 상황이 아니라면 조각을 처리해야하나 안전성을 이유로 처리하지
않는 것을 권장하고 있다. 그 이유는 아래에 설명할것이다.

일반적으로 패킷이 분절(토막)될때 필터링을 할 정보인 특히 발신지 포트,
목적지 포트, ICMP 유형, ICMP 코드 또는 TCP SYN 플래그등은 첫번쩨 패킷의
헤더에 밖에 포함되지 않는다. 즉 두번째 분절패킷부터는 그 정보가 없다는 말이다.
이를 위해서 우리는 분절된 패킷을 처리하기 위해 -f 옵션을 사용한다.

하지만 -f옵션을 권장하지 않는다. 왜냐하면 첫번째 필터링정보가 담긴 헤더를 보고
필터링을 할때 그 패킷이 거부하는 룰에 적용되어 거부되면 분절된 패킷이 거부되지
않고 오더라도 그것은 하나의 패킷으로 재구성 되지 않고 버려지기 때문이다.


사용법은

# iptables -A OUTPUT -f -d 192.168.1.1 -j DROP

처럼 사용한다.
위의 뜻은 192.168.1.1을 항해 나가는 분절된 패킷은 모두 버린다 이다.

다시 한번 말하지만 꼭 필요한경우를 제외하고 이 옵션은 권정하지 않는다.






이정도로 iptables의 기본 사용법에 대해 마치고자 한다.
이문서에서는 방화벽설정에서 자주 사용하게 되는 옵션에 대해서만 언급했다.
아니 이정도 옵션들이면 어느정도 방화벽은 구성할수 있을것이다.
나머지 옵션들은 man패이지나 패킷필터링 HOWTO에서 찾아보기 바란다.
여기서 다루지 않은 forward체인과 nat구성,mangle테이블사용은
다음문서에서 다룰것이다.

'공부 해 Boa요. > Linux Server' 카테고리의 다른 글

리눅스 로그파일 관리하기  (0) 2008.03.25
유닉스 및 리눅스 명령어  (0) 2008.03.25
Apache Tunning  (0) 2008.03.10
리눅스 가상 IP 설정Ⅱ  (0) 2007.11.23
리눅스 가상 IP 설정Ⅰ  (0) 2007.11.23
1. 웹 페이지 로딩시간 확인
#time -pa lynx -source http://www.gwise.com > /dev/null
real 0.74
user 0.16
sys 0.09
-------------
실제 접속시간 : 0.74-(0.16+0.09)=0.49초

2. 아파치 벤치 마킹
#man ab 사용법 보기
-n requests 요청을 수행할 개수
-c concurrency 요청을 만들 개수로 동시 사용자 개념으로 이해하면 되겠다.
-v verbosity 얼마나 자세한 정보를 화면에 출력해 줄 것인지 결정
-w HTML 문서형식으로 테이블로 만들어 결과를 화면에 출력
-k HTTP 프로토콜의 지속연결 (KeepAlive) 기능을 사용

#./ab -n 100 -c 10 http://www.gwise.com:80/
10 명의 유저가 동시에 http://www.gwise.com/index.html 을 요청하는 것을 모
의 실험.
각각의 시뮬레이트 유저는 요청을 10 번씩 하게 됩니다

# ab -n 1500 -c 50 http://www.apache.kr.net:80/
요청을 30 x 50 (50 명의 사용자가, 각각 30 번의 요청)

Requests per second: 80.48
초당 80.48개를 요청 했음.

'MaxRequestsPerChild’ 는 메모리 누수현상(?) 등이 발생하지 않는다면 가능
한 이 값을 높게 설정하시고요(파라미터의 값을 0 으로 설정해 무한대로 하실
수도 있습니다) StartServers’ 는 프로세스가 active 되어 있는 경우가 적을
경우 값을 낮게 설정하시고, 접속량이 아주 많을 경우는 MaxClients 에 가깝
게 조절하시기 바라며, MaxSpareServers 를 MaxClients 와 같게 설정합니다.
MaxClients 는 너무 낮게 설정하지 않도록 주의하시기 바라며, 그렇다고 또 너
무 크게 잡으셔도 안됩니다


3. 웹 서버 삽질 막기
BrowserMatch "WebZip" go_out
BrowserMatch "Teleport" go_out
BrowserMatch "GetRight" go_out

[CODE]<Directory "/home/gwise/public_html"> .... Deny from env=go_out </Directoy>[/CODE]

4. 아파치 튜닝
일반 서버에서는 다른것은 그냥 Default 값으로 둔다.
(대형 서버의 경우 말고는 특히 쓸 일어 없을 것이다.)

증가 시킬 경우 배수로 한다. 꼭 이렇게 해야 한다가 아니라
이렇게 하면 좋다.

Timeout 300
클라이언트의 요청에 의해서 Server와 연결 되었을때
클라이언트와 서버간의 아무런 메시지가 발생하지 않았을때
오류로 처리하는 시간
네트워크 속도가 나쁠수록 수치값을 높게 한다.

KeepAlive on
지속적인 접속, 즉 서버 연결에 대하여 한번 이상의 요청을 허용 여부.

MaxKeepAliveRequests 100
클라이언트가 접속된 시간동안 아파치 서버에 요청할 수 있는 처리 process 개


StartServers 5 X ? =20 -> 초반에 뜰 process 그 이상 그이하의 의미도 없
다.
MinSpareServers 5 X ? =20 -> Spare 프로세스가 이것 이하 일때 끌어 올려
준다.
MaxSpareServers 10 X ? =40 -> Spare 프로세스가 이것 이상 일때 진정(?)시
켜 준다.
말 그대로 Spare.... 언제 있을지 모를 요청에 대해서 컴퓨터 스스로가
조절해 준다.

MaxClients 150
클라이언트들이 동시에 최대로 접속했을때 가능한 최대 서버이 수를 지정.
Ulimit -a ~~~ max process...이 수치 이상 증가 못함.
httpd.h
HARD_SERVER_LIMIT=250 조정해서 다시 컴파일 가능

MaxClient 150 -> 동시에 떠 있을수 있는 최대 process
더 많은 수를 원할시 httpd.h 소스 파일의
HARD_SERVER_LIMIT 값을 수정 한 다음 다시 컴파일 해야 한다.

#ulimit -a
core file size (blocks) 0
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes) unlimited
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 2048
pipe size (512 bytes) 8
open files 1024
virtual memory (kbytes) 2105343
-----------------------
위의 max user processes 의 수를 초과 할 수 없다.

MaxRequestPerChild 100
한 프로세스가 몇 번의 서비스를 하고 소멸될 것인지 정한다.
M$계열에서는 별 의미가 없으므로 0을 한다.
하지만 Unix 계열은 0을 사용하지 않는 것이 좋다.

가장 중요한 것은Timeout 설정입니다. 위에서 keep-alive 를 설정해 놓은
경우, 하나의 connection에서 계속해서 다음 request를 처리할 수 있기 때문
에 효율적
이라고 하지만, 실제로는 그렇지 않습니다. keep-alive 를 허용하고 그
timeout을
5초로만 설정해도, 하나의 request를 처리한 후 적어도 5초동안은 그 httpd가
다른
작업을 하지 못하고 다음 request를 기다리게 됩니다.

보통 웹브라우저들은 서버로 동시에 4개의 connection을 만들게 됩니다. 한 페
이지를
보는데 이미지 등등 해서 보통 4개의 connection을 만드는 것은 기본이죠. 이
렇게 되면
httpd가 100개 떠 있다고 해도, 실제로는 동시에 25명의 방문자밖에 처리하지
못합니다.

그리고 keep-alive timeout이 5초인 경우, 한 명의 방문자를 처리한 후 적어
도 5초동안은
계속해서 기다리면서 httpd가 놀게 됩니다.(그렇다고 해서 httpd의 수를 늘여
주면 앞의
문제 때문에 load가 몰릴 때 순간적으로 부하가 지나치게 많이 걸리게 됩니
다. 어떤
request는 수초가 지난 후 답을 받는 등 quality of service가 많이 떨어지
죠.)

결국 한 명의 방문자를 처리하는데 4개의 httpd가 5초동안 작업한다는 뜻이
고, 100개의
httpd를 띄워봐야 1초에 5명의 방문자밖에 처리하지 못하는 셈입니다. ( 1
명 / 5 sec /
4 httpd = 5 / 1 sec / 100 httpd )

그래서 검색엔진 서비스 등 traffic이 많은 사이트에서는 keep-alive 옵션을
반드시 꺼
놓게 됩니다. 그리고 connection timeout도 상당히 짧게 설정해 놓죠. 4~5초
이내로 말입니다


5. 아피치 튜닝-2(로그기록 로테이트로)
/home/apache/conf/httpd.conf
CustomLog /home/apache/logs/access_log common
TransferLog "|/home/apache/bin/rotatelogs /home/apache/logs/access_log
86400"
TransferLog "|/home/apache/bin/rotatelogs /home/apache/logs/error_log
86400"
--------------
24시간 마다 로그 화일을 갱신해 준다.
24X60X60=86400초

6. 아파치 에러 메시지 바꾸기
httpd.conf
Customizable error response (Apache style)
2) local redirects
ErrorDocument 404 /cgi-bin/missing404.pl

missing404.pl
---------------
[CODE]#!/usr/bin/perl print<<"(END_HTML)"; Content-type: text/html\n\n <head><title> 요청한 URL 이 없습니다. </title> <meta http-equiv="content-type" content="text/html;charset=EUC-KR"> </head> <body> <br/><br/><center> <b><h2>요청하신 http://www.gwise.com$ENV{'REQUEST_URI'} 이 <br/> 존재 하지 않습니다.<br/></h2></b> <br/><br/><h4> <a href="mailto:gwise\@orgio.net"> 서버관리자 </a> 에게 문의 바랍니다.</h4><br/> (END_HTML) exit;[/CODE]
---------------

7. 아파치 에러 코드
HTTP 1.1 status codes [TOP]

100 : Continue
101 : Switching protocols
200 : OK, 에러없이 전송 성공
201 : Created, POST 명령 실행 및 성공
202 : Accepted, 서버가 클라이언트 명령을 받음
203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부만 전

204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음
205 : Reset content
206 : Partial content
300 : Multiple choices, 최근에 옮겨진 데이터를 요청
301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음
302 : Moved temporarily, 요구한 데이터가 변경된 URL에 있음을 명시
303 : See other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음
304 : Not modified
305 : Use proxy
400 : Bad request, 클라이언트의 잘못된 요청으로 처리할 수 없음
401 : Unauthorized, 클라이언트의 인증 실패
402 : Payment required, 예약됨
403 : Forbidden, 접근이 거부된 문서를 요청함
404 : Not found, 문서를 찾을 수 없음
405 : Method not allowed, 리소스를 허용안함
406 : Not acceptable, 허용할 수 없음
407 : Proxy authentication required, 프록시 인증 필요
408 : Request timeout, 요청시간이 지남
409 : Conflict
410 : Gone, 영구적으로 사용할 수 없음
411 : Length required
412 : Precondition failed, 전체조건 실패
413 : Request entity too large,
414 : Request-URI too long, URL이 너무 김
415 : Unsupported media type
500 : Internal server error, 내부서버 오류(잘못된 스크립트 실행시)
501 : Not implemented, 클라이언트에서 서버가 수행할 수 없는 행동을 요구

502 : Bad gateway, 서버의 과부하 상태
503 : Service unavailable, 외부 서비스가 죽었거나 현재 멈춤 상태
504 : Gateway timeout
505 : HTTP version not supported

'공부 해 Boa요. > Linux Server' 카테고리의 다른 글

유닉스 및 리눅스 명령어  (0) 2008.03.25
IPTABLE 기본 사용법  (0) 2008.03.10
리눅스 가상 IP 설정Ⅱ  (0) 2007.11.23
리눅스 가상 IP 설정Ⅰ  (0) 2007.11.23
리눅스시스템 정보 보는 방법  (0) 2007.11.10
AJAX 코딩을 하면서 여러가지를 알아보고 있는데
아무 생각없이 사용하던 innerHTML이 비표준이라는데서 충격을 받았다.
firefox, IE에서 모두 지원해서 그런 생각을 하지 못했던 것이다.

innerHTML을 표준인 DOM API로 바꾸려고 생각을 했는데
그 생각을 접게 되었다.

http://www.quirksmode.org/dom/innerhtml.html

DOM API가 브라우저에 따라서 3배부터 93배 많은 시간이 소요되는 극악의 성능을 보여주고 있던 것이었다.

특히 놀라운 것은 Firefox 계열은 3배 정도 느린데 그치지만, IE는 93배의 시간이 걸리는 대단한 기록을 세워주셨다.

IE의 놀라운 점 또 하나. IE 5.5와 6의 성능 차이이다. DOM API 작업이 IE 5.5에서보다 IE 6에서 10배 정도 느린 점은 아이러니하기도 하고, 무슨 음모론을 떠 올리게 할 정도이다.

표준도 좋지만 사용자의 CPU 자원을 해치지 않도록 innerHTML 정도는 사용해줘도 상관없을 듯.

'Web(웹) Study > Java Script' 카테고리의 다른 글

레이어 팝업 소스  (8) 2008.03.11
자바스크립트와 쿠키(cookie) 사용법  (2) 2008.03.10
prototype.js  (0) 2008.03.10
Ajax 관련 링크들...  (0) 2008.02.27
js :: 팝업메뉴 생성하기  (0) 2008.01.18

prototype.js는 JavaScript Framework이다. 아니, Ajax Framework이라고 표현하는 것이 더 적절하다. Framework이 의미하듯이 자바스크립트로 애플리케이션을 개발하기 쉽도록 많은 Utility 함수를 포함하고 있으며 자바스크립트 자체의 오브젝트 및 클래스를 확장한 오브젝트와 클래스를 제공한다. 또한, prototype.js 자체적으로 제공하는 오브젝트와 클래스가 있다.

자바스크립트 framework이라고 해서 자바스크립트만 다루고 있는 것은 아니다. Ajax의 기본 기능인 비동기 통신과 동기 통신을 위한 클래스를 제공하고 있다.

Download

Prototype is a JavaScript Framework that aims to ease development of dynamic web applications.

Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.

'Web(웹) Study > Java Script' 카테고리의 다른 글

자바스크립트와 쿠키(cookie) 사용법  (2) 2008.03.10
웹 비표준 innerHTML  (0) 2008.03.10
Ajax 관련 링크들...  (0) 2008.02.27
js :: 팝업메뉴 생성하기  (0) 2008.01.18
자바 스크립트에서 HTTP 요청하기  (0) 2008.01.18

사용자 삽입 이미지

차세대 웹 환경으로 주목받는 리치 인터넷 애플리케이션(RIA)에 관한 주요 사례들을 확인할 수 있는 기회가 마련된다.

한국어도비시스템즈가 3월18일 서울 삼성동 그랜드인터콘티넨털호텔 그랜드볼룸에서 'Adobe RIA World 2008' 세미나를 개최한다.

'RIA-Transform Your Business'라는 주제로 열리는 이날 행사에선 어도비의 RIA 개발 런타임 '어도비 AIR'와 RIA 개발도구 '어도비 플렉스3'이 국내 이용자들에게 공식 선보인다.

어도비 AIR는 HTML, AJAX, PDF, 플래시, 플렉스 등을 이용해 데스크톱용 RIA를 개발하도록 돕는 런타임이다. AIR 기반의 애플리케이션은 웹과 데스크톱 환경을 자유롭게 넘나드는 풍부한 이용자경험(UX)을 제공한다.

이날 행사에선 AIR 및 플렉스3으로 구현된 국내외 구축 사례도 소개된다. 미국 나스닥과 이베이 등 해외 사례를 비롯해 농협 X뱅킹 및 개인화 뱅킹 서비스 '뱅크미', 현대기아자동차 경영정보 시스템, 교육인적자원부 내부업무 시스템 등 국내 RIA 프로젝트 등이 주요 사례로 소개될 예정이다.

또한 어도비 RIA 글로벌 전문가인 라이언 스튜어트가 방한해 RIA 구현을 위한 최신 트렌드와 어도비 AIR, Flex3의 기술적 특징을 직접 소개할 예정이다. 디자이너들을 위한 웹 애플리케이션 저작도구 '써모'(Thermo, 코드명)와 개발자 툴 '플렉스 빌더3'을 이용한 디자이너와 개발자의 협업 개발도 시연해 보인다.

지준영 한국어도비시스템즈 사장은 "Adobe RIA World 2008 행사는 차세대 웹 환경에 대한 비전과 대 변혁을 가져올 혁신적인 솔루션을 제공하는 자리로, 어도비가 제공하는 RIA 기술 플랫폼이 기업 비즈니스의 핵심으로 자리잡는 상징적인 의미를 갖게 될 것"이라고 강조했다.

'Adobe RIA World 2008' 세미나는 무료 행사다. 홈페이지(www.adobeflex.co.kr) 또는 e메일(adobe@purplepig.co.kr)로 사전 등록할 수 있다.

미국 라스베가스에서 현지시간 3월 5일~7일 일정으로 진행되고 있는 MIX08 Conference 에서 Internet Explorer 8 Beta1 버전이 발표되었습니다. 이전 기능을 통합하는 새로운 기능, 웹표준을 지원하는 새로운 렌더링 엔진이 큰 특징이라고 할 수 있습니다.

최근 IE8 에 대한 소식이 잦다는 느낌이 들었는데, MIX08 컨퍼런스를 통해 Beta1 버전을 일반 사용자도 다운받아서 사용해볼 수 있도록 제공하고 있네요.
이번 버전은 개발자와 디자이너들을 위한 Beta1 버전으로, 일반인들까지 대상으로 하는 Beta2 버전은 여름 쯤에 제공하겠다고 밝혔답니다. 개발자와 디자이너들에게는 이번 Beta1 버전을 통해 미리 IE8 이 정식으로 발표될 때를 준비하라는(?) 메세지를 주고 있는 것 같습니다. ^^;;

아직까지는 기존의 IE7 과 거의 비슷한 인터페이스를 보여주고 있습니다만, 베타2와 정식판에서는 어떤 비주얼을 보여줄지 기대되네요.

다운로드 :
http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/Install.htm

IE8 의 큰 특징인 동시에 유례없는 관심을 받고있는 이유를 찾아보자면, IE8 에는 기존의 호환 모드 대신 웹표준을 준수하는 표준 렌더링 엔진이 기본 모드로 채택되었다는 것이라고 할 수 있겠습니다.

이전 포스트에서도 밝혔듯이 IE8 이 표준 모드에서 Acid2 테스트를 통과했다고 알려졌는데요, 원래 IE8 에서는 이 표준 렌더링 엔진이 아닌 기존 IE7 까지 쓰이던 호환 모드를 기본 엔진으로 채택하겠다는 입장을 고수하고 있었습니다. 이는 각각 장단점이 존재하는데요, 이때문에 개발자들 사이에서 큰 논쟁이 이루어졌고, 결국 IE 를 개발하던 Microsoft는 이들의 의견을 받아들여 IE8의 기본 모드를 표준 모드로 채택하기로 했다고 합니다.

MSDN 블로그 :
http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx

Microsoft 가 OS를 독점한 상황에서 독자적인 웹브라우저를 개발하던 이전 상황과는 달리 Mozilla 계열의 Firefox의 놀라운 성장세와 함께 더이상 웹표준을 외면할 수 없는 환경적 영향이 IE 의 개발 방향을 크게 바꾸었다고 생각됩니다.

IE8 이 기존의 정책을 바꾸어 웹표준에 친화적인 웹브라우저로 공개되긴 했지만, 앞날이 그렇게 순탄하지만은 않습니다. Netscape 가 존재하던 시절과는 달리, 강력한 오픈소스를 무기로 한 Firefox 3 가 버티고 있고, IE 외에도 웹표준에 최적화된 수많은 웹브라우저가 존재하기 때문이죠.

차후 웹브라우저 전쟁은 플랫폼에 관계없이 웹표준을 얼마나 잘 지키는지, 사용자를 위한 특화 기능을 얼마나 잘 지원하는지에 따라 승패가 결정될 거라고 생각이 됩니다. 이 상황에서 IE 도 기존의 독점적 자세와 지위를 버리고 정정당당히 다른 웹 브라우저와 경쟁을 벌여 좋은 소프트웨어로 발전하기를 바랍니다.

사용자 삽입 이미지

IE8의 새로운 기능을 살펴보겠습니다.
MIX08 컨퍼런스의 발표에서는 8번째 버전에 맞추어 8가지의 내용으로 IE8의 특징을 소개했습니다.  
  • CSS 2.1
    Firefox, Safari, Opera 등의 기존 웹브라우저들과 마찬가지로 CSS2.1을 지원합니다.
  • CSS Certification
    CSS2.1 스펙을 테스트하는 Acid2 Test를 통과했습니다.
  • Performance
    자바스크립트 개발자라면 누구나 느낄법한 IE의 속도문제와 버그를 해결하여 타 브라우저 만큼의 퍼포먼스를 보여준다고 합니다. 실제 웹을 서핑한 결과 이전보단 체감적으로 빨라졌다는 느낌을 주고 있습니다.
  • HTML 5 Start
    HTML5 스펙을 지원합니다. HTML5는 현재 초안(Working Draft) 작업이 진행중인데요, 일부 스펙의 지원을 시작했다고 언급하고 있습니다. (Ajax UI에서 뒤로/앞으로 버튼 액션 지원, 오프라인 후 컨텐츠 임시저장)
  • Development Tools
    웹브라우저 내장의 개발툴로는 유명한 Firefox의 firebug가 있는데요, 이와 비슷한 강력한 개발 도구를 내장하였다고 합니다.
  • Activities
    웹을 사용할 때 원하는 컨텐츠에 대해 빠르게 외부 서비스로 연결할 수 있는 기능입니다. 보통 필요한 정보가 있다면, 이를 마우스로 드래그하여 다른 서비스에서 붙여넣기 형태로 많이 이용하는데, 이 과정을 매우 쉽게 한 것이라고 합니다. 크게 "Look up" 과 "Send" 기능으로 나뉘는데 Look up은 해당 콘텐츠에 대한 타 서비스의 콘텐츠를 볼 수 있고, Send는 말 그대로 외부 서비스(ex. 블로그)로 보내는 것을 말합니다.
    사용자 삽입 이미지
     
  • WebSlices
    쉽게 말하면 RSS의 다른 개념이라고 말할 수 있는데요, 해당 웹페이지에서 제공하는 단편적인 정보들을 상단의 Favorite Bar에 등록하여 해당 정보의 최신 업데이트를 실시간으로 받아볼 수 있도록 하는 기능입니다. 마이크로포맷과 비슷하다고 보시면 될 듯 합니다.
    사용자 삽입 이미지
     
  • Download after keynote?
    특징은 아니지만, 해당 프리젠테이션이 종료된 후부터 IE8을 실제로 다운받을 수 있다고 하는 내용입니다. 실제로 현지시간 3월 5일 오후 12시 30분 즈음부터 다운로드 서비스를 개시했다고 합니다.

이외에도 프리젠테이션에서 언급하지 않은 추가된 기능이 몇 가지 더 있습니다.

  • 버전별 렌더링 엔진 지정
    기존 IE8개발정책 때문인지, 베타버전이기 때문에 존재하는 것인지 확실하지는 않지만, 메타태그를 통해 구 버전의 렌더링 엔진으로 웹사이트를 이용할 수 있도록 하고 있습니다. 또한 "Emulate IE7" 버튼을 통해 IE8 베타 버전이 아닌 기존 엔진을 디폴트로 사용할 수 있도록 배려하고 있습니다.
    개인적으로는 정식 IE8이 출시될 때는 이 기능이 사라졌으면 합니다. 만약 이 옵션이 그대로 존재한다면 웹표준에 맞지 않는데도 개선할 의지가 없는 웹페이지들이 IE8 정식 출시 이후에도 계속 존재할 가능성이 높을 것 같습니다. 
  • 자동 크래시 복구 기능 (Automatic Crash Recovery)
    웹서핑을 하다보면 웹브라우저가 다운되는(죽는) 경우가 발생하는데요, IE8에서는 크래시가 발생한 탭에서 내용을 복구하여 볼 수 있도록 한 기능입니다. Firefox에서는 이미 지원하는 기능이죠.
     
    사용자 삽입 이미지
  • Safety Filter
    IE7 에서 지원하던 피싱 필터를 개선하여 "Safety Filter"라는 이름으로 추가되어 보안이 향상되었습니다.
  • Favorite Bar
    IE7 에서 쓰였던 즐겨찾기 기능에서 더 확장되어 웹 콘텐츠 뿐만 아니라 링크, RSS피드, WebSlice, 오피스 문서(Word, Excel, Powerpoint)도 배치할 수 있습니다.
     
    사용자 삽입 이미지
  • URL 강조기능
    현재 접속하고 있는 사이트의 도메인과 경로를 구분하여 보여줍니다.
    사용자 삽입 이미지

현재 IE8에 대한 프리젠테이션 영상은 Microsoft 사이트에서 실버라이트로 제공하고 있습니다. 앞으로 IE8에 대한 자료가 꾸준히 공개될 듯 하고 IE8에 대해 많은 기술적인 이슈가 존재할 듯 하네요.

프리젠테이션 영상 :
http://www.microsoft.com/presspass/events/mix/default.mspx

소개

웹페이지에서 MAC Address 구하는 ActiveX 컨트롤입니다.
웹에서 인증 처리할 때 아이디, 암호와 같이 사용하면 좋을 것 같습니다.

서버에 미리 접근을 허가할 맥어드레스를 디비, 파일 등에 저장시켜 두고 이 컨트롤로 얻은 맥어드레스와 비교하는 방법으로 사용하면 됩니다.

주의: 자바스크립트로 처리되기 때문에 사용자가 임의의 값을 대입시켜 조작할 수 있습니다. 서버에 저장된 맥어드레스를 알 지 못하면 관계 없습니다만…


기능:
1. 맥어드레스 구하기 - 네트워크 카드가 여러 개 일 경우 모두 구함(한 줄에 하나씩)
2. 컴퓨터 이름 구하기
3. 작업 그룹 구하기

 

Method

-        컨트롤ID.MAC                    -> 맥어드레스 구하기

-        컨트롤ID. ComputerName    -> 컴퓨터 이름 구하기

-        컨트롤ID. WorkGroup          -> 작업 그룹 구하기

(여기서 컨트롤ID는 OBJECT 코드에 있는 ID값입니다.)

 

데모 페이지: http://isulnara.com/myAPP/AuthByMAC/AuthByMac.html

다운로드: http://isulnara.com/myAPP/AuthByMAC/AuthByMAC.cab

 


사용법은 아래와 같습니다.

<OBJECT id="auth" classid="clsid:7C159314-7E2C-4E6E-B580-5DF25610F581" codebase="./AuthByMAC.cab#Version=1,1,1,0">
        <PARAM name=copyright value="http://isulnara.com">
</OBJECT>
<SCRIPT LANGUAGE="JavaScript">
<!--
        alert("맥어드레스:n" + auth.MAC);
        alert("컴퓨터 이름:n" + auth.ComputerName);
        alert("작업그룹:n" + auth.WorkGroup);
//-->
</SCRIPT>

 

설치된 컨트롤 삭제 방법 :

C:WINNTDownloaded Program Files에서 “AuthByMacX Control”을 제거하면 됩니다.

누구나 무료로 사용할 수 있습니다. 단, 리버싱은 허락되지 않습니다.


Ajax 기술 정리

Ajax 클라이언트 측 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=3921

Ajax 서버 측 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=3920

Ajax 패턴 정리 : http://ajaxpatterns.org/Patterns


Ajax 읽어볼만한 글

 
Web 2.0 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=4182

Web 2.0과 Ajax 애플리케이션 : http://cafe.naver.com/ajaxdev/4

Ajax의 효용성에 대한 논문 : http://cafe.naver.com/ajaxdev/101

'Web(웹) Study > Java Script' 카테고리의 다른 글

웹 비표준 innerHTML  (0) 2008.03.10
prototype.js  (0) 2008.03.10
js :: 팝업메뉴 생성하기  (0) 2008.01.18
자바 스크립트에서 HTTP 요청하기  (0) 2008.01.18
서서히, 천천히 나타나는 그림  (0) 2008.01.09

구굴광고를 붙이고나서... 홈페이지의 속도가 현저히 느려지는 느낌을 받앗지만...
뭐... 광고도 하고 간간한 수익도 올리 수 있다는 장점 하나로...

블로그에 붙인지... 거진 1년이 되어가지만...
수익률은 1년동안 250달러 정도...? 한화로 환전 해서 음.... 약! 22만원 정도 받앗다...

1년에 22만원이라....
뭐 어떻게 보면 공돈이라서... 좋기도 하지만...

내 블로그에 정보를 찾고자 방문 하시는 분들께는 느린 홈페이지 속도와 깔끔하지 않은 블로그 구성을 제공했기에 문제점이 있어 보였다...

그래서... 오늘!! 당당하게 구글광고를 빼버렸다...
빼고 나니까... 확연하게 들어나는 로딩 속도와 깔끔해진 블로그... ㅎㅎ

괜히 쓰잘떼기 없는 외부 스크립트 붙여서 블로그 속도가 줄어드는것 보다...
제 블로그를 다녀가시는 모든 분들께 빠른 정보를 제공하고 싶기도 하고,
홈페이지가 느린것이딱 질색인 저로써도... 한결 가벼워진 것 같아... 너무 좋다~

비록 호스팅비용과 도메인 비용은 벌지 못 하지만, 그 얼마 않디는 돈을 벌기위해...
홈페이지 속도와 광고로 인한 복잡해진 블로그를 보고 싶지 않기때문에 과감히 구글애드센스를 버렸다...

아무래도 트레블 라우터의 외관은 이미 'ZEN Style' 이라고 불리우는 미려한 곡선형 디자인에 익숙해진 우리들에게는 다소 낮설 수도 있을 것 같습니다. 논란이 될 수 있는 부분은 이제 넘어가기로 하고 과연 트레블 라우터의 설치 및 설정은 어떻게 이루어지는지 필자와 함께 요목조목 따져 보도록 하겠습니다. Do It Yourself!!


앞에서 설명한 것처럼 제품 CD의 규격은 Mini CD를 기본으로 하고 있으며, 제품 패키지와 동일한 '회색 표면에 붉은 빛의 마크' 가 표기되어 있습니다. 안에 들어있는 구성은 사용자 설명서, 빠른 설치 안내서로 매우 단순합니다. 자세한 것은 익스플로어 모드를 통해서 직접 알아보도록 하겠습니다.


오 이런... 예상하지 못한 현상이 발생되었네요. 이 정도 제품이라면 별도의 'AUTORUN 프로그램' 과 아이콘이 존재할 것으로 생각했지만, 위에서 보이는 것처럼 마치 공 CD를 보는 듯한 이미지를 보여줍니다. 약간만 신경쓰면 해결될 문제인데 다소 아쉽군요.


과연 내부 구성은 어떻게 되어 있을까요? 크게 'File과 User Manual' 로 나누어진 구성을 보여주고 이습니다. File은 PDF 파일을 읽기 위한 아크로뱃 리더 프로그램이 있으며, User Manual에는 앞에서 살펴본 빠른 설치 안내서와 e-카달로그 형태로만 제공하는 사용자 설명서로 구성되어 있습니다.


많은 분들이 다소 오해하는 것이 웹설정을 위해서는 별도의 유틸리티가 포함되어야 한다고 생각하시는 경우가 있지만 '펌웨어 설정이나 각종 모드' 는 처음부터 같이 설계되어 있습니다. 필자는 오히려 사용자 설명서를 별도로 만들지 않고 PDF 파일로만 보관함으로 인해 원가를 절약할 수 있어서 더욱 경제적이라고 생각합니다.


위의 그림은 PDF 파일에서 크롭한 무선 G 트래블 라우터의 사용자 설명서입니다. 자세한 내용은 코러시스 홈페이지에 있는 벨킨 서브 페이지에서 찾을 수 있으니 참고하시길 바랍니다. 이 제품의 주 용도는 위에 적혀 있는 것처럼 '여행 또는 출장시 숙소에서 광대역 인터넷 연결을 공유' 하는 것입니다.


이제 본격적으로 트래블 라우터 제품을 설치해 보도록 하겠습니다. 현재 필자가 사용하고 있는 PC 단말기는 랩탑 형태로써 'SENS X60 W183 모델' 입니다. 참고로 유선 랜카드는 Intel(R) PRO/1000 PL Network Connection 모델이며, 무선 랜카드는 IEEE 802.11b/g+a를 완벽하게 지원하는 Intel(R) PRO/Wireless 3945ABG Network Connection를 사용하고 있습니다.


필자의 노트북은 우측 측면 하단에 조그만한 스위치가 바로 '무선의 온/오프' 를 담당합니다. 무선 네트워크를 사용하기 전에 문제가 있을 경우 보통 사소한 원인에서 비롯되므로 간단한 점검을 꼭 하시길 바랍니다.


장치관리자에서 잡혀 있는 '네트워크 어댑터의 모습' 들입니다. 위에서 언급한 장치들이 제대로 잡혀져 있는 것을 확인할 수 있습니다. 차후 성능 테스트에서 내장된 무선 랜카드와 BELKIN 트래블 라우터와의 비교를 해보도록 하겠습니다.


이번에는 필자가 소지하고 있는 'ASUS WL-330g 모델' 과 크기 및 외관 비교를 해보도록 하겠습니다. 디자인을 어필할 수 있는 측면이 강한 ASUS 제품에 일단 눈이 갈 수밖에 없군요. 단, 크기와 무게에서는 BELKIN 제품이 좀 더 낫습니다. 사실상 우열을 가리기 힘든 와중에 진검 승부는 역시 성능과 발열 테스트가 아닐까 조심스레 추측해 봅니다.

'

현재 필자가 주거하고 있는 기숙사는 4인실로써 한쪽 측면에 '4개의 포트가 집중' 되어 있습니다. 그렇기 때문에 책상이 가까운 사람은 그나마 편하지만 그렇지 않은 사람은 랜선의 연결도 힘들 뿐만 아니라 미관도 많이 해치는 것을 알 수 있습니다.


이런 독특한 내부 구조를 가지고 있기 때문에 유무선 공유기를 이용해서는 선의 정리가 완벽하게 해결되기 힘들 것 같습니다. 또한 저희 학교의 경우에는 노트북 공구와 정보화 장학금 혜택으로 인해 노트북의 수요가 많은 만큼 'AP 라우터' 가 더 효율적이라고 생각됩니다. 일단 USB 전원 어댑터를 통해 연결을 해보도록 하겠습니다.


AP 라우터에 전원이 연결되면 위의 3가지 LED 중에서 우측에 있는 전원 LED가 발광하게 됩니다. 시간이 지나면 좌측에 있는 무선 LED도 빛이 들어오게 됩니다. 가운데에 있는 것은 데이터 LED로 실제 연결이 될 경우에 맞쳐서 실시간으로 깜빡거리게 되는 것입니다. 비교적 시각성이 떨어지는 단점이 있지만 이 정도면 무난하다고 볼 수 있을 것 같습니다.


무선 네트워크를 확인해 보면, 기존에 존재하던 WL-330g의 억세스 포인트와 더불어 새로 추가된 'BELKIN Traveler' 라는 SSID를 가진 목록이 보입니다. 네트워크에 대해서 아무런 지식이 없는 유저들도 단순히 Plug & Play 방식을 가진 이 제품에 쉽게 적응할 수 있을 것으로 보입니다. 그렇다고 여기서 만족하면 뭔가 허전하지 않을까요? 그런 유저들을 위해 다음 단계를 준비했습니다. 모두 GO GO!!



앞에서는 간단하게 트래블 라우터의 외내형에 대해서 알아보았습니다. 이 리뷰의 제목이 SOHO에서 BUSINESS라는 점에서 착안하여 필자가 현재 작업하고 있는 전산실에서 이 제품의 모든 모드가 어떻게 작동되는지 살펴보겠습니다.


현재 사용중인 스위칭허브는 'BayStack 102 & SmartEther SS6024' 라는 제품으로 둘다 32포트를 지원하고 있습니다. 저희 학교 전산소에서 우리 대학 1층 경비실에 있는 라우터로 포트를 보내주는데 그 중에서 저희 전산실에 2개의 UTP선을 제공한며 그 선을 한 개씩 연결한 것이 바로 이것입니다.


무선 네트워크를 연결하려고 하니, 기존 무선 설정을 받는데 다소 시간이 걸리는 것 같았습니다. 그래서 PC를 다시 리부팅하고 트래블 라우터를 리셋하도록 하였습니다. 그런 다음 연결을 하니 위의 팝업창처럼 현재 연결되었다는 말풍선이 뜨는군요.


일단 가장 먼저 어댑터 기능에 대해서 살펴보도록 하겠습니다. 사실상 AP와 Router 기능은 '중계기(모뎀)가 달려있는가의 유무' 에 따라서 결정되니 동일하다고 보셔도 됩니다. 실제 혼용하여 사용해도 큰 문제가 없었습니다. (단, 어댑터 모드를 마치고 사용할 때는 설정한 수동 IP를 해제해야 하니 좀 불편하긴 합니다.)


가장 먼저 살펴볼 기능은 바로 '어댑터 모드' 입니다. 필자가 기존에 사용하고 있던 WL-330G의 경우에도 이터넷 어댑터 모드가 존재하였는데 이 기능은 현재 무선랜카드가 없는 랩탑을 위해 마치 외장 어댑터 역할을 하게금 하는 기능입니다. 설정을 위해서는 192.168.2..225와 같은 서브넷 범위네에서 유선 이터넷 카드의 IP를 변경해야 합니다. 즉 서브넷 마스크는 255.255.255.0이므로 IP 주소의 범위는 1~254 중에서 아무꺼나 설정해도 됩니다.


어댑터 모드에서 웹설정을 접속하는 IP는 약간 독특하기 때문에 암기나 메모가 필요하다면, 일반 라우터 모드에서의 접속은 '192.168.2.1' 로 쉽게 기억할 수 있습니다. 처음에는 패스워드가 설정되지 않았기 때문에 쉽게 로그인이 가능합니다. 전체 메뉴의 구성은 ①LAN 설정, ②인터넷 WAN, ③무선, ④방화벽, ⑤유틸리티 순입니다.


웹설정 화면의 전체 레이아웃은 최상단에 벨킨 로고와 '홈/도움말/로그아웃' 의 항목으로 구성되어 있으며, 좌측에는 메인과 서브메뉴가, 그리고 우측에는 각 설정에 대한 항목과 설명이 되어 있습니다. 한글화가 잘 되어 있으며, 구성이 쉽게 손이 가도록 설계되었습니다. 유틸리티에서는 라우터의 여러 가지 환경 설정을 관리하고 특정 관리 기능을 수행할 수 있습니다.


이 제품의 이름 그대로 유선 연결이 아닌 무선 연결만 가능한 네트워크 기기입니다. 무선 설정에서는 채널과 SSID, 그리고 무선 모드의 설정이 가능합니다. 무선에 있어서 가장 큰 적은 역시 보안이라고 할 수 있습니다. 모든 사용자가 접속할 경우 보안뿐만 아니라 접속 속도까지 저하시킬 수 있는데 여기서는 'WPA/WEP(64 & 128bit)' 가 지원되어 안심할 수 있습니다.


아무래도 방화벽과 관련된 기능의 경우에는 국산 제품이 아니라서 응용 프로그램 리스트가 다소 이질적인 것이 많습니다. 그러나 포트 범위를 통해 호환성을 높여주는 '포트 트리거나 가상 서버 기능' 을 제공하는 만큼 사용하는 데 있어서 큰 문제는 없을 것으로 생각됩니다.


마지막으로 살펴볼 기능은 바로 도움말 기능입니다. 단순 네트워크 용어 뿐만 아니라, 전체에 디테일한 설명이 포함되어 있어서 '한 편의 사전' 과 같은 느낌을 들게 합니다. 비록 각 용어집에 대한 리스트나 검색 기능이 없어서 다소 아쉽긴 하지만, 한글화 런칭에 있어서는 충분히 큰 박수를 받을만하다고 생각한다.



마지막으로 트레블 라우터의 성능 및 발열 테스트 그리고 간단한 활용기를 적어보도록 하겠습니다. 필자의 개인적인 사정으로 인해 오랫동안 사용해보지 못해서 아쉽지만 그 만큼 타이트하면서 스릴있는 리뷰였던 것 같습니다.


테스트에서 알아볼 항목은 벤치마크 사이트를 통한 '①속도 테스트' , 그리고 적외선 온도 벤치툴을 통한 '②발열 테스트' 입니다. 그리고 간단하게 필자의 집에서 '③무선 수신 테스트' 를 해보도록 하겠습니다.


측정한 곳은 필자가 거주하고 있는 대학교의 기숙사에서 이루어졌습니다. 최대한 동일한 환경에서 측정하기 위해서 각 AP를 랜 포트와 파워 어댑터를 연결했으며, 약간의 오차가 있지만 동일 시간대에서 이루어졌습니다. 저희 학교의 경우에는 '기가비트 이터넷 환경' 이기 때문에 20Mpbs 급의 속도가 나오는 것을 볼 수 있습니다.


앞에와 마찬가지로 유선을 통해 직접 연결한 상태에서 이번에는 경로추적 서비스를 사용해 보았습니다. 포워드에 비해 리버스 경로추적이 조금 불안한 편이군요.


이번에는 BELKIN 트래블 라우터를 통한 속도 체크입니다. 확실히 유선에 비해서 많이 늦는 것을 볼 수 있습니다. 그럴만도 한 것이 여기까지 오는데 3개의 라우터를 거쳐야 하니 신호감쇄가 일어나는 것은 어떻게 보면 당연한 일이겠죠.


경로추적 서비스 결과도 마찬가지입니다. 안정적이며 높은 반응속도를 보였던 Forward Traceroute의 경우에도 아까와는 다소 다른 결과를 보여주는군요. 중간에 하나의 경로가 새로 생긴 것도 리스트에서 확인할 수 있습니다.


이번에는 적외선 온도 측정기로 전체적인 온도를 측정해 보았습니다. 사실 실험하기 전부터 높은 발열은 어느 정도 인지가 가능했습니다. 이전에 사용하던 WL-330g 같은 경우에도 후끈후끈하다는 것이 느껴질 정도였는데 이 제품의 경우에도 크게 다를 것은 없더군요. 오히려 전면의 온도는 3℃ 가량 더 높았습니다.


후면의 경우에는 당연히 통풍구가 있는 전면보다 더 높은 온도를 보여주었습니다. 물론 오십보 백보라고 할 수도 있지만 비교 제품인 WL-330g에 비해서 여기서는 3℃ 가량 낮은 온도를 보여주었습니다. 사실상 온도에서는 무승부라고 봐도 큰 무리가 없을 것 같습니다.


이번에는 무선 수신 감도에 대한 간단한 테스트를 해보았습니다. 아무래도 다양한 장애물과 넉넉한 거리에서 테스트가 가능한 아파트에서 특정하는 것이 보다 입체적인 결과치가 나올 것으로 생각되었습니다. 놀라운 것은 벽 1개의 장애물과 5M의 거리, 그리고 1층 정도의 높이를 보여주는 'test #3' 에서도 미약하긴 하지만 1Mpbs 정도의 속도로 사용가능했습니다.


신호세기가 직접적으로 표시되는 KT NESPOT CM을 통해서 자세히 비교해보았습니다. 위의 수치는 'test #1' 에서 실험한 결과로 약 5M의 거리로 동일한 환경임에도 불구하고 신호세기는 Belkin Traveler가 좀 더 우수했습니다. 수신감도에서는 역시 다크호스다운 면모를 보여주는 Belkin 제품에게 손을 들어주고 싶습니다.


간단하게 총평을 내리자면, 경제적인 가격으로 다양한 활용이 가능한 제품이라고 생각합니다. 즉, '디지털 노매드 족' 을 위한 필수적인 네트워크 기기가 될 수 있는 요소를 많이 가지고 있습니다. 일단 사용하기 쉽다는 것과 높은 가격대 성능비를 가지고 있다는 것, 그리고 높은 수신 거리를 보여주고 있다는 것이 바로 그것입니다.

아쉬운 점은 국산 어플리케이션과는 약간 이질적인 웹설정과 특정 플래시나 웹사이트가 나타날 때 속도 저하가 있다는 점인데, 이런 점은 완벽하게 로컬라이징된 한글화와 앞으로 등장하게 될 펌웨어로 어느 정도 극복은 가능한 점입니다. USB 어댑터를 통한 신속한 AP 모드로의 변화, 그리고 깔끔하고 고급스러운 이너 케이스의 존재는 이 제품을 구입하게 만드는 '소금과 같은 요소' 라고 생각합니다.^^


이 제품에 대한 리뷰를 하기 전부터 과연 서두를 어떻게 작성하는 것이 좋을까라고 많이 고민해 왔습니다. 그것도 그럴 것이 지금까지 나온 트레블 라우터 제품군 중에서 현실성 있는 가격과 높은 기능을 보여주는 이 제품에 대한 열망을 강하게 표현하고 싶었기 때문입니다. 필자의 주관이 들어간 견해보다는 작년 9월에 있었던  'BELKIN 무선랜 파티' 에 대한 탐방기 간단하게 언급하는 것이 많은 분들에게 도움이 될 것 같습니다.


그럼 지금부터 작년 9월 24일 토요일 오후 3시에 있었던 '코러시스 주관' 의 BELKIN 무선랜 파티에 대한 간단한 참관기를 먼저 적어볼까합니다.. 네트웍스 관련해서 관심이 있으신 분이라면 모를까 일반 유저들에게는 다소 생소한 업체라고 생각되실 겁니다. 저 같은 경우에도 올해 초에 들어서 본격적으로 알게되었으니 말이죠. 그래서 잠시 BELKIN이 도대체 뭐하는 곳인지 언급을 해볼 필요가 있을 듯 합니다.


그럴만도 한게 넷기어나 링크시스와 같은 경우에는 국내 시장에 알려진 것도 3년이 넘었고, 특히 넷기어는 마케팅 면에서도 상당히 신경썼기 때문이죠. 이에 반해서 BELKIN은 KVM 스위치나 PureAV와 같은 Wireless와는 다소 거리가 먼 제품을 만드는 곳이었습니다. 기존 제품들이 선점하고 있으면 시장진입이 어려울 것은 당연한 얘기이지만 D-LINK 제품과 더불어서 요즘 한창 뜨고 있다는 것을 보면 어느 정도 'Wireless에 대한 성능' 은 보장되었다고 봐야겠죠


이번에 BELKIN 부사장이 방문하여 코러시스와의 합작 및 런칭 기자 발표회를 일주일 앞두고 코러시스에서는 파워유저들에게 먼저 제품을 시연하면서 제품에 대한 목소리를 듣기 위해서 무선랜 파티를 열었습니다. IEEE 802.11n 규격의 기술이라고 할 수 있는 airgo사의 TRUE MIMO 칩셋을 장착한 'Pre-N MIMO 제품' 을 볼 수 있는 기회라서 놓치기가 힘들더군요^^


저 같은 경우에는 다른 일정을 포기하고 바로 행사장에 도착했기 때문에 그 만큼 많은 대화를 할 수 있었습니다. 코러시스에서는 윤상헌 대표이사 님, 이경환 과장님 등 해서 4분이 오셨구요, 아이티로그인의 김태현 이사님과 어느새 유명인이 되어 버리신 거스트 정보통신의 김현기 고객지원팀장님도 오셨습니다. 네트워크 분야의 산증인이라고 할 수 있으신 분들의 참석으로 인해 이 행사에 대한 관심을 대략 알 수 있었습니다.


맨 처음에 진행된 프리젠테이션을 봐서 알았지만, MIMO 기술이 10년 전에 발표되었다는 것에 대해서 일단 놀라웠구요. 이론상이긴 하지만 8배 넓은 커버리지 영역과 6배 빠른 속도를 보여주는 것은 '하나의 혁신' 이라고 할 만하더군요. 근데 위와 같은 테스트는 방해물이나 주파수에 대한 간섭이 전혀없는 마치 무균실과 같은 곳에서 한 결과라서 실제로는 각각 2배 정도의 성능향상이라고 보면 될 것 같네요.


저랑 같이 Pre-N 제품을 테스트를 하신 테크니컬 라이터 분은 역시 MIMO에 관련된 논문을 제출한 경험이 있어서 그런지 날카로운 지적과 좋은 TIP을 몇몇 제공해주셨습니다. 저도 언급했지만 모빌리티 관련해서 접속 유틸리티에서 제공하는 '스트렝쓰 시그널 문제' 는 타사에서 한 것처럼 갱신을 지속적으로 해준다면 충분히 해결이 될 것 같더군요. 만약 신호만 강해지고 데이터 전송량에는 변경이 없다면 유저들에게 오해를 불러드릴테니까요.


그리고 타사의 제품보다 BELKIN 제품이 가지는 장점이 바로 오토매틱 QoS 기능과 무선보안의 필수라고 할 수 있는 WPA-PSK를 지원하면서, 보안에 따른 속도 감쇄가 거의 없다는 점인데 이런 점을 BELKIN 마케팅에서 보다 강하게 어필하면, 호응이 대단할 것 같습니다. 아무튼 'BELKIN CM Utility' 는 좀 더 정확하게 수정되어야한다는 것이 공통적인 생각이었습니다.


제가 포터블 라우터에 대해서 관심이 많은지라 신제품이라고 할 수 있는 'Wireless G Router F5D7230kr4' 는 여타 포켓형 라우터와 비견이 될만 합니다. 가격대는 아마 5~6만원 정도가 될 것 같고 BELKIN 제품이 무선 성능에서 보다 특화된 면과 로컬라이징 된 매뉴얼과 웹설정의 환벽한 한글화, 그리고 11월부터 본격적으로 오픈될 고객지원센터를 통해서 차별화된 마케팅 전략을 펼칠 예정이라고 하시는군요.(기억에 의존해서 적는거라서 틀릴 수 있습니다.^^)


유저들이 가지는 잠시의 시연회를 마치고 이제 본격적으로 각 브랜드별 무선랜 성능을 테스트를 해보기로 했습니다. 일단 넷기어 제품은 슈퍼 G 기반으로 'TRUE MIMO 칩셋' 을 사용한 링크시스와 BELKIN 제품과는 많은 차이를 보였습니다. 실제 노트북을 들고 무선랜 성능을 측정해 보았는데 역시 공구리 벽까지 뚫는 성능을 보여주는 BELKIN Pre-N 제품에 많은 눈길이 갈 수밖에 없었습니다. 여기서 몇가지 체크한 사항을 살펴본다면...

첫 번째로 MIMO 기술이라는 게 아무래도 목조 양식이 발달된 미국과 유럽에서 발전되었기 때문에 우리나라와 같은 건축양식에는 다소 부적합할 수 있다는 것입니다. 그래서 진정한 성능을 얻기 위해서는 방 안보다는 중앙 복도 상단에 설치를 해야지 그 진가를 확인할 수 있습니다. SOHO용으로 더욱 최적화된 성능과 활용이 가능하겠습니다.

두 번째로 MIMO 제품은 무선 적합반경이 존재한다는 것입니다. 저도 잘 몰랐던 건데 일반 유무선 라우터 제품과는 달리 약 50~80cm 정도의 거리를 두어야 진정한 108Mpbs 데이터 전송량이 나온다고 합니다. 비유를 하자면, 올림픽 멀리뛰기 종목에서 더 멀리 나가기 위해서는 디딤 동작이 필요한 것을 언급할 수 있을 듯 합니다. 물론 원리는 좀 다르겠지만요.

세 번째로 BELKIN CM Utility의 스트렝쓰 시그널 감도가 40% 까지는 정확하게 나타내는데, 그 이하의 수치는 사실상 없더군요. 실제로 야외 무선랜 테스트를 할 때, 갑자기 무선랜이 끊어졌기 때문에 기술지원팀장님이 좀 당황하시더군요. 이 점은 역시 정식 출시할 때는 수정될 것으로 보이는 군요.


야외 무선랜 비교 테스트를 마치고 드디어 모두 기다리던 경품 추천 행사가 벌어졌습니다. 다른 곳보다 역시 엄선된 파워유저 분들만 오셔서 당첨확률이 상당히 높았습니다. 위에 보시는 것이 바로 코러시스에서 만든 자체 브랜드 'Mazelink'의 풀 패키지인데 이게 바로 대상급이라고 할 수 있는 '밸킨상' 입니다. 염장일지 모르지만 저도 경품 추천 결과 BELKIN Pre-N Router를 한 개 더 받게 되어서 심히 숙쓰럽기도 하고, 기쁘기도 하고... 묘한 기분이었습니다.(ㅡㅡ)


제품 행사장에서 받은 앞으로 BELKIN과 런칭할 제품에 대한 간략한 소개가 적혀있는 카탈로그의 모습입니다. 앞으로 코러시스는 이 행사와 연계해서 가칭으로 'BELKIN MANIA CLUB' 을 파워유저 중심으로 운영 준비중이라고 합니다. 앞으로 지방 유저를 위한 투어라던지, BELKIN 국내 홈페이지 신설 및 기존 코러시스 홈페이지 리뉴얼을 준비중에 있다고 하니 이번 행사를 시작으로해서 본격적인 Promotion 전략을 선보일 것으로 기대됩니다.


지금까지 선보인 제품은 아직 Wireless에 국한이 되지만, KVM 스위치와 블루투스를 시작으로 해서, 다양한 키보드와 마우스와 같은 입력장치, USB 관련장비, 그리고 심지어는 노트북 가방까지 총판이 된다고 합니다. BELKIN이라는 제품이 이런 '매니아 악세사리' 에 오히려 네임밸류가 높으니 저로써도 많은 기대가 되며, 직접 경험해보고 싶은, 그런 욕구가 강하게 듭니다.


많은 유저들이 기대하시는 '802.11n 무선 규격' 은 2005년에서 2006으로 연기가 되었으며, 아직까지 표준도 제대로 정해지지가 않았습니다. 그러나 최대 240Mbps 속도의 3세대 MIMO 칩셋을 Airgo에서 발표했다는 점을 볼 때, BELKIN이 채택하고 있는 TRUE MIMO가 유력해 보이며, 내년에 규격이 채택된다면 320Mbps의 무선 속도가 이루어질 것으로 보입니다.

기존 802.11g 기반이 54Mbps라는 점을 볼 때 엄청난 발전이 아닐 수 없으며, 이런 기술을 미리 경험(Pre-N)할 수 있었던 이번 BELKIN Wireless LAN Party 행사는 많은 유저들에게 좋은 행사로 다가온 것 같습니다. 앞으로 야심차게 준비한 라이트 급의 MIMO 제품이나, 담배갑보다 작은 AP Router 장비도 출시된다고 하니 많은 기대가 되며, 앞으로의 코러시스의 움직임을 면밀히 주목해야 할 것 같습니다.



앞에서 보신 것처럼 Belkin과의 특별한 인연을 가지고 있던 필자에게 우연하게 '노트유저' 를 통해서 기묘한 조우를 하게 되었습니다. 2전 3기의 도전만에 직접 사용하게 된 기회를 얻게 된 첫 만남은 과연 어떠한 느낌이었을까요?


예전에 BELKIN MINO Wireless N 제품을 사용한 경험이 있었던 필자로써 이번에 출시된 '트레블 라우터 패키지' 는 매우 낮익는 것이 사실입니다. 전체적으로 화이트 색상에 회색조의 색상이 결합된 만큼 고급스러움이 매우 높은 편입니다. 제품 크기만 다르지 전체적인 레이아웃은 동일하다고 보면 될 것 같습니다.


트레블 라우터는 휴대성이 강조된 제품인 만큼, 좌측 상단에 BELKIN 로고가 찍혀져 있으며, 우측에는 최대 5배 이상의 속도와 300ft 만큼의 사정거리를 가지고 있습니다. 그리고 하단에는 한국어로 완벽하게 '로컬라이징' 되어 있다는 표시와 한국에 있는 기술 지원 핫라인의 전화번호가 표기되어 있습니다.


정면 모습말고 측면 모습도 한번 살펴볼까요? 측면에는 이 제품의 기본 요구사항과 특징에 대해서 언급되어 있습니다. AP 라우터 제품으로써는 저렴한 5만원 후반대의 가격에도 불구하고 '이너케이스' 가 기본적으로 포함되어 있는 것이 큰 특징이네요. 그리고 기본적으로 이 제품은 IEEE 802.11b/g 기반으로 작동됩니다.


전반적으로 한글화가 깨끗하게 되었으면 좋겠다는 생각이 들지만 과도한 편집으로 '본연의 제품 특성' 을 잃게 된다면 더 큰 문제라고 생각합니다. 그런 까닭인지도 몰라도 패키지의 한글화는 국부적으로 이루어졌을 뿐, 거의 손보지 않았다는 것이 맞을 듯 싶습니다.


짧은 필자의 영어 실력이지만 후면의 전반적인 레이아웃에 대해서 살펴본다면 최상단에는 트레블 라우터의 존재로 인해 랩탑 간의 활용이 간단하게 서술되어 있습니다. 비즈니스나 호텔과 같은 장소해서도 상당한 효과가 예상됩니다. 또한 기존의 WEP 뿐만 아니라 WPA 암호화 기법도 지원되어 'Network Security' 를 보장해 줍니다.


기본 사양과 특징이 서술되어 있는 곳의 반대편 측면을 보면 약간 색다른 특징을 살펴볼 수 있습니다. 이 조그만한 제품이 '3色의 독자적인 모드' 를 지원하다는 것입니다. 크게 ①Router Mode, ②Adapter Mode, ③Access Point Mode로 나누어지는데 자세한 것은 추후 웹설정을 테스트해보면서 살펴보도록 하겠습니다.


패키지 외곽면을 분해해보면, 트레블 라우터의 '본체가 노출된 구조' 라는 것을 알 수 있습니다. 답배갑만큼 슬림하고 작은 이 제품을 보여주는 것이 마케팅에 있어서 더 낫다는 걸 잘 알고 있는 듯 합니다. 과연 내부 구조는 어떤 식으로 구성되어 있을까요?


일반적인 패키지와 마찬가지로 접이식 구조로 되어 있는 것을 확인할 수 있었습니다. 내부 재질은 수분에는 다소 약하지만, 충격에 강하면서 '친환경적인 강화 펄프' 로 되어 있습니다. 과측에는 제품 퀵가이드 매뉴얼과 이너 케이스가 비닐로 포장되어 있으며, 우측에는 두툼한 종이와 함께 트레블 라우터 본체가 위치해 있군요.


독자 분들의 이해를 쉽게 도와주기 위해 별도로 분해해서 촬영을 해보았습니다. 충분히 충격에 대비한 내부구조이지만 '한번 더 패키징' 함으로써 사실상 완충이라도 봐도 될 것 같습니다. 참고로 비닐을 벗겨낸 후 홈에서 가볍게 들어내면 쉽게 탈착할 수 있습니다.


측면에서 보면 '두툼한 골판지가 3겹' 으로 되어 있는 것이 보이죠? 마치 삼겹살이나 엄마손 파이를 연상시키는 느낌을 가지게 됩니다. 사용자에게 신뢰를 얻을 수 있는 내부구조라고 할 수 있습니다.


이번에는 '퀵 가이드 매뉴얼' 을 살펴보도록 할까요? 완벽한 로컬라이징은 첫 면에서 쉽게 발견할 수 있습니다. '빠른 설치 안내서' 라는 순 우리말을 적음으로써 처음 사용하는 유저라도 이질감을 느끼지 않을 것 같습니다. 별도의 설명서가 종이 문서로 포함된 것은 아니기 때문에 보관에 각별한 주위가 필요할 것 같습니다.


빠른 설치 안내서 첫면과 후면에서 특징적인 점은 앞에서 얘기했다시피 완벽한 한글화를 들 수 있습니다. 이 제품의 코드명인 'F5D7233kr' 을 통해서 코러시스에서 정식으로 총판하고 있는 제품이라는 것을 알 수 있습니다. 후면에는 Belkin Tech Support의 첫 번째 항목으로 우리나라 연락처가 적혀 있어서 기분이 뿌듯하네요.^^


내부 매뉴는 트레블 라우터에 대한 기본적인 소개와 라우터 모드와 어댑터 모드에서의 설치 및 설정 방법이 설명되어 있습니다. 간단한 설명 위주로 되어 있는 만큼 보다 고급 설정을 하기 위해서는 CD에 포함되어 있는 사용자 설명서를 참고하는 것이 좋을 것 같습니다. 일단 '내부 메뉴' '폰트의 명확성' 에서는 좋은 점수를 줄 수 있을 것 같습니다.


트레블 라우터라는 용어 자체에서 이미 휴대성이 강조된 것을 알 수 있습니다. 그래서 그런지 설치 CD도 패키지에 알맞는 '미니 CD' 를 첨부했습니다. 깔끔하면서 심플한 CD는 전체적인 조화를 이루는 데 큰 역할을 합니다. 내부 구성에 대해서는 설치 & 설정 챕터에서 살펴보도록 하겠습니다.



비록 기묘한 조우였지만, 트레블 라우터와의 첫 느낌은 상당히 산뜻했습니다. 시스코-링크시스나 넷기어에 비해서 국내에 대한 인지도가 다소 떨어지는 것이 사실이기 때문에 많은 분들이 이 제품의 외관에 대해서 많이 궁금해할 것으로 생각합니다.


필자의 경우에는 사실 이전 'Belkin Wireless Lan Party' 에 참석하면서 이 제품에 대한 간략한 정보를 얻었기 때문에 본체의 디자인 보다는 이너 케이스에 대한 욕망이 강했던 것이 사실입니다. Belkin이라는 회사가 단순히 네트워크 뿐만 아니라 노트북 가방과 같은 악세사리에도 실제 제품을 선보이는 만큼 기대가 안될 수가 없더군요.


역시 필자의 기대에 어긋나지 않게 상당히 '깔끔하면서 고급스러운 블랙 색상' 의 이너 케이스를 제공해줍니다. 마치 일본의 ELECOM사의 케이스가 연상되는 듯한 외관을 보여줍니다. 보급형 AP 기기인 만큼 마감이 우려되지 않을 수 없었으나 실제 꼼꼼하게 살펴본 결과 그런 문제는 없었습니다.


아무리 휴대성이 강조되고 '내부 구성물이 최적화' 되어 있더라도 너무 허전한 것을 느꼈습니다. 그래서 가장 의심스러운 이너 케이스를 열어보니 어댑터와 USB 케이블, 그리고 랜 케이블이 포함되어 있는 것을 확인할 수 있었습니다.


넉넉한 수납공간과 선 정리를 쉽게 할 수 있는 타이가 제공되어 실제 수납시에도 큰 문제가 없었습니다. 다만 주의할 점으로는 '트레블 라우터 본체와 파워 어댑터가 중첩' 될 경우에는 다소 공간이 협소하여 사용하는 데 애로사항이 있을 수 있으니 위에 보이는 것처럼 배열에 약간 신경써서 사용하는 것이 좋을 것 같습니다.


전원 어댑터는 일반 사용하는 제품과 큰 차이가 없습니다. 트레블 라우터라는 특성상 좀 더 작으면 좋겠지만, 그럴수록 안정성에는 문제가 될 수 있으니 최선책은 아닌 듯 싶습니다. 그래도 '길쭉한 외관' 을 가지고 있기 때문에 이너 케이스 수납에는 적합한 편입니다.


일반 랜 케이블과는 많이 이질적인 형태를 뛰고 있습니다. 마치 광 케이블을 연상시키는 '슬림한 라인' 이 특징입니다. 휴대용이 강조되는 제품인 만큼 이런 슬림한 라인이나 버튼으로 길이를 자유자재로 조절할 수 있으면 선정리가 필요없는 제품이 알맞을 것을 생각됩니다. 그러나 1M도 안되는 길이를 가지고 있기 때문에 어댑터 모드에서 적합해 보입니다.


필자가 현재 소지하고 있는 제품인 ASUS WL-330g AP 라우터의 경우에는 파워 어댑터를 통한 사용이 가능한 것에 비해 이 제품은 'USB를 통한 사용' 이 가능하기 때문에 진정한 포터블이라고 할 수 있습니다. 주의할 점은 USB 허브를 통한 연결을 하면 전원 공급이 불안정하기 때문에 PC 단말기의 USB 포트에 직접 연결하시길 바랍니다.


솔직하게 말해서 Belkin 제품의 디자인은 일반 유저들에게 강하게 어필하기는 다소 무리가 있어보이는 것이 사실입니다. 링크시스 제품이 푸른색을 강조한다면 벨킨 제품은 '회색 빛깔' 이 그 역할을 하는데, 일반적인 우리의 정서와는 약간 차이가 있어 보입니다. 물론 필자의 주관적인 판단이 들어갈 수도 있지만 다른 분들도 거의 같은 생각을 가지고 계시더군요.


본체에 대한 소개를 할 때에는 보통 전형적인 멘트로 곡선형, 사면형, 직각형 등을 사용하지만 이 제품은 한마디로 종결시킬 수 없는 '미묘한 디자인' 을 보여주고 있습니다. 약간 미려한 곡면이 가미되면서 중앙에는 오목하게 들어가 있는 디자인입니다. 한 가지 분명히 언급하고 싶은 것은 사진으로 보는 것보다 실제 보는 것이 더 매력적이라는 것입니다.


이번에는 측면에서 본 모습으로 앞에서 말한 미묘한 곡면이라는 용어의 이해가 어느정도 되실 것으로 생각됩니다. 전체적인 트레블 라우터 크기와 일치하는 안테나가 달려져 있으며, '공기의 배출을 위한 통풍구' 가 있습니다. 이런 소형기기의 가장 중요한 평가요소는 역시 발열의 정도라고 보기 때문에 차후에 전문 벤치마킹 툴을 이용해서 측정하도록 하겠습니다.


그럼 '후면에 위치한 출력부' 를 한번 살펴보도록 할까요? AP라는 특성 때문에 유무선 공유기에서 볼 수 있는 LAN 포트는 보이지 않습니다. 좌측부터 5V 1A라고 적혀있는 파워 어댑터 단자, 사실상 WAN 포트의 역할을 하는 LAN 포트, 그리고 모드를 변경할 수 있는 스위치가 위치해 있습니다. 약간 상단에는 BELKIN이라는 명칭이 음각으로 새겨져 있군요.


여러 가지 편리할 특징이 존재하지만 이 제품의 가장 두드러지는 점은 역시 '여닫이 스위치' 하나로 3가지의 모드를 자유자재로 선택할 수 있다는 것입니다. 좌측으로 이동시에는 AP 모드, 정가운데에는 Router 모드, 우측으로 이동시에는 Adapter 모드입니다. 후면에는 '리셋 단자' 가 존재하기 때문에 설정이 문제될 경우 쉽게 Default로 되돌릴 수 있습니다.


마지막으로 제품 뒷면에 대해서 살펴보도록 하겠습니다. 단순히 디자인은 일반 공유기와 그다지 큰 차이점은 없지만 크기면에서는 엄청나게 작다는 것을 인지하셔야 합니다. '전자 & 전기 인증 마크' '기본적인 스펙' 을 스티커를 통해 다시 한번 확인할 수 있습니다.

2015년 06월 : 도메인 포기
                eblog4u.net / blog4u.kr

2012년 09월 : 개인 호스팅 -> 다음 티스토리 호스팅 변경

2011년 03월 : Textcube 버전 변경 ( 1.7 -> 1.8 )

2010년 07월 : 블로그 스킨 변경 & 활동 재계.

2010년 01월 : PhotoGrapher 블로그 활동 중단.
                 전체적인 블로그 활동 중단.

2009년 03월 : PhotoGrapher 블로그 활동 변경.

2008년 11월 : 블로그 명칭에 맞는 타이틀 제작
                 타이틀, 블로그에 어울리는 블로그명함(블.명) 제작

2008년 10월 : skystory.kr , skystory.co.kr 도메인 추가 구입
                 블로그명칭 변경 " 블로그포유 -> 하늘이야기 "
                 ( 기존 blog4u.kr , eblog4u.net 도메인 연결 유지 )

2008년 03월 : eblog4u.net도메인 구입
                 blog4u.kr에 이어서 서브 도메인으로 연결

2007년 12월 : Tattertools 시리즈에서 TextCube  시리즈로 블로그 기본 베이스 변경

2007년 10월 : ( EUC-KR )에서 ( UTF-8 )로 서비스 변경
                 EUC-KR로 되어있던 블로그데이터 모두 손실.

2007년 06월 : blog4u.kr 도메인 구입
                 my-sky.co.kr 에서 주 도메인을 blog4u.kr로 변경
                 블로그명칭 변경 " 작은소망 -> 블로그포유 "

2006년 04월 : Tattertools 0.97 Classic으로 메인 블로그 프레임 변경

2005년 12월 : my-sky.co.kr 도메인 구입 
                 Tattertools 0.96으로 블로그 새롭게 시작
                 블로그명칭 설정 " 작은소망 "

2005년 03월 : 호스팅 업체 변경 
                 호스팅 업체 변경 하다가 지금까지 쌓아온 개인 데이터 손실.

2005년 02월 : ddochi.net도메인 구입 
                 szclub.net도메인에서 ddochi.net으로 주사용 도메인 변경

2004년 05월 : Tattertools 0.92 개인 홈페이지에서 블로그로 변경

2002년 04월 : ezboard ( CGI ) 이용한 개인 홈페이지 구축

2003년 07월 : zeroboard ( PHP ) 게시판 변경
                 개인 홈페이지 디자인, 구조 변경

2002년 03월 : szclub.net 도메인 구매


TABLE의 CellPadding 과 CellSpacing 을 이용한 테이블 디자인

CellPadding은 하나의 셀(칸) 에서 내용물과 셀 경계가 얼마나 간격을 둘지를 얘기하는 것이고 ... 이 값을 높이면 내용물에서 셀의 경계선이 멀어지게 된다.

CellSpacing은 개별 셀(칸)이 테이블이나 다른 셀로 부터 얼마나 간격을 줄 건지를 얘기하는 것 ... 이 값을 높이면 테이블로 부터 또는 다른 셀들과의 간격이 멀어지게 된다.

한가지 !!! 내용물 배치를 위한 뼈대를 만들 경우는 정확한 배치를 위해 둘다 "0" 을 사용한다.


■ CellPadding / CellSpacing

CellPadding 지정(X)
CellSpacing 지정(X)
Border 지정(X)
CellPadding=0
CellSpacing=0
Border=0
CellPadding=3
CellSpacing=0
Border=0
   
   
abc 하하
하하 abc
abc 하하
하하 abc

* 첫번째 경우는 피하는게 좋겠다. 정확한 표현을 하는 습관을!!!
* 두번째 경우는 정확한 넓이를 가지고 있다. 원하는 위치에 내용물 배치할 때 사용
* 세번째는 내용물을 경계에서 붙지 않도록 하고, 셀의 높이를 지정하지 않아도 될 경우가 많다.



■ CellSpacing 으로 가늘게 경계선 그리기


* 항목을 배치할 때는 CellPadding을 꼭 사용하는 게 좋다. 경계선에 붙지 않도록 !!!

* 다음에 나오는 선은 Table의 바탕색이 CellSpacing 값 만큼 선으로 나온다



하늘을 가리는 천정(table) 이 있고 바탕색(bgcolor)은 파란색이라면...

그 천정이 4개의 조각(td) 으로 되어 있는데 바탕색(bgcolor)은 흰색이라면...

4개의 조각(td)이 빈틈없이 천정(table)을 덮고 있을 때는 하늘의 파란색(table bgcolor)이 보이지 않았는데...

4개의 조각들(td)의 사이(CellSpacing)를 1픽셀씩 벌린다면 ...

하늘의 파란색이 그 사이로 보이게 된다!!! 그게 선처럼 보이는 것!

CellPadding=3
CellSpacing=1
Border=0

table 에 bgcolor 적용
td 에 bgcolor 적용
CellPadding=3
CellSpacing=1
Border=0

table 에 bgcolor 적용
td 에 bgcolor 적용
CellPadding=3
CellSpacing=1
Border=0

table 에 bgcolor 적용
td 에 bgcolor 적용
abc 하하
하하 abc
abc 하하
하하 abc
abc 하하
하하 abc
abc 하하
하하 abc
abc 하하
하하 abc
abc 하하
하하 abc
CellSpacing=5
abc 하하
CellSpacing=5
abc 하하
CellSpacing=5
abc 하하


테이블 사용시 Border,CellPadding,CellSpacing 은 꼭 지정하고 사용하는 습관을 !!!

① 글자의 간격을 지정할 때(letter-spacing)

    - {letter-spacing:글자간의 간격값}

    - 상대적 길이 단위인 em으로 표기하면 적용하기 쉬움

    - 속성값 : normal 또는 길이 단위의 수치 입력

    - 예) <style type="text/css">

                 P {letter-spacing:0.5em ; font-size:12pt}

           </style>

 


② 텍스트에 밑줄을 그어줄 때(text-decoration)

    - {text-decoration:텍스트의 장식}

    - 속성값 : none - 기본값

                  underline - 텍스트에 밑줄(=<u>~~~</u>)

                  overline - 텍스트에 윗줄

                  line-through - 텍스트를 관통하고 중앙에 줄(=<strike>~~~</strike>)

                  blink - 텍스트가 깜빡이게 설정(넷스케이프에서만 지원)

    - 예) <body>

                 <P style="text-decoration:none">~~~</P>

                 <P style="text-decoration:underline">~~~</P>

                 <P style="text-decoration:overline">~~~</P>

                 <P style="text-decoration:line-through">~~~</P>

                 <P style="text-decoration:blink">~~~</P>

           </body>

 

 

③ 텍스트를 수직정렬할 때(vertical-align)

    - {vertical-align:글꼴의 수직정렬 값}

    - 이미지나 글꼴의 수직정렬 설정

    - 속성값 : baseline - 기본 줄에 맞춤

                  sup - 아래첨자

                  super - 윗첨자

                  middle - 이미지와 함께할 때 텍스트를 중앙에 맞춤

                  text-top - 텍스트와 함께할 때 텍스트를 맨위에 맞춤

                  top - 이미지와 함꼐할 때 텍스트를 맨위에 맞춤

                  text-bottom - 텍스트와 함께할 때 텍스트를 맨 아래에 맞춤

                  bottom - 이미지와 함께할 때 텍스트를 맨 밑부분에 맞춤

    - 예) <style type="text/css">

                P {font-size:12pt}

           </style>

           .....

           <body>

               <P>

                  <font style="vertical-align:sub ; color:red ; font-size:12pt">~~~</font>

               </P>

          </body>

 

④ 텍스트의 대소문자를 지정할 때(text-transform)

    - {text-transform:문자열의 변환값}

    - 대소문자를 변환해주는 기능(font-variant에서 확장된 속성을 가짐)

    - 속성값 : capitalize - 영문자의 첫자만을 대문자로 바꾸어줌

                   none - 아무런 적용을 하지 않음

                   uppercase - 모든 영문자를 대문자로 바꾸어줌

                   lowercase - 모든 영문자를 소문자로 바꾸어줌

    - 예) <body style="font-size:12pt">

                <font style="text-transform:capitalize">~~~~~~~</font>

                <font style="text-transform:none">~~~~~~~~~~</font>

                <font style="text-transform:uppercase">~~~~~~</font>

                <font style="text-transform:lowercase">~~~~~~~</font>

            </body>

 

 

⑤ 텍스트나 이미지 옆 문자열을 정렬할 때(text-align)

    - {text-align:문자열의 정렬}

    - HTML의 align속성과 같은 기능. 글자나 이미지의 위치를 자유롭게 설정

    - 속성값 : left

                  center

                  right

                  justify

    - 예) <body>

                <P style="text-align:left">~~~~~~~~~</P>

                <P style="text-align:center">~~~~~~~</P>

                <P style="text-align:right">~~~~~~~~</P>

                <P style="text-align:justify">~~~~~~~</P>

           </body>

 

 

⑥ 문자열의 들여쓰기를 할 때(text-indent)

    - {text-indent:문자열들여쓰기}

    - 속성값 : 길이의 단위 적용, %가능, 음의 값 사용 가능

    - 예) <body>

               <P style="text-indent:20pt">~~~~~~~~~~~~~~~~</P>

               <P style="text-indent:3cm">~~~~~~~~~~~~~~~~</P>

               <P style="text-indent:20%">~~~~~~~~~~~~~~~~</P>

            </body>

 

 

⑦ 문서의 줄 간격을 지정할 때(line-height)

    - {line-height:줄간격}

    - 사용자들의 가독성을 높이기 위해 문장의 줄 간격을 설정할 때 사용

    - 속성값 : normal, 길이단위, %

    - 예) <body>

              <P style="line-height:14pt">~~~~~~~~~~~~~~~~</P>

              <P style="line-height:normal">~~~~~~~~~~~~~~~</P>    

              <P style="line-height:150%">~~~~~~~~~~~~~~~</P>                 

           </body>

input 박스안에 미리 지정글 넣어두고 클릭하면 사라지게하는 소스

<input class="Wfield" onfocus="this.value='';" size="15" value="이름" name="RP_NAME">

<input class="Wfield" onfocus="this.value='';" size="15" value="비밀번호" name="RP_PASS">

아래 입력 상자는 한글로 입력이 됩니다.

[텍스트박스]
<input type=text style="ime-mode:active;" size=20>

[다중 텍스트박스]

<textarea style="ime-mode:active;" >
</textarea>

RSS를 지원해야 하는가?

 


RSS는 정보의 배급, 배포, 수집에 관한 표준 포맷이다.

즉 정보를 효과적으로 전달하고 수집하고 검색하며 관리할수 있는 새로운 방법에 관한 것이다. 이것은 기존 HTML 중심의 한계를 극복하는 획기적인 변혁의 표준이 될 것이다.

또한 정보흐름의 변화를 주도하는 새로운 포맷이 될 것이며 새로운 패러다임의 변화를 몰고 올 것이다.

 

본 문서는 이러한 RSS를 지원해야 하는 이유를 정보접근적 측면에서 고찰하여

향후 새로운 시대의 변화와 혁신을 주도할 RSS를 기업,개인,공공기관 등에서 적극적으로 지원하길 기대하며 글을 쓴다.

 

 

 

어떠한 데이터가 정보인가

 

정보는 찾는 사람에 따라 그 가치가 결정된다.

정보의 가치는 정보를 찾는 사람이 어떠한 데이터를 정보로 인식하는가에 관련된 문제이다.

즉 정보를 찾는 사람이 자신이 찾는 목적에 부합하지 않거나 찾는 본질에 비하여 불필요한 내용이 너무 많다면 정보의 가치는 떨어진다. 그 정도에 따라서는 정보가 아닌 쓰레기에 전락해버린다. 즉 정보 가치는 정보를 찾는 정보탐색자의 요구의 의하여 결정된다.

 

 

정보는 시간 개념이 포함 되어 있다.

정보탐색자가 그 정보의 필요정도와 함께 적절한 시기의 정보을 였는가 또한 역시 중요한 문제이다. 정보의 가치가 시점이 중요함으로 정보탐색자는 정보의 관리를 한다.

 

필요에 따라서는 정보관리를 위하여 많은 시간을 할애하며 지금 또는 나중에 사용될 것을 예상하며 관리를 한다. 즉 정보탐색자는 정보의 필요성과 필요시기에 따라 정보를 관리한다.즉 정보탐색자에서 정보관리자로 역할을 동시에 수행한다.

 

수 없이 많은 데이터의 홍수에서 정보라 함은 내가 원하는,필요하는 데이터와 그 시점이 정확한 데이터를 정보라 할수 있다.

 

 

적절한 노력을 들여 활용 할 수 있어야 한다.

관리되는 정보의 량이 증가하면서 분류의 필요성이 대두되며 검색이 활용되어 진다.

잘 분류되지 못한 정보는 필요한 시점에 정확히 정보를 찾아 내는데 많은 시간이 소요되어

효과적으로 검색되어지지 않는 정보는 결국 이용 할수 없으며 또한 사장된다.

 

 

 

 

 

기존의 정보획득의 방식과 새로운 패러다임 RSS

 

정보라 함은 위에 기술한 것처럼

나에게 필요한 것인가?  

필요한 정보에 얼마나 접근하는가?

적절한 시기의 정보였는가?

적당한 노력을 하여 나의 정보를 인식 활용할 수 있는가? 등을 만족시켜야 한다.

위에 열거한 조건이외에도 여러가지 다른 조건들도 있겠지만 정보를 정보 또는 쓰레기로 분류하기 위한 가장 기본적인 조건이며 이 조건은 바로 정보를 획득하는 과정이다.

 

1. RSS 지원하는 것은 정확한 정보의 제공이 목적이다.

 

수없이 많은 정보의 홍수속에 대량의 정보가 연속해서 쏟아지고 있는 인터넷의 시대에 살고 있는 필자는 그 수없이 많은 정보에서 내가 원하는 정보를 찾는 일은 매우 힘들고 고된일이다. 그러한 일들이 매우 힘들어 사용자들은 자신에게 필요한 정보만을 수신하는 방향으로 정보는 흘러간다. 즉 정확한 정보만을 원한다.

 

메일의 서비스는 나의 메일주소가 노출되면 처음에는 필요한 정보가 구독되어지지만

노출된 나의 메일주소로 스팸이 섞여 오고 점차 자신의 메일함에 정보보다는 쓰레기로 넘쳐난다. 필요한 정보보다 불필요한 쓰레기 데이터가 더 많음에도 불구하고 여전히 메일을 쓸수밖에 없다. 이유는 필요한 정보와 쓰레기를 완벽히 구별 할 수 없기 때문이다.

이미 노출된 메일주소는 내가 거부 할 수 있는 권한이 너무 미약하고 그 노력이 너무 많이 소요 되기 때문이다.

 

메일은 두가지 방향에서 사용되어 왔었는데 그 하나는 커뮤니케이션이고 다른 하나는 정보의 구독 및 배달이었다. 그러나 정보는 정확한 방향으로 흐르기에 메일의 미래는 점차 없다고 하여도 과언은 아니다.

 

커뮤니케이션의 의미로 메일은 의미는 현재 매우 약화되어가고 있다.

이 글 쓰고 있는 필자는 커뮤니케이션의 역할로 이미 3년전부터 메신져에 더 의존하는 것이 사실이다.

 

정보구독 및 배달의 의미로써의 메일은 이미 RSS라는 새로운 포맷의 출현으로 그 앞날이 모호하다.

RSS는 원하는 정보만 정확하게 사용자에게 배달한다.

또한 원치 않을 경우 언제든지 사용자가 거부할수 있는 부분이 다르다.

메일의 푸쉬(PUSH)와 서비스와 다르게 RSS는 풀(PULL)서비스이기 때문이다.

 

정보의 주도권을 온전히 사용자가 직접 제어 할 수 있어 RSS는 사용자를 위한 맞춤화된 서비스로 RSS는 이메일 보다 정확한 정보를 제공한다.

 

조만간 모든 이메일 서비스는 상호보완적으로 RSS를 동시에 제공할것이며

웹사이트는 사용자에게 정확한 정보의 제공을 위하여 전체메일발송의 시스템을

RSS로 교체될것이다.

 

 

 

2. RSS 제공하는 것은 사용자에게 최대한 빠르게 정보를 제공 할 수 있다.

 

RSS는 기존의 웹사이트의 웨이팅(wating)서비스이다. 즉 사용자가 브라우저에 주소를 입력한후 방문을 하는 구조를 가지고 있다. 즉 사용자의 방문을 기다리는 것이 기존 웹사이트의 특징이다. 그러나 RSS서비스는 찾아 가는 서비스의 구현이다.

웹사이트의 정보를 RSS변환하면 기존의 데이터가 구독하는 사람에게 배달된다.

 

사용자입장에서는 자주 방문하는 웹사이트를 방문하지 않고도 여러사이트의 정보를 구독할수 있다. 이는 기존의 이메일의 정보전달의 의미를 계승한것으로 웹사이트의 진화방향과 일치한다.

 

만약 사용자가 블로그를 운영하는 블로그 운영자라고 가정하였을 경우 자신의 블로그를 방문하는 사람들의 블로그를 방문하는 것이 블로거들의 일반적인 유형이다. 만약 하루에 3명이 방문한다면 RSS를 지원하는 것이 큰 의미가 없겠지만 50명의 방문자가 있는 블로그운영자라면 이야기는 달라진다. 또한 어제 방문한 블로그에 다시 방문하고자 하였을 경우에는 RSS 서비스는 필수적인 요소가 된다.

 

매일 새로운 블로그와 방문하는 블로거의 새글을 취합해서 볼수 있는 포맷인 RSS는 기존의 웹사이트의 방문을 기다리고 그에 따라 정보 전달이 느려지는 것에 비하여 RSS서비스는 새로운 컨텐츠 아주 빠르게 RSS구독자에게 전달하는 신속성을 가지고 있다.

 

 

 

 

3. RSS는 이용자가 관리 가능한 편리한 서비스를 제공한다.

 

매일 검색하는 최신의 정보를 효과적으로 관리하는 것은 이미 불가능하다.

하루에도 한 개의 신문사에서 나에게 필요한 정보의 갯수는 이미 수백개에 달한다.

웹사이트에서 즐겨찾기로 이 많은 갯수의 정보를 관리 할 수는 없다.

 

그렇다고 하여 네트워크 시대에 정보를 관리하는 것이 의미 없어진 것은 아니다.

대량의 정보를 관리하는 것은 모든 정보를 세분화하여 분류화 관리 하는 것이 아니라

정보의 위치 기록과 좀더 더 중요한 정보를 관리하는 것에 초점이 맞춰진다.

 

RSS는 문서의 특징은 문서의 제목과 내용의 일부 또는 전체를 내 컴퓨터에 가져와

내 컴퓨터에서 정보를 관리 할 수 있다. 해당위치의 문서에서 업데이트 되었을 경우

지속적인 관리까지 가능하여 편리하다.

 

RSS문서를 지원하는 것은 방대한 사이트의 데이터베이스를 사용자에게 관리 가능하기에 사용자에게 좀더 중요한 데이터로 인식 할 수 있다.

사용자에게 중요한 데이터로 인식되는 것은 결국 데이터의 신뢰도 상승을 의미하며 타사이트 대비 잦은 방문을 유도하는 핵심적 요소가 될수 있다.

 

RSS지원하는 것은 편리한 서비스의 제공임과 동시에 사용자입장에서 RSS문서를 RSS리더로 구독하는 것이 대량의 정보를 체계적이고 지속적으로 관리 가능케 하여 궁극적 웹사이의 충성도를 높일수 있는 것이다.

 

마치면서

 

RSS지원하되 효과적으로 지원해야 한다.

본 글의 주제는 RSS를 지원해야 하는가 이다

그러나 RSS 지원한다고 하여 위에서 나열한 이유를 모두 만족시키기는 어렵다.

현재 대부분의 인터넷 사용자들이 RSS의 개념에 생소하다.

RSS지원을 하되 효과적으로 지원함이 필요로 하다. RSS지원을 효과적으로 지원하기 위해서는 RSS지원 여부를 사이트의 메인페이지에 확실하게 홍보하는 것이 필요하다.

또한 RSS를 사용자에게 쉽게 사용하게 하기 위해서는 RSS리더와 함께 제공하는 것이 무엇보다 중요한 일이다.

 

국내의 RSS지원사이트이 예제.

조선일보 http://www.chosun.com/rss 의 페이지에서는 조선일보가 RSS지원하는것과 동시에 RSS리더를 제공함으로써 사용자에게 쉽게 접근을 유도하고 있다.

오마이뉴스의 http://www.ohmynews.com/make_file/rss/ 의 페이지 역시 사용자에게 손쉽게 제공하는 것을 목적으로 한다.

 

RSS지원해야 하는가 에 대한 결론은 RSS지원하는 것이 방문자를 증가시키는 것임과 동시에 찾아가는 서비스로 컨텐츠의 관리가 편리히며 정확한 정보의 제공을 가능하게 하기 때문에 지원해야 한다.

오랜만에...

구글 광고 위치 변경 하고, 블로그 글 왕창 업데이트 하공... ㅎㅎ
좋다...

왠지 점점 내 블로그가 내가 선호 하는 지식들로 꽉 채워져 가는 듯한 그런 기분이랄까...?
구글애드센스도 상단에 블럭으로 지정해서 오른쪽에 나열 하여 사용했는데...

이미지가 먼저 올라가고 그러니... 여간 사용이 불편한 뿐만 아니라...
글을 쓰면 모냥도 나지 않는 바람에...

과감히.. 애드센스위치를 변경 했담... ㅎ
그냥 통짜로~? ㅎㅎㅎ

매일 포스팅을 하고 그래야하는데...
이렇게 한번에 왕창 왕창 할 수 밖에 없서...

왠지 그렇다... 그렇다고 오늘 올리면서 날자를 마춰 놓을수도 없고 말이지... ㅎㅎ

아~ 구글 광고.. 이거.. 수익도 않나는데...ㅡ,.ㅡ; 빼야 하나...?
쫌더 고민좀 해봐야 할 것 같다...
왠지 구굴만 좋은일 시켜주는거 같은 기분이 계속 드는 것이...

블로그를 장학 당한 기분이랄까...?
이번달 내로 결정해서 구글 애드센드를 계속 할것인지 생각 해봐야겟아~ ㅎㅎ

모두모두 즐겁고 행복한 하루 되세용~~^^*
XML에서도 CSS와 마찬가지로 진보된 글꼴을 처리할 수 있도록 XSL(Extensible Stylesheet Language)을 제공합니다. XSL은 XML을 양식화된 문서로 만들어 주기위해서 사용되므로 독립적으로 사용하지 않으며, XML과 함께 사용됩니다.
사용자 삽입 이미지
#XSL의 형식
stylesheet와 template를 상황에 따라 변경하기도 하지만 일반적으로는 변경하지 않고 사용합니다.
사용형식<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
   .
   .
</xsl:template>
</xsl:stylesheet>

|예제| <xsl:for-each select="테스트/사람">
for-each문은 반복적인 수행을 하기위해서 사용됩니다. select속성에는 반복할 태그명을 설정합니다. <테스트>태그안에 있는 <사람>태그를 반복적으로 읽어오기 위해서 select속성에 "테스트/사람"을 설정하였습니다. 상위태그와 하위태그를 구분하는데 '/'기호를 이용합니다.

|예제| <xsl:value-of select="전화번호">
value-of의 select속성은 속성에 해당하는 문자열을 출력하기위해 사용됩니다.

xml_xsl.xml _XSL파일과 조합되어 하나의 양식화된 문서가 만들어집니다.<?xml version="1.0" encoding="euc-kr"?>
<?xml:stylesheet type="text/xsl" href="test_xsl.xsl"?>

<테스트>
 <사람>
  <이름>차범근</이름>
  <전화번호>000-797-1970</전화번호>
  <이메일>mbc@fifa.net</이메일>
  <홈페이지>www.축구는무엇이냐.com</홈페이지>
 </사람>

 <사람>
  <이름>차두리</이름>
  <전화번호>000-797-2006</전화번호>
  <이메일>mbc@bdsrg.com</이메일>
  <홈페이지>www.분데스리가.net</홈페이지>
 </사람>
</테스트>

test_xsl.xsl _XML파일이 브라우저에 보여주기위해 시트를 만듭니다.<?xml version="1.0" encoding="euc-kr"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">

<table border="1" cellpadding="5" cellspacing="2" style="font-size:9pt;">
 <tr bgcolor="#ffbbaa" align="center">
  <td>이름</td>
  <td>전화번호</td>
  <td>이메일</td>
  <td>홈페이지</td>
 </tr>

<xsl:for-each select="테스트/사람">
 <tr>
  <td><xsl:value-of select="이름"/></td>
  <td><xsl:value-of select="전화번호"/></td>
  <td><xsl:value-of select="이메일"/></td>
  <td><xsl:value-of select="홈페이지"/></td>
 </tr>
</xsl:for-each>
</table>

</xsl:template>
</xsl:stylesheet>

*xml에 관한 레퍼런스를 다음의 사이트에서 얻을 수 있습니다.  MSDN:XML Developer Center

'Web(웹) Study > XML & XSL' 카테고리의 다른 글

XHTML (Extensible Hypertext Markup Language)  (0) 2008.07.01
자바스크립트에서 XML 생성  (0) 2008.03.26
xml을 양식화하기  (0) 2008.01.18
내부 dtd선언  (0) 2008.01.18
xml의 선언  (0) 2008.01.18
사용자 삽입 이미지

소스코드<html>
<xml id="starcraft" src="starc2.xml"></xml>

<script language="JavaScript">
<!--

var star = starcraft;
var cell_cnt;  // 행 카운터

function getchildren(node) {  // 노드검색-출력
 var x = node.childNodes;
 var z = x.length;

 if (z != 0) {
  for (var i=0; i<z; i++) {
   if ( (x(i).nodeType == 1) && (x(i).nodeName == "종족") ) {
    document.write("<tr bgcolor='#ccdffe' align='center'><td>");   
    document.write(x(i).attributes.getNamedItem("이름").nodeValue);
    document.write("</td>");

    cell_cnt = 0;
   }

   if ( (x(i).nodeType == 3) && (x(i).nodeName == "#text") ) {
    document.write("<td>" + x(i).nodeValue + "</td>");

    cell_cnt++;
  
   if (cell_cnt == 4)
    document.write("</tr>");
   }

   getchildren(x(i));
  }
 }
}

// -->
</script>

<body>
<table border=1 style="font-size:9pt">
 <tr bgcolor="#aabbdd" align="center">
  <td width=80> 이름 </td>
  <td width=80> 인구지원 </td>
  <td width=80> 기지지원 </td>
  <td width=80> 미네랄 </td>
  <td width=80> 가스 </td>
 </tr>

<script language="JavaScript">
<!--
 getchildren(starcraft);
// -->
</script>

</table>
</body>
</html>

starc2.xml _데이터가 포함된 xml파일입니다.<?xml version="1.0" encoding="ks_c_5601-1987" standalone="no"?>
<!DOCTYPE 스타크 SYSTEM "starc2.dtd">
<스타크>
<종족 이름="프로토스">
 <인구 지원="파일런">132</인구>
 <인구 지원="넥서스">12</인구>
 <미네랄>942</미네랄>
 <가스>532</가스>
</종족>

<종족 이름="테란">
 <인구 지원="서플라이디폿">96</인구>
 <인구 지원="커멘드센터">22</인구>
 <미네랄>753</미네랄>
 <가스>424</가스>
</종족>

<종족 이름="저그">
 <인구 지원="오버로드">185</인구>
 <인구 지원="해처리">6</인구>
 <미네랄>943</미네랄>
 <가스>563</가스>
</종족>
</스타크>

starc2.dtd  xml에서 사용될 태그를 선언한 파일입니다.<?xml version="1.0" encoding="ks_c_5601-1987"?>

<!ELEMENT 스타크 (종족*)>

<!ELEMENT 종족 (인구+, 미네랄*, 가스?)>
<!ATTLIST 종족 이름 CDATA #REQUIRED>

<!ELEMENT 인구 (#PCDATA)>
<!ATTLIST 인구 지원 CDATA #REQUIRED>

<!ELEMENT 미네랄 (#PCDATA)>
<!ELEMENT 가스 (#PCDATA)>

'Web(웹) Study > XML & XSL' 카테고리의 다른 글

자바스크립트에서 XML 생성  (0) 2008.03.26
xsl사용하기  (0) 2008.01.18
내부 dtd선언  (0) 2008.01.18
xml의 선언  (0) 2008.01.18
xml의 구조  (0) 2008.01.18
#XML파일안에 DTD선언하기
HTML은 표준적인 태그만을 사용하지만, XML에서는 DTD에 정의된 태그를 사용할 수 있습니다.

|예제|  <!ELEMENT test (name?, bc?)>
<test>태그안에 <name>과 <bc>태그를 사용합니다. <name>과 <bc>태그는 한 번 사용하거나 사용하지 않습니다.

|예제|  <!ELEMENT name (#PCDATA)>
<test>태그안에 사용하는 태그로 문자열을 설정합니다.

|예제|  <!ELEMENT bc (#PCDATA)>
<bc>태그안에 사용하는 태그로 문자열을 설정합니다.

사용자 삽입 이미지

소스코드<?xml version="1.0" encoding="euc-kr"?>

<!DOCTYPE test [
 <!ELEMENT test (name?, bc?)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT bc (#PCDATA)>
]>

<test>
 <name>&lt;&quot;차범근&quot;&gt;</name>
 <bc>&apos;MBC&apos;</bc>
</test>

'Web(웹) Study > XML & XSL' 카테고리의 다른 글

xsl사용하기  (0) 2008.01.18
xml을 양식화하기  (0) 2008.01.18
xml의 선언  (0) 2008.01.18
xml의 구조  (0) 2008.01.18
xml :: xml의 기초  (0) 2008.01.18


#XML 선언방법 및 개념
XML은 데이터가 들어있는 문서로 DTD에 선언된 태그를 참고하여 작성합니다. 또한 XSL에서 작성된 양식을 XML과 함께 사용하면 다양한 출력형태를 만들어 낼 수 있습니다.
XML을 식별하기 위해서는 식별문장을 작성합니다.
   <?xml version="1.0" encoding="euc-kr" standalone="no"?>
또는
   <?xml version="1.0" encoding="ks_c_5601-1987" standalone="no"?>
식별문장은 대소문자를 구분하므로 꼭 소문자로 작성해야 합니다.
  영문 xml선언
<?xml version="1.0" encoding="UTF-8"?>

#헤더(Header)부분의 속성
- version : XML의 버전을 설정합니다.
- encoding : 국가별 인코딩을 설정합니다. 우리나라는 "euc-kr"이나 "ks_c_5601-1987"로 설정하면 됩니다.
- standalone : XML문서를 독립적으로 사용할 지, 외부의 DTD를 읽어올지 유무를 설정합니다. "yes"를 설정하면 XML문서를 독립적으로 사용하겠다는 의미입니다. "yes"나 "no"를 사용하여 설정합니다.

#노드(NODE)
노드는 리스트 등과 같은 자료구조에서 정보의 기본 단위. 혹은 분기점/접속점으로 설명될 수 있습니다.
<주소록>태그는 XML태그의 부모노드라고 합니다. 부모노드는 XML파일을 대표하는 이름이므로 한 개만 존재해야 합니다.
<사람>태그는  최상위 자식노드입니다. 부모노드는  꼭 한 개만 존재해야하지만 최상위 자식노드는 동일한 것이 여러개 존재할 수 있습니다.
<이름>, <방송>태그는 최상위 자식노드에서 파생된 자식노드입니다.

부모노드와 자식노드를 데이터베이스용어에 비유한다면 다음과 같이 설명할 수 있습니다.
- 부모노드 :: 테이블
- 최상위 자식노드 :: 레코드(<사람>태그가 두개있으므로 두 개의 레코드가 있는 것입니다.)
- 자식노드 :: 필드. 이름, 방송필드가 있는 것입니다.
XML파일은 부모노드를 시작으로 상속받아 계속적으로 자식노드를 만들 수 있기때문에 데이터베이스의 용어와 비유한다는 것은 약간 무리가 있습니다. 그렇지만 비유해서 생각하면 XML파일을 데이터베이스의 테이블처럼 사용할 때 이해가 쉽게 될 것입니다.

사용자 삽입 이미지

소스코드<?xml version="1.0" encoding="ks_c_5601-1987" standalone="yes"?>

<주소록>
 <사람>
  <이름>차범근</이름>
  <방송>MBC</방송>
 </사람>
 <사람>
  <이름>신문선</이름>
  <방송>SBS</방송>
 </사람>
</주소록>

'Web(웹) Study > XML & XSL' 카테고리의 다른 글

xml을 양식화하기  (0) 2008.01.18
내부 dtd선언  (0) 2008.01.18
xml의 구조  (0) 2008.01.18
xml :: xml의 기초  (0) 2008.01.18
국내 가상 RSS 기술 적용. (WEB2.0 ?)  (0) 2007.12.27

#XML의 파일구조
HTML은 대소문자를 구분하지 않지만, XML은 대소문자를 구분합니다. XML파일은 DTD파일과 XSL파일을 호출하여 사용할 수 있습니다. 또한, DTD와 XSL파일을 XML파일안에 삽입하여 사용할 수도 있습니다.
XML과 함께 사용되는 파일의 종류와 설명은 다음과 같습니다.
- DTD(.dtd) : 요소를 선언합니다.
- XSL(.xsl) : 문서의 스타일시트를 만들어 줍니다.
- XML (.xml) : 문서의 정보를 작성합니다.

#DTD(Document Type Definition)
HTML과는 다르게 XML은 태그를 만들 수 있습니다.
DTD(문서형식정의:Document Type Definition)는 사용자가 만든 태그를 정의하는 부분입니다. DTD안에 정의된 태그의 형식에 맞춰 XML문서를 작성합니다. 그러므로 DTD에 선언된 태그는 정상적으로 XML에서 사용했는 지의 유무를 알 수 있으므로 XML문서의 에러검증을 하는 데도 사용됩니다.
DTD는 XML문서안에 포함하여 사용하거나 XML문서안에서 저장된 DTD파일을 읽어와서 사용할 수 있습니다.
DTD는 장점과 단점을 가지고 있습니다. 사용자가 DTD를 매번 만든다면 참으로 어려운 작업이 될 것입니다. 그러므로 개인사용자가 쓰기엔 불편한 점이 많습니다. 그러나 표준적인 DTD를 제공한다면 사용자가 손쉽게 작업을 할 수 있을 것입니다.

#DTD파일 작성예제
<?xml version='1.0' encoding='ks_c_5601-1987'?>
<!ELEMENT 주소록집 (주소록*)>
<!ELEMENT 주소록 (전화번호+, 이메일*, 주소?)>
<!ATTLIST 주소록 이름 CDATA #REQUIRED>
<!ELEMENT 전화번호 (#PCDATA)>
<!ATTLIST 전화번호 종류 CDATA #REQUIRED>
<!ELEMENT 이메일 (#PCDATA)>
<!ELEMENT 주소 (#PCDATA)>

#DTD내 요소(Element)의 정의
DTD에서 정의하는 태그이름을 요소(Element)라고 합니다.
|형식|
   <!ELEMENT 요소이름(내용)>
|예제|
   <!ELEMENT address(name+, email?)>
   <!ELEMENT title(#PCDATA)>

ATTLIST선언은 태그안에 속성을 만듭니다.
|형식|
   <!ATTLIST 요소명 속성명 형문자 속성선언>
|예제|
   <!ATTLISE address tel CDATA #REQUIRED>

#요소내 기호설명
 () : 그룹요소
|예제|  (태그1|태그2),태그3
태그1이나 태그2중의 하나가 나타나고 그 뒤에 태그3가 나타납니다.

 * : 여러번 사용할 수도 있거나 사용하지 않을 수 있습니다.
|예제|  태그1*
태그1이 여러번 나타나거나 나타나지 않을 수 있습니다.

 + : 한 번이상 나타납니다.
|예제|  태그1+
태그1이 한번이상 나타납니다.

 , : 나열된 순서대로 나타납니다.
|예제|  태그1, 태그2
태그1이 나타난 다음에 태그2가 나타납니다.

 ? : 1회나타날 수 있거나 나타나지 않을 수 있습니다.
|예제|  태그1?
태그1이 한번 나타나거나 나타나지 않습니다.

 | : or조건
|예제|  태그1|태그2
태그1 또는 태그2가 반드시 나타납니다.

 없음 : 1회 나타납니다.
|예제|  태그1
태그1이 한번 나타납니다.

#요소내 키워드
- #PCDATA : 'parsed Character DATA'의 약어로 문서의 문자열을 전달하겠다는 의미로 사용됩니다.
  해당문자열의 nodeName은 '#text'로 반환됩니다.
- EMPTY : 문자열내용이 없는 태그를 사용하겠다는 의미입니다.

#DTD에서 사용되는 형 문자
CDATA : 문자데이터
ID : 다른 ID형과 구분되는 고유이름
IDREF : 다른 ID형에 정의된 이름
IDREFS : 다른 ID형에 정의된 이름이 목록
ENTITY : 미리 선언된 외부객체의 이름
ENTITES : 미리 선언된 외부객체이름의 목록

#DTD내 속성선언
#REQUIRED : 속성값을 꼭 지정해야 합니다. 그렇지 않으면 노드에러를 출력합니다.
#IMPLIED : 속성값을 지정하지 않아도 됩니다. 속성값을 지정하지 않으면 노드를 무시합니다.
#FIXED value : [value]를 요소에서 설정해야 합니다. 요소에서 이 속성을 사용하지 않으면 [value]로 처리합니다.
defaultvalue : 기본값을 설정합니다. 요소를 설정하지 않으면 defaultvalue로 설정됩니다.

#XML문서안에 DTD선언
DOCTYPE선언은 DTD파일을 호출하거나 DTD내용을 선언하기 위해서 사용됩니다.
|예제|
   <?xml version="1.0"?>
   <!DOCTYPE 부모노드명 [
    <!ELEMENT 부모노드 (#PCDATA)>
   ]>

#XML에서 DTD파일을 호출
|에제|
   <?xml version="1.0"?>
   <DOCTYPE 부모노드명 SYSTEM "test_dtd.dtd">

'Web(웹) Study > XML & XSL' 카테고리의 다른 글

내부 dtd선언  (0) 2008.01.18
xml의 선언  (0) 2008.01.18
xml :: xml의 기초  (0) 2008.01.18
국내 가상 RSS 기술 적용. (WEB2.0 ?)  (0) 2007.12.27
XML 1.0 규격 한국어 번역문  (0) 2007.11.20

#XML
SGML(Standard Generalized Markup Language)은 HTML(Hyper Text Markup Language)이나 XML(eXtensible Markup Language)의 조상이 되는 언어입니다. SGML은 다양한 표준적인 기능을 포함하고 있지만 작성하기에는 까다로운 부분이 있어 일반사용자가 사용하기엔 어려운 부분이 많았습니다. 그렇기 때문에 특정 데이터를 처리(통계적요약, 수학적표시, 설명서등)하기 위해 사용되었습니다.

SGML을 단순화시켜서 발표한 것이 HTML입니다. HTML은 SGML의 기본적인 태그부분을 사용하여 사용자가 쉽게 작성할 수 있게 만들었습니다.
 HTML은 단순화된 태그라서 인터넷상의 문서를 처리하기에 부족한 부분이 많았습니다. 그래서 새롭게 등장한 것이 XML입니다.
 XML은 SGML에 근접하면서도 까다롭고 사용하지 않는 부분을 제거하고 HTML보다 확장된 기능을 포함하고 있습니다. 예를 들면, HTML은 기존에 만들어진 태그만을 사용하지만 XML은 사용자가 태그를 만들어 낼 수 있습니다.

 W3C(World Wide Web Consortium)은 웹에 관련된 표준제정과 발전을 돕는 단체입니다. W3C는 투표를 통하여 웹표준이 선정되면 공식적인 표준을 인터넷사이트에 발표합니다. 그렇기때문에 XML에 관한 정보는 'www.w3c.org'를 통해 자료를 얻을 수 있습니다.

사용자 삽입 이미지

#XML의 장점과 단점
[장점]
 - 사용자가 직접 태그를 만들 수 있습니다.
 - 양식화된 문서를 만들어 낼 수 있습니다.
 - 거의 대부분의 HTML태그를 사용할 수 잇습니다.
 - 확장된 글끌을 사용하여 구현할 수 있습니다.
[단점]
 - HTML에 비해 작성하기가 어렵습니다.
 - 초기에 직접 태그를 정의해야 하므로 작성시간이 오래 걸립니다.
SGML은 초창기에 나왔지만 작성하기가 어렵다는 관계로 많이 사용하지 않습니다. SGML을 사용하는 곳은 미국의 IBM, 관공서등의 소수에서만 사용되고 있습니다. XML이 SGML보다 많이 개선되어 쉬워졌다고 하지만, HTML로 작성하는 것보다는 많이 어렵습니다.
회사나 기업의 경우, 부분적으로 HTML을 XML로 대체하여 사용하면 업무에 효율성을 높여줄 수 있습니다.

#기본양식
|예제| <?XML version="1.0"?>
XML문서임을 알려주는 헤더(Header)부분입니다. 현재 사용되는 버전은 1.0이므로 version속성에 '1.0'을 설정합니다. XML은 HTML의 대부분 태그를 지원하고 있기 때문에 XML에서 HTML태그를 사용할 수 있습니다.

|예제| <b>XML에 오신 걸 환영합니다.</b><br></br>
HTML의 <br>태그는 한 라인을 띄우기위해서 사용되고 태그를 닫아주는 </br>가 쓰이지 않습니다. XML에서도 <br>태그는 한 라인을 뜨우기위해 사용되지만, XML에서는 시작과 끝이 없는 태그를 허용하지 않기때문에 <br>태그도 다음과 같이 닫아줘야 합니다.

|예제| <img src="naver.gif"/>
XML에서는 img태그도 마지막에 닫아주기위해 "/"를 삽입해야 합니다.

소스코드<?xml version="1.0"?>
<html>
<body>

<b>XML에 오신 걸 환영합니다.</b>
<br></br>

XML은 기존의 HTML태그를 변형없이 그대로 사용할 수 있습니다.
<br></br>

<a href="http://www.naver.com">
 <img src="lg_naver.gif"/>
</a>
<br></br>

</body>
</html>

'Web(웹) Study > XML & XSL' 카테고리의 다른 글

xml의 선언  (0) 2008.01.18
xml의 구조  (0) 2008.01.18
국내 가상 RSS 기술 적용. (WEB2.0 ?)  (0) 2007.12.27
XML 1.0 규격 한국어 번역문  (0) 2007.11.20
[2 부] 제 3 강 : 도큐먼트란 무엇인가?  (0) 2007.11.20

#CSS
- (background)-color
 └ menu : '화면배색'의 메뉴색상입니다.
 └ highlight : '화면배색'의 선택항목색상입니다.
- border
 └ buttonhighlight : 메뉴스타일로 입체적으로 나온 스타일입니다.
- line-height : 라인간격을 설정합니다. default는 1입니다.

#JavaScript
:: event객체 :: 이벤트를 처리합니다.
 └ srcElement : 이벤트가 발생한 객체를 반환합니다.
 └ getAttribute("속성") : 해당객체의 속성값을 반환/설정합니다.
 └ offsetX : 컨테이너를 기준으로 이벤트가 발생된 x좌표를 반환/설정합니다.
 └ offsetY : 컨테이너를 기준으로 이벤트가 발생된 y좌표를 반환/설정합니다.
 └ offsetParent : 해당 컨테이너를 가리킵니다.

사용자 삽입 이미지

소스코드<html>
<style type="text/css">
<!--

#popmenus {  // 팝메뉴스타일
 cursor : default;
 position : absolute;
 width : 100px;
 background-color : menu;
 line-height : 1.4;
 padding : 4px;
 border : 2 outset buttonhighlight;
 visibility : hidden;
}

#menuitems {  // 팝메뉴 항목 스타일
 padding-left : 15px;
 padding-right : 10px;
 font-size : 9pt;
}

// -->
</style>
<script language="JavaScript">
<!--

function show_menu() {  // 우측/하단 여분길이계산, 필요시 커서좌측/상단출력
 var rightedge = document.body.clientWidth - event.clientX;  // 우측여분
 var bottomedge = document.body.clientHeight - event.clientY;  // 하단여분

 if (rightedge < popmenus.offsetWidth) {  // 우측여분이 팝메뉴너비보다 작으면
  menuleft = document.body.scrollLeft + event.clientX - popmenus.offsetWidth;
  popmenus.style.left = menuleft;  // 커서x좌표에서 팝메뉴너비를 뺀 값을 팝메뉴x좌표로 할당
 } else {
  popmenus.style.left = document.body.scrollLeft + event.clientX;
 }

 if (bottomedge < popmenus.offsetHeight) {  // 팝메뉴의 y좌표를 할당한다.(위와동일)
  menutop = document.body.scrollTop + event.clientY - popmenus.offsetHeight;
  popmenus.style.top = menutop
 } else {
  popmenus.style.top = document.body.scrollTop + event.clientY;
 }

 popmenus.style.visibility = "visible";
 return false;
}

function hide_menu() {  // 팝메뉴숨김
 popmenus.style.visibility = "hidden";
}

function highlight() {  // 커서가 위치시 활성스타일로
 if (event.srcElement.id == "menuitems") {
  event.srcElement.style.backgroundColor = "highlight";
  event.srcElement.style.color = "white";

  window.status = event.srcElement.url;
 }
}

function lowlight() {  // 커서가 벗어나면 비활성스타일로
 if (event.srcElement.id == "menuitems") {
  event.srcElement.style.backgroundColor = "";
  event.srcElement.style.color = "black";
  window.status = "";
 }
}

function jumpto() {  // 항목클릭시 해당URL로 이동
 if (event.srcElement.id == "menuitems") {
  if (event.srcElement.getAttribute("target") == null)
   window.location = event.srcElement.url;
  else
   window.open(event.srcElement.url, event.srcElement.getAttribute("target"));
  }
}

// -->
</script>
<body>

마우스 오른쪽 버튼을 클릭하면 팝업메뉴가 나타납니다.<br>
<div id="popmenus" onmouseover="highlight()" onmouseout="lowlight()" onclick="jumpto()">

<div id="menuitems" url="http://www.naver.com/" target="win" style="width:100%;">네이버</div>
<div id="menuitems" url="http://www.google.co.kr">구글</div>

</div>
<script language="JavaScript">
<!--

document.oncontextmenu = show_menu;
document.body.onclick = hide_menu;

// -->
</script>

</body>
</html>

'Web(웹) Study > Java Script' 카테고리의 다른 글

prototype.js  (0) 2008.03.10
Ajax 관련 링크들...  (0) 2008.02.27
자바 스크립트에서 HTTP 요청하기  (0) 2008.01.18
서서히, 천천히 나타나는 그림  (0) 2008.01.09
공개소스 웹 HTML 에디터..  (0) 2007.12.27

+ Recent posts