블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



"워렌버핏, 빌게이츠 학교에 가다" 라는 영상을 보고 두 사람의 말한 내용을 정해 보았다.

이시대 최고 부자들은 어떤 생각을 가지고 있는 지 궁금하기도 하고... 이 영상은 kbs1에서 방송한 내용 같은데 언제 방송한 건인지는 잘 모르겠다. 방송 내용은 워런버핏과 빌게이츠가 대학교에 찾아가서 대학생들에게 질문을 받고 답하는 형식이다. 참 인상적인 부분들이 있어서 질문 내용과 답변 내용을 정리해 봤다.

사용자 삽입 이미지




 

Q.  여러분은 조직 내에 도덕적인 리더십을 어떻게 관리 하고 계신가요? 본인 아래 경영자들이 본인의 뜻과 맞는 결정을 내리리라는 것을 어떻게 확신 하시지요?

 

A. (워렌 버핏)

 저희 회사는 자본이 풍부하지요. 돈을 더 벌면 좋겠지만 잃어도 큰 문제는 없어요. 하지만, 평판이 나빠지는 것만큼은 막아야지요. 그래서 저는 경영자들에게 묻습니다. "자신의 결정을 평가하라!!"고요. 법적으로 문제가 없는지도 중요하지만, 그건 첫 번째 조건일 뿐이지요. 제가 요구 하는 것은 "신문 검사"라고 하는 절차 입니다. 자기가 내린 결정이 다음날 아침에 신문에 실리고, 그 기사를 가족들과 친구들, 이웃사람들이 읽는다고 가정해보는 겁니다. 기자는 똑똑하지만, 우호적이지는 않은 사람이라고 해두지요, 그렇게 기사화 되었을 때 부끄러운 것이 없다면 괜찮아요. 그러나 아슬아슬 할 때는 취소가 낮지요. 가끔 저에게 확인을 부탁하는 경영자들도 있는데, 그렇게까지 할 정도라면 문제가 있다는 뜻 이지요.

 

A. (빌게이츠)

 마이크로소프트의 최고 경영진들은 대부분 대학을 다니고 학위를 따고 바로 입사한 사람들입니다. 저희 사업은 상당히 단순합니다. 훌륭한 소프트웨어를 만드는 것이지요. 저희는 매년 한자리에 앉아 사람들이 어떠한 제품을 원하는지 토론해 봅니다. 저희 제품들은 시장점유율이 높습니다. 전 세계에서 사업을 펼치고 있고요. 그래서 업무방식에 대해서는 직접 명령을 내리기도 합니다. 하지만, 보통은 경영자들이 일하는 내용을 보면 믿음직스럽다는 생각이 듭니다.

 

Q. 누군가가 두 분께 했던 조언 중 가장 좋았던 것은 무엇이었나요? 그리고 그 조언은 사생활과 일에 어떤 영향을 미쳤나요?

 

A. (빌게이츠)

 처음 버핏씨를 만난 뒤 다시 약속을 잡자고 했을 때 버핏씨가 꺼낸 달력엔 비어있는 날짜가 굉장히 많았습니다. 그래서 저는 의미 없는 잡다한 일정을 줄이는 실력이 대단하시다고 말했었지요. 그때 버핏씨는 "거절을 잘해야 한다"는 조언을 해주셨지요. 진짜 중요한 일정을 고를 줄 알아야 해요.

 

A. (워렌 버핏)

 저는 아버지로부터 좋은 조언을 많이 받았지요. 직접적인 것은 아니었습니다. 전 아버지를 보고 많은 것을 배웠지만, 말로 이래라 저래라 하신 적은 없었어요. 그래도 저는 중요한 교훈을 많이 얻었지요.

사람에게는 내면의 채점표와 외면의 채점표가 있어요. 어떤 사람들은 굉장히 많은 고민을 하면서도 자기 자신의 생각보다는 다른 사람이 어떻게 생각할지에 더 신경을 쓰기도 합니다. 자기 내면의 채점표가 마음에 드신다면 인생이 아마 굉장히 즐거워질 겁니다. 외적인 채점표에 매달리는 사람들의 경우는 모든 것이 끝난 뒤에 공허함을 느끼기 쉬울 겁니다.

 

Q. 다른 사람에게 조언이나, 평가가 필요할 때 두 분은 어떤 사람을 찾아가시나요?

 

A. (워렌 버핏)

 저는 보통 거울을 봅니다. 제 일의 특성상 혼자서 생각해야 할 때가 많습니다. 왜냐하면, 다른 사람들의 의견을 모은다는 것은 곧 남들이 다 하고 있는 일을 따라 하게 된다는 뜻 이니까요. 투자는 그렇게 하면 안됩니다. 제가 하는 일에는 혼자서 생각을 해낼 수 있을만한 환경과 성격이 필요 합니다. 그리고 저에게는 훌륭한 동업자가 있어요. 찰리 멍라는 친구인데, 전 그 친구 만큼 똑똑하고 훌륭한 사람은 본적이 없어요. 저희랑 생각하는 방식이 비슷해요. 종종 의견을 나누곤 하는 데, 그리 자주 만날 필요는 없습니다. 저도 찰리의 마음을 알고, 찰리도 제 마음을 알지요. 제가 결정을 내리거나 할 때 마다 간부들을 불어 들여서 의견을 물어야 한다면, 전 회사를 이끌 자격이 없는 겁니다. 그렇다고 제가 책임을 꺼리는 건 아닙니다. 전 단지 투표가 싫은 것뿐이 예요. 투자분야에서 그런 경우를 많이 봤거든요, 회사 규모가 커지면 커질수록 경영진의 결정도 획일화 됩니다. 경영진 수가 지나치게 많으면 절대로 기발한 투자결정을 내릴 수 없을 겁니다.

 

A. (빌게이츠)

저희 분야에서는 회사들이 어떤 기술에 투자를 할 건지를 예측하고, 그에 따라 결정을 내리는 것이 가장 중요합니다. 버핏씨의 일과 비슷해요. 때로는 기존의 방식들을 버리고, 아직 주목 받지 못하고 있는 새로운 것에 한번 도전해 보겠다는 의지가 중요하거든요. 그 기술영역에서 벗어났을 때 저는 운이 좋았지요. 현재 마이크로소프트 CEO인 스티브 발머를 만났으니깐요. 저희는 거의 매일 서로의 사무실을 드나듭니다. 발머가 사업쪽에 가까운 머리라면 저는 기술쪽에 가까운 머리를 지였지요. 하지만 저희는 오랜 세월을 함께 일하며, 상대방의 생각을 어느 정도 예측할 수 있게 되었어요. 덕분에 상대의 예측을 벗어나는 방법도 알게 되었지요. 발머를 빼면, 정말 힘든 결정을 앞두고 있을 땐 아버지를 찾아가거나, 버핏씨를 만납니다. 아내 멜린다를 찾기도 하지요. 저를 잘아는 사람들이고, 저의 약점을 잘 지적해주는 편이지요. 주위에 저를 잘 알고 있는 사람이 많으면 좋습니다. 주위 친구들이나 조언자들에게 일종의 권한을 부여하는 것이 좋다고 생각합니다. 중요한 순간 의지할 수 있는 소수의 사람들이 있다는 건 정말 훌륭한 자산입니다.


 

Q. 두분 모두 여러명의 경험자들을 거느리고 계신데요. 새롭게 이 분야에 취업하게 된 사람이 더 높은 경영자의 자리에 올라가리 위해서는 어떤 절차를 거쳐야 하는지 궁금합니다?

 

A. (워렌 버핏)

 어디에서나 특별한 사람은 눈에 뜁니다. 그들이 주목 받는 이유는 IQ 200이라서가 아니 예요. 그들의 행동 방식, 그들이 행하는 일이 중요하지요. 저희는 각 직원이 얼마만큼의 에너지와 정성과 실력을 보여주는지, 주위 사람들과 어떻게 지내는지 등을 다양한 면을 봅니다. 뛰어난 사람들은 기대이상으로 눈에 뛰기 마련입니다. 하지만, 어떤 상황에서든 필요한 것은 마음에 들든, 안 들든 간에 편한 한 마음가짐입니다. 화술도 길러주면 좋습니다. 화술은 50~60년간 아주 중요한 역할을 할 자산이니깐요. 연설하는 것을 좋아하지 않거나 어려워하는 경우에는 부담스러울 수도 있지만, 어짜피 앞으로 50~60년간 그 기술이 필요할 것입니다. 그 외에는 대부분 인간관계의 기술입니다. 주위 사람들로부터 최선을 이끌어 낼 수 있는 건 재능이지요. IQ와 상관없어요. 그 보다 태도와 관련이 깊어요. 세상과 다른 사람들을 바라보는 태도지요. 일찍 업계에 뛰어 들었다는 것이 신경쓰일때도, 다른 사람 앞에서 자랑을 할 필요도, 똑똑한 척 할 필요도 없습니다. 그들로 부터 최선을 이끌어 내기만하면 그 만큼 보상도 커질 테니깐요.

 

A. (빌게이츠)

 회사의 특성상 저희 마이크로소프트에는 입사한지 3년 만에도 급속승진을 할 수 있는 기회는 늘 있습니다. 절략을 세우는 능력이 뛰어나서 승진하는 경우도 있지요. 소프트웨어 제작인 경우 많지요. 훌륭한 리더십을 발휘하는 경우나, 개인적인 기호가 높은 경우에도 승진의 길이 열리게 됩니다. 저희는 각 분야에 어울리는 진로를 준비하려 노력하고 있지요. 회사가 선호하는 사람은 방금 나온 세가지를 잘하는 사람입니다. 조직의 위쪽으로 올라가면 점점 더 많은 사고의 기술이 필요해 집니다. 사람들과 잘지 내고, 절략도 잘 세워야 하지요. 저는 이 세가지 능력 중 하나씩을 보유한 인제들이 얼마나 많은지 깨닫고 정말 놀라곤 합니다. 하지만, 셋을 모두 갖춘 사람들은 드뭅니다. 이유는 저도 잘 모르겠군요.

개인적인 기호도가 높으면서도, 다른 사람들과 친분을 쌓고, 그들의 의견을 구하는 일 귀찮아하는 사람이 있다고 가정을 해보지요. 저희는 세가지가 조화를 이룬 사람, 또는 자질 중 하나가 모자랄 때는 다른 사람과 짝을 이루어 단점을 보안하는 사람을 찾고 있습니다. 아주 드물거든요. 높은 자리에 안칠 사람들이 필요합니다. 그런 인제를 더 많이 찾을 수 있다면 정말 반가운 일이 되겠지요.

 


Q.
처음에 일을 시작하셨을 때 지금의 성공을 이루어 내는데 가장 큰 영향을 미쳤던 것들은 무엇이었나요? 새로 생긴 습관이 있나요? 젊은이들에게 물려주고 싶은 건 무엇입니까?

 

A. (빌게이츠)

저에게도 습관이 있었습니다. 대학시절에 생긴 건데 사실 나쁜 습관입니다. 열심히 일하지 않는 척하는 거였습니다. 수업에도 잘 안 들어가는 모습을 보여주었지요. 그리고 시험 이틀 전에 갑자기 몰두하는 겁니다. 사람들은 그런 것을 재미있어 했어요. 그게 저의 전략이었지요. 벼락치기 시험공부를 하는 학생 말이예요. 하지만, 사업에는 그게 굉장히 나쁜 습관이었어요. 버리는데 몇년이나 걸렸어요. 마지막 순간에야 일을 칭찬해 주는 사람은 없습니다. 그래서 저도 뒤집어서 생각하기로 했어요. 저는 정리를 잘하고, 시간 맞쳐서 일을 끝내는 사람들은 별 볼일 없다고 생각했거든요, 아직도 극복하지 못했지만 일을 미루는 건 좋은 습관이 아닙니다.

 

A. (워렌 버핏)

습관은 뒤 늦게 생기기도 하지요. 저는 올바른 영혼을 바라보는 것이 중요하다고 생각 합니다. 전 운이 좋은 편이었어요. 영웅이란 모랄까 여러분이 우러러 보는 사람이지요! 세계를 보는 시각을 형성해주고, 자신이 원하는 미래를 구성하게 해줍니다. 그래서 제가 두 가지 조언을 드리겠습니다.

 자신에게 최대한 많이 투자하세요. 여러분의 가장 큰 자산은 여러분 자신입니다. 여기 계신 모든분들은 다양한 잠재력을 품고 있습니다. 이 나라에 태어난 것도 행운이고, 좋은 교육을 받게 된 것도 행운이지요. 하지만, 대부분의 사람들은 잠재력에 아주 작은 부분만을 사용하면서 살아가요. 그러니 여러분은 자기 자신에게 투자하세요. 그게 바로 최고의 투자입니다. 열정을 따르십시오. 자기 마음이 가는 일을 하세요. 전 여기서도 운이 좋았지요. 제 마음이 끌리는 일을 금방 찾았어요. 하지만, 돈만 보고 직업을 택하면 안됩니다. 자신에게 맞이 않은 성격의 회사에 들어가거나, 잘 맞지 않은 사람들 밑에서 일하진 마세요. 매일 아침 들뜬 마음으로 일어나 출근할 수 있어야 해요. 10년 뒤에도 같은 곳에서 일 할 필요는 없지만, 그런 경험을 통해 다 배우는 겁니다.

 

 

Q. 세계화는 소규모 사업에 어떤 영향을 미치게 될까요?

 

A. (워렌 버핏)

제가 보기엔 소규모 사업이라면 세계화에 영향을 미치진 않을 겁니다. 만약에 여러분이 고객이 원하는 물건을 알맞은 가격에 제공하고 있다면 먼 중국이나, 인도에서 일어나는 일에 큰 영향을 받지 않겠지요. 저희 회사와 거래하는 소규모 사업들은 세계화라는 것에 거의 영향을 받지 않았요. 만약 원단사업이나, 신발, 가구 사업 같은 규모가 큰 일을 한다면야 제조비 면에 있어서 세계 흐름에 많은 영향을 받게 되겠지만 말입니다.

 

A. (빌게이츠)

세계화의 흐름은 아주 중요합니다. 게임의 법칙을 바꾸고 있거든요. 버핏씨 말씀처럼. 작은 규모의 사업은 거의 영향을 받지 않지요. 대부분 지역적인 사업이라서 먼 나라에서 다른 사람이 그 사업을 따라 하는 것은 힘들기 때문입니다. 세계화의 가장 큰 변화는 중국의 발전입니다. 사업의 발달과 효율성 면에서는 어떻게 보면 중국이 미국보다 더 자본주의적으로 발전해가고 있는 상황이지요. 그러니 여러분이 어떤 분야에 종사하는 사람이든 중국을 경제에 중요한 변수로 여기고 주목해야 할 필요가 있다고 봅니다. 세계화라는 시각에서 중국이 자신이 일하는 회사에 미칠수 있는 간접적인 영향을 생각해 보세요. 앞으로는 더 중요해질 겁니다.

 


Q.
두분의 경력에서 최악의 투자를 뽑는다면 어떤 것이 있을까요?

 

A. (워렌 버핏)

제법 많은 실패를 했지만 결과적으로는 괜찮았어요. 누구나 살다 보면 실패를 합니다. 그건 지극히 당연한 사실이지요. 물론, 중요한 결정이 실패로 안되겠지요. 결혼상대를 고르는 것 같은 문제 말입니다. 이만한 규모의 사업을 하고 투자를 할 때는 어느 정도의 실패는 가만할 수 받게 없습니다. 줄이려고 노력은 하지요. 하지만 저는 실패에 매달리거나, 뒤를 돌아보지는 않아요. 가장 큰 실수는 눈에 뛰지 않는 것 들입니다. 어떤 일을 하는 것보다 하지 않는 쪽에 가깝지요. 한번 투자해서 그 만한 돈을 잃었던 건 처음이예요. 꼭 해야 했던 일을 안해서 실패했지요. 지금까지 저희가 알면서도 실수를 저질러서 생긴 손실액을 합치면 한 백억달러 가까이 될 겁니다. 제가 마이크로소프트사를 구매할 기회를 놓쳤던 걸 실패라고 할 수는 없어요. 전 그 분야를 잘 모르고 있었으니까요. 하지만 다른 경우에는 알면서도 결정을 잘 못 내려서 실패했던 투자도 있었습니다. 어떤 이유에서 인지 그냥 지나치거나, 소규모로 시행했었어요. 수표를 써야 할 시기에 멍하니 있던 것이지요. 그런 실수는 들어나지 않아요. 놓쳐버린 기회는 눈에 뛰지않지요. 저는 중요한 기회를 많이 놓쳤어요. 인생의 승리란 모든 부분에서 승리할 수 없다는 것을 깨달아야만 얻을 수 있습니다. 그래서 저는 실수에 크게 집착하지 않는 편입니다. 한번 실수에 괴로워하는 사람들이 많아요. 그럴 필요는 없습니다. 다음날부터 새로운 마음가짐으로 다음 일을 하면 되는 겁니다.

 

A. (빌게이츠)

마이크로소프트의 경우에 가장 큰 실수라면 앞으로 큰 인기를 끌게 될 상품을 놓친 것이 되겠지요. 인터넷으로 보는 TV였던 IPTV같은 기술을 지나치게 빨리 도입했던게 문제였습니다.아마 5년이나 앞섰을 거예요. 그게 이제야 보급되고 있지요. 물론 아쉬움은 전여 없습니다. 유행의 방향을 이해하는 것이 중요합니다.

사람들은 어떤 분야에 선두로 나서는 저의 능력을 과소평가하는 경향이 있습니다. 저희는 여러번 첨단기술을 선보였지요. 인터넷이 등장에 선풍적인 인기를 끌자 저희 회사도 방향을 그쪽으로 돌려야 했어요. IMB사가 저희와의 관계를 정리하고 경쟁사로 돌아선 것은 저희에게도 큰 도전이 었습니다. 하지만 저희는 새로운 것을 무조건 받아들이지는 않습니다. 소프트웨어 개발을 통한 혁신적인 기술이 나온다면 저희는 최고의 인제들을 불러 모아 작업을 하고 싶습니다. 그런 기술을 놓치는 것이 저희 회사의 가장 큰 실수라고 할 수 있겠지요.

 

 

Q. 억만장자이신 두분은 지갑에 보통 얼마 정도를 가지고 다니시나요?

A. (워렌 버핏)
 
평소에는 별로 안 들고 다닌다.

A. (빌게이츠)
평소에는 지갑을 안 들고 다녀요.

 

Q.
저희는 지금 살고 있는 것보다, 더 나은 세상을 만들기 위해 대학 교육을 받고 있다고 생각 합니다. 그리고 두분은 수많은 사람들의 생각에 영향을 미칠 수 있는 자리에 계신 분들이지요. 어떻게 결정을 내리시나요?

 

A. (워렌 버핏)

사람들은 매일 세상을 바꾸고 있습니다. 부모와 자녀를 생각해 보세요. 부모는 자녀들이 세상을 보는 시각을 형성해 주며 살아가지요. 선생님 역할입니다. 인간관계에서 가장 좋은 것 중 하나가 주위에 뛰어난 사람들을 많이 두는 겁니다. 사람은 주위 사람들의 행동을 따라 가게 되어 있거든요. 동시에 자신도 그들에게 영향을 미치고요. 일종에 공생관계지요. 그리고 제가 장담하던데 이 자리에 계신 분들도 세상을 바꾸고 있습니다. 분명히 더 낮은 모습으로 바꾸고 있을 것입니다. 하지마 눈에 뛰는 큰 변화는 아니겠지요. 어느 순간 짠하고 바뀌는게 아니라 소수한 변화들 이니까요. 하지만 여러분 행동이 다른 사람들에게 영향을 미치고, 좋은 본보기가 되어준다면 분명 지금보다 더 낮은 세상을 만들 수 있을 겁니다.

 

 

A. (빌게이츠)

제가 아주 중요하게 생각하는 한가지가 바로 한살이라도 젊었을 때 많은 경험을 쌓아두라는 겁니다. 미국에는 상대적으로 빈곤한 사람들이 많고, 어려운 처지에 사는 사람들도 많습니다. 그런 어려운 생활을 하는 사람들에게도 재능을 개발할 기회를 주는 것이 바로 교육이 해야 할 일입니다만, 그게 잘 되고 있지 않아서 문제이지요. 그리고 이상적인 방법은 미국의 수준에 비해 경제적으로 빈곤한 세계의 여러 나라에도 같은 기회를 주는 거겠지요. 그런 사회적인 문제를 처음 접하게 되면 대부분의 경우 굉장한 충격을 받게 됩니다. 이 정도일 줄은 몰랐다는 것이 일반적이지요. 요즘은 그런 사람들을 지원할 수 있는 기회도 늘어났습니다. 약을 공급하거나, 교육을 제공하는 식으로 소수의 사람들도 세계에 커다란 변화를 불러올 수 있게 됐습니다.

 

 

Q. Y이 세대라 불리는 저희들은 많은 문제를 안고 있습니다. 현대인들이 해결해야 할 사회적인 문제는 무엇이 있을까요? 또 미래의 지도자가 될 저희가 더 낮은 사회를 만들기 위해 꼭 해야 할 일은 무엇이 있을까요?

 

A. (빌게이츠)

아무래도 공정성 문제라고 생각됩니다. 나라와 나라 사이 뿐만 아니라 미국 내에서도 심각한 문제가 되고 있지요. 이런 상태가 여기서 더 심각해진다면은 나라에 분열이 일어나고 결과적으로 나라의 기치로 삼았던 유동성과 기회의 가치도 빛이 바래고 말겠지요. 그래서 저는 평등에 관한 이 나라국민들의 이상을 새롭게 해야 한다고 생각 합니다. 그리고 이 문제를 해결하기 위한 장기적인 투자 역시 이루어져야 한다고 생각합니다. 지금 우리는 아무런 노력도 하지 못하고 있어요.

 

A. (워렌 버핏)

우리는 운이 좋은 사람들입니다. 미국이란 나라에 태어날 수 있었고, 지식도 배울 수 있었던 사람들이지요. 200년 전에 태어나지 않았던 것도 행운입니다. 그때는 재능이 있어도 성공하기 힘들었으니까요. 그래서 우리는 아주 운이 좋은 사람들인 겁니다. 그런 행운을 누리지 못한 사람들도 많습니다. 10년 전 저희는 함께 중국에 갔었는데 머리가 좋고, 나쁘고와 상관없이 기회를 얻으려면 앞으로도 오랜 세월을 기다려야 되는 사람들을 많이 볼 수 있었습니다.

저희가 더 열심히 해야 합니다. 행운을 타고 나지 못한 미국사람들만 도울게 아니라, 게이츠씨 부부가 지금까지 해왔듯이 전 세계를 다니며 사람들을 도와줘야만 합니다. 전 그게 우리의 당연한 의무라고 생각 합니다. 게이츠씨는 젊은 나이에 병으로 죽어나 병으로 가족을 잃어가는 세계 각국에 사람들에게 백신을 공급해 줬습니다. 우리가 도울 수 있는 분야는 많습니다. 여러분 세대도 이런 일에 정성을 다해야 합니다.

 

 

Q. 한가지 초능력이 생긴다면 어떤 것을 원하시며, 또 그 이유는 무엇입니까?

 

A. (빌게이츠)

경쟁자를 없애는 능력은 사양입니다. 그건 재미가 없잖아요. 골프에서 홀인원만 치는 거랑 마찬가지지요. 책을 아주 빨리 읽는 능력이요.

 

A. (워렌 버핏)

이루고 싶은 일이 무엇인지 묻는 거라면, 제가 정말로 바라는 것은 이것입니다. 할 수만 있다면 오늘날의 세계로부터 핵개발에 관한 지식을 없애버리고 싶습니다. 여러분이 살아갈 미래에도 이 문제는 인류에게 심각한 위협이 될 겁니다. 이미 세상에 나와버린 지식이지요. 업질어진 물이예요. 세상에는 사악한 사람들이 많기 때문에 그런 나쁜 마음을 먹은 사람들이 이 지식을 손에 넣는 일을 어떻게 막는지가 문제입니다. 요즘은 그 지식이 널리 퍼졌기때문에 수 많은 사람들에게 심각한 피해를 입힐 수도 있으니까요. 제가 힘을 쓸 수만 있다면 가장 현명한 방법은 "박애주의" 전파하는 거겠지요. 하지만 전 방법을 잘 모릅니다. 조금씩은 노력하고 있지만요. 그게 저의 소망입니다. 이게 꿈 일수 밖에 없는 이유는 핵 문제가 크기 때문이지요.

 

 

Q. 우리 사회는 물질주의가 심각한데, 부유한 가정에서 자라난 두분의 자녀들에게 진정한 행복을 가져다줄 정신적인 부분의 가치는 어떻게 가르치고 계신지 궁금합니다.

 

A. (워렌 버핏)

저도 처음부터 부자는 아니였고, 부자가 된 뒤에도 집을 옮기지 않았어요. 저와 아이들은 처음 살던 집에서 계속해서 살았고, 학교도 공립학교를 다녔지요. 어째든 부유하게 자란 건 아닙니다. 전 충분히 나이를 먹은 뒤에 유명해 졌기 때문에 가족은 영향을 받지 않았어요.

저희 자녀들은 세상의 기준대로 하면 이미 부자이거나, 앞으로 부자가 될 사람들이지요.하지만 저희 자녀들은 저나 게이츠씨의 재산을 많이 상속 받게 될 거라는 기대를 하지 않고 삽니다. 저희 재산 중 99%는 어떤 형태로든 자선 활동에 들어가게 될 겁니다. 게이츠씨도 같은 생각을 하고 있고요. 저희는 미국최고, 세계최고의 부자 집안이 되려는 것이 아닙니다. 전 재산을 물려 주는 것이 낵히지 않아요. 그건 미국의 정신이 아닙니다.  그리고 또한 모든 사람들에게 평등한 기회를 주고 재능있는 사람들이 채용되고, 모두에게 돈을 벌수 있는 기회가 골고루 주어지는 것이 미국의 정신입니다. 근데 누군가가 부모를 잘 만났다는 이유만으로 사회에서 높은 지위를 차지하게 된다면 그건 제 생각에는 미국적인 연상이 아닌 것 같아요.

  

A. (빌게이츠)

아주 어려운 문제라고 생각합니다. 그 중에서도 특히 아이들이 아주 좋은 집에서 성장하게 되면 한계라는 걸 모르거든요. 아주 기본적인 문제에서 시작해야지요. 어렸을 때부터 용돈을 주고,그 돈으로 사탕을 살지 말지를 선택하도록 가르치는 겁니다. 지금 하나를 사면 앞으로 살수 없다는 것을 배워야지요. 그런 식으로 현실적인 한계를 익히도록 해줘야 합니다. 저는 아이들과 함께 아프리카나, 아시아를 방문해 그 곳 사람들의 생활을 보여주고 미국이라는 나라가 세계적인 기준으로 봤을 때는 오히려 비정상적인 곳이라는 사실을 어렸을 적부터 가르쳐줄 생각입니다. 지금 우리의 생활 수준을 앞으로 수십년 뒤에는 전 세계에서 누릴 수 있게 되기를 빌어야지요. 주위 사람들이 저의 아이들을 남들과 똑같이 대해주고 아이들 본연의 재능을 봐주길 바랍니다. 주위 사람들이 어떤 목적을 이루기 위해서 저희 아이들에게 접근한다면 정말 끔찍한 일이겠지요. 아이들은 자신이 누구이며, 어떤 능력을 지녔는지에 따라 평가를 받아야 합니다.

 

 

Q. 포브스지의 400백대 부자 명단을 보면 두분의 자산 통합은 910억달러 라고 하던데요. 굳이 비교를 하자면, 그 수치는 세계의 70대 빈국에 구민 총 생산을 합친 것보다도 더 큰 돈입니다. 두분의 엄청난 재산이 세계 경제적인 균형에 어떻게 기여하고 있다고 생각하십니까?

 

 

A. (워렌 버핏)

재산이란 이렇게 말하면 되겠군요. 요즘은 마이크로소프트가 출시하는 제품들이 세계의 번영을 이끌어 갑니다. 마이크로소프트는 수백 수천만 사람들의 삶을 바꿔놓고 있어요. 그 과정에서 결과적으로 사회가 발급한 보관증 비슷한걸 받는 거지요. 제 금고에 넣어 둔 조금한 쪽지가 있습니다. 주식 증권이라는 건데요. 그것도 언제 가는 돈으로 바꾸겠지요. 상품이나 서비스 구매에 쓸 겁니다. 저희가 가진 돈은 어떤 형태로든 가장 큰 효과, 즉 사회의 가장 큰 이익이 되는 방식으로 쓰이게 될 겁니다. 국내와 해외를 가리지 않고 전 세계를 위해서요.

돈은 환원됩니다. 저희는 최선을 다해 전 세계 사람들의 삶이 더 낫아질 수 있도록 노력할 겁니다.  그렇게 하는 데에는 두 가지 요인이 있는데, 하나는 얼마를 자선 사업에 투입할 것 인지와 얼마나 효율적으로 그 돈을 쓰느냐지요. 제 생각에 게이츠씨 부부는 가장 많은 돈을 환원하면서 동시에 제가 아는 한 사회사업에 많은 돈을 쓰는 여러 사람들 중에서도 가장 효율적으로 돈을 관리하는 분들입니다. 게이츠씨 부부는 스스로에게 이렇게 물었지요. 이 돈을 어떻게 사용하면 세상사람들의 삶을 더 나은 쪽으로 변화시킬 수 있을까? 어떤 방법이 더 합리적일까?그래서 두 사람은 자신들의 두뇌와 마음에 큰 재산을 더했지요. 그리고 자선사업에서 최고의 성과를 거두고 있습니다.

 

A. (빌게이츠)

가장 중요한 것은 벗핏씨는 버크셔의 큰 지분을 소지하고 있고, 저는 마이크로소프트의 지분을 상당히 소유하고 있지만 그건 소비가 아니지요. 이 사회의 자원은 한정되어 있고, 또 소비에도 한계가 있습니다. 그러니 5천만 달러를 버는 사람이 대저택을 짖고, 자기들이 쓸 물건들을 구입한다면 그들은 자원을 가난한 사람들을 돕는데 쓰는 대신 자신들의 방향으로 돌리는 것이라고 할 수 있겠지요. 행운과 실력이 따라서 사회적인 부를 어느 정도 축적한 사람이 그 부의 대부분을 가난한 사람들에게 돌려줄 수 있는 소비방식으로 쓰기를 택한다면 그건 로빈후드와 비슷하겠군요. 위에서 부를 재활용해 돌려주는 겁니다.

 

 

Q. 대학생들은 항상 미래에 대해 고민하고, 여러가지 계획도 세우지요. 두분은 10년 뒤 두분의 모습을 어떻게 상상하고 계신가요?

 

A. (워렌 버핏)

건강만 유지된다면 지금하고 있는 일을 계속하고 있겠지요. 좋아 하거든요.

 

A. (빌게이츠)

제가 일생 동안해 온 일은 아무래도 마이크로소프트를 중심에 두고 있지요. 앞으로 10년에 걸쳐 저는 자선사업에 투자하는 시간과 회사에 투자하는 시간의 비중을 조금씩 조절에 나가면서 자선 사업쪽에 조금씩 더 무게를 두는 쪽으로 변화해 갈 생각입니다. 그렇게 되면 마이크로소프트에 뛰어난 직원들이 앞으로 제품전략을 세우는 어려운 업무를 맡아 해나가야 하겠지요. 그게 제 일이었으니까요. 저는 제일이 좋습니다. 좋은 직업이지요. 그리고 저는 앞으로도 계속해서 마이크로소프트 일과 자선사업을 병행할 수 있을 겁니다.

 

 

 

Q. 두분이 생각하는 성공의 정의는 무엇이며, 사업 외적으로 가장 큰 성공은 무엇이 있는지 궁금합니다.

 

A. (빌게이츠)

저에게 사업 외적인 성공을 뽑으라면 아무래도 가정 꾸미는 일이 되겠지요. 저는 이제 막 시작했습니다만 다른 사람들과는 다른 어려움이 있습니다. 부모가 외부에 노출되어 있고, 돈 문제도 그렇고요. 물론, 아이들을 올바르게 키우는 일은 누구에게나 어렵지만 저도 정말 잘해내고 싶습니다. 지금까지는 큰 문제가 없었습니다.

 

A. (워렌 버핏)

성공 측면에서 바라봤을 때는 이 말을 들으면 놀라실 겁니다. 제 나이나 제 또래 나이가 된 사람들 중에 많은 사람들에게 사랑 받는 사람들을 거의 본적이 없습니다. 성공한 인생이라고 할 수 없지요. 성공적인 삶을 살아온 사람이라면 나이를 먹는다고 해도 주위사람들이 그 사람의 성공을 빌어줄 겁니다. 가족과 사업장에 동료들 모든 사람들이 거기 포함됩니다. 하지만 이와 반대인 사람들도 있어요. 엄청난 부를 누리고 있고 자기 이름을 딴 학교까지 세운 사람들을 알고 있습니다. 자기 이름으로 저녁 만찬도 열고, 모든 것을 갖추었지만 그 사람을 진심으로 생각하는 사람은 주위에 한 명도 없어요. 그 사람들이 알고 있기를 바랍니다. 그 나이가 되면 인생이 참으로 허무해 집니다. 엄청난 업적들을 남겼고, 포부스에 400대 부자 순위에 두는 그런 수준이라 해도 말이지요.



이 영상을 보면서 아직 크게 마음에 와닿지 않은 부분도 있었다. 하지만 이렇게 내용을 정리했으니 나중에 라도 다시 읽어 보면서 또 새로운 느낌이 들수도 있을 것 같다.


Posted by happydong
, |



UpdatePanelAnimationExtender

 

 ASP.NET AJAX 컨트롤에 관심이 있는 분이라면 한번쯤 써 봤을 컨트롤인 UpdatePanelAnimation 효과를 주게 하는 컨트롤입니다. UpdatePanel에 관련해서는 정말 많이 있으므로 여기서 다룰 내용이 조금 미흠 하다 싶으시면 바로 네이버, 구글 등 에서 자료를 찾아 보시면 되겠습니다~^^;

~그럼 제가 이 컨트롤을 이용해서 무엇을 만들어 볼 것이냐...?? 궁금하신가요~^^;; ..간단한 포트 갤러리..(!?)를 만들어 보려고 합니다. 여러번 말하는 것 보다는 한번 눈으로 보는 것이 좋겠지요~^^;;그래서 준비했습니다. 아래그림들.... 한번 보도록 하시지요~

 

1. 그림 (실행 화면)

 

사용자 삽입 이미지

 

위 그림이 처음 로드 된 모습입니다. 이미지 아래 Checkbox 3개 있고 버튼이 하나 있습니다. , Checkbox에 체크된 효과에 맞게 Animation이 일어나는 것이지요~! 아래 그림들을 계속 보도록 하겠습니다.

 

2.그림 (버튼을 클릭 Animation효과에 맞게 실행되는 모습)

 

사용자 삽입 이미지

 

3.그림(Animation효과에 맞게 실행되는 모습 2)

 

사용자 삽입 이미지

 

 

4.그림(Animation 효과후 다른 사진)

 

사용자 삽입 이미지

 

 

이런 식으로 해서 실행이 됩니다~^^;

예제 사진으로 계속해서 김연아 선수를 모델로 삼고 있는데요. 별 뜻은 없습니다~^^;; 있나..ㅋㅋ 요즘 뉴스에 많이 나오잖아요~ 어린 나이에 세계에 이름을 날리고..~~정말 부러운 모습입니다~^^;; 이 사진들은 네이버에서 예제로 할 만한 사진을 찾다가 기사를 보고... 그러다가 김연아 선수의 미니 홈페이지에 들여서 스크랩해서 가져 왔습니다~^^;; 혹시  김연아 선수가 네이버에서 검색을 하다가 제 블러그에 올 확율은 몇 퍼센트일까요~^^;;ㅋ 이뿐 사진으로 제 예제에 도움이 되준 김연아 선수 감솨 합니다~

그럼 계속해서 내용을 이어가도록 하겠습니다.

자 그럼 이제 VS2008 또는 VS2005 를 실행을 시켜서 웹 프로젝트를 하나 만드세요~^^VS2005로 만드실 분들은 제가 늘 애기하지만 그냥 Web프로젝트를 만들면 안되는 거 아시죠~^^;; 혹시 프로젝트를 어떻게 생성해야할지 모르는 분들 은 "ASP.NET AJAX 프로젝트 만들기 준비사항"를 참고 하시길 바랍니다~^^ 이제 코드로 보도록 하겠습니다.

 

 UpdatePanel Code (aspx페이지)

 김연아선수 포토 앨범 보기~!^^<br /><br />

<asp:ScriptManager ID="ScriptManager01" runat="server"></asp:ScriptManager>

<div style="margin-bottom:10px; width:500px; height:600px;">

<div style="border:dashed 1px #222222;">

<div id="AnimationContainer" style="background:#959695;">

<asp:UpdatePanel ID="UpPanel01" runat="server">

<ContentTemplate>

<asp:Image runat="server" ID="imgContent" ImageUrl="~/UpdatePanelAnima/images/img01.jpg" style="padding:1%; width:98%; height:560px;" />

</ContentTemplate>

<Triggers>

<asp:AsyncPostBackTrigger ControlID="btnimageChange" EventName="Click" />

</Triggers>

</asp:UpdatePanel>

</div>

</div>

<asp:Button ID="btnimageChange" runat="server" OnClick="ChangeImageClick" Text="다음사진"/>

 

위 코드는 그냥 UpdatePanel 컨트롤을 이용해서 페이지에 깜빡이 없이 이미지를 바꾸게 하는 코드 입니다. 그리고 위해서 조금 중요한 부분은 AnimationContainer id부분입니다. Div 안에서 애니메이션이 일어나기 때문에 id를 설정해주는 것이 중요합니다. 그럼 여기서 잠깐 UpdatePanel에 대서 아주 짧게 알아보도록 하겠습니다. 짧게 알아보는 이유인 즉 저 또한 공부중 이라... 2%...(더일수도 있고요..ㅋㅋ)부족합니다...ㅋㅋ

 

UpdatePanel : 포스트백에 의해 전 페이지를 새로고침 하는 것 대신 페이지 중 선택된 일부분만 새로 고침을 할 수 있습니다. 즉 부분 업데이트가 가능하다는 이야기지요. 다들 알고 있는 내용인 듯 하네요!!

 

 속성

 설명

 ContentTemplate

  업데이트가 필요한 Content 들을 정의 합니다.

 Triggers

 트리거는 패널을 업데이트하기 위해 유발시키는 포스트백컨트롤과 이벤트를 정의 합니다. UpdatePanel 밖에 버튼 컨트롤을 이용해서 패널을 업데이트 하기위해서 사용하지요.

 트리거는 <Triggers>요소안에 <asp:AsyncPostBackTrigger>로 정의되며, 트리거의 이벤트는 선택적입니다. (이벤트가 명시되지 않았을때는 컨트롤의 기본 이벤트가됨)

 

위 표에서의 내용을 잠깐 테스트 해보세요~^^ 제가 위에 올린 소스를 다들 입력 하셨으리라 생각이 됩니다~^^(이미지 경로는 알맞게 세팅해 주세요~^^;;) 그럼 이제 한번 실행을 시켜 보세요~ 어떻게 나오나요? 저하고 똑같이 하셨다면 회색 배경에 이미지가 보일 것이고 아래 버튼이 하나 있겠군요~그리고 클릭하고 깜빡이 없이 사진이 변화 될 테고요...맞죠~^^;; 현재 위 버튼은 UpdatePanel 밖에서 만들어져 있고 Trigger를 통해서 버튼의 이벤트가 정의되고 있네요. 그럼 위 버튼 바로 밑에 임의로 버튼을 하나 만들어 보세요~아래 코드 추가...

 

<asp:Button ID="testbtn" runat="server" Text="테스트" />

 

위 버튼은 이벤트를 정의 하지 않았습니다. 그럼 기본적으로 Click 이벤트가 발생하겠지요. 그리고 이 버튼은 트리거에도 정의되어 있지 않습니다. 자 그럼 이 상태에서 한번 실행을 시켜서 처음에 만들었던 버튼을 클릭해보고 테스트버튼을 한번 클릭해 보면... 차이가 나겠지요^^ 둘 다 UpdatePanel 밖에 존재하지만 트리거에 정의 되지 않은 버튼을 클릭하면 전체가 페이지가 로드 되는 것을 볼 수 있습니다.

자 이제 대충 감을 잡았을 것  같군요~!

그럼 테스트 버튼은 지우던지 마시던지 마음대로 하시고요~이제는 UpdatePanelAnimationExtender 컨트롤과 Checkbox 컨트롤을 만들어 보도록 하겠습니다. 버튼 컨트롤 위에 Checkbox를 만들 것 이므로 아래 코드를 버튼 컨트롤 위에 작성해 주세요~^^;;제 말이 꼭 법은 아니니깐 마음대로 하셔도 되요...(약해지는 모습...)

 

 Checkbox Code (aspx페이지)

 <input id="Ani_fade" type="checkbox" checked="checked" />

<label for="Ani_fade">깜빡효과</label>

<input id="Ani_Collapse" type="checkbox" checked="checked" />

<label for="Ani_Collapse">겹침효과</label>

<input id="Ani_color" type="checkbox" checked="checked" />

<label for="Ani_color">색상효과</label><br />

 

자 위의 코드처럼 HTML 코드로 체크박스를 만들었습니다. 이제 UpdatePanelAnimationExtender 컨트롤 생성하도록 하겠습니다.

 

UpdatePanelAnimationExtender Code

 <cc1:UpdatePanelAnimationExtender ID="UpdatePanelAnimationExtender1" runat="server"

BehaviorID="anima" TargetControlID="UpPanel01">

<Animations>

    <%-- 업데이트 중 일 때 이벤트정의  --%>

<OnUpdating>

<Sequence>

<%-- Panel 높이 지정--%>

<ScriptAction Script="var b = $find('anima'); b._originalHeight = b._element.offsetHeight;" />

                       

<%-- 모든 Control 비활성화 --%>

<Parallel duration="0">

<EnableAction AnimationTarget="btnimageChange" Enabled="false" />

<EnableAction AnimationTarget="Ani_color" Enabled="false" />

<EnableAction AnimationTarget="Ani_Collapse" Enabled="false" />

<EnableAction AnimationTarget="Ani_fade" Enabled="false" />

</Parallel>

<StyleAction Attribute="overflow" Value="hidden" />

                       

<%-- 체크가 되어 있는것들의 행위 수행 --%>

<Parallel duration=".25" Fps="30">

<Condition ConditionScript="$get('Ani_fade').checked">

<FadeOut AnimationTarget="AnimationContainer" minimumOpacity=".2" />

</Condition>

<Condition ConditionScript="$get('Ani_Collapse').checked">

<Resize Height="0" />

</Condition>

<Condition ConditionScript="$get('Ani_color').checked">

<Color AnimationTarget="AnimationContainer" PropertyKey="backgroundColor" EndValue="#FF0000" StartValue="#959695" />

</Condition>

</Parallel>

</Sequence>

</OnUpdating>

  <%-- 업데이트 후 일 때 이벤트정의 --%>

<OnUpdated>

<Sequence>

<%-- 체크가 되어 있는것들 행위 수행 --%>

<Parallel duration=".25" Fps="30">

<Condition ConditionScript="$get('Ani_fade').checked">

<FadeIn AnimationTarget="AnimationContainer" minimumOpacity=".2" />

</Condition>

<Condition ConditionScript="$get('Ani_Collapse').checked">

<%-- 기억된 높이 지정 --%>

<Resize HeightScript="$find('anima')._originalHeight" />

</Condition>

<Condition ConditionScript="$get('Ani_color').checked">

<Color AnimationTarget="AnimationContainer" PropertyKey="backgroundColor" StartValue="#FF0000" EndValue="#959695" />

</Condition>

</Parallel>

                       

<%-- 모든 Control 활성화 --%>

<Parallel duration="0">

<EnableAction AnimationTarget="Ani_fade" Enabled="true" />

<EnableAction AnimationTarget="Ani_Collapse" Enabled="true" />

<EnableAction AnimationTarget="Ani_color" Enabled="true" />

<EnableAction AnimationTarget="btnimageChange" Enabled="true" />

</Parallel>                           

</Sequence>

</OnUpdated>

</Animations>

</cc1:UpdatePanelAnimationExtender>

 

~ 코드가 길지요~^^;; 그래서 조금 복잡해 보일 것 같군요~! 근데 코드를 잘 보시면 크게 두 개의 애니메이션으로 나눌 수 있는데요. 처음은 업데이트 중 일 때 와 업데이트 후...이렇게 나눌 수 있겠네요 그리고 위 코드는 스크립트와 Style를 이용해서 효과를 지정한 것 입니다. Parallel 객체의 duration속성을 지정하므로 써 해당 시간이 됐을 때 일어날 효과를 지정하는 것이지요~! ~그럼 이제 버튼이벤트의 비하인트 코드를 보도록 하겠습니다.

 

 cs페이지 Code

 private int num = 1;

protected void Page_Load(object sender, EventArgs e)

{

// 세션값 지정

if (Session["Number"] != null)

{

num = int.Parse(Session["Number"].ToString());

}

else

{

Session["Number"] = num;

}

}

 

protected void ChangeImageClick(object sender, EventArgs e)

{

System.Threading.Thread.Sleep(300);

num++;

if (num == 9)

{

num = 1;

}

imgContent.ImageUrl = string.Format("~/UpdatePanelAnima/images/img0{0}.jpg", num);

Session["Number"] = num;

}

 

 

위 코드를 잠깐 설명하자면 상태 유지를 위해 세션객체를 만들어 봤습니다. 코드에서도 살짝 눈치 채셨겠지만 저는 따로 DB를 만든 것이 아닙니다. 예제로 만든 것이므로 데이터 베이스하고 연동을 않했구요 그냥 Images폴더를 만들어서 이미지 경로만 바꿔준 것입니다. 그리고 이미지파일들의 이름은 img01,img02...등등으로 되어 있고요 뒤 숫자만 바꿔가면서 이미지를 바꾸는 것이지요^^ 아주 허접 한 예제인가요..ㅋ죄송 합니다. 그냥 볼 때는 그럴 사 했는데...이렇게 까보고 나니깐..허접 하지요..ㅋㅋ^^;; 아무튼 코드 짜는 것은 개발자들 마다 다르기 때문에 더 좋은 방법이 있다면 그 방법으로 짜셔도 무관 합니다~^^그리고 저도 좀 알려주세요~ 늘 입버릇처럼 말하지만 저 또한 초보 개발자이고 공부 중에 있으니 공유해주세요~^^ㅎㅎ 세션객체는 왜 쓴 것일까...이미지를 바꿀 변수의 상태유지를 위해 만든 것 입니다. 버튼을 클릭하면 먼저 포스트백이 일어나고 난 뒤에 버튼 이벤트가 일어나기 때문에 위에서 지정한 변수는 항상 초기값을 갖게 됩니다. 그래서 저 같은 경우는 그냥 세션객체를 만든 것이지요.

자 그럼 여기까지 만들었다면 이제 실행을 해서 확인해 보세요~ 위 그림들과 같이 잘 되나요~ 혹시 더욱 자세하 내용을 보고 싶으시다면 아래 링크를 참고 하세요~

 

 - UpdatePanelAnimation 관련

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/UpdatePanelAnimation/UpdatePanelAnimation.aspx

 

 

참 제가 쓴 글을 한번 읽어 볼 때면 웃음는 모습이 많은 것 같네요~ 글도 사람 성격에 따라 써지나 봅니다. 혹시 이런 웃는 모습이 불편하다면 말해주세요~그리고 제 내용이 부족한 부분은 지적부탁드립 니다~!!(오타도 좋습니다) 그리고 늘 제 블로그에 오시는 분들에게 조금이나만 도움이 됐으면 좋겠습니다~^^ 그럼 오늘도 즐공 하시길....^^


아래는 제가 만든소스 코드 입니다. 참고 하세요~^^


 

Posted by happydong
, |



TabContainer
 

Tab를 이용한 기능을 하는 것들은 많이 보았을 것입니다. , 한 화면에서 여러 개의 컨텐츠을 그룹단위로 지어 표현할 때에는 Tab만큼 표현하기 좋은 것은 없기 때문일 것입니다~! 이번에는 AJAX Control 중에서 TabContainer 컨트롤을 이용해서 간단한 예제를 만들어 보도록 하겠습니다. ~ 그럼 만들어 볼 예제는 아래 그림과 같습니다. 짜짠....^^;;

 

1. 그림 (Daum 메인 화면 중에서..)

 

사용자 삽입 이미지

사용자 삽입 이미지
 

 

위 그림과 같이 스포츠 부분과 연애 부분의 기사내용을 TabContainer 컨트롤을 이용해서 간단하게 만들어 보도록 하겠습니다. 그럼 먼저 Visual Studio 2008(VS2008)로 웹 프로젝트 하나를 만들어 주세요~^^ ~! 그리고 이 컨트롤은  AJAX ControlToolkit 1.0 에서 지원이 되는 컨트롤 입니다. 혹시 VS2008이 아직 않 깔려 있으시다면 VS2005로 테스트해 보셔도 상관은 없습니다.  VS2005 AJAX Control를 테스트 하시 려면 기본적으로 설치해야 하는 것들이 있다는 거 알고 계시죠~^^;; 혹시 모르시는 분들은 제가쓴 "ASP.NET AJAX 프로젝트 만들기 준비사항"를 읽어 보시고 필요한 파일을 다운로드 해서 설치하세요~^^

이제 준비 되셨으리라 생각이 됩니다. 아래 그림은 VS2008 도구상자에서 본 TabContainer 컨트롤과 VS2005에서 본 TabContainer 컨틀로 입니다.

 

2.그림

 

사용자 삽입 이미지

 

 

 VS2005에서는 Tab관련해서 컨트롤이 두 개로 나눠어저 보이는 것을 볼 수 있습니다. 물론 VS2008에는 사라진 것이 아니지요..그냥 하나로 통합(?!)되었다고 표현해야 하나...VS2005에서와 쓰는 방법과 달라진 것 없는 것 같아요~ 그저 도구상자에서 컨트롤이 하나로 보인다는 거...정도...^^;;

암튼 잡소리는 그만 하고 코드로 만들어 보도록 하겠습니다. aspx페이지를 열어 두시고 AJAX Control를 사용하기 위해 ScriptManager를 생성해 줍니다. 그리고 나서 TabContainer 컨트롤을 도구상자에서 던저 넣어 주세요~ 물론 던저 넣으셔도 되고 직접 손으로 작성하셔도 됩니다.^^ 이런 것도 귀찮아 하시는 분들을 배려해서 제가 코드를 넣어(!?)줄 수는 없고 그냥 써 드리겠으니 복사해서 쓰세요~^^(넘 썰렁 개그인가요..)

 

TabContainer Code (aspx페이지)

 <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"

TagPrefix="AjaxControl" %>

 

중간 생략

 

<asp:ScriptManager ID="ScriptManager01" runat="server">

</asp:ScriptManager>

 

<AjaxControl:TabContainer ID="TabContainer1" runat="server" Width="500" Height="170" ActiveTabIndex="0">

</AjaxControl:TabContainer>

 

위 코드에서 Register aspx 페이지 제일 위에 넣어 주는 센스...잊지 마세요~

이렇게 코드가 생겼습니다. 그럼 TabContainer 컨트롤 안에  TabPanel이 있어야겠지요~ VS2005에서는 도구상자에 있으니깐 던저 넣으셔도 되고요 손으로 직접 쓰셔도 됩니다. VS2008 또한 손으로 직접 쓰셔도 됩니다. 그냥 TabContainer 컨트롤 안에서 "<" 찍으셔도 TabPanel이라고 나타날 거예요~! Visual Studio의 엄청 편리한 인텔리센스 기능...^^ TabPanel를 통해서 Tab의 갯수가 정해 집니다. 그러니 필요한 만큼만 만드시면 되겠네요~

그럼 간략하게 TabContainer 컨트롤과  TabPanel 컨트롤의 속성을 아래 표로 보시지요~!

 

TabContainer 컨트롤 속성

 

 속성

 설명

 OnActiveTabChanged

 포스트백후 탭이 변경되었을 경우 서버측에서 발생하는 이벤트

 ActiveTabIndex

 첫번째로 보여질 탭의 지정

 BackColor

 배경색을 지정

 BorderColor

 테두리 색을 지정

 BorderStyle

 테두리 스타일을 지정

 BorderWidth

 테두리 너비을 지정

 CssClass

 컨트롤에 적용될 CSS클래스명 지정

 Enabled

 컨트롤 활성화된 상태지정

 ScrollBars

 TabContainer 본문에 스크롤바를 표시할 것인지를 설정

 Width

 탭의 넓이를 지정

 Height

 탭의 높이를 지정

 

TabPanel 컨트롤 속성

 

 속성

 설명

 HeaderText

 탭 부분에 보여질 문자지정

 HeaderTemplate

 (Header) 부분의 보여질 템플릿

 ContentTemplate

 본문 내용을 템플릿

 OnClientClick

 클라이언트 클릭 이벤트의 스크립트함수 이름을 지정

(TabContainer 컨트롤과 TabPanel 컨트롤의 속성이 비슷한것도 있습니다. 나중에 쓰면서 한번 확인해 보세요^^; )

 

저는 두 개의 TabPanel를 만들었습니다. 하나는 스포츠 기사 내용이 들어 갈 것 이고요 , 하나는

연애기사가 들어 갈 것입니다. 소스는 아래와 같습니다.

 

 TabContainer , TabPanel Code (aspx페이지)

 <AjaxControl:TabContainer ID="TabContainer1" runat="server" Width="500" Height="170" ActiveTabIndex="0">

<%-- 연애 뉴스 --%>

<AjaxControl:TabPanel ID="TabPanel01" runat="server" HeaderText="연애인">

<ContentTemplate>

</ContentTemplate>

</AjaxControl:TabPanel>

<%-- 스포츠 뉴스 --%>

<AjaxControl:TabPanel ID="TabPanel02" runat="server" OnClientClick="TabPanulClick">

<HeaderTemplate>스포츠</HeaderTemplate>

<ContentTemplate>

</ContentTemplate>

</AjaxControl:TabPanel>

</AjaxControl:TabContainer>

 

이렇게 해서 두 개의 탭이 만들어 졌습니다. 두 개의 텝이 조금 다르게 보이시나요~! 코드상으로 연애 뉴스 탭쪽은 HeaderText 속성 사용해서 탭 부분에 문자를 넣어 봤고요두 번째 스포츠 뉴스 쪽에는 HeaderTemplate 속성을 이용해서 문자를 넣어 봤습니다. 그리고 OnClientClick속성을 이용해서 스크립트 함수를 호출하도록 해 봤습니다 . 스크립트 함수는 아주 간단합니다. 그냥 메세지 출력입니다

아래는 스크립트 함수소스 코드 입니다.  

 

Script Code (aspx페이지)

 <script type="text/javascript">

function TabPanulClick()

{

alert("이벤트 발생");

}

</script>

 

이렇게 하면 스포츠 메뉴 탭을 클릭하면 메세지 박스에 나타나겠지요~^^;;아주 허접한 이벤트 입니다. 이제 ContentTemplate안에 내용을 채워 주면 되겠네요~^^ 원하시는 대로 한번 꾸며 보세요~^^ 저는 위에서 보여 주었던 그림 그대로 한번 만들어 보도록 하겠습니다. 이미지들을 다운로드 받아 두었고요...코드로 짜면 되겠지요~ㅋ 코드는 아래와 같습니다.

 

TabPanel Code (aspx페이지)

 <%-- 연애 뉴스 --%>

<AjaxControl:TabPanel ID="TabPanel01" runat="server" HeaderText="연애인">

<ContentTemplate>

<div id="content01">

'뉴하트' 조재현, 순수하고 정의로운 의사 조금 거칠면 안되나요<br />

'인순이는 예쁘다' 사랑받는 이유 I '대조영' 걸사비우 생존 당연한가<br />

'케로로' 쓴 모자 2차대전 일본군모 I 신동엽·유재석·강호동 올해 성적표<br />

<hr style="width: 98%;" />

<div id="subContent01" style="width: 110px; height: 50px;">

<img src="images/img01.gif" alt="너무마른 고아라" style="width: 95%; height: 95%;" />

<br />&nbsp;앙상한 고아라<br />마른줄 알았지만..

</div>

<div id="subContent02" style="width: 110px; height: 50px; position: absolute; top: 111px;

left: 135px;">

<img src="images/img02.gif" alt="한지혜 다리" style="width: 95%; height: 95%;" /><br />

&nbsp;한지혜 이기적인<br />다리란 이런것!

</div>

<div id="subContent03" style="position: absolute; top: 111px; left: 250px;">

- [텔존] 연예계 결혼한 올드미스들은?<br />

- 단발머리 자른 성유리, 그래도 예쁘네<br />

- 김민정, 일본배우 아오이 유우와 직찍<br />

- 금발로 돌아온 브리트니, 뱃살은 어쩔<br />

- 이효리 스타일 결정체, LA 사진 모음<br />

</div>

</div>

</ContentTemplate>

</AjaxControl:TabPanel>

 

<%-- 스포츠 뉴스 --%>

<AjaxControl:TabPanel ID="TabPanel02" runat="server" OnClientClick="TabPanulClick">

<HeaderTemplate>스포츠</HeaderTemplate>

<ContentTemplate>

<div id="content02">

4년계약 이승엽, 왜 연봉 깎였을까? I 홍성흔 트레이드, 매력없는 이유<br />

ㅁ 편파판정 핸드볼 '다시 치른다' I 맨유가 박지성을 기다리는 이유<br />

ㅁ 오릭스, 리오스 영입 포기 선언 I 조정웅-안연홍 커플, 내년 6월 결혼<br />

<hr style="width: 98%;" />

<div id="subContent04" style="width: 110px; height: 50px;">

<img src="images/img03.gif" alt="김연아 웃음" style="width: 95%; height: 95%;" /><br />

&nbsp;김연아 일본서,<br />샤라포바와 동급

</div>

<div id="subContent05" style="width: 110px; height: 50px; position: absolute; top: 111px;

left: 135px;">

<img src="images/img04.gif" alt="소렌스탐" style="width: 95%; height: 95%;" /><br />

&nbsp;소렌스탐, 17<br />대회만에 첫 승

</div>

<div id="subContent06" style="position: absolute; top: 111px; left: 250px;">

- 'KIA' 서재응의 새로운 도전<br />

- 국가대표 선수들 "숙소달라"시위

<br />

- 홍성흔 트레이드가 매력없는 이유<br />

- 더 선 선정 최고의 프리키커 top10<br />

- 김연아, 전설의 길로 날개 편다<br />

</div>

</div>

</ContentTemplate>

</AjaxControl:TabPanel>

 

위 코드는 따로 설명이 필요 없는 아주 단순하게 짜본 것입니다. 눈으로 잠깐 보셔도 아 실수 있는 내용이라 생각이 되는 군요~^^ 혹시 따로 만들기 귀찮은 분은 제가 만든 허접한 코드를 복사해서 붙어 넣으세요..단 이미지파일경로를 변경해 주는 센스 잊지 마세요~ㅋ 자 그럼 어디 잘 실행이 되는지 확인해 보도록 하겠습니다.

 

3.그림(처음실행)

 

사용자 삽입 이미지

 

4.그림(스포츠탭 클릭 이벤트 발생)

 

사용자 삽입 이미지

 

5.그림(스포츠 내용)

 

사용자 삽입 이미지

 

 좀 비슷하게 만든것 같지요~^^;;; 아닐수도 있지만...제 눈에는 비슷하네요...ㅋㅋ(자기만족...ㅋㅋ) 이렇게 해서 간단하게 TabContainer 컨트롤에 대해서 알아 봤습니다. 혹시 참고 될 만 한 사이트를 원하신다면 아래 주소를 참고 하세요~^^;;

 

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Tabs/Tabs.aspx



아래는 제가 만든 소스 코드 입니다. 참고 하세요~^^

 

Posted by happydong
, |