지혜롭지만 결단성이 부족했던 한신

 

중국 역사에서 한신의 이름은 실로 유명하다. 한고조 유방조차 그와 비교하면 손색을 느낄 수밖에 없을 것이다. 왜 그런가?

그 이유는 다음과 같은 세가지 관점에서 살필 수있다.

 

첫째는 전기적 색채가 짙은 한신의 일생 때문이다. 그는 일반 백성이었는데, 초기에는 가난에 시달리느라고 뜻을 이루지 못한 채 우울하게 보냈다. 심지어 참수까지 당할 뻔했는데, 나중에 시운(時運)이 바뀌어서 소하를 만나자 비로소 자신의 재주를 펼칠 수 있었다. 그와 관련된 사건으로 다른 사람의 다리 사이를 기어서 지나갔던 일, 빨래하는 아줌마가 밥을 주던 일, 소하가 달밤에 한신을 쫓아간 일 등은 이미 삼척동자도 다 알고 있는 이야기다. 둘째는 그가 유방의 미움을 사게 되어서 여후에게 죽임을 당했기 때문인데, 그 비극적 운명이 사람들로 하여금 애석한 마음을 금할 수 없게 하는 것이다. 셋째는 그가 망설이면서 결정을 내리지 못하다가 왕으로 자칭할 수 있는 기회를 놓쳐버린 것인데, 그 일은 천하에 뜻이는 영웅들의 마음을 태웠기 때문이다.

이상 세가지 이유 중에서 세 번째 이유는 중요한 것 같지 않지만, 실제로는 바로 그 이유때문에 다른 두 원인도 비로소 각광을 받게 된 것이다.

한신은 무엇 때문에 왕이 되지 못하였는가? 무엇 때문에 참수를 당했는가? 무엇때문에 후세의 영웅들에게 그토록 끊임없는 유감을 자아내게 하였는가?

 

   기원전 203년 10월, 유방은 항우를 공격하였다. 한신은 군사를 거느리고 동쪽으로 나아가서 조(趙), 연(燕) 두 나라를 평정하고, 다시 군대를 이끌고 동쪽으로 더 진군해서 제나라를 공격했다. 대군이 평원도(平原渡) - 지금의 산동성 서북부 - 에 이르렀을 때, 한신은 한왕(漢王)이 유세객 역이기(酈食其)를 제나라에 보내서 이미 제왕(齊王) 전광(田廣)을 한나라에 귀순하도록 설득했다는 보고를 들었다.

   한신은 그 보고를 듣고 이렇게 생각했다.

   '대부 역이기가 이미 제나라를 설득했다면 내가 무엇을 바라고 가겠는가, 군대를 이끌고 돌아가서 한왕을 도와 초왕이나 공격해야겠다.'

    그리하여 그는 군대를 그 자리에 주둔하도록 명하고는 날짜를 택해서 돌아가려고 했다. 이때 한신의 모사 괴통(蒯通)이 그래서는 안 된다고 만류했다. 한신이 물었다.

   "제왕이 이미 귀순하였다고 해서 내가 돌아가려고 하는데, 어찌하여 그래서는 안 된다고 말하는 것이오?"

   괴통이 답하기를

    "장군은 명령을 받들고 제나라를 공격하러 왔습니다. 이런저런 곡절을 거쳐서 이제 제나라의 국경에 이르렀죠. 지금 한왕이 역이기를 제나라의 사신으로 보내서 입만 벙긋하는 것으로 제나라를 설득했다고 하는데, 그것이 진실인지는 아직 의문입니다. 하물며 한왕께서 아직 장군에게 아무런 명령도 전하지 않은 상황인데, 어찌하여 전해지는 말만 믿고 갑자기 돌아갈 수 있겠습니까? 또한 역이기는 일개 유생으로서 세치 혀끝으로 제나라의 70여 개 성곽을 공략했지만, 장군은 수만 명의 정예군을 거느리고도 1년 남짓을 싸운 뒤에야 겨우 조나라 50여 개 성곽을 공략했으니, 장군으로 몇 년을 지낸 자가 일개 유생보다 못한 판국인데 아무런 준비도 없는 틈을 타서 곧장 쳐들어가 제나라를 점령해야 합니다. 그러면 그 공은 장군의 것입니다."

   한신이 그의 말을 잠깐 되새겨보니 과연 일리가 있었다. 그러나 또한편 제나를 공격하면 역이기를 해치는 것이 아닐까 하는 생각도 들었다. 그래서 다시 말했다.

   "그대의 말에 일리가 있지만, 내가 그렇게 하면 제나라는 반드시 역이기를 죽일 것이오. 나는 결코 그렇게 하지 못하겠소."

   괴통이 그의 말에 웃으면서 답하기를,

   "장군은 실로 은덕을 잘 지키십니다! 장군은 역이기의 입장을 생각해주고 있지만, 제가 알기로 역이기는 스스로 자원해서 제나라 설득에 나섰다고 합니다. 그는 장군이 군대를 이끌고 제나라를 공격할 것을 알면서도 그렇게 행하였으니, 그가 먼저 장군을 어긴 것이 아닙니까?"

   한신은  괴통의 말에 일리가 있다고 느꼈다. 그는 벌떡 일어나서 즉시 군대를 동원하여 평원하(平原河)를 건너 역하(歷下)로 쳐들어갔다. 제나라 군사는 아무런 방어도 하지 않고 있다가 졸지에 패배를 당했다.

   한신은 그 기세를 몰아서 제나라 장수 전해(田解)를 죽이고 화무상(華無傷)을 생포했다. 그리하여 한신은 매우 순조롭게 임치(臨淄)의 성문 앞에 이르렀다.

   제왕 전광은 원래 역이기의 설득으로 한나라에 귀순하기로 했다. 그런데 갑자기 한나라의 군사가 공격해온다는 소식을 듣자 급히 역이기를 불러서 호통을 쳤다.

   "내가 너의 말을 듣고 전쟁을 피할 수 있을까 했더니, 네 놈이 다른 꿍꿍이를 꾸몄구나, 겉으로는 나를 권고하는 척하면서 군대를 철수하도록 하고, 속으로는 암암리에 한신의 군사를 불러들여서 나의 왕국을 전복하려 하다니, 그 죄는 실로 죽어 마땅하다."

   역이기가 대답하기를,

   "한신이 군사를 거느리고 온 것은 제나라가 귀순한 소식을 몰라서 그런 것입니다. 이제 대왕께서 저와 함께 사신을 동행시켜서 한신을 찾아가도록 해주십시오. 제가 반드시 한신이 군사 공격을 멈추고 제나라에서 물러가도록 하겠습니다."

   그러자 옆에 서 있던 제나라의 재상 전횡(田橫)이 외쳤다.

   "그렇게 되면 네가 벌써 멀리 도망쳤을 텐데, 어찌 또 네놈에게 속겠는가!"

   그리고는 역이기가 변명할 사이도 없이 그를 끓는 기름 가마에 넣겠했다.

   기원전 203년 11월, 한신은 용차(龍且)와 제왕 전광의 목을 베고 제나라를 평정했다. 이때 그는 군사 수십만을 거느리고 있었는데, 그 실력은 당시 아주 대단한 것이었다.

   그때의 상황에서 한신이 한나라를 떠나서 초나라에 귀순하면 한나라가 멸망하고, 한나라를 도와서 초나라를 공격하면 초나라가 멸망하며, 스스로 왕이 된다면 천하가 셋으로 나뉠 형편이었다. 그리하여 초나라와 한나라는 그를 매우 중시했다.

   당시 초나라와 한나라의 대치는 아주 심각한 상태에 처해 있었다. 한신은 항우가 세운 제나라를 격파한 후에 다른 사람의 권고를 듣고서 유방에게 사자를 파견하여 자신을 제나라의 가왕(假王)에 봉해줄 것을 요구했다. 그러자 유방은 매우 분노하였다. 자신의 형세가 매우 위급한 상황인데 한신이 군사를 이끌고 와서 도와주지는 못할망정 이 기회에 자신을 협박하여 제나라 왕이 되려 한다고 여겼던 것이다. 그리하여 유방은 한신이 보낸 사자를 혼내주려고 했다. 그러자 그의 모신(謨臣) 장량이 조용히 타일렀다.

   "지금은 한신의 사자를 훈시하지 말아야 할 뿐만 아니라 한신을 공격하지도 말아야 합니다. 지금 한신이 대왕을 돕는다면 초왕이 멸망할 것이고, 만약 한신이 대왕을 배신하고 초왕을 돕는다면 대왕께서 위험에 처하게 됩니다. 한신이 사람을 보낸 것은 대왕의 마음을 떠보려는 것일뿐입니다. 그러니 아예 그를 제나라 왕으로 봉해주어서 제나라를 지키도록 하는 편이 낫습니다. 다른 일은 초나라를 멸한 후에 다시 논의해도 됩니다."

   유방은 장량의 말에 따라서 한신의 사자에게 말했다.

   "대장부가 왕이 되려면 진짜 왕이 되어야지, 어찌 가짜 왕(假王)이 되겠느냐!"

   그리하여 이듬해 2월, 장량으로 하여금 옥새가 찍힌 편지를 갖고 제나라로 가서 한신을 제왕으로 봉하도록 했다.

   한왕 유방이 한신을 제왕으로 봉하자 한신은 흔쾌이 그 책봉을 받았다. 후에 초왕 항우가 사자 무섭(武涉)을 한신에게 보내서 초나라에 귀순하도록 권햇으나 한신은 한사코 사절했다.

   괴통은 한신을 설득해서 한나라에 등을 돌리도록 하려 했다. 그래서 그는 한신을 만나서 이렇게 말했다.

   "제가 요즘 관상술을 배우고 잇는데, 그대의 얼굴을 보면 제후에 불과한 상이지만, 등을 보면 말할 수 없이 고귀한 상입니다."

   한신은 그의 말 속에 뼈가 있는 것을 간파하고 얼른 그를 밀실로 데리고 가서 물었다.

   "금방 한 말은 무슨 뜻인가?"

   괴통이 대답했다.

   "애초에 여러 영웅들이 도처에 일어날 때, 유능한 인재들이 모인 것은 진(秦)나라를 멸하기 위한 것이었죠. 그런데 진을 멸한 후 초나라와 한나라가 천하를 다투느라고 백성들이 고생을 하고 있습니다. 항우는 팽성에서 군사를 일으켰는데, 남북을 오고 가면서 형양(滎陽)까지 쳐들어가 천하에 그 위세를 자랑했죠. 지금은 광무(廣武)를 에워싸고 있는데, 몇해 동안 아무런 진척도 없는 상태입니다.

   한편, 한왕은 수십만 대군을 거느린 채 산과 강에 의지하여 하루에 몇번씩 싸움을 벌이고 있지만 아무런 공도 이루지 못하고 실패를 거듭하고 있습니다. 제가 천하의 대세를 살펴보니, 현자가 나서지 않고는 이러한 싸움이 끝나지 않을 것 같습니다. 장군이 이때 초와 한 사이에서 어느 한쪽을 돕는다면, 그 쪽이 반드시 이기게 됩니다. 다라서 초와 한 두 왕의 목숨은 지금 장군의 손에 달려 있는 것이나 다름없지요.

   저의 계책을 말씀드리자면, 어느 쪽도 돕고 있지 않다가 때가 되면 천하를 셋으로 나눈다는 것입니다. 장군께서는 강성한 제나라 땅을 차지하고 연나라와 조나라를 격파하였으며 수십만 대군까지 보유하고 있으니, 시기가 성숙된 후에 서쪽으로 진군해서 백성들을 위해 명령을 수행한다면, 천하에 어느 누가 복종하지 않겠습니까?

   장차 천하를 할거해서 제후들에게 분봉하면 모두 제나라를 따를 것이니, 그렇게 되면 패왕의 대업이 이루어지는 것이 아니겠습니까? 신이 듣건대, 하늘에서 주는 것을 취하지 않으면 천명을 어기는 것이라서 반드시 벌을 받게 되고, 시기가 성숙되었을 때 행하지 않는다면 그때를 잘 이용하지 못하는 것이라서 화를 입게 된다고 합니다. 장군께서 부디 깊이 생각하셔서 좋은 기회를 버리지 않도록 하십시오."

   한신은 그의 말을 듣고 한참 후에야 비로서 대답했다.

   "한왕이 나를 매우 후하게 대해주는데, 어찌 이익 때문에 은공을 저버릴 수 있겠소?"

   괴통은 한신이 충의와 은혜에 매인 것을 보고 말했다.

   "월나라의 대부 문종(文鍾)은 망국의 땅에 남아서 구천을 위해 공을 세우고 이름을 날렸지만 결국 살해되었으니, 실로 토끼를 잡은 다음에 사냥개를 삶는 격이라고 하겠습니다. 장군의 충성과 신의는 아무래도 월나라의 대부 문종을 넘어서지는 못할 겁니다!

   제가 듣건대, 장수의 용맹이 임금을 놀라게 하면 위험을 자초하는 것이고, 공로가 천하를 진동하면 초나라든 한나라든 모두 두려움을 느껴 믿지 않으려고 하는 형편입니다. 그렇다면 어디에 몸을 의탁하겠습니까?"

   한신은 그이 말에 일리가 있다는 걸 인정하면서도 결단을 내리지 못했다. 그리하여 괴통에게 다시 이렇게 말했다.

   "선생은 다시 말하지 마시오. 내가 깊이 생각해본 후에 결정을 내리도록 하겠소."

   괴통은 한신의 마음이 동한 것을 보자 작별하고 돌아갔다.

   괴통이 돌아간 후에 한신은 깊은 생각에 잠겼다.

   '내가 항우를 위해 일할 때는 관직이 겨우 낭중(郎中)에 지나지 않았고 지위는 집극(執戟)에 지나지 않았다. 게다가 나의 말은 인정을 받지 못하고 제안한 계책은 하나도 채용되지 못했다. 그러나 한나라에 귀순한 후에 한왕은 나를 장군으로 임명하여 수만 명에 달하는 군사를 거느리도록 했으며, 입을 것, 먹을 것을 걱정 없도록 해주었을 뿐만 아니라 이제 또 나를 제왕으로까지 봉하지 않았는가, 내가 이 은공을 배신한다면 반드시 상서롭지 못할 것이다. 또 내가 위표(魏豹)를 생포하고, 조나라와 연나라를 격파하고, 제나라까지 멸하였으니, 이처럼 큰 공로라면 한왕 또한 나를 어쩌지 못할 것이다!'

   이렇게 생각한 한신은 괴통의 제안을 거부하기로 마음먹었다.

   괴통은 한신을 큰 뜻을 품은 자로 여겼기 때문에 며칠 동안 조용히 기다렸다. 그러나 아무런 소식이 없자 다시 한신을 찾아가서 말했다.

    "장군께서 하루 속히 결정을 내리시기 바랍니다. 시기는 오래 가지 않고, 기회는 다시 오지 않습니다."

   이때 한신은 이미 한왕을 등지지 않기로 결심하였으므로 그 자리에서 대답햇다.

   "선생은 다시는 그러한 말을 하지 마오. 내 공로가 적지 않고 또 한왕에게 충성하고 있으니, 한왕은 반드시 나를 해치지 않을 것이오!"

   이 말을 들은 괴통은 더 이상 권유해보았자 소용이 없다는 걸 알고 물러갔다. 한신과 작별한 괴통은 더 머물러 있다가는 화가 닥칠까 두려워서 미친 자로 가장하여 어디론가 가버렸다.

   기원전 197년 9월, 대상반(代相反)이 스스로 대왕(代王)으로 호칭했다. 한고조 유방은 군사를 거느리고 직접 정벌에 나서기로 했다. 수도를 떠나기 전에 그는 내부의 일은 여후에게, 외부의 일은 소하에게 일임했다. 얼마 지나지 않아서 여후는 계책으로 한신을 붙잡아서 왕궁 옆에 딸린 종실(鍾室)에서 참수했다.

   죽기 전에 한신은 하늘을 향해 길게 탄식하며 말했다.

   "내가 괴통의 말을 듣지 않다가 오히려 여자의 속임수에 떨어졌으니, 이 어찌 천명이 아니겠는가?"

   반란군을 평정하고 돌아온 유방은 한신이 이미 처형당했다는 사실을 알게 되었지만 지나간 일이라고 묵인해버렸다.

   그는 한신이 죽기 전에 괴통을 언급했다는 말을 듣고는 특별히 사람을 보내서 괴통의 거처를 찾도록 했다.

 

역사의 시각에서 본다면, 물론 군벌(軍閥)간의 혼전도 반대해야 하고, 한신이 왕이 되어야 한다는 것도 반대해야 한다.

   그러나 개인의 관점에서 볼 때 상황은 전혀 다르다. 다른 것들은 그만두고 단순히 개인의 지혜만 보더라도 유방이나 항우는 한신과는 비교가 되지 않는다.

   한신이 왕으로 자립해서 세 사람이 천하를 다툰다면 그 결과는 예측하기 어렵다. 하지만 한신이 성의(誠意)로 한왕을 대하고 도덕으로 정치를 대한다며느 그 결과는 미리 알 수 있는 것이다.

   한신은 결단성이 부족하고 전체적인 국면을 총괄하지 못했으니, 이 때문에 장수의 재능에 그친 것이 아니겠는가!

  1. 홍현식 2017.04.21 11:02

    psunicon@naver.com
    초대장 부탁합니다.
    블로그는 열씸해볼려는데
    티스토리가 좋다고 추천하더라구요....
    불타는 맘으로 할려합니다.
    초대장 꼭 부탁합니다.

  2. 2017.06.15 14:30

    비밀댓글입니다

  3. 희망빛 2017.10.16 08:53

    한신 아쉽네요 결단력의 중요성을 느낍니다

    • BlogIcon 미리수 현쭌아빠 2017.10.24 16:54 신고

      결과론적이지만 한신이 결단을 내렸으면 한나라가 천하를 통일하지 못했을수도 있습니다. 그리고 한신은 자기가 영리하고 뛰어난 사람이라고 생각했을 수 도 있고요.
      그래서 유방이 자기를 어떻게 하지를 못할 것이라고 생각했겠지요.

  4. 2018.01.11 09:53

    비밀댓글입니다

  5. 한석준 2018.03.17 01:04

    안녕하세요 글 잘봤습니다.
    죄송스럽지만 제가 과제로 인해서 티스토리에 가입을 해야하는데
    초대장 한 번 받을 수 있을까요. speld94@naver.com입니다.
    부탁드립니다.

오랜만에 jQeury관련 글을 올려봅니다. 한동아 블로그에 관심을 끄고 있다가 요 근래 들어 다시 블로그에 관심을 기울이고 있습니다. 앞으로는 꾸준히 블로그를 관리할 계획입니다.

오늘은 jQuery를 이용한 HTML DOM에 접근하는 방법에 대하여 정리해보겠습니다.

 

jQuery의 강력한 기능인 HTML DOM을 탐색하는 기능에 대해 알아보겠습니다. jQuery의 DOM 탐색은 CSS Selecter를 사용하고 있어, CSS의 표현식을 알고 있다면 보다 쉽게 셀렉터를 이해 할 수 있습니다.

jQuery에서는 원하는 HTML의 DOM 요소를 찾기 위해 $(Selector), jQuery(Selector)와 같은 표현식을 사용합니다.

 

$는 jQuery의 축약어로 같은 역할을 하며, 다음과 같은 형태로 사용하여 원하는 DOM 요소를 선택 할 수 있습니다.

 

셀렉터 종류 

 셀렉터 표현방법

 All Selector

$("*") 

 ID Selector

$("#id") 

 Element Selector

$("elementName") 

 Class Selector

$(".className") 

 Multiple Selector

$("selector1, selector2, selectorN") 

 

$(Selector), jQuery(Selector)를 사용하여 선택한 DOM의 요소는 "document.getElementByID"를 이용한 것과는 다르게 해당 객체를 jQuery 객체로 랩핑해서 반환해주기 때문에 jQuery에서 지원하는 기능을 쉽게 적용할 수 있는 장점이 있습니다.

 

All Selector : $("*")

HTML DOM을 탐색하여 모든 요소를 배열형식의 Jquery 객체로 반환합니다.

 

 

 

 

 

jQuery를 페이지에 로딩 시키고 $(document).ready() 함수를 통해 모든 객체를 선택한 후 선택된 jQuery 객체를 눈에 잘 보이게 붉은색의 1pixel 테두리를 설정 하도록 해 보겠습니다.

 

$(document).ready() 또는 $(function() {})는 페이지의 HTML DOM이 모두 로드가 되면 실행이 되는 함수로 자바스크립트의 onload 메서드의 확장된 역할을 하고 있습니다. jQuery를 사용하실 경우 onload 이벤트의 사용보다 $(document).ready() 또는 $(function() {})를 사용하시길 적극 추천 드리면 관련 내용에 대해서는 마지막 부분에 다시 한번 정리를 하도록 하겠습니다.

 

 

 

위의 화면과 같이 jQuery를 통해 선택된 모든 요소에 붉은색 테두리가 설정된 것을 확인 할 수 있습니다. 이러한 기능이 가능한 것은 일반적인 DOM 객체가 아닌 jQuery 객체로 반환이 되었기 때문입니다.

 

ID Selector : $("#ID")

문서 안에 있는 여러 엘리먼트 중 ID 값이 동일한 엘리먼트를 찾아 반환합니다.

동일한 값(동일 ID)의 엘리먼트가 여러 개일 경우에는 최상위에 있는 엘리먼트를 선택 반환하여, 한 문서(HTML)에는 한 ID만 존재하는 것이 원칙으로 동일한 값을 통해 접근을 하고 싶을 경우에는 class 또는 attribute의 동일한 값을 설정하여 사용하길 권장합니다.

 

 

 

 

Element Selector ; $("element")

자바스크립트의 getElementByTagName("tagName")과 비슷한 역할을 하여 DOM 개체를 구성하는 태그와 동일한 객체를 찾아 다수의 jQuery 객체를 반환합니다.

아래의 소스는 jQuery를 통해 선택된 "h1" 개체의 테두리를 노란색으로 변경합니다.

 

 

 

 

 

class Selector : $(".class")

자바스크립트의 getElementByClassName()과 동일한 역할을 하고 있는 셀렉터입니다.

getElementByClassName() 메서드의 경우 몇몇 브라우저에서 지원을 하고 있지 않기 때문에 크로스브라우징을 지원해야 하는 개발이라면 올바르게 동작하지 않는 문제가 발생할 수 있습니다.

IE8이하 버전에서는 지원을 하고 있지 한다고하며, IE9와 HTML 차기버전이 HTML5에서는 기본적으로 지원 합니다.

 

프런트 부분을 개발하다 보면 위와 같은 문제로 인하여, 많은 개발자가 고민하고 해결책을 찾다가 많은 시간을 허비하는 경우가 상당합니다. 문제를 찾기 위해 자바스크립트 디버깅을 해 보지만 상당한 노가다를 필요로 하는 경우도 많을 뿐더러 브라우저마다 에러를 내는 행식이 다르기 때문에 상당한 골치 덩어리 입니다.

 

여기서 다시 하번 jQuery의 강점인 크로스브라우징에 대한 강조를 jQuery의 Class Selector의 경우 현존하는 대부분의 브라우저에서 사용이 가능하니, 위와 같은 문제를 미연에 방지 할 수 있으며 이러한 문제에 대해 고민을 할 필요가 없습니다.

 

다음은 문서(HTML)내의 클래스명이 article인 요소를 찾아 테두리의 색상과 배경을 변경하는 예저입니다.

 

 

 

Multiple, Complex Selector : $("selector1, selector2, selectorN"), $("#id div.class")

위에서 설명한 셀렉터의 나열이나 조합을 통하여 개발자가 원하는 객체를 보다 쉽고 정확하고 빠르게 탐색할 수 있습니다.

셀렉터를 ","를 통하여 나열할 경우 각각의 셀렉터를 통해 탐색된 객체의 집합을 반환하며, 셀렉터의 조합을 통하여 탐색을 했을 경우 각 셀렉터의 교집합 조건의 객체가 탐색되어 반환 됩니다.

 

$("#content","div","a",".article") 경우 ID의 값이 "content"인 객체, "div","a" 태그를 가지는 객체, 클래스 명이 article인 객체를 탐색하여 반환을 하게 되는 반면 $("div.article")의 경우 "div" 태그로 구성되었으며 동시에 클래스명이 "article"인 객체를 반환합니다.

 

다음 두가지 예제를 통해 두 가지 셀렉터의 동작과 차이점을 알아보겠습니다.

 

첫번째 예제 : ID 값이 content이며 ul요소를 찾아 테두리를 파랑색으로 변경합니다.

 

 

두번째 예제 : DIV 요소중에 클래스명이 searchbar-container인 요소를 찾아 테두리를 파랑색으로 변경합니다.

 

 

오늘은 jQuery의 셀렉터의 기본적인 내용을 정리했습니다.

셀렉터는 jQuery에서 가장 많이 사용하는 부분이며, 동적인 웹 개발에 필수적인 항목으로 반드시 알아두어야 하는 부분입니다.

  1. 꿀벌 2018.08.27 07:46

    꿀벌방금
    k01050030014@gmail.com 입니다
    안녕하세요 전 드론으로 항공촬영사진을 티스토리에서 올려서 여러사람들이 볼수있게끔 작가활동식으로 하고 싶습니다 잘 부탁드려요 4개월 동안 댓글을 달았지만 아직도 채택이 안되었는지 안되네요 ㅜㅜ
    잘 부탁드리겠습니다

  2. 꿀벌 2018.08.27 07:46

    k01050030014@gmail.com 입니다
    안녕하세요 전 드론으로 항공촬영사진을 티스토리에서 올려서 여러사람들이 볼수있게끔 작가활동식으로 하고 싶습니다 잘 부탁드려요 4개월 동안 댓글을 달았지만 아직도 채택이 안되었는지 안되네요 ㅜㅜ
    잘 부탁드리겠습니다

오늘은 올레 기가와이파이 허브에 접속하여 관련 기능들을 설정하는 방법에 대하여 정리해보았습니다.

올레 기가와이파이에 접속하는 방법은 다음과 같이 하시면 됩니다. 웹브라우저 주소 입력창에서 아래 화면과 같이 주소를 입력하시면 됩니다. 웹브라우저에서 http://172.30.1.254 를 입력 후 접속을 하시면 됩니다.

 

 

 

 

접속을 하면 다음과 같은 화면이 나오면 로그인을 하면 됩니다.

아이디는 ktuser, 비밀번호는 homehub입니다. 제조사마다 조금씩 다릅니다. 로그인을 하고 나면 다음과 같은 화면이 나옵니다. 

 

 


기본적으로  화면을 보시면 현재 올레 기가와이파이 허브의 인터넷 연결상태와 LAN 연결 상태 정보를 확인 할 수 있습니다.

기본 화면은 시스템 정보를 확인 할 수 있습니다.  홈 허브의 시스템이 업 된 시간, 메모리 사용량, CPU 사용량등의 정보와 인터넷 연결정보, LAN 연결 정보를 확인할 수 있습니다.

 

1. 유무선 연결 정보

 

현재 연결되어 있는 유선 연결정보와 무선포트의 상태, 인증모드 등을 확인할 수 있습니다.

 

2. 유무선 단말정보

 

 

현재 홈 허브에 연결되어 있는 무선 단말기의 정보를 확인 할 수 있습니다.

 

3. 로그정보

 

홈허브의 로그 정보를 확인 할 수 있습니다. 일반 사용자는 특별하게 사용할 경우는 없을 것으로 보입니다.

 

IP할당 정책

  □  KT 모드 :  모든 IP를 공인 IP로 할당 해줍니다. 사용하는

                     컴퓨터의 대수 만큼 공인 IP를 신청  하였다면

                     KT 모드를 선택하게 되면 모든 컴퓨터에 공인

                     IP를 부여하고자 할때  사용하는 모드입니다.

   ▶ 사용될 컴퓨터의 수만큼 공인 IP를 신청해야합니다.

   ▶ 1개의 공인 IP를 신청했다면 한개의 공인 IP만 컴퓨터에

       할당됩니다.  

   ▶ 인터넷전화, 올레TV를 신청하였을때 KT모드를 선택합

       니다.


 □  공유기 모드 : 컴퓨터가 2대 이상이거나 유선으로 다른

                         장비를 연결하는 경우  공유기 모드를 사용

                         합니다.  공인 IP를 한개만 신청하였을 때

                         사용합니다. 일반 유무선공유기와 같은

                         방식이라고 생각하시면 됩니다.

 

 □ 브릿지 모드 : 일반 허브 모드라고 생각하시면 됩니다.

                         연결되는 모든 장비(PC, 스마트폰, 태블릿

                         등)는 공인 IP를 받아서 인터넷에 연결되는

                         방식입니다. 기가와이파이 허브를 두대

                         이상 사용하는 경우 인터넷에 연결되는

                         첫번째 기가와이파이 허브를 브릿지모

                         로 바꾸어서 사용하면 됩니다. 

 

 

4. 간편개통 설정(2.4GHz, 5GHz)

 

간편개통설정(2.4GHz)는  100Mbps로 접속을 할 경우 사용하는 설정입니다. 주파수가 2.4GHz대를 사용하여 접속속도는 느리지만 홈 허브에서 멀리 떨어진 곳에서도 접속이 가능하합니다.

 

간편개통설정(5GHz)는 기가와이파이로 접속할때 사용하는 모드 입니다. 무선랜명에 GIGA가 더 첨가 되어 있으며, 신호는 강하지만 신호가 먼거리까지 가지 않습니다.

설정은 동일합니다.

 

  ■ 무선 LAN 설정
      □ 활성여부 : 무선 LAN 접속을 허용 여부 설정 입니다.
                         무선 LAN 접속을 허용하지 않고자 할 경우

                          비활성으로 설정 하시면 됩니다.
      □ 무선 LAN 이름 : 무선 LAN 네트워크 이름입니다.

                                 기본 이름을 사용하지 않고자 할 경우

                                 이름을 바꾸어 주시면 됩니다.
      □ 암호화 방식 : 무선 단말기에서 접속할 때 암호화 방식

                              을 설정하는 곳입니다.  암호화 방식은

                              NONE , WEP, WPA-PSK 방식을 선택할

                             수 있습니다.  기본 설정으로 되어있는

                             WPA-PSK 방식을 사용하시면 됩니다.

       □ WPA MODE : 암호화 방식에서 선택된 암호화 방식의

                              모드를 설정하는 곳입니다.

                              (기본으로 두셔도 됩니다.)
       □ Encryption Type : 암호화 타입을 설정하는 곳입니다.

                                   기본으로 두셔도 됩니다.
       □ Pre-Shared Key Format : 기본으로 두셔도 됩니다.
       □ Pre-Shared Key : 보안이 걱정 되신다면 암호를 바꾸

                                   실 수 있습니다.
        □ Broadcast Key Update : 무선 단말기와 암호를 업데이

                                            트 할 시간을 설정합니다.
                                             기본값으로 두셔도 됩니다.

 

 

4. 장치설정

   4.1 네트워크 관리 : IP 할당정책

 

올레 기가와이파이 홈허브의 전체 장치 설정을 할 수있습니다. IP 할당 정책, 접속할 수 있는 단말기 수를 제한 할 수 있습니다. 유선단말은 홈허브에 접속할 수 있는 유선 단말기의 접속 대수를 제한 할 수 있습니다. 접속 단말 수가 0이면 접속할 수 있는 단말기의 수가 0인 경우입니다. 따라서 유선 단말기와, HOME WLAN 단말의 숫자를 합쳐서 32대까지 설정할 수 있습니다.

olleh wifi/olleh wifi(basic) 올레 고객에게 자동으로 개방되는 와이파이입니다.

 

   4.2 네트워크 관리 : 인터넷 연결설정   

   사용중인 올레 기가와이파이 허브가 인터넷에 연결하는 방법을 설정하는 곳입니다.

 

 ○  IP 할당 방식 :올레 기가와이파이 허브가 인터넷에 연결

될 때 올레 기가와이파이 허브에 사용할

                         IP를 할당 방식을 선택하는 곳입니다.
       □  DHCP : Dynamic Host Configuration Protocol의 약자로

                       기가와이파이 허브가 IP를 자동으로 받을 때 

                       사용
       □ 고정 IP : 할당 받은 IP를 미리 입력하여 고정 IP로 사용

                        하는 방법

 

아래 부분은 현재 사용중인 올레 기가와이파이 허브에 설정된 IP와 관련된 정보를 보여주고 있습니다. IP주소, 서브넷마스크, 게이트웨이, DNS등을 확인 할 수 있습니다.    
MAC clone, 인터넷 장애 알림 등은 특별하게 사용할 경우가 없으므로 그대로 두어도 됩니다.

 

4.3 네트워크 관리 : LAN 연결설정

  

 

 내부 네트워크에서 사용되는 설정입니다. 사용될 IP 주소, 서브넷마스크 정보 그리고 DHCP 서버의 활성화, 비활성화를 설정 할 수 있습니다.

 

□  IP 주소 : 기가와이파이 허브의 IP 주소를 입력, 보통 

                 게이트웨이라고 생각하시면 됩니다. PC의 IP

                 주소를 설정할 때 이 IP 주소를 게이트웨이

                 주소로 설정하면 됩니다.
□  서브넷 마스크 : 기본 설정으로 두면 됩니다.
□ DHCP 서버 : 활성으로 설정 하면 됩니다. 내부의 컴퓨터나

                      단말기 등의 장비들에게 IP주소를  배포하는

                      역할을 합니다.

□ DHCP 코넷IP 사용범위 : 우리가 일반적으로 사용하는 내부

                   아이피라고 생각하시면 됩니다.

□ DHCP 프리미엄 IP 사용범위 : 인터넷전화, 올레 셋탑 박스

                   중 아이코드(ICOD) 방식을 위한 특별한 IP라고

                   생각하시면 됩니다.  

□  DNS Proxy 설정 : 기본 설정으로 두어도 됩니다.

 

 

5. 무선관리(2.4GHz, 5GHz)   

 

 5.1. 무선공통설정

   무선접속에 대한 기본적인 공통설정을 하는 부분입니다. 무선모드, 채널밴드, 채널모드, 송신파워를 설정하는 부분입니다. 2.4GHz의 경우 채널밴드가 20MHz, 40MHz 두가지 밴드를 설정할 수 있는데 기본적인 20MHz를 두고 사용하시면 됩니다. 채널 밴드를 변경하면 이론적으로 속도가 빨라진다고 합니다.

   5GHz의 경우는 채널밴드가 20MHz, 40MHz, 80MHz를 사용할 수 있습니다. 5GHz의 경우 기본적으로 80MHz를 사용합니다.

 

5.2. HOME WLAN 설정 

 

 설정은 위의 간편개통설정과 동일합니다.

 

5.3. WPS 설정

 

 

 

  Wi-Fi Protected Setup의 약자로 간편하게 보안이 적용된 무선 인터넷을 사용할 수 있게 해주는 기능입니다. 무선 단말기나 무선 공유기 둘다 WPS 기능을 지원해야 사용할 수 있는 기능으로, 간단하게 무선 접속 시 보안을 설정해주는 기능입니다. 올레 기가와이파이 홈 허브는 외부에 버튼이 없는 것 같습니다. 내부에서 PBC 버튼을 클릭하면 사용이 가능합니다.

 

 

5.4. 무선 접속 단말 관리

 

  접속 되어 있는 무선 단말기를 관리하는 기능이며, 접속되어 있는 단말기를 확인 할 수 있으며 접속도 끊을 수 있습니다.

 

5.5. 무선 MAC 필터링 설정 

 

     무선으로 접속하는 단말기의 MAC 주소를 가지고 연결을  제어할 수 있으며 필터링을 설정하면 이곳에 등록된 무선 MAC을 가진 단말기만 접속하게 할 수 있습니다. 보안에 신경을 써야 한다면 이 기능을 사용하면 되겠습니다.

 


 6. 스위치 관리

  6.1. 포트 링크 설정   

  허브의 각 포트의 연결상태, 속도 등의 정보와 포트의 연결 속도 설정 등을 하는 곳입니다.

 

  6.2. 포트 미러링 설정

  

    네트워크 스위치에서 스위치 포트를 통과하는 패킷들을 감시 또는 관찰하기 위하여 패킷들을 다른 스위치 포트로 복사하는 행위. IDS(Intrusion Detection System) 또는 IPS(Intrusion Protection System)와 같은 네트워크 보안 장비에서 주로 패킷을 감시 또는 관찰하는 데 쓴다.

 출처 :  다음 백과사전

  일반 사용자는 특별하게 사용할 경우는 없을 것 같습니다.

 

7. 트래픽 관리 

  7.1. 포트 포워딩 설정  

방화벽은 그대로 쓰면서 사용자가 정한 포트를 방화벽의 감시에서 풀어주는 기능. 방화벽은 바이러스, 웜, 해커의 공격을 막아주지만 사용할 수 있는 포트 수를 제한하여 몇몇 프로그램은 제대로 작동하지 않는다. 포트 포워딩은 방화벽은 그대로 쓰면서 사용자가 정한 포트를 방화벽의 감시에서 풀어 나머지 포트로 들어오는 공격은 막아준다. 윈도우 XP 서비스 팩 2에 들어간 윈도우 방화벽을 비롯한 대부분의 방화벽 소프트웨어, 인터넷 공유기는 포트 포워딩 메뉴가 있고, 여기에 열어둘 포트 번호를 등록하여 사용할 수 있다.

 

출처 : 다음 백과사전 

 

     ■ 올레 기가와이파이 허브에 연결하는 단말기들(컴퓨터, 무선 단말기 등)이 비공인 IP를 사용하고 있다면 외부에서 그 컴퓨터나 단말기에 접속할 수 없습니다. 따라서 연결된 컴퓨터나 단말기에서 웹서비스(웹서버, FTP 서비스 등)를 할 경우 외부에서 연결할 수 없습니다.


    ■ 웹서비스를 운영하고자 할 경우 올레 기가와이파이 허브에 할당된 공인 IP 주소의 TCP 포트와 웹서비스를 운영하는 컴퓨터의 비공인 IP 주소의 TCP 포트를 연결해주는 기능입니다.

 

    ■  같은 포트를 연결 하지만 외부의 TCP 포트와 내부의 TCP포트를 다르게도 연결해 줄 수 있습니다.

 

 ■  설정방법 
    □ 소스 IP 주소 : 비워두셔도 됩니다.
    □ 소스 포트 : 포트 포워딩을 할 포트
    □ 내부 IP 주소 : 서비스를 운영하고 있는 컴퓨터의 IP를 입력
    □ 내부 포트 : 포트 포워딩을 할 내부  IP의 포트 입력
                      (소스포트와 다르게 입력하여도 됩니다.)           
     □ 프로토콜 : TCP, UDP, ALL 중에 선택하면 되는데 잘 모르

                        신다면 ALL을 선택하시면 됩니다.
    □ 설명 : 포트 포워딩한 서비스에 대해 간략한 설명을 입력

 

  7.2. 포트 통계정보   

  올레 기가와이파이 허브의 각 포트들의 통계정보를 확인 할 수 있는 곳입니다. 유선 연결이 있다면 어느 포트에서 사용량이 많은 것인지 확인 할 수 있습니다. 가정에서는 그런 경우는 없겠지만 일반 소호 사무실이면 연결된 컴퓨터나 단말기의 포트 사용량을 확인하여 그 컴퓨터의 이상유무를 확인하는 방법도 있습니다. 바이러스나 트로이 목마 등이 감염되어 있으면 트래픽이 유난히 많을 것이기 떄문입니다.

 

7.3. DMZ 설정

 

 

  모든 포트를 개방해주는 기능으로 내부 네트워크에서 서버, 게임, 웹 카메라(DVR), P2P을 사용 시 각 프로그램의 TCP/IP 포트를 포트 포워딩을 통하여 각 포트를 개방해주어야 합니다. 하지만 사용포트를 모르거나 사용포트가 많아 설정하기가 어려울 경우 DMZ 기능을 설정하여 모든 사용포트를 개방하여 각 서비스나 프로그램을 사용할 수 있는 기능을 말합니다.

 

사용하기 위해서는 DMZ 활성을 체크 하시고, DMZ로 모든 포트를 개방할 PC의 내부 아이피 주소를 입력하신 후 적용을 누르시면 됩니다. 

 

 

7.4. ALG 설정

  ALG란 Application Level Gateway의 약자로 기가와이파이 허브에 연결되어 있는 단말장치(PC, 기타 네트웍 장치)에서 수행되는 프로그램이 외부 인터넷과 통신이 필요할 경우 그에 따른 처리를 해주는 기능으로 특정 프로그램에 대해서 작동하는 기능입니다.

 

기가 와이파이 허브에서는 FTP, 메신저(MSN, Nate on), 게임(Battle Net), P2P(e-Donkey), IPSEC, PPTP등을 설정할 수 있습니다. 활성으로 되어 있는 부분을 비활성으로 적용을 하게 되면 그 서비스나 어플리케이션은 연결이 되지 않습니다.

 

 

IPSEC

네트워크 계층인 인터넷 프로토콜에서 보안성을 제공해 주는 표준화된 기술로 데이터 송신자의 인증을 허용하는 인증 헤더(AH)와, 송신자의 인증 및 데이터 암호화를 함께 지원하는 보안 페이로드 캡슐화(ESP: Encapsulating Security Payload), 보안 연관(SA: security association) 등이 있으며, 보안 게이트웨이 간의 보안 터널을 제공하는 터널모드와 종단 호스트 간의 보안 터널을 제공하는 트랜스포드 모드 등 2가지 모드를 제공한다. IPv4에서는 선택으로 IPv6에서는 필수로 제공하도록 되어 있다.

 

출처 : 다음백과사전

 

 

8. 보안 기능

   8.1. 보안기능설정

 

  

기가와이파이 허브의 보안기능을 설정 하는 곳입니다.

 

 ■ TCP SYN Attack(TCP connection request attack)

     서비스 거부(DoS) 공격의 하나. 인터넷에서 사용하고 있지 않는 주소를 사용하여 공격 대상 기기에 다량의 동기 상태 부호(SYN) 패킷을 보내고 응답을 하지 않으면 공격 대상 기기가 다시 요구를 요청하는 등의 방법을 이용하여 정상적인 서비스 장애를 발생시키는 공격 방법이다.

 

출처 : 다음 백과사전

 

  공격을 피하게 하는 기능입니다. 아래의 SYN 패킷 개수 허용은 기본 값으로 두셔도 될 것 같습니다.

 

■ ICMP FLOOD

   ICMP의 보안 취약성을 악용하는 공격으로 DDoS 공격에 이용되기도 함. 아이시엠피 플러딩은 공격자가 소스 IP 주소를 공격 대상의 IP 주소로 설정한 뒤, ICMP 에코 요청(echo request) 패킷을 브로드캐스트(broadcast)하면 해당 네트워크의 모든 시스템들이 ICMP 에코 응답(echo reply) 패킷을 공격 대상으로 전송하게 되어 디도스 공격을 야기시킬 수 있다.

 

출처 : 다음 백과사전

 

PING 패킷 개수 허용 역시 기본 값으로 두셔도 될 것 같습니다.

 

  요즘에 이슈화가 되고 있는 해킹이나 네트워크 공격에 대하여 기본적으로 방어를 해주는 기능들입니다. 기본 설정으로 두고 사용해도 될 것같습니다.

 

 

9. 부가기능  

   9.1. DDNS 설정

      Dynamic DNS(동적 DNS)는 실시간으로 DNS를 갱신하는 방식입니다. 일반적으로 웹서버, FTP서버 등의 운영하거나 웹 주소를 이용하여 접속하는 서비스를 사용하고자 할 경우 google.com과 같은 외우기 쉬운 주소를 사용하는 것이 편리합니다.  도메인 이름과 IP주소를 연결하여 서비스 하는 것이 DNS 서비스입니다. 기가와이파이 허브는 공인 IP 주소 1개를 받아 내부 네트워크는 비공인 IP주소를 사용하는 방식입니다. 외부에서 내부 네트워크의 컴퓨터에 접속할 필요가 있을 경우가 있습니다. NAS를 사용하는 경우가 대부분이겠죠. 그럴때 사용하는 것이 DDNS 입니다.

 

설정을 한 후 적용을 하게 되면 외부에서 기가와이파이 허브로 설정된 URL를 통해 접속할 수 있습니다. 외부에서 설정된 URL 주소를 통하여 접속하여 기가와이파이 허브를 설정 할 수 있으며 또한 부가기능에서 제공하는 my PC On 설정에서 설정된 컴퓨터를 원격에서 부팅 시킬 수 도 있습니다.

 

9.2.  my PC On 설정

 

원격에서 부팅하고자 하는 컴퓨터의 MAC을 등록한 후 사용할 수 있습니다.

 

9.3. 홈네트워크 설정

 

KT에서 제공하는 홈네트워크 서비스를 설정하는 곳 같습니다.

 

9.4. my WiFi 설정

저도 사용을 하고 있지는 않지만 설정 내용을 보면 스마트폰이나 태블릿 등 무선으로 허브에 접속하여 사용하는 기기의 사용을 제한하는 경우에 사용하는 서비스로 보여집니다.

 

 ■ my WIFI 설정 : 서비스를 사용 유무 설정

 ■ 타켓 MAC 주소 : 제한 하고자하는 스마트폰이나 무선 단말기의 맥 주소를 등록하는 곳입니다. 무선 단말기의 맥 주소는 상태정보>유무선단말정보 에서 확인하여 등록하면 될 것 같습니다.

 ■ 설명 : 해당 단말기의 간단한 설명을 넣어주시면 될것 같습니다.

 ■ 이용 제한 시간 설정 : 해당 무선 단말기의 이용을 제한 요일이나 시간을 입력합니다. 모든 정보를 등록한 후 적용 버튼을 누르면 됩니다.

 

 

10. 시스템 관리 

  10.1. 관리계정 설정

관리계정을 설정하는 곳입니다. 기본 아이디외에 추가로 아이디를 등록하여 관리 할 수 있습니다.

 

10.2. 이미지 업그레이드 

기가와이파이 허브의 펌웨어를 업그레이드 하는 메뉴입니다. 펌웨어는 KT 홈페이지에서 다운로드 가능합니다.

 

10.3. 설정파일 관리

 

기가와이파이 허브의 설정 내용을 백업하여 관리할 수 있습니다.  초기설정을 복원할 수 있으며, 백업받은 설정파일로 복원할 수도 있습니다.

 

10.4. 시스템 재시동

 

 

기가와이파이 허브를 재시동 할 수 있습니다.


올레 기가와이파이 홈 허브 설정하는 방법에 대하여 간략하게 정리해보았습니다. 부족한 부분이 있더라도 이해 부탁드립니다. 혹시 궁금한점이나 이해가 안되는 부분이 있다면 댓글로 물어보시면 제가 아는 범위안에서 답변해드리도록 하겠습니다.

 

  1. BlogIcon 후레드군 2016.03.13 18:15 신고

    IP할당 정책에서 숫자를 0으로 만들면 접속 가능 단말기 수가 무제한이 되는걸로 알고 있습니다.

  2. 지비 2016.03.17 11:47

    허브에 있는 USB포트 어떤 용도인가요?

  3. ㅇㅇ 2016.04.01 21:41

    궁금한게 있는데 제가 스마트폰으로 컴퓨터를 원격제어하는 어플을 사용하는데 이게 브릿지모드에서밖에 작동을 안하더군요
    근데 아이폰의 airplay 기능은 브릿지모드에서 작동을 안하네요
    이 두가지 기능을 같이 쓸수는 없는건가요?ㅠㅠ
    그리고 KT는 wol 지원 안되나요? lg인터넷 쓸때는 요긴했는데 안되니 좀 답답하네요

  4. 김인범 2016.05.21 16:38

    homehub.olleh.com에 접속하여 상세설정-시스템관리-관리계정설정을 변경한후 재 접속을 시도하니 계속 막히네요. 관리자계정 변경을 초기화 시킬 수 있는 방법은 없나요?

  5. BlogIcon :3 2016.07.18 05:00

    좋은 정보 감사합니다.
    주파수 설정이 가능한 줄은 몰랐네요

  6. dfa 2016.09.24 15:03

    계정설정에서 비밀번호를 8자리로 하고 변경완료를 눌렀더니
    로그아웃된이후 로그인이 안되는데 따로 해결방안이 있을까요

  7. bjigchoi 2016.12.12 23:40

    KT 기가 유무선 공유기를 사용하고 있는데 KT모드로 되어 있고 4개포트에 포스. TV. 컴퓨터 . DVR (CCTV)를 연결하면 포스,컴퓨터 인터넷..DVR이 외부연결 안되는데 이유가 무엇인지요 고정IP1개만 받아서 그런지요? KT공유기에 iptim유무선공유기를 연결하여 그공유기에 컴퓨터와 DVR연결하여 컴퓨터 인터넷연결은 되는데
    DVR 를 외부에서 연결하여 스미트폰으로 볼수 없는데 방법좀 부탁드립니ᆞ감사합니다ᆞ

  8. 2017.03.16 16:55

    비밀댓글입니다

  9. BlogIcon 훔냐 2017.05.17 01:29

    인터넷을 바꾸면서 해당 모델 공유기도 사용하게되었습니다.
    그런데 좀 오래된 구형 노트북에서 와이파이 신호를 못잡더라구요
    해당 무선랜은 인텔 3945 abg 모델이라 2.4ghz에서 신호변경을 이것저것해봤는데요
    혹시 방법이ㅜ없을까요
    아 추가로 kt모드가 아니라 공유기모드로 설정해도 iptv시청에 문제가 없는지 궁금합니다ㅔ

    • BlogIcon 미리수 현쭌아빠 2017.05.17 21:51 신고

      https://downloadcenter.intel.com/ko/download/22116/Intel-PROSet-Windows-7-?product=50517

      이곳에서 드라이버를 새로 받아서 설치해보시기를 바랍니다.

  10. 보안키 2017.10.17 09:51

    안녕하세요. 한가지 질문이 있어 문의드립니다.

    이번에 올레 기가와이파이 기계를 받아서 사용중입니다.

    기존에 공유기에 물려 무선으로 노트북을 사용하고 있엇습니다.

    그런데 올레 기가와이파이 받아 무선으로 노트북을 연결을 하려고 하니, 패스워드 입력이후 네트워크 보안 키 입력이라는 창이뜨면서 비밀번호를 넣어도 진행이 되지 않았습니다..

    네트워크 보안 키는 어떤것을 넣어야 되는지 궁금해서 문의드립니다 ㅎㅎ

    수고하세요~

  11. 질문드립니다 2017.12.02 12:52

    Kt 기가 와이파이 프리미엄을 사용중인데 폰으로 토렌트를 사용했을 경우 어느정도 사용하다가 갑자기 제폰의 인터넷만 연결없음 상태가되면서 되지 않습니다. 다른 사람의 경우 모두 와이파이를 정상적으로 사용하고 있는 상태입니다. 혹시 설정으로 잡을 방법이 있을까요?

    • BlogIcon 미리수 현쭌아빠 2017.12.03 21:46 신고

      아마도 특정 PC의 트래픽이 초과하면 연결을 제한 하는 기능 같습니다.
      기능들을 한번 살펴봐야 할것 같습니다.

  12. 히힣 2017.12.27 18:18

    b,g,n 모드는 어떻게 설정하나요?

  13. 누헤헤 2018.10.02 16:31

    혹시 내부 ip를 고정하도록 dhcp에서 설정하는 방법이 있는지요? 무선 네트워크 프린터가 있는데 이걸 껐다 켤때마다 ip가 달라져서 네트워크 프린팅에 문제가...

    • BlogIcon 미리수 현쭌아빠 2018.10.09 10:16 신고

      프린터 설정에 보시면 네트워크 설정이 있습니다. 프린터에서 고정ip를 잡아주시면 됩니다.

  14. 하하 2018.10.18 19:52

    안녕하세요
    요즘 인터넷이 느려져서 백신으로 검사를 해보니
    기가 와이파이 라우터가 취약해서 펌웨어 업그레이드를 하라고 뜨더라구요
    그래서 글쓴이님 설명서대로 로그인해서 시스템 관리의 이미지 업그레이드를 찾았으나
    이미지 업그레이드란이 아에 있지 않더라구요
    그래서 kt 홈페이지에 들어갔는데 거기에도 펌웨어 업그레이드 파일을 찾을수가없었습니다.
    도대체 왜 저만 안뜨는걸까요?

    • 2018.10.19 17:35

      비밀댓글입니다

  15. 나비효과 2018.11.09 09:59

    안녕하세요 kt기가와이파이 사용중인데 airplay만 연결하면 2G 허브 기계(?)가 에러가나면서 작동을 멈춰서 꺼지거나 한참뒤 재부팅이됩니다. 이런 경우는 대역 충돌같은게 있는건가요? 어떤걸 손봐주면 될까요?

  16. 액션가면 2018.11.14 02:30

    문의 드립니다.
    지금 KT 기가와이파이에 iptime Nas1dual을 사용하여서 나스를 구축하려는데 외부FTP가 차단되었다는데 어떻게 할당할수있을까요?

  17. lightjae 2018.11.22 15:07

    kt 홈허브 관련 글 읽고 질문 드립니다..
    안녕하세요 kt 홈허브에 대해 상세히 설명해 주신글 잘 읽어 보았습니다..
    개인적으로 WOL ( 홈허브 내 MY PC ON / 스마트 부팅) 을 사용하여야 하는데
    집에서 와이파이로 WOL는 성공했지만 외부에서 사용을 어떻게 해야할지 어려움이 있습니다.
    DDNS구축을 해놓고도 어떻게 통신을 해줘서 LAN에 신호를 주는지가 궁금해서 여쭤봅니다..
    외부에서 다이렉트로 제 집의 홈허브 관리모드로도 들어갈수 없으니 ..답변해주시면 정말 감사하겠습니다..

이상한 말이지만, 중국 사람들은 누구나 권모술수가, 심지어 정치가로 태어난 것 같다. 출신이 비천하고 아무런 특징도 여인이 황후가 된 후에는 신하들을 능가하는 지모가 잇따라 나오고, 수많은 전쟁터에서 백만대군을 무찔렀던 장군조차 안중에 두지 않고 손 안의 노리갯감처럼 대하였다.

그 여인은 중국에서 사실상 황제가 되었을 뿐만 아니라 어떤 면에서는 후세 사람들에게 높은 평가까지 받고 있다.

 

   유방과 여치 사이에는 이상한 인연이 있었다고 한다. 유방이 사수(泗水)의 정장(亭長) - 진(秦)나라 때의 군현제에서는 현(縣) 밑에 향(鄕), 향 밑에 정(亭)을 설치했다. 정장의 정(亭)의 치안과 소송 등을 담당한 관리이다. - 으로 지내고 있을 때, 그의 친구 소하가 찾아와서 같이 한담을 나누게 되었다. 그러다가 우연히 선보현(單父縣)에서 원수를 피하여 현령을 찾아온 여씨(呂氏)라는 사람이 있다는 말을 꺼내게 되었다.

   현령은 여씨와의 친분 때문에 모든 관리들이 찾아와서 여씨가 온 걸 축하하도록 명령했다. 그 사연을 들은 유방이 말했다.

   "귀한 손님이 왕림하셨으니 가서 축하를 해야지."

   소하는 그가 농담하는 것으로 여기고 그대로 넘겼다.

   그런데 축하를 하는 날이 되자 유방은 곧 연회석을 찾아갔다. 소하는 마침 대기실에서 여씨를 위한 예물을 받고 있었다. 그는 유방이 오는 것을 보자 일부러 큰 목소리로 말했다.

   "진상한 예물이 천 냥이 되지 못한 사람은 당하(堂下)에 앉으시오."

   소하의 말을 들은 유방은 자신의 명함에다 '축의금 만 냥'이라고 적어서 건네주었다. 하지만 실제로는 한 냥도 갖고 있지 않았다.

   여씨는 유방의 축의금이 특별히 많은 것을 보자 황급히 마중 나와서 그를 상좌에 모셨다. 여씨는 관상술에 능한 사람이었다. 그는 유방의 거북 같은 등과 넓은 가슴, 그리고 일각(日角) - 이마 한가운데 뼈가 튀어나온 것을 말하며, 이는 관상에서 귀인상이라 여긴다 -  등을 보자 더욱 그를 공경했다. 소하는 유방이 돈을 갖지 않은 걸 알고 있었기 때문에 옆에서 비웃었다.

   "유씨는 언제나 큰소리만 칠 뿐 아무런 준비도 없구나."

   여씨는 소하의 말을 분명히 듣고도 유방에 대한 태도를 바꾸지 않았으며, 연회가 시작되자 유방을 상좌에 청했다.

  유방은 아무 것에도 상관치 않고 단지 먹고 마시는 일에 여념이 없었다. 연회가 끝날 무렵 여씨는 유방에게 남으라는 눈짓을 보냈다. 돈 한푼 없었지만 유방은 당황하지 않고 남았다. 여씨가 물었다.

  "제가 생김새가 특이한 사람을 평소에 많이 보았는데, 어느 누구도 당신을 따를 사람이 없습니다. 그런데 혹시 부인이 있으십니까?"

   유방이 아직 미혼이라 대답하자, 여씨는 매우 솔직하게 말했다.

   "저의 슬하에 딸이 있는데, 당신의 아내로 주고 싶소. 부디, 제 뜻을 저버리지 말기를 바라오."

   유방의 입장에서는 그야말로 호박이 넝쿨째 굴러들어온 격이라서 그 자리에서 무릎을 꿇고 큰 인사를 올렸다.

   나중에 여씨의 부인이 남편에게 푸념을 했다.

   "당신은 늘 우리 딸이 귀한 신분이 될 관상이라고 하면서 숱한 부자들에게도 시집보내지 않더니, 결국 유방과 같은 가난뱅이에게 보내려고 그랬습니까?"

   여씨가 대답했다.

   "유방은 귀한 사람이 될 관상이니, 후에 반드시 모든 사람들의 머리에 올라앉게 될 것이오."

   그리하여 여씨의 딸 여치는 유방과 부부의 연을 맺게 되었다.

   유방이 의병을 일으킨 후에 여치와 어린 두 자식이 모두 감옥에 감금된 적이 있었다. 다행스럽게 소하와 감옥 관리들의 도움으로 석방될 수 있었는데, 후에 여치는 자식을 데리고 망산과 탕산 사이에서 유방을 찾아내어 줄곧 그와 함께 있었다.

   유방은 팽성에서 항우에게 패하여 홀로 도망쳤는데, 그이 부친과 여치는 항우에게 붙잡혔다가 나중에 석방되었다. 그러므로 유방과 여치는 실로 환난을 같이 한 부부라고 할 수 있다. 유방이 황제가 된 후에 여치는 황후가 되었고, 여치가 낳은 아들 영(盈)은 태자에 책봉되었다. 그러나 여치와 태자의 지위는 매우 엄중한 도전과 시련을 받았다.

   유방은 팽성에서 패배하자 홀로 도망을 치면서 어느 민가에 들어갔다. 집주인은 유방이 한왕(漢王)이라는 말을 듣자 자기 딸을 주었는데, 그녀가 바로 척부인(戚夫人)이다. 항우를 격파한 뒤 유방은 척부인을 맞아들이더니, 점차 여후(呂后)- 여치-를 멀리하고 척부인만 총애했다.

   척희(戚姬)는 젋고 예쁜데다가 가무에도 능하고, 문장과 서예에도 어느정도 조예가 있었다. 더구난 유방을 아껴주고 아부도 잘했기 때문에 유방은 완전히 그녀에게 푹 빠져 있었다.

   유방의 사랑을 독차지한 척희는 자신의 미래를 위해서 자기가 낳은 아들 여의(如意)를 태자로 삼아달라고 여러 번 유방에게 요구하였으나, 유방은 끝까지 응낙하지 않았다. 이 일로 척희가 가끔 울고불고하자 유방의 마음도 조금씩 동하지 않을 수 없었다. 게다가 태자 유영(劉盈)의 성격이 너무 나약해서 유방의 마음에 썩 들지 않았다. 하지만 여의는 총명하고 굳건한데다 그 생김새도 유방을 빼닮아서 유방의 마음을 사로잡고 있었다. 결국 유방에게 유영을 폐하고 여의를 태자로 봉할 마음이 생겼으니, 그렇게 해야만 한나라의 왕실도 보존하고 총애하는 척희의 소원도 들어줄 수 있을 것 같았다.

   여후는 이미 그러한 낌새를 알아차리고 늘 전전긍긍하면서 지냈다. 하지만 유방의 몸과 마음이 전부 척희에게 쏠려 있었기 때문에 접근할 기회가 없어서 속만 태우고 있었다.

   마침 여의가 만 10세가 되었다. 관례대로 한다면, 그 역시 책봉을 받아서 영지로 가야 했다. 척희는 이 소문을 듣자 대경실색했다. 왜냐하면 일단 영지로 가게 되면 황제를 만나기 어렵게 되어서 아침저녁으로 황제를 가까이 하는 일은 전혀 불가능해지기 때문이다. 그렇게 되면 자연히 감정도 멀어지게 되어서 당연히 황제의 환심을 살 수가 없었다.

   척희는 유방을 만나자마자 땅바닥에 주저앉아서 통곡하기 시작했다. 유방은 이미 그녀의 속셈을 알고 있기 때문에 이렇게 말했다.

   "여의가 영지로 가야 하는 일 때문에 울고 있는 건가? 나 역시 여의를 태자로 봉하고 싶지만, 맏아들을 폐하고 둘째를 세우거나 적자를 폐하고 서자를 봉한다는 것이 아무래도 명분에 맞지 않아서 말을 꺼내기가 어려우니 좀더 기다려 보아야겠다."

   그러나 척희가 더욱 슬프게 울면서 애걸하자 유방의 마음도 조금 움직였다. 그래서 이튿날 대신들이 모인 장소에서 이 일을 의논하겠다고 응낙했다. 이튿날 아침 대신들이 모두 조회에 모이자, 유방은 태자를 폐하는 일에 관해 말을 꺼냈다. 그러자 대신들은 모두 놀라면서 태자를 봉한 지 여러 해가 되었고 또 전혀 과오를 범하지 않았는데도 아무런 이유 없이 태자를 폐한다면 천하가 어지러워질 거라고 했다. 그러나 유방은 그들의 의견에도 아랑곳하지 않고 조서의 초안을 담당한 관리에게 글을 작성하도록 명령했다.

   이때 어사대부 주창(周昌)이 앞으로 나서면서 단호하게 안된다고 외쳤다. 주창은 말을 더듬는 경향이 있었는데, 상황이 급하면 급할수록 말을 빨리 하지 못했다. 한참 후에야 그는 겨우 몇 마디 말을 내뱉었다.

   "신이 언변이 좋지 않지만, 이, 이, 이 일이 옳지 않다는 건 잘 알고 있습니다. 폐하께서 태자를 폐하는 것은 절대로 불, 불, 불가합니다."

   유방은 웃음을 참지 못하고 결국 폭소를 터뜨렸고, 그 자리에 모인 대신들도 모두 소리를 내어 웃었다. 이 웃음으로 유방은 오히려 노기가 말끔히 사라지면서 다시는 조서를 작성하라고 재촉하지 않았다.

   주창이 동쪽 사랑문 앞에 이르렀는데 여후가 그곳에 서서 그를 기다리고 있었다. 그가 다가가서 인사를 하려 하자, 뜻밖에 여후가 갑자기 그이 앞에 꿇어앉았다. 주창은 어찌할 바를 몰라서 덩달아 황급히 꿇어 앉았다. 여후가 얼른 그를 부축해 일으키면서 말했다.

   "오늘 만약 당신이 도리를 따지지 않았다면 태자는 벌써 폐해졌을 것이오. 내 자식의 태자 지위를 지킨 것에 감사하기 위해서 이렇게 큰 인사를 드리는 것이오."

   주창이 황망히 대답했다.

   "공적인 이유로 그렇게 말한 것이지, 개인적인 이익을 위해서 말한 것이 아닙니다. 황후께서는 너무 심려하지 마십시오."

   실제로 여후의 행위는 주창에 대한 감격의 뜻을 표현하는 것이 목적이었지만, 다른 한편으로는 여후가 일부러 연출한 것이기도 했다. 그녀는 이런 행동을 함으로써 대신들에게 태자를 함부로 폐해서는 안 됨을 강조한 것이다. 그러나 여후는 유방이 일시적으로 그 일을 중지하긴 했지만 시기가 되면 또다시 태자의 문제를 논할 것임을 알고 있었다. 그녀는 스스로 태자의 지위를 고수할 방책이 떠오르지 않아, 장량을 끌어들여서 그로 하여금 좋은 대책을 고안하도록 했다. 장량이 말했다.

   "만약 유능하고 명성이 높은 사람들을 불러서 태자를 보좌하게 한다면, 태자가 유능하고 인심을 얻는 것처럼 보이므로 황제가 설사 폐할 마음이 있다고 해도 신중히 고려하지 않을 수 없을 겁니다. 그렇게 되면 태자의 지위를 보전할 수 있을지도 모르죠."

   여후가 그런 유능한 인재들이 어디에 있느냐고 묻자, 장량이 이렇게 대답했다.

 

   "섬서(陝西)의 상산(商山) 일대에는 나이가 많은 네 명의 은사(隱士)가 있다고 하는데, 사람들은 그들을 '상산사호(商山四皓)라고 합니다. 황제께서 여러 차례 위임장을 보냈으나 그들은 모두 거절하였죠. 만약 그 사람들을 청할 수 만 있다면 아마 가능할 것입니다."

   여후는 즉시 사람을 보내서 그 '상산사호'를 청해오도록 했다.

   유방은 영포(英布-경포)등의 반란을 평정한 후에 심신이 너무 피로한데다 화살에 맞은 상처까지 도져서 병석에 누웠다. 척희는 밤낮으로 유방의 곁에 붙어서 시중을 들었다. 그녀의 머릿속에는 만약 유방이 세상을 떠나면 자기 모자의 생명을 지킬 수 있는 만반의 대책을 마련해달라고 졸랐다. 유방은 아무리 생각해도 별 다른 대책이 없는지라 다시 태자를 폐하는 문제를 꺼내게 되었다.

   장량은 태자의 소부(小傅)라서 소문을 듣자마자 즉시 유방을 찾아가 갖가지 도리를 내세워 만류하였으나 유방은 전혀 들어주지 않았다. 장량이 유방을 따른 이래로 유방은 그 계책을 거의 다 받아들였다. 그런데도 유방이 이렇게 나오자 장량은 간언의 어려움을 알고 병을 핑계로 두문불출했다.

   태자의 태부(太傅) 숙손통(淑孫通)은 그 소식을 듣고는 직접 궁내로 들어가서 이렇게 직언했다.

   "옛날 진헌공(晉獻公)이 총애하던 여희가 태자를 폐한일로 인해 진나라가 20년 동안 혼란에 빠져 있었습니다. 진시황은 부소를 미리 태자로 봉하지 않아서 진나라를 멸망으로 이끌었으니, 이 사건은 폐하도 친히 목격했던 바입니다. 여후와 폐하는 환난을 함께한 부부입니다. 자식이라고는 태자 하나뿐이고, 태자가 너그럽고 효성스럽다는 것은 천하가 다 알고 있는 사실입니다. 그런데 아무런 이유도 없이 태자를 폐하려고 합니까? 만약 저의 간언을 받아들이지 않고 그래도 행한다면 저는 죽음으로 끝까지 간하겠습니다."

   말을 마친 숙손통은 즉각 검을 빼서 자살하려고 했다. 유방은 급히 그를 제지하면서 말했다.

   "나는 단지 말로만 했을 뿐이지, 진짜 그렇게 하려는 것은 아니네"

   얼마 지나지 않아 유방은 태자를 불러 함께 식사를 했는데, 사실은 그의 허실을 한번 떠보려는 것이었다.

   상산사호는 그 말을 듣자 태자를 동반하여 함께 궁궐로 들어갔다. 유방은 태자 뒤에 앉아 있는 수염과 눈썹이 백설 같은 네 노인을 보자 매우 이상한 생각이 들어서 누구냐고 물었다. 네 노인이 하나하나 자신의 성명을 말하자, 유방은 경악을 감추지 못하면서 물었다.

   "내가 몇 년 동안 당신들에게 임무를 맡기려고 했는데, 나의 초빙에는 응하지 않고 이제 내 아들과 교제하는가?"

   그러자 상산사호가 일제히 대답했다.

   "폐하께서 선비들을 얕잡아보고 멋대로 모욕하셨는데, 우리는 그런 처사를 참을 수 없기 떄문에 응하지 않았던 것입니다. 이제 태자께서 마음이 어질고 선비들을 예의로 대한다고 하니, 천하의 현명한 자들이 모두 태자를 모시려고 하면서 태자를 위해 죽음까지 마다하지 않고 있습니다. 우리 몇 사람도 먼길을 마다하지 않고 특별히 찾아와서 태자를 보좌하려고 합니다."

   유방은 그들의 대답을 듣고 탄식을 그치지 않았다.

   태자와 상산사호가 떠나가자, 유방은 급히 척희를 불러서 상산사호의 뒤를 가리키며 말했다.

   "내가 여의를 태자로 봉하고 싶지 않은 것이 아니라, 태자의 깃털이 이미 풍성해져서 폐할 수가 없구나."

   척희는 유방의 말을 듣자 희망이 없음을 깨닫고 그 자리에서 기절할 듯이 몸부림쳤다. 유방도 마음이 매우 쓰려서 척희를 위해 [홍곡(鴻鵠)이 놓이 날아가네]라는 사(辭)를 높이 읊었는데, 그 소리 또한 처량하기 그지없었다.

 

   상산사호를 이용해서 태자의 명망을 높이려는 장량의 술수는 그가 독창적으로 창안한 것이 아니라, 이미 [전국책]에 연나라 소대(蘇代)가 순우곤(淳于髡)을 이용하여 제나라 왕을 설득한 예가 기록되어 있다. 소대는 백락(伯落)의 예를 들어가며 순우곤에게 제나라 왕에게 자신을 중용할 것을 권유해달라고 부탁했고, 제나라 왕은 그 말에 따라 소대를 신임하였다고 한다.

   이것은 비록 종횡가들이 지어낸 하나의 이야기에 불과하지만, 정치에서는 오히려 매우 잘 통용되는 것이었다. 여하튼 이후로 유방은 두번 다시 태자를 바꿀 생각을 하지 않았다.

   유방이 죽은 후 유영이 즉위하여 혜제(惠帝)가 되었는데, 실제로는 여후가 대권을 장악하였다. 그녀는 유씨의 세력을 배척했는데, 무엇보다도 먼저 눈엣가시처럼 여기던 척희를 냉궁(冷宮)에 집어넣었다. 여후는 척희의 삼단 같은 머리를 빡빡 밀도록 명령했다. 그리고 그녀의 머리와 목에 무쇠 고리를 두르게 하고, 왕궁의 의복대신 자홍색의 굵은 올로짠 허름한 옷으로 바꿔 입혀서 쌀 찧는 일을 시켰다. 척희는 평생 쌀을 찧어본 적이 없는지라, 가슴에 치밀어오르는 비분을 억제하지 못하고 매일 눈물 속에서 고된 나날을 보냈다.

   얼마 후 그녀는 스스로 [춘가(春歌)]를 지었는데, 바로 매일 쌀을 찧으면서 만들어낸 것이다. 그 내용은 이러했다.

 

아들은 임금이요 어미는 포로구나.

종일 쌀을 찧으며 저녁을 맞으니, 늘 죽음과 동반하는 것 같네.

서로 3천 리나 떨어졌으니, 누구를 시켜서 너에게 알리리.

 

   여후는 그 일을 알자 크게 화를 내면서 욕설을 퍼부었다.

   "비천한 계집이 아직도 감히 아들에게 기대를 걸고 있단 말이냐?"

그리하여 기원전 194년 여후는 사람을 보내서 조은왕(趙隱王) 여의를 독살하게 했다. 여후는 척희의 아들을 죽인 후로 더욱 잔인하게 척히를 박해했다. 먼저 척희의 손가락과 발가락을 모두 자르고 또 그녀의 유방을 도려냈다. 아울러 두 눈을 파내고 귀를 멀게 만들었으며, 목소리가 나지 않게 하는 약을 먹인 후에 변소에 가두었다. 여후는 척희에게 '인간돼지'라는 별명을 지어주었다.

   며칠이 지난 후 여후가 혜제를 불러서 이 광경을 보게 했는데, 혜제는 그녀가 누구인지 전혀 알아보지 못했다. 그래서 옆에 있던 자가 척희라고 알려주었다. 이튿난 척희는 죽었다.

   혜제는 척희의 처참한 광경을 보고는 궁중에 들어와 울음을 그치지 못하였는데, 그 때문인지 1년 동안 자리에서 일어나지 못했다. 후에 그는 여후에게 이렇게 말했다.

   "척희를 그 모양으로 만들었으니 어디 사람이 할 짓입니까? 내가 당신의 아들이지만 도저히 천하를 다스릴 수 없습니다."

   그후 한혜제는 종일토록 술과 여색에 빠져 지내면서 정무를 완전히 폐했다. 이렇게 소극적이고 퇴폐적인 날을 보내던 그는 기원전 188년에 우울하게 죽었다.

   세상에서 가장 무서운 무기는 여자의 질투라고 했지만, 여후가 척희를 질투하여 저지른 복수는 아마 세상에서도 전무후무한 것이리라. 이는 전형적으로 중국적인 것이었다. 중국의 여인들은 천성이 특이해서 그런지 그녀들의 권모술수는 항상 잔인함과 관련을 맺고 있다. 여후는 동성의 라이벌에 대해서도 잔인하였을 뿐만 아니라 남성에게도 절대로 연약함을 보이지 않았다.

   한나라 초기, 천하가 안정을 찾기는 했지만 인심은 아직 통일되지 않았다. 특히 일부 군사 대권을 쥐고 있는 장수들이 천하를 호시탐탐 노리고 있었기 때문에 유방은 매우 조심하면서 지냈다. 그가 반란군 진희(陳豨)를 진압할 때도 궁중의 일은 여후에게 맡기고 궁중 밖의 일은 소하에게 위임한 후에야 비로소 마음을 놓고 떠났다. 여후는 실로 속셈이 있는 여인이었으니, 그녀는 권위를 세우고 세력 기반을 굳힐 수 있는 것이라면 사소한 기회도 놓지지 않고 앞날을 위해 토대를 닦았다.

   유방은 한신이 모반하는 것이 아닌가 의심을 했기 때문에 그의 지위를 강등시키면서 장안에 머물게 했다. 바로 이때 한신의 사인(舍人)인 난설(欒設)이 남동생을 보내서 한신이 진희와 내통하여 이미 밀약을 맺은 상태라는 보고를 올렸다. 즉, 야밤을 이용하여 감옥 문을 열어서 범죄자들을 풀어주고, 태자를 습격해서 진희와 호응하기로 되어 있다는 것이었다. 여후는 소식을 접하자 즉시 소하와 상의하여 한신을 제거하기로 했다. 여후는 심복 군졸을 유방이 보낸 군사로 위장시키기 위해서 일단 장안을 빠져나간 뒤에 다시 북쪽 장안으로 들어오게 했다. 그리고는 '진희는 이미 죽었다'는 소문을 퍼드리게 했다.

   대신들은 그 내막을 모르고 모두 조정에 나와서 축하를 했다. 여후의 본뜻은 이 기회에 한신을 궁중으로 유인하려는 것이었는데, 한신은 몸이 불편하다는 이유로 축하하러 오지 못했다. 어쩔 수 없이 소하가 찾아가보기로 했다.

    소하가 자신의 집을 찾아오자, 한신은 마지못해 나와서 그를 영접하였다. 소하가 한신을 보고 별로 병도 없는 것 같다고 했기 때문에 한신은 어쩔 수 없이 소하를 따라서 조정에 나갔다. 하지만 그는 미처 축하를 하기도 전에 체포되었다. 한신은 사태가 좋지 않은 걸 알아채고 급히 소하를 부르면서 구원을 청했으나 소하는 이미 멀리 피한 상태였다.

   무사들이 한신을 여후의 면전으로 끌고 갔다. 여후는 난설이 보내온 서신을 증거로 한신의 모반을 꾸짖었지만, 한신은 당연히 불복했다. 그러자 여후가 말했다.

   "진희가 이미 붙잡혔다는 황제의 조서가 왔는데, 이 속에는 그대와의 밀약이 있었다고 고백하고 있다. 또 그대의 사인이 밀고한 서신도 있으니 증거가 확실하다."

   여후는 이 일을 질질 끌다가는 다른 변수가 생길까 걱정해서 한신을 즉시 참수하도록 명했다. 이리하여 공훈이 혁혁한 개국의 원로는 억울한 누명을 쓴 채 여후의 칼에 죽임을 당했다.

   소하가 한신을 발탁해서 대장이 되도록 했고 또 계략으로 그를 체포해서 죽임을 당하게 하였으니, 그야말로 '성취한 것도 소하 때문이요. 망한 것도 소하 때문이라는' 격이다. 소하의 이런 행위는 바로 그때그때의 형세에 따라서 나온 것이었다. 유방에게 인재가 필요할 때 한신을 불러들였고, 유방이 '토끼를 다 잡아서 사냥개가 필요 없게' 되고 여후가 위엄을 세울 필요가 있게 되자 한신을 죽음으로 몰아넣었다.

   그러니 장수가 되는가, 아니면 귀신이 되는가 하는 것은 모두 당시의 필요에 따른 것이었다. 여기서 우리는 소하라는 위인이 정직하지 못한 인물임을 알 수 있다. 그는 단지 지모에 능하고 조심성이 많으며 시세를 잘 파악해서 화를 피하는 권모술수가 정도밖에 되지 않는다.

   여후는 한신을 죽이고도 성이 차지 않았는지 또 구실을 만들어 양왕(梁王) 팽월(彭越)까지 죽였다. 유방이 진희의 반란을 평정할 때 양(梁)땅에서 징병한 적이 있었는데, 마침 양왕 팽월은 병으로 드러누워 있어서 미처 유방을 찾아뵙지 못했다. 유방은 크네 노하면서 팽월에게 모반의 마음이 있지 않은가 의심했는데, 마침 양태복(梁太僕)이 팽월에게 모반의 뜻이있다고 보고하자 유방은 그를 즉시 체포하게 했다. 조사와 심문을 해본 결과 팽월이 반란을 평정하는 일에 적극적인 반응을 보이지는 못했으나 모반의 마음은 없었다는 것이 판명되었다. 하지만 유방은 그를 서인(庶人)으로 낮추고 낙양의 궁중에 감금했다가 나중에 다시 촉(蜀)땅에 이주하도록 했다.

   팽월이 서쪽으로 가다가 정(鄭) 땅에 이르렀는데, 마침 장안에서 낙양으로 가던 여후를 만났다. 실로 팽월은 죽을 운명이었다. 그는 자신의 무죄를 울면서 호소하며 고향인 창읍(昌邑)으로 돌아갈 수 있기를 청했다. 여후는 한번 방법을 생각해보겠다고 하면서 그를 낙양으로 데리고 갔다. 그리고 암암리에 사람을 시켜서 팽월이 모반하려 한다고 모함하도록 사주한 후에 그것을 구실로 팽월을 낙양성 밖에서 죽였다. 뿐만 아니라 그의 3족까지 멸해서 그 후환을 깨끗이 제거했다.

   여후가 왕후(王候)의 신분을 가진 두 공신을 죽이자, 대신들은 깜짝 놀라서 여후를 다시 보게 되었다. 여후는 그 기회를 틈타서 세력 기반을 어느 정도 구축했다. 그녀가 개국 공신들을 죽인 것은 장차 대권 장악이라는 원대한 목표를 실현하는 데 장애가 되는 인물들을 제거하기 위함이었다. 그러나 그녀의 행위는 동시에 그녀의 정치적 야심을 여지없이 드러냈다. 유방은 일찍이 이 점을 간파했다. 그래서 자신이 죽은 후에 유씨 정권이 무너지지 않도록 하기 위해서 대신들과 백마의 피를 마시며 이러한 서약을 했다.

   "만약 유씨의 종족이 아닌 자가 왕이 된다면, 천하 사람들이 합심하여 그 자를 토벌하라!"

   유방이 죽은 후 유영이 혜제로 즉위 하였으나, 그는 너무 나약해서 국가의 대권은 사실상 여후에게 돌아갔다.

   얼마 후 유영은 여후의 작간(作奸)에 놀라서 죽었다. 여후는 이 친자식밖에 없었기 때문에 궁녀가 낳은 유공(劉恭)이라는 사내애를 왕위에 올려 놓고 그의 생모는 죽여버렸다. 이렇게 해서 여후가 직접 모든 권력을 장악하는 상황이 이루어졌다.

   여후가 통치하는 8년 동안, 그녀는 유씨 종족이 아니면 왕이 될 수 없다는 규율을 개고 여씨 일족을 대거 책봉하였다. 그리하여 여대(呂臺)를 여왕(呂王)으로, 여산(呂産)을 양왕(梁王)으로, 여록(呂祿)을 조왕(趙王)으로, 여통(呂通)을 연왕(燕王)으로, 그의 여동생 여수(呂須 - 번쾌의 처)를 임광후(臨光候)로 각각 봉했다. 어떤 의미에서 보면 이때쯤 유씨 정권은 이미 여씨 정권으로 전락되어 있었다.

   유공은 점차 나이가 들면서 자신이 여후의 친자식이 아니란 것을 알게 되었다. 언젠가 육공이 이런 말을 했다.

   "태후가 어찌 나의 생모를 죽이고 나를 황제로 올려놓을 수 있단 말인가? 내가 장성한 후에는 반드시 복수 할 것이다."

   여후는 그 말을 듣자 즉시 그를 연금했고, 얼마 후에는 그를 폐하고 살해했다. 그 다음 왕위에 오른 항산왕(恒山王) 유홍(劉弘)은 완전히 꼭두각시 황제였다.

   기원전 180년 7월, 여후는 중병에 걸렸다. 그녀는 대신들이 자기에게 복종하지 않는다는 사실을 알고 있었으며, 그래서 자기가 죽은 후에는 반드시 커다란 혼란이 일어날 것을 에감하고 있었다. 그녀는 여씨 일족에게 미리 군사적 준비를 갖추도록 하는 한편 이렇게 당부했다.

   "내가 죽은 후에 대신들이 반란을 일으킬 수 있으니, 나의 장례식으로 인해 왕궁을 비우지 말라. 다른 사람이 왕궁을 장악할 수 있기 떄문이다. 그리고 병권을 완전히 장악해서 황궁을 굳게 지켜야 한다."

   바로 그 달에 여후는 병으로 죽었다. 한나라의 개국 공신 주발(周勃)과 승상 진평(陳平) 등은 다른 장수들과 함께 여씨 이족의 혼란을 틈타서 일거에 그들을 제거하여 모조리 죽였다. 그리고 유항(劉恒)을 추대하여 한문제(漢文帝)로 삼았다. 결국 여후가 온갖 고심을 하면서 이루려고 했던 여씨 정권은 철저히 파탄이 나고 말았다.

 

여후는 황제의 명분은 갖추지 못했으나 황제의 실속은 챙겼으니, 중국 역사에서 첫 여성 황제라고 할 만하다. 그녀는 8년 동안 집정하면서 백성들에게 휴식을 주는 여러 가지 정책을 시행함으로써 어느정도 사회의 안정과 발전을 이룩했다. 이 점에서 그녀에게 일정한 업적이 있다고 보아야 할것이다.

   일반 백성에서 시작하여 황제라는 지존(至尊)의 위치까지 오른 여성은 중국에서 여후가 유일하다. 그녀의 일생을 살펴보면, 기회와 개인의 노력이 절반씩 차지하였음을 알 수 있다. 앞의 절반은 유방의 아내이자 고귀한 신분인 황후로서 다른 사람과 견줄 수 없는 우위를 말하는 것이고, 뒤의 절반은 자신의 우세함에 의지해서 장기적으로 들인 노력과 강인하고 잔인한 수단을 가리킨다. 같은 황제의 아내로서 척희는 사실상 여후보다 더 많은 우위를 점하고 있었지만, 그 우위를 이용하지 못하고 단지 유방을 조르기만 하다가 결국 실패하고 말았다. 하지만 여후는 안과 밖을 아울러 공격하고 강함과 부드러움을 겸용한 수단으로 자신의 위엄을 확립해서 대신들을 제어했다.

   여후의 일생을 살펴볼 때, 성공의 비결은 사실상 교활하고 잔인한 데 있었다. 중국 봉건시대의 궁정은 아마도 도리와 도덕을 가장 무시하는 곳일 것이다. 그런 이유로 일반적인 상황에 빗대어서 조금이라도 인정을 갖게 되면 그 자리에서 패배하게 된다. 권력을 위해서는 물질, 도덕, 감정 등 어떠한 대가를 지불하는 것도 마다하지 말아야 하고 일체의 양심을 어기고 살아야 했다.

   궁정 안의 투쟁에서 권력욕과 인성(人性)이 겨루는 경우가 종종 발생하는데, 대체로 권력욕이 승리하고 인성이 패배하게 된다. 실패자의 수급을 살펴볼 때 우리는 그나마 미미한 인성을 느낄 수 있지만, 승리자의 미소를 바라볼 때 우리가 발견할 수 있는 것은 오직 권력욕뿐이다.

 

캠핑이나 낚시, 등산할 때 사용하기 좋은 충전식 태양광 랜턴입니다.캠핑하기 좋은 가을이 되어 캠핑등을 생각하시는 분들이 많이 계시리라 생각됩니다.
기존에 많이 사용하고 있는 일반 랜턴은 건전지 등을 준비하거나 미리 충전을 해놔야 하는 불편한 점이 있습니다.


오늘 소개해 드릴 제품은 무게가 가벼운 휴대가 간편한 충전식 태양광랜턴으로 태양광으로 충전하여 사용하기 때문에
건전지를 별도로 준비할 걱정을 할 필요가 없습니다.

 

 

 

 

공기 주입 상태

 

빨간 버튼을 누르면

밝기 조절

 

 

 

또한 전문적으로 등산을 하시는 경우 건전지나 충전된 랜턴이 방전 되었을 경우 비상용으로 사용할 수 있습니다.

태양광에 8시간 정도 충전을 하게되면 연속 점등으로 6~10시간 정도 사용이 가능합니다.
공기를 불어넣으면 위의 공기주입 상태와 같은 형태로 사용을 할 수 있습니다. 사용하지 않을 경우에는 공기를 빼면 간편하게 휴대를 할 수 있습니다.
생활방수가 되어 날씨에 관계없이 사용할 수 있으며 물에 띄울 수도 있습니다.

의외로 밝기가 밝습니다. 작은 방 한개정도는 충분히 밝힐 수 있습니다.
또한 무게는 90g으로 아주 가볍워 휴대가 간편합니다.


밝기는 2단계를 조절을 할 수 있으며 1단계는 약 40루멘, 2단계는 90루멘 그리고 마지막으로 점멸 모드로 사용이 가능합니다.


사용하는 방법에 따라 캠핑 등 뿐만 아니라 실내, 그리고 인테리어 조명으로도 사용이 가능할 것으로 생각됩니다.
또한 사용하는 방법은 사용하시는 분들에 따라 다양하게 사용할 수 있을것이라 생각됩니다.


소개한 제품 이외에도 태양광으로 충전하여 사용하는 다양한 디자인의 랜턴이 많이 있습니다.
앞으로 계속 소개해 드리도록 하겠습니다.


태양광 랜턴에 대해 관심이 있으신 분은 댓글이나 방명록에 남겨주시면 성실하게 답변 드리겠습니다.

 

 

'무역 > 아이디어 제품' 카테고리의 다른 글

캠핑용 충전식 LED 태양광랜턴  (10) 2015.10.08
  1. BlogIcon 김인수 2015.11.27 13:41

    솔라랜턴에 관심이 있습니다.

    위 제품 작동불량의경우(충전불량등)가 많다고 하던데

    어떤가요. 품질이 어느정도인지...

  2. BlogIcon 미리수 현쭌아빠 2015.11.27 18:05 신고

    저희가 사용해본바로는 불량은 거의 없습니다.
    혹시 있더라도 바로 교환 가능합니다.

  3. BlogIcon 류태연 2015.12.27 17:47

    제품 한번 보그 싶은데 어디로 찾아뵈면 될까요?

  4. 2017.08.25 15:09

    비밀댓글입니다

  5. 2018.01.23 14:34

    비밀댓글입니다

    • 2018.01.24 22:27

      비밀댓글입니다

  6. 2019.04.20 12:10

    비밀댓글입니다

    • 2019.04.23 12:14

      비밀댓글입니다

 

벌써 6살된 쭌 시간이 너므 빠른거 같네요

이쁜 한복입고 한컷 ㅎㅎ

'' 카테고리의 다른 글

추석에  (0) 2015.10.05
지난 여름 목포 바닷가를 다녀오면서  (0) 2012.12.04
감기 걸려서도 웃고 있는 아들  (0) 2012.11.12
쭌이와 드라이브  (0) 2012.11.09
병원 퇴원 기념으로  (0) 2011.06.24

오랜만에 글을 올립니다. 오늘은 jquery 이벤트 관련 메서드 중 동적으로 이벤트를 맵핑 할 수 있는 메서드를 정리해보겠습니다. 

자바스크립트 등과 같은 웹용 개발언어에서 조금은 불편한 것이 동적인 부분의 처리가 어렵다는 것이었습니다. 그러니 jquery의 live 메서드와 die 메서드는 그런 부족한 부분을 채워주는 메서드 입니다.


.live

 

 


 .live()의 메서드는 jqeury 플러그인으로 개발되어 사용이 되어오다가 jquery 버전 1.3 부터 정식 메서드로 추가되었습니다. 메서드 단어의 뜻으로는 정확히 어떤 기능을 하는 메서드인지 감이 잡히지 않습니다. 간단하게 설명하자면 개체(요소)에 이벤트라는 생명을 불어 넣어준다고 생각하시면 됩니다.


이해가 잘 안되시죠?(저도 잘 안됩니다. 메서드 이름의 단어 뜻만 가지고 설명하려고 하다보니 이해가 잘 안됩니다.)


좀더 쉽게 설명을 해보면 .click(), .bind() 등의 메서드는 HTML문서에 로드가 완료된 개체들에게만 이벤트를 맴핑을 했다면, .live() 메서드는 동적으로 생성되거나 앞으로 생성될 개체들에게도 이벤트를 맴핑 시켜 줄 수 있습니다.


예를 들어 $("a").click(function () { alert('a clicked');});의 경우 이미 로드가 완료된 HTML 문서 내에 존재하는 "a" 개체를 찾어 마우스 클릭 이벤트를 맴핑 합니다. 이후 에 동적으로 추가되는 "a"의 개체에는 이벤트를 맴핑 할 수 없습니다. 하지만 $("a").live('click',function() { alert('live click a'); });  처럼 사용한다면 처음 로드된 개체 및 로드 후에 동적으로 생성되는 모든 "a" 개체에도 동일한 이벤트가 적용됩니다.


사용형태는 .bind() 메서드와 사용형태가 전체적으로 비슷합니다. .bind()와 동일하게 여러 이벤트를 한번에 등록하는 것도 가능합니다. 



<!DOCTYPE html>

<html>

<head>

  <style>

  p { background:yellow; font-weight:bold; cursor:pointer;

      padding:5px; }

  p.over { background: #ccc; }

  span { color:red; }

  </style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

  <p>Click me!</p>


  <span></span>

<script>

$("p").live("click", function(){

  $(this).after("<p>Another paragraph!</p>");

});

</script>


</body>

</html>


Click me를 누를때 마다 <p>요소가 추가 되는 내용입니다. 추가된 <p> 요소에도 이벤트가 맴핑되어 역시 같은 기능을 수행합니다.









.die()



 

앞서 설명한 .live()와는 반대의 개념을 가진 메서드로서 동적으로 맴핑된 이벤트를 해제하는 기능을 하는 메서드입니다.

동적으로 맴핑된 이벤트를 해제하는 이유는 클라이언트에서 HTML문서의 변화를 계속 감지하기 때문에 클라이언트의 부하를 줄여주기 위한 것도 있으며, 어느 순간 해당 기능이 없어지는 경우 불필요한 부하를 막거나 계속되는 이벤트 맴핑으로 인한 오류를 미연에 방지하기 위함입니다.



<!DOCTYPE html>

<html>

<head>

  <style>

button { margin:5px; }

button#theone { color:red; background:yellow; }

</style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

  <button id="theone">Does nothing...</button>

<button id="bind">Bind Click</button>

<button id="unbind">Unbind Click</button>


<div style="display:none;">Click!</div>

<script>


function aClick() {

  $("div").show().fadeOut("slow");

}

$("#bind").click(function () {

  $("#theone").live("click", aClick)

              .text("Can Click!");

});

$("#unbind").click(function () {

  $("#theone").die("click", aClick)

              .text("Does nothing...");

});


</script>


</body>

</html>


bind click을 누르게 되면 이벤트를 동적으로 맴핑을 시켜줍니다. 그 이후 부터는 클릭을 하게되면 click 이벤트가 동작을 하게 됩니다.


반대로 unbind를 클릭하게 되면 동적으로 맴핑되었던 이벤트를 해제시켜 줍니다. 간단하게 동적으로 이벤트를 맴핑하거나 맴핑 해제를 시킬 수 있다는 것이 너무 환상적입니다.



 

  







.one()





 .bind()와 동일한 방식으로 이벤트를 추가합니다.  .bind()메서드로 맴핑된 이벤트는 HTML 문서가 오픈 되어 있는 동안에 계속 사용할 수 있습니다.  하지만 .one() 메서드로 맴핑된 이벤트는 딱 한번만 실행이 되고는 사라집니다. 


딱 한번만 실행이 됩니다. 실행되는 걸 확인해 보고 싶으시다면 http://api.jquery.com/one/ 을 방문하여 확인해보시기 바랍니다.









 

jquery 이벤트 메서드들 중에서 가장 중요한 메서드인 bind() 메서드를 정리해보았습니다. 


.bind()




이 메서드는 단어로 이해를 하면 묶어준다는 뜻입니다.  개체와 이벤트를 묶어주는(연결해주는) 역할을 합니다.


다른 event 관련 메서드는 직접 호출하지만, bind()의 경우 파라미터의 값으로 이벤트 이름을  대입하여 해당 이벤트를 체크합니다.


$("span").click(function() { alert('click'); }); 


event 메서드는 이렇게 사용했다면, bind() 메서드를 통해서는 다음과 같이 표현됩니다.


$("span").bind('click', function() { alert('bind click');});


두 메서드의 차이점은 .click() 메서드는 직접 호출을 하는 것이 아니고, bind() 메서드는 click() 메서드의 이름을 파라미터로 넘겨 동일한 효과를 얻는 것입니다.


이런 기능을 통해 조건에 따라 간단한 이벤트를 동적으로 할당 할 수 있습니다. 또한, 여러가지의 이벤트를 쉽게 선택한 개체(요소)에 적용할 수 있습니다. 두 개의 이벤트를 적용한 아래의 예제를 통하여 bind() 메서드에 대해 자세하게 알아보겠습니다.


<!DOCTYPE html>

<html>

<head>

  <style>

p { background:yellow; font-weight:bold; cursor:pointer; 

padding:5px; }

p.over { background: #ccc; }

span { color:red; }

</style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

  <p>Click or double click here.</p>

<span></span>

<script>

var count = 0;


$("p").bind("mouseenter mouseleave", function(event){

   count++;

  $("span").text(count + " enter or leave");

$(this).toggleClass("over");

});


</script>


</body>

</html>






mouseenter, mouseleave 이벤트를 이용하였습니다.  마우스를 움직이면 카운터가 올라가는 것을 확인할 수 있습니다. 두개의 이벤트를 지정 시에도 문제없이 동작하는 것을 확인 할 수 있습니다.


.bind() 메서드의 파라미터와 eventData를 사용하여 각각의 이벤트를 어떻게 확인하는지 확인해보겠습니다.


<!DOCTYPE html>

<html>

<head>

  <style>

p { background:yellow; font-weight:bold; cursor:pointer; 

padding:5px; }

p.over { background: #ccc; }

span { color:red; }

</style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

  <p>Click or double click here.</p>

<span></span>

<script>

var countEnter = 0;

var countLeave = 0;


$("p").bind("mouseenter mouseleave", function(e){

  if(e.type == 'mouseenter') {

    countEnter++;

    $("span").text(countEnter + " Mouse enter");

  } 

  else {

     countLeave++;

     $("span").text(countLeave + " Mose Leave");

  }

});

</script>

</body>

</html>








각각의 이벤트에 따라 값이 변하는 걸 볼 수 있습니다.


<!DOCTYPE html>

<html>

<head>

  <style>

p { background:yellow; font-weight:bold; cursor:pointer; 

padding:5px; }

p.over { background: #ccc; }

span { color:red; }

</style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

  <p>Click or double click here.</p>

<span></span>

<script>

var countEnter = 0;

var countLeave = 0;


$("p").bind({

  mouseenter : function(){

    countEnter++;

    $("span").text(countEnter + " Mouse enter");

  }, 

  mouseleave : function() {

     countLeave++;

     $("span").text(countLeave + " Mose Leave");

  }

});


</script>

<pre>

&lt;!DOCTYPE html&gt;

&lt;html&gt;

&lt;head&gt;

  &lt;style&gt;

p { background:yellow; font-weight:bold; cursor:pointer; 

padding:5px; }

p.over { background: #ccc; }

span { color:red; }

&lt;/style&gt;

  &lt;script src="http://code.jquery.com/jquery-latest.js"&gt;&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;

  &lt;p&gt;Click or double click here.&lt;/p&gt;

&lt;span&gt;&lt;/span&gt;

&lt;script&gt;

var countEnter = 0;

var countLeave = 0;


$("p").bind({

  mouseenter : function(){

    countEnter++;

    $("span").text(countEnter + " Mouse enter");

  }, 

  mouseleave : function() {

     countLeave++;

     $("span").text(countLeave + " Mose Leave");

  }

});

&lt;/script&gt;

&lt;/body&gt;

&lt;/html&gt;

</pre>

</body>

</html>






바로 위 스크립트 소스를 변경하여,bind() 메서드 파라미터에 eventData를 대신에 각각의 이벤트에 관련 함수를 연결하여 해당 이벤트를 구분 하고 있습니다. 마찬가지로 동일한 동작을 수행하는 것을 확인할 수 있습니다.


이벤트를 제어하기 위해서 꼭 알아야 하는 메서드이니 기억해 두시면 좋을거 같습니다.

jquery 이벤트에 정리를 해보도록 하겠습니다. jquery는 이벤트를 쉽고 간단하게 핸들링할 수 있는 여러 메서드를 제공하고 있습니다. jquery를 사용하지않는다면 직접 이벤트 지원 메서드를 사용자가 작성해야 하지만 jquery를 사용한다면 그런 수고를 덜 수 있습니다.

지원되는 메서드는 마우스 클릭 부터 더블클릭 그리고 마우스 휠에 대한 이벤트까지 쉽게 처리하고 사용할 수 있습니다.


jquery에서 제공하는 이벤트 관련 메서드는 수 없이 많습니다. jquery를 사용하는 개발자는 많은 jquery를 이벤트를 쉽게 이용할 수 있고, 다양한 UX를 만들 수 있다는 장점이 있습니다.(저 같이 게으른 게발자에게는 더 없이 좋은 일입니다.)  오늘은 jquery 이벤트 지원 메서드에 대해 정리를 해보았습니다.


종류 설명
.blur() 요소에서 포커스를 잃을 경우 발생하는 이벤트
.change() <input /> <textarea /> <select /> 요소의 값 변경시 발생하는 이벤트
.click() 마우스 클릭 시 발생하는 이벤트
.dblclick() 마우스 더블클릭시 발생하는 이벤트
.focus() 요소에 포커스 되었을때 발생하는 이벤트
.hover() 마우스가 요소위에 위치했을때 발생하는 이벤트
.keydown() 키 입력시 발생하는 이벤트, 모든 키에 적용
.keypress() keydown 이벤트와 동일하게 키 입력시 발생
enter, tab 등 특수키에는 발생하지 않습니다.
.keyup() 키 입력후 발생하는 이벤트
.mousedown() 마우스 클릭시 발생하는 이벤트
.mouseenter() 선택한 요소의 영역에 마우스가 위치했을때 발생되는 이벤트
.mouseleave() 선택한 요소의 영역에서 마우스가 벗어 났을때 발생되는 이벤트, 인터넷익스플롤러에서만 발생되는 이벤트
jquery는 브라우저 관계없이 사용되도록 시뮬레이터 됩니다.
.mouseout() 선택한 요소의 영역에서 마우스가 벗어났을 때 발생되는 이벤트입니다.
.mouseup() 마우스 클릭 후 발생하는 이벤트
.ready() DOM이 모두 준비가 되었을 때 발생하는 이벤트
.resize() resize() 될 경우 발생되는 이벤트
.scroll() HTML 문서가 스크롤 되었을때 발생하는 이벤트
.select() 선택한 개체를 마우스를 통해 선택할 때 발생하는 이벤트
.submit() submit가 일어날 떄 발생하는 이벤트입니다.(form 메서드 참고)


jquery에서 지원하는 이벤트 목록을 보면 정말 많습니다. 많은 목록의 이벤트를 다 외워둘 필요는 없습니다. 사용법은 거의 대동소이합니다. 따라서 이러한 jquery에서 이런 이벤트를 지원하는 구나 하는 정도로만 알고계시면 됩니다. 어떤 이벤트가 필요하다고 생각되시면 그때 목록을 보시고 사용하시면 됩니다.


가장 많이 사용되는 click 이벤트의 사용법을 예제를 통해 보시면 어떤 방법으로 jquery에서 HTML 요소에 이벤트를 할당하고 처리하는지 아시게 될것입니다.


[이전방식]

<script type="text/javascript">

   function pClick(obj) {

      alert(obj);

   }

</script>


<p onclick="pClick('p tag 1 ');">p tag 1</p>

<p onclick="pClick('p tag 2 ');">p tag 2</p>


[필요한 함수를 만들고, 이벤트가 필요한 요소에 일일이 적용]


추천방식

<script type="text/javascript">

   $(document).ready(function() {

      $("p").click(function() {

         alert($(this).text());

     });

   });

</script>



<p>p tag 1</p>

<p>p tag 1</p>


HTML 요소에는 아무런 작업을 하지 않음.


위와 같은 방식으로 하는 것이 처음에는 어색하고 그렇지만 HTML에서 사용하는 이벤트가 많아지고 동적으로 이벤트와 HTML요소를 맵핑하는 기능을 구현할 경우에는 막노동을 깔끔하게 해결하는 최고의 방법입니다. 또한 HTML 문서를 보기가 깔끔해지며 유지보수도 편하게 할 수 있습니다.

전에 프로그램 개발일을 할 때 주변 지인들과 이야기를 할때 프로그램 개발일이 알고보면 첨단 3D 업종이라고 했던 적이 있습니다.

jquery를 사용하게되면 일일이 수작업을 해야했던 일들이 많이 줄어드는 걸 알 수 있습니다.


.click()


jquery click


  

마우스 클릭시 동작하는 이벤트입니다. 선택한 객체에 마우스 클릭 이벤트가 발생할 경우 정의한 메서드(함수)가 실행 되며, 매개변수로 eventData로 이벤트에 대한 값이 전달 됩니다.


 $("p").click(function () { alert('마우스 클릭');  });


정의 할 경우 HTML 문서에 존재하는 <p> 태그요소에 클릭 이벤트가 할당되고, 정의 메서드의 결과인 alert('마우스 클릭');을 실행하게 됩니다.



<!DOCTYPE html>

<html>

<head>

   <title>jQuery Click 이벤트 사용</title>

  <style>

  p { color:red; margin:5px; cursor:pointer; }

  p:hover { background:yellow; }

  </style>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

  <p>첫번째 문단</p>

  <p>두번쨰 문단</p>

  <p>세번째 문단</p>


<script>

    $("p").click(function () {

      alert('마우스 클릭');

    });

</script>


</body>

</html>



클릭 이벤트가 필요한 요소의 셀렉터를 통해 선택하고, 선택된 모든 요소에 일괄적으로 이벤트가 적용됩니다. 이런 식으로 개발을 하면 코드의 양을 줄이고, 관련 메서드(함수)를 수정할때 일이 확 줄어드는 이점이 있습니다. 코드의 양이 줄어들기 떄문에 클라이언트로 전송되는 데이터도 적어지므로 트래픽에 대한 부담도 줄 일 수 있습니다.


웹에서는 거의 사용되지는 않지만 더블클릭을 구현하고 싶으시다면 위 예제에서 click() 부분을 dblclick()으로 변경하시면 됩니다.


<script>

    $("p").dblclick(function () {

      alert($(this).text());

    });

</script>



마지막으로 키보드 입력시 키보드의 키 값을 알아내는 예제를 통해 eventData의 사용법을 간단하게 알아보겠습니다.


.keydown()


jquery keydown




.keydown() 메서드를 사용하는 이유는 엔터키와 특수키 입력 체크를 위해서이며, 특수키에 대한 값이 필요 없을 경우 .keypress()를 사용하면 됩니다.



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>jQuery title</title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<style>

    div,pre {background : #FFF; padding:10px; margin:10px;}

table {border:1px solid #aaa;}

td { border:1px solid #aaa; width:25px; height:25px;}

.selected { font-wei:bold; color:white; background-color:red;}

</style>

    <script type="text/javascript">

  $(document).ready(function() {

   $("#txtinput").keydown(function(e) {

$("#txtKeyCode").val(e.keyCode);

});

  });

   </script>

</head>


<body style="padding:10px">

   <h2>jQuery selector</h2>

   <p>jQery에 대한 자세한 것을 보려면  jquery.com을 방문하세요.</p>

   <input type="text" id="txtinput" /><br /> 

   <input type="text" id="txtKeyCode" />

</body>

</html>







입력되는 키에 따른 "keycode" 값이 노출 될 것입니다. "enter", "ctrl","tab" 등의 특수 키보드의 값도 확인 할 수 있습니다. jquery에서 지원하는 이벤트 관련 메서드는 많습니다. 모든 것을 다 정리하기는 어렵고 이렇게 사용한다 하는 정도만 정리하였습니다.


jQuery form 관련 메서드를 정리해보겠습니다. 웹 프로그램에서 Form은 매우 중요한 요소입니다. 물론 웹프로그램을 만들 필요가 없다면 별로 중요하지 않을 수 있습니다.  사용자의 데이터를 서버로 전송하는 역할을 합니다. 


form하면 항상 등장하는 메서드가 submit()입니다. "submit"는 form에 있는 데이터를 사용자가 지정한 곳에 보내는 역할을 합니다.


jQeury에서 지원하는 .submit() 도 동일한 역할을 합니다.






.submit(handler(eventObject))를 살펴 보면, 뒤에 handler라는 것이 존재를 하고 있습니다. submit()를 클릭하게 되면 정의된 handler가 실행이 되어 실행되고 난 후 결과에 따라 서버로 데이터를 전송 할 것인지 말 것인지를 결정하게 됩니다.


일반적인 사용방법은 다음과 같습니다.


function SendData() {

   if(document.getElementById("txtName").value == '')

   {

         alert("자료를 입력하세요");

         return;

   } else {

        document.form.submit();

   }

}


위 방법을 jQuery에서 제공하는 .submit()를 사용하면 다음과 같습니다.


$('form').submit(function() {

   if($('#txtName').val() = '') {

         alert('자료를 입력하세요');

         return false; 

   } else {

        return ture;

   }

});



조금 형태만 달라졌을 뿐이지 기본적인 개념은 기존과 동일합니다. 사용하는데 큰 어려움 없이 바로 사용할 수 있을 것입니다.




서버와의 데이터 통신을 위해서 form에 있는 데이터를 직렬화 하거나 url을 통해 전달하는 경우가 있습니다. 특히 Ajax를 이용한 비동기 통신에서는 데이터 직렬화를 많이 사용하고 있습니다. 이런 데이터를 직렬화를 위해서 jQuery에서는 form 데이터를 직렬화 시킬 수 있는 메서드를 제공하고 있습니다.


.serialize(), serializeArray()




   

메서드의 명칭이 직렬화 입니다.  두 메서드의 역할은 동일하며, 반환되는 값에서 약간의 차이가 있을 뿐입니다.

.serialzie()는 선택한 form의 값을 'data=1&form=2&button=3'의 형태로 반환하며,  .serializeArray() 메서드는 jQuery 배열 개체로 반환합니다.


Ajax관련 데이터를 만들 때는 .serialize()를 사용하시면 됩니다.



<form>

  <div><input type="text" name="a" value="1" id="a" /></div>

  <div><input type="text" name="b" value="2" id="b" /></div>

  <div><input type="hidden" name="c" value="3" id="c" /></div>

  <div>

    <textarea name="d" rows="8" cols="40">4</textarea>

  </div>

  <div><select name="e">

    <option value="5" selected="selected">5</option>

    <option value="6">6</option>

    <option value="7">7</option>

  </select></div>

  <div>

    <input type="checkbox" name="f" value="8" id="f" />

  </div>

  <div>

    <input type="submit" name="g" value="Submit" id="g" />

  </div>

</form>



$('form').submit(function() {

  alert($(this).serialize());

  return false;

});



결과값은 a=1&b=2&c=3&d=4&e=5 의 형태로 나타날 것입니다.



.serializeArray()는 다음과 같이 사용됩니다.


<form>

  <div><input type="text" name="a" value="1" id="a" /></div>

  <div><input type="text" name="b" value="2" id="b" /></div>

  <div><input type="hidden" name="c" value="3" id="c" /></div>

  <div>

    <textarea name="d" rows="8" cols="40">4</textarea>

  </div>

  <div><select name="e">

    <option value="5" selected="selected">5</option>

    <option value="6">6</option>

    <option value="7">7</option>

  </select></div>

  <div>

    <input type="checkbox" name="f" value="8" id="f" />

  </div>

  <div>

    <input type="submit" name="g" value="Submit" id="g" />

  </div>

</form>




$('form').submit(function() {

  console.log($(this).serializeArray());

  return false;

});



결과값은 다음과 같습니다.


[

  {

    name: "a",

    value: "1"

  },

  {

    name: "b",

    value: "2"

  },

  {

    name: "c",

    value: "3"

  },

  {

    name: "d",

    value: "4"

  },

  {

    name: "e",

    value: "5"

  }

]



  웹프로그램을 만들때 쿼리스트링을 만들기 위해 많은 노력을 합니다.일면 노가다 작업이라고 합니다. 그런 작업을 하지 않아도 된다는 것입니다. form 데이터를 전송하게 되면 자동으로 직렬화가 이루어지지만, Ajax와 같은 특수한 상황에서는 정말로 필요한 메서드라고 생각합니다.


 

+ Recent posts