2009년 10월 12일 월요일

무사와 농부


 
어떤 무사가 자신이 섬기던 주군을 잃고, 술집에 가서 심각하게 앉아 있었다. 그런데 그때 한 농부가 술에 취해 비틀거리다가 그 무사의 탁자를 엎지르고 만다. 농부는 급히 용서를 빌었지만, 무사는 참지 못하고 결투 신청을 했다. 무사는 자신을 피하면 끝까지 쫓아가서 끝장을 보겠다고 으름장을 놓고는 돌아갔다.
 
결투 날짜는 일주일 후였다. 농부는 일단 근처 검도장을 찾아가 검도 사범에게 이런 사정을 이야기했다. 검도 사범은 승산이 없다고 고개를 저었다. 다만 죽더라도 그 무사와 함께 죽을 방법을 일러주겠다고 했다. 검도 사범은 단 한 가지의 자세와 하나의 베기 동작만 반복하여 가르쳤다.
 
"무사는 공격하기 전에 당신의 실력을 알아보려 할 것이요. 하지만 절대 움직이지 마시오. 그에게 다가가거나 칼을 휘두르지도 말고 기다리기만 하시오. 그가 정말 당신을 죽이려고 칼을 들 때에만 움직이도록 하시오."
 
어느 모로 보나 살아남기는 글렀다고 생각한 농부는 어쩔 수 없이 결투를 받아들이기로 결심하고 베기 동작만 줄곧 연습했다.
 
마침내 결투의 시간이 다가왔다. 마주한 무사는 노련한 자세로 다가왔다. 그리고 농부를 가운데 에 두고 원을 그리며 이리저리 움직였다. 농부를 자극하려고 허점을 살짝 보이기도 했다. 그러는 동안에도 농부는 꼼짝하지 않고 검객을 유심히 바라볼 따름이었다. 무사를 벨 기회는 오직 단 한번뿐이며, 두 번의 기회는 없을 것이었다.
 
한참 후 무사가 잠시 뒤로 물러서더니 앞으로 달려 나왔다. 이제 정말 칼을 휘두를 참인 듯 했다. 하지만 칼은 공중에서 멈추었다. 그리고 알 수 없는 고요가 뒤따랐다. 무사는 농부의 얼굴에서 그 어떤 공포나 두려움도 읽을 수 없었다. 결국 그는 칼을 거두며 물러섰다.
 
"내가 도전했을 때, 당신은 시골뜨기 이상 아무것도 아닌 것처럼 보였고 나는 분명 당신을 무시하고 있었소. 하지만 오늘 나는 그대의 방어를 깨뜨릴 수 없었소. 어떤 공격도 나를 함께 버리지 않고서는 불가능했소. 당신은 분명 무사의 정신을 지녔고, 나는 당신에게 경의를 표하는 바이오. 용무는 여기서 끝났소."
 
그는 깊이 허리를 숙여 절을 하고 돌아서서 가 버렸다. 농부는 여전히 그대로 정지한 채 서 있었다. 그의 신경은 오직 한 번의 베기에 집중되어 있었던 것이다. 결국 그에겐 아무 일도 일어나지 않았고, 죽지도 않았다.

 

참고도서: 무도의 전설과 신화(피터 루이스, 황금가지)

2009년 8월 30일 일요일

실패하는 리더의 3가지 유형

대내외 환경이 복잡해지고, 조직의 규모는 확대되고 다양해짐에 따라 기업이나, 군, 각종 단체에서 비전과 전략을 제시하고 실행하는 리더의 역할확대는 불가피해 지고 있다. 리더의 역량과 리더십에 의해 조직의 생존과 미래가 좌우되므로 리더에 대한 엄격하고 치밀한 선발 과정이 도입되고 있지만, 조직에서 퇴출되는 리더의 수는 줄어들지 않고 있다. 이에 실패하는 리더들이 흔히 저지르는 대표적인 행동 유형 3가지를 요약해 봄으로써 리더로써 실패를 줄이는 방안을 찾아보고자 한다.
 
전능하기만한 리더
조직내 모든 일은 자신이 직접 관리해야 제대로 처리할 수 있다고 믿는 리더가 있다. 이러한 리더는 누구나 할 수 있는 사소한 임무만을 구성원들에게 맡기고, 중요하다고 생각되는 임무는 자신이 독차지 한다. 게다가 밤늦게 까지 일하고도 모자라 집에까지 조직의 일을 가져가고, 주말이나 휴일에도 일을 손에 놓지 않는다.
이런 리더의 변함없는 특징 중의 하나는 한꺼번에 휴식이나 휴가를 사용하는 경우가 없다는 것이다. 자기가 없으면 조직이 돌아갈 수 없다고 믿기 때문에 한 번에 1일 내지 2일 정도만 쉰다. 휴가를 떠나기 전에도 어떤 경우가 비상시인지를 언급하고, 휴가장소와 비상시 연락처를 꼭 남겨두고, 자신이 돌아올때까지 해야할 것들과 하지 않을 것들을 조목조목 지시한다. 그리고는 가족들이나 구성원들에게 “며칠이라도 내가 조직에서 맘편히 벗어날 수 있도록 가만히 놔두지 않는군”하며 불평하기까지 한다. 이것이 바로 자신이 조직에 헌신하고 있으며, 조직에서 필수불가결한 존재라는 인식을 심고싶은 전능한 리더가 진심으로 원하는 것이고, 그래야만 조직과 구성원들이 리더의 중요함을 인식할 수 있다고 확신한다.
그러나 이런 종류의 전능한 리더가 있는 조직의 구성원들은 문제가 심각하다. 구성원들은 진급을 하거나 열정을 가지고 임무를 수행하는데 많은 어려움이 발생하기 때문이다. 전능한 리더가 있는 한 아주 제한된 범위 내에서만 한정된 임무를 수행해야만 하며, 책임 있는 업무는 거의 해 볼 기회조차 없기 때문에 자신의 능력을 인정받거나 보여줄 기회가 거의 없을뿐더러 조직내에서 경력을 쌓거나 성장하는 것 역시 쉽지 않다. 대게 이런 조직의 구성원들은 ‘전능한 리더’가 생각하는 것보다 훨씬 뛰어난 자질과 역량을 가지고 있기 마련인데 자신에게 할당된 반복되는 사소한 임무에 싫증을 내고, 조직을 이탈하는 문제와 맞닥뜨리게 된다.
전능한 리더는 구성원들이 조직을 이탈하는 상황에 대해 자신이 구성원들에 업무를 위임하지 않아 발생된 문제를 전혀 인정하지 않은 채 직원들이 책임을 지려 하지 않아 자신이 임무를 도맡아 처리할 수밖에 없다고 믿고 조직에서 자신에게 특별한 기대를 하고 있다고 확신한다.
리더십은 조직에서 현재의 성과를 만들어 내는 견인차이자 조직의 미래를 좌우하는 핵심요인이다. 이런 패턴이 생활화 되어 있는 리더는 일방적으로 독주하기 마련이며, 리더 자신은 열정을 발휘하지만 그럴수록 구성원들을 주눅 들게 한다. 구성원들은 임무를 수행하기는 하지만 방관자가 되어 수동적으로 주어진 임무만 수행하게 되어 성과를 창출하기 쉽지 않을뿐더러 줄지 않고 늘어만 가는 임무를 혼자서 감당하는 전능한 리더자신 역시 성공적인 리더나 관리자가 될 가능성은 아주 희박하다.
 
실행력이 부족한 리더
조직의 출발점은 리더이다. 성공하는 리더와 실패하는 리더를 구분 지을 수 있는 근본적인 차이는 무엇일까? 조직의 방향성에 맞는 비전과 전략 제시는 리더의 가장 중요한 역할중의 하나이다. 비전이나 전략이 제대로 되어 있지 않는 조직이 성과를 보장받을 수 없다는 건 주지의 사실이다. 그러나 조직이 비전과 전략이 있기 때문에 경쟁 우위를 확보하고 탁월한 성과를 내게 되리라는 믿음은 잘못된 것이다. 아무리 잘 짜여진 비전과 전략이 있더라도 이것이 성과로 연결되기 위해서는 실행이라는 과정이 필요하다. 다른 조직에 앞서 비전과 전략을 완성했다하더라도 체계적이고 철저한 관리시스템과 실행력이 뒷받침되지 못하면 결국 모방당하기 쉽고 경쟁력을 확보하지 못한 채 뒤처지고 말기 때문이다.
실패하는 리더들의 가장 치명적인 약점이자 공통점은 바로 실행력이 부족하다는 것이다. 실행력은 조직구성원들을 변화시키고, 비전을 향해 움직일 수 있도록 하는 것이기 때문에 뛰어난 리더십을 발휘하지 못하면 발현되지 않는다.
실패하는 리더는 조직의 비전과 전략에 대해 말만 무성할 뿐 실행력이 뒷받침되지 않는다(Talk Only, No Action). 예를 들어 조직내 의사결정 속도나 조직 효율성, 내외부 환경 변화등에 대한 대응이 절실함에도 변화를 신속하게 이끌어 내지 못하거나, 개선을 위한 실행 방안이 피상적이며 선언적이고 이벤트 수준에 머무르는 경우이다. 이럴경우 조직구성원들은 경험에 의해 리더 언행의 진실성 여부를 알아채고 그 수준에 맞춰 행동하게 되고 이는 구성원과 리더 상호간의 신뢰를 깨트리는 등의 악순환이 반복되어 리더로서의 역할을 전혀 할 수 없게 되는 것이다.
리더가 해야 할 가장 중요한 역할 중의 하나는 의사 결정이고 까다로운 결정일수록 선택에 따른 위험이 따르게 마련이다. 리더의 실행력 부족은 종종 의사결정의 지체에서 비롯된다. 특히 실행력이 부족한 리더는 기본적으로 잘못된 결정을 내리는 것을 두려워하기 때문에 작은 의사 결정이라도 많은 변수를 고려하다가 의사결정을 하지 않거나 적절한 의사결정 포인트를 놓치는 경우가 많다. 또한 실행의 성공 여부를 알기 어렵기 때문에 과감한 실행을 주저하게 되고, 올바른 결정을 했다고 하더라도 상대방이 강하게 나오면 한번 내린 결정을 번복하고, 구성원들의 합의를 지나치게 중시하다보니 실행 속도가 느려지는 경우가 잦다. 리더의 강력한 실행력 없이 조직을 바꾸는 것은 쉽지 않다. 실행력이 부족한 리더는 단호한 결정이 요구되는 상황임에도 자신감 없이 우유부단하기 때문에 효과적으로 상황에 대처할 수 없고 과감하고 신속하게 목표한 바를 추진해 나가지도 못한다. 또한 실행에 대한 명확한 의지를 구성원들에게 보일수도 없어 리더로서의 카리스마의 부족과 신뢰부족 리더십의 부재로 이어진다.
리더의 실행력은 조직의 성공적인 성과창출의 지름길이며, 실행력의 차이는 바로 경쟁력의 차이이다. 포춘지의 한 기사에서 “실패하는 리더의 70%는 치명적인 단 하나의 약점, 즉 실행력이 없기 때문이다”라고 말하고 있는 것처럼, 조직내 비전과 전략 실현에 있어 가장 중요한 역할을 하는 사람은 바로 리더이다. 리더가 미래 방향을 끌어갈 수 있는 분명한 의지와 함께 실행 계획(Action Plan)을 갖고 있지 못한다면 조직은 미래에 적극 대응할 능력을 상실하게 되며, 리더십 부재로 그 조직은 커다란 위기에 봉착하게 될 수 있다.
 
권위주의(Authoritarianism)에 집착하는 리더
몇 년 전만 해도 ‘상사로부터 인정받는 리더’는 리더십의 주요 관심사였고, 대부분의 리더들에게 구성원들은 단지 효율적으로 관리해야 할 대상일 뿐이었다. 하지만 구성원들이 열정과 의욕을 가지고 임무를 수행하며 성과를 높일 수 있도록 동기부여 하는 것이 리더의 핵심 역할로 부각되면서 ‘시키는 대로 해’라는 식의 권위주의에 집착하는 리더들은 가장 경계해야 할 대상이 되고 있다. 리더의 독선적이고 권위적인 행동은 구성원들의 동기부여나 책임의식, 임무에 대한 열정을 저하시켜, 결과적으로 구성원들을 떠나게 만드는 주요 요인이 되기 때문이다.
권위주의에 집착하는 리더는 구성원들에게 자신의 아이디어와 다른 생각이나 비판적 의견에 강압적인 방식으로 자신의 주장을 관철시키며 간혹 구성원들 앞에서 화를 내는 모습을 보이고, 구성원들의 과도한 스트레스를 유발하는 것이 자신의 리더십을 발휘하는 것이라 믿고 일부러 조직 내에 공포 분위기를 조성하기도 한다. 또한 구성원들의 업무 스타일을 인정하기보다는 자신의 스타일에 맞추도록 강요하며, 최악의 경우 동조하는 구성원들로만 임무를 추진하는 경우도 있다.
권위적인 리더들이 이끄는 조직에서는 리더와 가까이 하려 하지 않고, 따르려 하지도 않으며 의견을 내놓는 경우 질책이나 비난을 받을 것이라는 두려움이 만연해 있기 때문에 구성원들은 주눅이 들어 자신감을 상실하거나 리더와의 접촉을 피해 복지부동하는 태도를 보인다. 특히 비난받지 않을 정도로만 임무를 수행하며, 구성원들이 열정적이며 자발적으로 새로운 비전이나 전략에 대한 모색을 하거나 아이디어 창출을 기피하기 때문에 성과를 창출해 낼 수 있는 조직을 기대하기는 어렵다.
리더의 권위는 결국 권한에서 나오는 것이며, 성공하는 리더는 권한이 없더라도 구성원들로부터 존경을 받는다. 권한은 구성원 모두가 수긍할 수 있고 수용할 수 있는 한도 내에서 합리적이며 적절하게 권한을 썼을 때 그 효과를 발휘한다. 권위에 순응하는 것은 조직 구성원들의 자발적인 동기에서 행동하는 것이 아니기 때문에 직책에서 나오는 권위를 리더십의 힘으로 착각하고 자신을 내세우고 대접받아야 한다는등의 리더가 드러내는 형식적이고 지나친 권위는 조직에 악영향이 된다. 이같은 착각의 정도는 리더의 능력에 반비례한다. 리더십이 떨어질수록 리더십보다는 정해진 규율에 의존하며 조직을 강압적으로 통제하려 하기 때문이다. 리드는 없고 지시와 통제만 있는, 그리하여 의사소통이 마비된 채 권위만 있고 권위에 의존하는 리더가 이끄는 조직에서는 필연적으로 조직을 병들게 하고, 궁극적으로 조직의 생존마저 위태롭게 하는 등 그 악순환의 끝은 명확하다. <리어왕> 제4막5장에 보면 다음과 같 구절이 나온다. "개도 권력을 쥐면 복종을 받을 수 있다."
 
위의 3가지 행동유형은 실패하는 리더들에게서 흔히 볼 수 있는 유형들이다. 실패하는 리더십 유형은 리더라면 누구나 할 수 있는 행동들이다. 리더의 한 두 번의 행동이 구성원들에게는 대단한 파급효과를 주기 때문에 이 중 어느 것 하나라도 리더로서 실패하는 충분한 이유가 된다. 오늘날 리더는 수많은 능력과 역할을 요구받고 있다. 리더는 조직에서 요구하는 역할을 수행하기 위해 끊임없는 자기계발과 학습의지와 노력이 필요하며 무엇보다 성공하는 리더는 실수나 실패를 적게 하는 사람이 아니라, 실수나 실패에서 교훈을 얻고 실패를 줄이는 방법을 찾아 같은 실패를 반복하지 않는 사람이다.
 
글: 이성식(anacro@catholic.ac.kr)

2009년 8월 28일 금요일

성공하는 리더가 갖추어야 할 3가지 덕목

성공하는 리더가 갖추어야 할 3가지 덕목

 

물체들 사이에 작용하는 만유인력의 방향은 어디에서나 지구의 중심을 향한다. 다양한 사회와 급변하는 조직의 리더십에서도 변치 않은 원칙은 존재한다. 그것은 바로 리더의 품성이다.

 

아미국의 국왕은 자신의 대를 이을 후계자가 없자 시합을 거쳐 차기 왕을 뽑기로 했다. 지원자들을 대상으로 며칠동안의 복잡한 선발과정과 문무를 겸비한 수많은 대결을 거쳐 ‘담덕’과 ‘호개’가 마지막 후보로 뽑혔다. 마지막 시합은 왕국에서 가장 가파른 절벽과 늪지대로 둘러쌓여 수많은 맹수들이 우글거리는 화염산 정상에 다녀오는 것이었으며, 이 시합이 끝나면 왕은 그 동안의 시험 결과로 후계자를 결정하게 된다.
출발신호가 울리자 담덕과 호개는 힘차게 화염산을 오르기 시작했다. 평소 산악지대에 익숙한 호개는 순식간에 담덕을 앞질러 갔다. 한참을 앞서가던 호개의 눈에 가파른 절벽에 아슬아슬 매달려 있는 노인의 모습이 보였다. 아마도 약초를 캐다 굴러 떨어진것 같았다. 
호개는 ‘사람 살려’를 연발하는 노인을 보구선, 자신의 뒤를 돌아보았다. 담덕이 뒤에서 바짝 쫓아오고 있었다. 호개는 멈칫하더니 그냥 정상을 향해 내달리기 시작했다. 담덕은 ‘사람살려’를 외치는 소리에 망설임 없이 절벽을 기어 올라 능숙하게 노인을 구해냈다. 노인은 다리를 삐어 걸을 수 없는 상태였다. 이미 호개의 모습은 보이지 않았다. 담덕은 어차피 늦은 셈치고 노인을 엎고서, 다시 달리기 시작했다. 늪지대를 헤치고, 휘청거리는 낡은 구름다리를 겨우 건너 거처로 노인을 옮겼다. 연신 고맙다는 노인을 뒤로하고 담덕은 또다시 달렸다. 화염산 정상에서 내려왔을 때, 담덕은 호개보다 반나절 이상 늦어 있었다.
다음날 두 사람은 왕궁에 있는 선택의 방으로 들어갔다. 담덕은 자신이 졌다고 체념했으나 마지막 판결을 기다릴 수 밖에 없었다. 왕이 나타나자 담덕과 호개는 무릎을 꿇었다. 판결을 알리는 종이 울리면서 최종 결과가 적힌 문서가 왕에게 바쳐졌다. 순간 담덕과 호개는 놀라지 않을 수 없었다. 병약해 보이지만 기품 있어 보이는 왕은, 틀림없이 어제 지옥의 산에서 마주쳤던 노인이었기 때문이다. 왕은 결과가 적힌 문서를 읽어 내려갔다.

 

이 우화에서 결과가 적힌 문서를 요약하지 않더라도 후계자가 누구일지 짐작이 갈 것이다. 왕이 자신의 후계자를 정하는 기준은 무엇이었을까?

 

“호개는 문무를 겸비한데다 지략과 용맹이 뛰어나다. 그러나 왕국을 다스리는 데 이것만으로는 부족하다. 백성들이 따를 수 있는 믿음이 필요하다. 호개는 자신의 이익을 위해 백성들의 믿음을 저버릴 수 있다. 담덕은 능력면에서는 호개에 모자랄 수 있으나, 자신의 이익을 버리면서도 백성을 위해 자신을 희생하는 덕망을 갖추었다. 그래서 담덕을 아미국의 후계자로 뽑는 바이다.”

 

재능이나 기술적 역량은 훌륭한 리더가 되기 위한 필수 조건이다. 그러나 한 개인이 자신의 능력만으로 조직을 성장시키고 유지시키는 데는 한계가 있으며, 조직의 정상까지 올라가는 경우는 드물다.?그 한계에서 한 단계 더 높이 성장하려면 주위 사람들의 믿고 따름이 있어야 한다. 
사람이건 조직이건 성공에 필요한 전문기술이 15퍼센트이면 인간관계와 품성에 관련한 것은 85퍼센트다. 화려한 경력과 뛰어난 기술을 소유한 리더일지라도 구성원들의 자발적인 협력이 있지 않은 한 최고의 성과를 낼 수 없으며, 리더와 조직의 성장은 일정수준에서 정체되고 만다.
 ‘리더십에 대한 토론은 능력과 경쟁에 대한 이야기로 시작되지만, 반드시 한 개인의 인격과 성실성에 대한 이야기를 하는 것으로 끝이 난다’는 말이 있다. 리더들이 도덕적으로 훌륭한 성품을 가지고 있어야 하는 이유도 바로 여기에 있다. 리더들의 도덕적인 결함은 팀과 조직원들의 신뢰를 떨어뜨린다.

 

일상적인 신뢰감이 리더십을 형성한다
총탄이 빗발치는 전장에선 매 순간 리더는 '명령'이라는 의사결정을 내려야 한다. 이 ‘명령’엔 부하들의 목숨을 담보로 승리를 쟁취해야만 하는 사명이 있다. 부하들은 리더에게 자신의 인생 일부를 맡기고, 리더 또한 부하들에게 자신의 삶 일부를 맡긴다. 서로의 삶에 대한 책임! 신뢰란 바로 이것이다.
모든 조직구조는 문서상의 조직도와 구성원간의 일상적 관계로 되어 있다. 일상적 관계에서 리더는 자신이 신뢰를 받을 만한 사람임을 끊임없이 확인시켜 주어야 한다. 리더에 대한 신뢰도가 높으면 높을수록 조직원들에게 영향력을 행사할 수 있는 특권을 갖게 되고,신뢰도가 낮으면 낮을수록 조직원들에게 영향을 끼칠 수 있는 입지를 잃게 된다. 애써 자신의 윤리적 가치관과 확고한 신념을 강조하더라도 언행이 일치하지 않는 경우, 구성원들은 리더는 물론 조직에 대해서도 신뢰하지 못하게 된다. 리더에게 느끼는 배신감은 곧 주위 동료들에게까지 확산된다. 구성원들에게 조직에 대한 애착이나 미션에 대한 열정을 기대할 수 없다면 리더의 어떠한 의사결정도 의미가 없으며,조직원들의 행동에 영향을 미치지 못하게 된다.
신뢰는 곧 리더의 가치관과 신념에 대한 조직원들의 확신이자 존경이다. 리더에 대한 신뢰감 없이 성공하는 조직은 없다. 어떠한 상황에서든 리더는 일관된 신뢰감을 확보해야만 할 뿐 아니라 그것을 계속 유지할 수 있어야 한다. 리더에게서 최상의 자질이란 말할 것도 없이 신뢰이다.
대중연설가인 캐빈 로버츠(Cavett Roberts)는 말했다. “사람들이 나를 이해한다면 나는 그들의 관심을 이끌어낼 수 있다. 그러나 나를 신뢰한다면 나는 그들의 행동을 이끌어 낼 수 있다.”
리더에게 있어 신뢰감의 크기는 곧 리더십의 크기이다. 리더이고자 한다면 먼저 일상적인 관계에서 조직원들과 자신에 대한 신뢰감의 크기를 재어보라.

 

리더십은 감성으로 마음을 움직이는 능력이다.
리더십은 마음을 얻는 것이다. 조직의 위계질서에 의해서는 사람의 마음을 얻을 수 없다. 이상적인 리더십은 권한을 사용하지 않고서도 조직원들의 마음을 움직일 수 있다.


강원도 고성에 있는 부대에 전라도 장흥 출신의 문이병이 전입해 왔다. 고향이 먼데다 농번기가 겹쳐 부모는 면회를 올 수 없었고 주말마다 문이병은 내무반을 지켜야 했다. 그러던 토요일 오후, 위병소에서 누군가가 그를 면회 왔다. 기대 반, 설렘 반 문이병은 면회실로 달려갔다. 그런데 면회실엔 소대장이 사복차림으로 기다리고 있는게 아닌가. 면회오는 사람이 없는 문이병을 위해 소대장은 퇴근 후 면회를 와 준 것이다. 그날 소내장은 문이병의 형이 되어주었다.


 

리더십은 조직구조와 일상적인 관계 속에서 존재한다. 즉, ‘부하’가 있어야 ‘리더’가 있고, ‘부하’가 없으면 ‘리더’도 없다. 성공적인 리더가 되기 위해서는 조직의 가장 중요한 자산인 구성원들을 존중하고 그들의 감성적 웰빙(Well-Being)에 대해 진심으로 관심을 갖고 배려하는 것을 우선 가치로 삼아야 한다. 문이병의 마음을 읽어준 소대장의 배려가 바로 리더십인 것이다.
리더십은 테크닉이 아닌 관심과 배려로 상대방의 마음을 헤아려 주는 것에서 출발한다. 다른 사람을 최우선시 함으로써 리더는 최상의 팀을 만들 수 있으며, 맨 앞에 설 자격을 얻는다. 이것을 할 수 있는 사람은 조직을 성공적으로 이끌 수 있지만, 이것을 못하는 사람은 조직 내 단 한 사람도 이끌어나갈 수 없다.리더십은 영향력이다. 구성원들은 리더의 행동보다 태도에 더 큰 영향을 받는다. 감기에 걸린 사람과 가까이 있으면 감기가 옮는 것처럼 리더의 태도는 구성원들에게 옮아, 그들의 태도를 결정짓는다. 기업체에서 임원들을 선발할 때 후보자들의 태도를 중시하는 이유이기도 하다. 조직원들의 마음을 읽고, 그들을 고무시키고, 그들과 끈끈한 유대관계를 가진 리더라면 비록 가슴이 뛸만한 비전제시를 하지 않았더라도 부하가 자신에게 이런 고백을 할 수 있을지 자문해 보자.
"저는 이번에 부임한 상사에 의해 인생이 바꼈습니다. 미션 수행이 이렇게 재미있다는 것을 처음 느낍니다. 지금 최고의 만족을 느끼고 있으며 이것이 인생이구나 하는 생각이 듭니다."

 

지키고 성장시켜야 할 세계가 명확한 리더
성공하는 리더는 일상적인 관계 속에서 자신의 가치관과 신념 뿐 아니라 자신이 지키고 성장시켜야 할 세계가 분명하다. 그 세계가 명확할수록 어떤 것이 그 세계를 성장시키고, 어떤 것이 그 세계를 해치는지를 알게 된다. 그 세계가 조직이라고 한다면 자신의 능력뿐만 아니라 조직의 위한 삶의 자세를 먼저 살핀다. 조직을 지키고 키워 나갈 수 있는 안목을 갖추고, 그 조직의 안녕과 번영을 위해 자신을 희생하는 일이 있더라도 기꺼이 감내하며 목표 달성에 더욱 헌신한다.
나무가 깊게 뿌리를 내린 후 가지를 뻗어 무성한 잎과 꽃을 피워내면 열매 또한 풍성해지기 마련이다. 리더 역시 자신의 역량을 바탕으로 지켜 나가야 할 세계를 명확히 알고, 구성원간의 일상적인 관계를 조화롭게 이루어내면 그 조직은 소리없이 강한 조직으로 성장할 것이며 나아가 구성원들과 국가 발전에 이바지할 것이다.
내가 가지고 있는 않는 것은 남에게 보여 줄 수 없다. 또한 리더십을 갖추지 못한 리더가 남에게 리더십을 강요하거나 자신의 리더십을 보여 줄 수 없다.
이제 ‘당신은 왜 리더가 되기를 꿈꾸고 갈망하고 있는가’를 생각해 보라. 그리고 진정한 리더로서 성장하고자 한다면 매일 자신에게 이렇게 묻기를 주저하지 말아야 한다. 나는 지금 무엇을 위해 뛰고 있는가? 그리고 내가 지켜야 할 세계는 무엇인가?

 

글: 이성식( anasenc@hanmail.com )

참고자료: 성리화의 명쾌통쾌 성공학

겸손의 발견

전 미국 대통령 아이젠하워가 사관학교에 있을 때 일이다.
2학년이 되자, 밑으로 신입생도들이 들어왔다. 어느 날 신입생도가 급하게 뛰어오다 미처 아이젠하워를 발견하지 못하고 들이받고 말았다. 신입생도는 당황해 어쩔 줄 몰라했다.


"죄 --- 죄송합니다."
기분이 몹시 상한 아이젠하워는, 사관학교의 기강이라는 것이 어떤 것인지 확실히 보여주리라 마음먹었다.
"이봐, 자네는 이 선배가 그렇게도 우습게 보이나?"
"아니, 아닙니다. 선배님! 그게 아니고, 저 그게 ---."
"그런데 선배를 이렇게 무례하게 칠 수 가 있는 건가? 이렇게 부주의하다니, 도대체 정신상태가 글러 먹었어! 이러고도 자네가 명예로운 사관생도라고 할 수가 있나? 자네는 명예로운 사관생도가 아니다. 시시한 이발사 같은 녀석일 뿐이다!"

아이젠하워는 신입생도가 변명하기를 기다렸다. 그런데 예상과는 달리 그 신입생도는 갑자기 자세를 가다듬더니 씩씩하고 당당하게 말했다.
"네, 맞습니다. 저는 이발사였습니다. 명예로은 사관학교 생도가 되기 전가지 이발사로서 열심히 일하며 온 힘을 다해 가족을 부양했습니다."

아이젠하워는 할 말을 잃었다. 신입생도는 말을 이어갔다.
"하지만 저는 한 번도 제 직업을 부끄럽거나 시시하다고 생각해 본 적이 없습니다. 그 일은 저와 제 가족을 살린 소중한 일이었으니까요."
아이젠하워는 더는 어떤 말도 하지 못하고 서둘러 그곳을 빠져나왔다. 정말이지 쥐구멍이라도 있으면 찾아 들어가고 싶은 심정이었다.

훗날 아이젠하워는 자서전에서 이 일을 고백하고 이렇게 말했다.

"그때 일은, 다른 사람을 너무나 가볍게 생각했던 나 자신을 깨닫게 했고, 큰 교훈이 되었다."

아이젠하워는 겸손을 온몸으로 배웠던 것이다.

 

참고 도서: 위대한 굴욕(김민조, 인화)

제자리걸음에서 벗어나려면

미국 철강왕 앤드루 카네기는 젊은 시절, 철도공사에서 전보 보내는 사원으로 일했다. 한번은 카네기가 휴일 당직을 서는데 갑자기 다급한 전보가 왔다. 카네기는 내용을보고 깜짝 놀란 나머지 자리에서 벌떡 일어났다. 내용인즉, 인근 철도에서 화물 열차가 탈선했으니, 충돌 사고를 막으려면 빨리 다른 열차 기관사들에게 연락해 선로를 바꾸라는 것이었다.
 
그런데 휴일이었던 터라 모든 상황을 지휘할 상사를 찾기가 쉽지 않았다. 그러는 사이에 몇분이 흘렀고, 곧 승객을 태운 기차가 사고 지점에 이를 판이었다. 어쩔 수 없이 카네기는 위험을 무릅쓰고 상사이름으로 기관사들에게 '선로를 바꾸라'고 지시했고, 이로써 끔찍한 사고를 막아 냈다.
 
당시 철도 규정에 따르면, 전보 사원은 마음대로 상사 이름을 이용할 수 없었고, 이를 어기면 해고당했따. 이 규정을 알고 있었던 카네기는, 이튿날 아침 일찍 출근해서 상사 책상에 사직서를 놓아두었다.
 
출근해서 사직서를 본 상사는 카네기를 사무실로 불렀다. 그리고는 직원들이 보는 앞에서 사직서를 찢고, 카네기의 어깨를 두드려 주며 말했다.
 
"잘했는데 왜 그만두려는 거야? 기억해 둬. 세상에는 영영히 제자리걸음만 하는 두 종류 삶이 있어. 하나는 명령을 듣지 않는 사람이고, 다른 하나는 명령만 따르는 사람이야. 다행히도 자네는 양쪽 다 아니지. 자네는 모험이 뭔지 아는 사람이야."

 

참고 도서: 위기에 성장하는 직장인 생존 비밀(뤼궈룽, 밀리언하우스

2009년 8월 27일 목요일

[펌] C#에서 Excel

안녕하세요 LiveDK 입니다.

이번에 포스트 에서는 닷넷을 통해 엑셀화일을 만들어 보겠습니다.

우선 이번 프로젝트를 만들기위해서 제가 사용하는 프로그램은 다음과 같습니다.

Microsoft Visual Studio 2008 + Microsoft Office Excel 2007

 

처음으로, 윈폼을 하나 생성합니다. 참조추가 를 눌러 COM 탭을 눌러 Microsoft Excel 12.0 Object Library 를 선택하고 확인을 누릅니다.(여기서 저는 Office Excel 2007을 사용하기 때문에 12.0 버전이 나오게 되었습니다.)

 

 

다음으로 코드로 넘어와서 using 을 추가해주어야 합니다. (using 쪽에 아래 코드처럼 대입연산을 통해 하는 과정은 이번에 처음 배웠네요^^)

1.using Excel = Microsoft.Office.Interop.Excel;
2.using System.Reflection;

이제 디자인으로 넘어와 버튼을 하나 추가하고 더블클릭을 통해 버튼 이벤트를 하나만듭니다. 버튼이 눌렀을경우 다음 코드를 실행하게 해보겠습니다.

01.Excel.Application xls;
02.Excel._Workbook wbook;
03.Excel._Worksheet wSheet;
04.try
05.{
06.   xls = new Excel.Application();
07.  
08.   wbook = (Excel._Workbook)(xls.Workbooks.Add(Missing.Value));
09.   wSheet = (Excel._Worksheet)wbook.ActiveSheet;
10.  
11.   wSheet.Cells[1, 1] = "Name";
12.   wSheet.Cells[1, 2] = "Location";
13.  
14.   string[,] saNames = new string[2, 2];
15.  
16.   saNames[0, 0] = "DKLEE";
17.   saNames[0, 1] = "Asan";
18.   saNames[1, 0] = "JHKWON";
19.   saNames[1, 1] = "Seoul";
20.                                  
21.   wSheet.get_Range("A2", "B3").Value2 = saNames;
22.                                                 
23.   xls.Visible = true;
24.   xls.UserControl = true;
25.}
26.catch (System.Exception ex)
27.{
28.   MessageBox.Show(ex.ToString());
29.}

 

내용은 다음과 같습니다. 엑셀 Application 을 하나 생성하고 Workbook , Worksheet 을 만들고 그곳에 데이터를 넣는 코드 입니다.  뭐든지 그렇듯이(?) 알기전까진 어렵지만 알고나면 참간단하다고 느끼내요^^

사실 기능이 너무 많이 있지만 간단하게 데이터를 넣는 부분만 해보았습니다.

너무간단히 포스팅이 끝나서 죄송한 마음이네요.

 

참고한 항목으로는 MSDN 입니다. 이곳을 가시면 더 자세한 내용을 확인해 볼 수 있습니다. 계산 그리고 그래프까지 가능하네요^^

첫인상 이렇게 관리하면, 성공 문턱 낮아진다.

첫인상 이렇게 관리하면, 성공 문턱 낮아진다.
 
 오리새끼는 알에서 깨어 나올 때, 처음 자신과 여덟 시간에서 열두 시간쯤 함께 있어준 사람을 어미 오리로 생각하고 졸졸 따라다닌다고 한다. 인간뿐 아니라 동물도 대상과 신뢰감을 형성하는 시기가 따로 있다는 증거다. 따라서 첫인상을 어떻게 심어 놓느냐가 다른 사람들과의 관계를 결정하는 가장 큰 변수가 된다.
 조사에 따르면, 처음 본 사람을 만나면 3초 동안에 첫인상을 형성하고, 30초 뒤에 그 사람에 대해 최종 결론을 내린다고 한다. 사람들은, 어떤 사람을 판단하고 결론을 내린 뒤에는, 이미 내린 결론을 정당화하는 데 매진한다.더구나 사람들은 긍정적인 부분보다는 부정적인 부분에 더 집착하는 경향이 있다. 이러한 심리 현상을 '부정성의 효과'라고 한다. 한번 구겨진 인상은 다시 회복하기가 어렵다는 말이다.
 
첫인상을 좋게 하려면 먼저 다음의 네 가지 특징에 유의해야 한다.
 
 첫째, 기회는 한 번 뿐이라는 사실이다.
 처음 들어온 정보가 인상적일수록 그 다음에 느껴지는 정보는 심리적으로 거부하게 되기 때문에 좀처럼 입력되지 않는다. 이를 '초두 효과'라고 하는데, 먼저 들어온 정보가 나중에 들어온 정보보다 전반적인 인상 형성에 더 강력한 영향을 미치는 현상을 말한다.  따라서 첫 번째 만남의 기회를 놓치지 말아야 한다.
 
 둘째, 빠르다는 특징이다.
 순간적으로 각인된다. 첫인상이 전달되는 시간은 겨우 2-3초다. 따라서 중요한 만남일수록 빨리 승부를 걸어야 한다. 상대보다 내가 먼저 쳐다보고 준비하는 것이 상대의 호감을 얻을 수 있는 비결이다.
 
 셋째, 일방적으로 전달된다.
 나를 처음 보는 사람들은, 내 동의도 없이 함부로 느끼고 판단한다. 어느 누구도 처음 만났을 때 나쁜 느낌을 말하지 않지만, 자기의 기억 속에 입력해 버린다. 따라서 나 자신이 다른 사람들에게 어떻게 보이고 있는지를 점검해 보아야 한다.
 
 넷째, 상상과 연상을 한다.
 어떤 사람을 만날 때, 실제의 그 사람이 아닌 다른 사람을 떠올리기도 하고, 엉뚱하게 이미 자신이 익숙하게 기억하고 있던 사람이나 사물을 연상하여 그것을 첫인상으로 입력해 놓는 것이다.
 
 이 네 가지 특징을 살펴보면, 첫인상은 자신이 행동하지 않아도 스스로 알아서 형성되기 쉽다는 것을 알 수 있다. 따라서 미리 준비하지 않으면, 상대방에게 자신의 원치 않는 모습으로 기억될 소지가 다분하다.
 
 성공. 첫인상으로 승부하라.
 첫인상을 좋게 하려면 첫째, 자존감을 높여야 한다. 자신을 스스로 높이려는 마음인 자존심과 달리, 자신을 긍정적으로 평가하는 마음을 말한다. 자신이 최고라고 과대포장하거나 무가치하다고 비하하는 사람을 다른 사람이 좋게 평가할 리가 없기 때문이다.
 
 둘째, 대인관계의 우선순위를 정하고 준비해야만 한다. 우선순위는 그 사람의 직업이나 역할에 따라서 다를 수 있겠으나, 일반적으로 보면 얼굴, 복장, 자세와 태도를 우선으로 꼽을 수 있다. 얼굴은 그 사람의 대표기관이자, 서로 가장 먼저 바라보는 곳이다. 따라서 언제나 밝고 친근하게 가꾸고 유지해야 한다.
 복장은 그 사람의 신분과 역할을 대변한다. "어리석은 사람은 외모를 무시한다"는 말이 있다. 옷을 잘 입어서 성공했다고 할 수는 없어도, 옷을 잘못 입어서 실수하는 사람은 많다. 자세와 태도는 그 사람의 내면, 즉 본질을 평가하는 척도가 된다. 자세란 그 사람의 모양을 말하고, 태도란 대사에 따라서 생각이나 감정이 겉으로 드러나는 모습을 말한다. 또는 외부의 자극을 수용하는 틀(마음의 모양)이라고 말할 수도 있다.
 
 셋째, 첫인상의 주도권을 빼앗기지 말아야 한다. 바둑을 둘 때 앞서 두는 게 유리하듯, 첫인상에서 유리한 고지는, 상대방을 먼저 보는 것이다. 먼저 보면, 어떻게 대응할 것인지 전략이 생기기 때문이다.

 첫인상의 중요성과 효과성을 알았다면, 다른 사람을 만나기 전에 미리 계획을 세워야 한다. 첫인상은 준비하는 자의 몫이고, 준비하는 만큼 효과가 나타나기 때문이다.
 
글 김경호(이미지메이킹센터 소장)

오르페우스 챔버 오케스트라 이야기

오르페우스 챔버 오케스트라 이야기
 
 클래식 음악가들은 음악 재능과 개인기를 연마하려고 음대에 진학해 여러 해 동안 피땀을 흘리며 연습을 거듭한다. 그런 뒤에는 많은 이가 오케스트라에 입단한다. 그러나 모든 것을 지휘자의 지시에 따라야 하는 오케스트라 연주에 적응하기란 쉽지 않다.
 하버드 대학 심리학 교수인 리처드 헤크먼은 1990년대 초, 네 나라의 일흔여덟 개 오케스트라에 있는 음악가들을 대상으로 직업 만족도를 조사했다. 그들의 직업 만족도는 매우 낮은 수치를 보였는데, 놀랍게도 연방 교도소의 교도관들과 똑같은 수준이었다.
 
 그런데 여러 오케스트라 가운데 오르페우스 챔버 오케스트라 단원들은 이례적으로 높은 직업 만족도를 보이고 있다. 그 까닭은 다음과 같다.
 이 오케스트라는 모든 연주자의 공동 협력 체계로 운영된다. 리허설에는 특별히 정해진 연주자 없이 단원이면 누구든지 자유롭게 참여할 수 있고, 오케스트라 단원 스물일곱 모두 곡의 해석과정에 관여할 수 있다. 또, 모든 연주자가 교대로 돌아가면서 콘서트마스터가 된다. 콘서트마스터를 맡은 사람은, 리허설을 이끌며 서로 다른 의견을 조정하는 연주 코치를 맡게 된다. 이렇게 모든 사람이 참여하는 열린 운영 방식 덕분에 모든 연주자는 자연스럽게 리더로서 필요한 자질을 배운다. 오르페우스 오케스트라는 연이어 공연을 성공적으로 이끌며 든든한 재원을 확보했고, 뛰어난 예술 성과로 전 세계에서 호평을 받고 있다.
 
참고 도서: 보는 방식을 바꿔라(캐서린 크래머, 21세기 북스)

위험을 감수하라

창의성에는 반드시 위험이 따른다. 탐험과 혁신도 마찬가지다. 남들과 다른 생각을 하는 사람은 누구든 위험을 감수하는 셈이다.
리더십을 발휘하려면 수많은 위험을 각오해야 한다. 용기는 위험 앞에서 발휘되는 것이다.
투자에도 위험이 수반된다. 의사결정 또한 언제나 어느 정도의 위험을 내포하고 있다.

미지의 세계로 항해를 나선 콜럼버스를 생각해보라. 노예해방선언을 공포한 링컨 대통령, 첫 비행을 시도한 라이트 형제, 노르망디 상륙작전 당일의 아이젠하워는 어떠했는가. 위대함은 그 사람이 맞선 위험에 의해 측정되곤 한다.
성공의 여부는 위험을 얼마나 잘 감수하고 극복하는가에 따라 판가름 난다.

최고가 되려면 생각의 틀을 깨라

소개
지금까지의 상식을 깨트리고 자신의 숨겨진 재능을 발견하는 기발한 방법. 아인슈타인처럼 엉뚱하게 생각할 것을 강조한 스코트 소프의 저서. 아인슈타인을 비롯해 역사 속의 위대한 인물들이 난처하고 당황스러운 문제에 부딪혔을 때 이를 해결하고 극복했던 방법들을 다양한 일화와 함께 일목요연하게 정리했다. 법칙은 기차의 철로와 같다는 아인슈타인의 비밀에서부터 사고의 틀을 깨뜨려라, 해결책을 발전시켜라, 순교자가 될 필요는 없다, 아인슈타인 사고법과 창조적인 기업 만들기까지 총 11장에 걸쳐 색다른 아이디어 발상법을 수록했다. [인터넷 교보문고 제공]
이 책의 통합검색 결과보기
TOP
작가 소개
저자 | 스코트 소프

스코트 소프(SCOTT THORPE)
캘리포니아 버클리 대학에서 경영학 석사(MBA) 학위를 받았고, 로봇, 군사 비행 시뮬레이터, 반도체, 컴퓨터와 의료 장비 등을 설계하고 있다. 소프는 중국어와 일본어에 능통할 뿐 아니라, 실리콘 벨리의 크고 작은 기업을 통해 5가지 중요한 신제품을 발표하기도 했다. 현재 그는 IPO 의료 장비 사업을 준비하고 있는 소니 이노베이션스SONI INNOVATIONS의 기획 담당 매니저로 일하고 있으며, 여가 시간에는 저술 활동과 신제품 개발에 몰두하고 있다. 그와 그의 아내는 두 자녀와 함께 유타에 살고 있다.

옮긴이 김한영
1962년 강원도 원주 출생. 서울대 미학과를 졸업한 뒤 서울예술대학에서 문학수업을 받았으며, 현재는 전문번역가로서 활발한 활동을 하고 있다. 옮긴 책으로는「지금 당장 시작하라」「언어본능」(N.촘스키)「변화의 충격 BLUR」와 근간으로「프레젠테이션으로 말하라 SAY IT WITH PRESENTATIONS」「성서 속의 101가지 신화 101 MYTHS OF THE BIBLE」등 여러 권이 있다. [인터넷 교보문고 제공]
TOP
목차
[1] 1장 아인슈타인의 비밀

법칙은 기차의 철로와 같다 / 법칙 깨기의 문제의 해결 / 탁탁토 게임에서 배우는 불가능한 문제의 해결법 / 아인슈타인의 사고 : 법칙을 깨뜨려라!



[2] 2장 아인슈타인처럼 생가하기

우리의 천재성은 어디로 사라졌을까? / 당신도 아인슈타인처럼 생각할 수 있다 / 아인슈타인 사고법 / 아인슈타인 사고법 따라잡기 / 아인슈타인 사고법에 가장 적합한 문제들



[3] 3장 당신의 문제는 정말로 적절한가?

문제가 해답을 낳는다 / 기록하는 습관이 중요하다 / 해결 가능한 문제를 창출하라 / 문제 해결의 강력한 동기를 부여하는 방법 / 집중력 향상을 위해 보이는 모든 곳에 문제를 기록하라



[4] 4장 어리석은 생각은 어디에도 없다

어리석은 생각이라도 좋다 / 콜럼버스 개념 / 몰리와 미켈슨의 실패 / 어리석은 생각이 어뚱한 성공을 낳는다 / 새로운 사고를 포기하지 말라 / 아이디어를 기록한다 / 많을수록 좋다 / 아이디어는 좋은 것이다



[5] 5장 사고의 틀을 깨뜨려라

상투적인 법칙에서 탈출하라 / 생각을 장난감처럼 갖고 놀라



[6] 6장 상투적 사고를 깨뜨릴 창조의 씨앗

새로운 영역 / 새로운 해결책 / 새로운 도구 / 새로운 조건 / 새로운 전략 / 새로운 관점



[7] 7장 법칙 깨뜨리기

법칙을 깨뜨려야 한다 / 당신 안에 숨겨진 법칙을 찾아내라 / 법칙 깨뜨리기 기술 / 법칙 깨뜨리기 연습 / 우리를 가로막는 여러 가지 법칙들 / 당신의 법칙을 깨뜨려라



[8] 8장 해결책을 발전시켜라

하나의 해결책을 선택하라 / 위대한 개념이 자라날 수 있도록 돌보라 / 위대한 개념은 인내를 통해 자란다 / 대뇌도 섹스가 필요하다 / 실수는 해결을 가리키는 이정표 / 개념에서 해결책으로



[9] 9장 순교자가 될 필요는 없다

박해 공포증 / 위대한 개념이 거부당하는 이유 / 정의롭지만 개 같은 죽음 / 이단자의 운명을 피하라 / 당신의 몫을 주장하라 / 관대하라 / 순교를 피하라



[10] 10장 아인슈타인 사고법과 창조적인 기업 만들기

아인슈타인 사고법을 관리하라 / 아인슈타인 사고법을 촉진하라 / 아인슈타인 사고법의 효과



[11] 11장 일상적인 아인슈타인 사고법

아인슈타인 사고법과 작은 문제들 / 법칙 파괴자라면 겸손해야 한다 / 아인슈타인 사고법 연습 / 변화 / 생각의 도구들 / 결론



-부록 A 아인슈타인 사고법을 위한 양식

-부록 B 아인슈타인 방정식

[엘리트2000 제공]

2009년 8월 17일 월요일

Testlink에서 Excel 데이터 Import 하기

Testlink 에서  Excel을 이용해서 Import 하는 방법이다.

작업을 좀더 편리하게 할 수 있을 것 같다.

 

1. XML 데이터로 Export를 한다.

2. Excel에서 XML 데이터를 읽는다.

3. 작업후 XML 로 저장

4. Testlink에서 Impoort 하면끝.

2009년 8월 11일 화요일

Mantis 설정변경

Mantis 를 기본적으로설치하면 config_inc.php 파일에 호스트정보와 DB정보가 기본적으로 셋팅된다.(Mantis 1.1.8을 기준으로 설명)

<?php
 $g_hostname = ';
 $g_db_type = 'mysql';
 $g_database_name = 'bugtracker';
 $g_db_username = '';
 $g_db_password = '';
?>


Mail설정을 추가하려면 config_inc_default.php 에서 mail 관련 사항들을 추가해주면 된다.

# If use_x_priority is set to ON, what should the value be?
 # Urgent = 1, Not Urgent = 5, Disable = 0
 # Note: some MTAs interpret X-Priority = 0 to mean 'Very Urgent'
 $g_mail_priority  = 1;

 

 # select the method to mail by:
 # 0 - mail()
 # 1 - sendmail
 # 2 - SMTP
 $g_phpMailer_method  = 2;

 

# This option allows you to use a remote SMTP host.  Must use the phpMailer script
 # One or more hosts, separated by a semicolon, can be listed.
 # You can also specify a different port for each host by using this
 # format: [hostname:port] (e.g. "smtp1.example.com:25;smtp2.example.com").
 # Hosts will be tried in order.
 $g_smtp_host   = '';

 

 # These options allow you to use SMTP Authentication when you use a remote
 # SMTP host with phpMailer.  If smtp_username is not '' then the username
 # and password will be used when logging in to the SMTP server.
 $g_smtp_username = '';
 $g_smtp_password = '';

 

Mail 설정이 끝나면  새 계정만들때 기본 언어값  메일발송과 브라우저의 타이틀 값을 설정해주면 된다.

$g_default_language  = 'korean';
 $g_fallback_language = 'korean';
 $g_window_title   = 'company Name : Mantis;  # browser window title

 

그리고 Mantis 로고를 눌렀을때 Mantis 홈페이지로 가게 되어있는데 이부분을 수정하려면 core/html_api.php 파일에서 http://www.mantisbt.org 를 원하는 URL로 변경해주면 된다.

 

Line 317:    echo '<a href="http://www.mantisbt.org/" title="Free Web Based Bug Tracker"><img border="0" width="242" height="102" alt="Mantis Bugtracker" src="images/mantis_logo.gif" /></a>';
 Line 415:    echo "\t", '<span class="timer"><a href="http://www.mantisbt.org/" title="Free Web Based Bug Tracker">Mantis ', MANTIS_VERSION, '</a>',
 Line 416:      '[<a href="hhttp://www.mantisbt.org/"  title="Free Web Based Bug Tracker" target="_blank">^</a>]</span>', "\n";
 Line 470:   echo '<a href="http://www.mantisbt.org/" title="Free Web Based Bug Tracker"><img src="images/mantis_logo_button.gif" width="88" height="35" alt="Powered by Mantis Bugtracker" border="0" /></a>';


 

2009년 8월 10일 월요일

Read and write Excel data with PHP

엑셀 데이터를 'XML Spreadsheet'이라는 XML 타입으로 저장하고


그 XML 파일을 읽어서 MySQL 테이블에 입력하는 샘플 코드와


특정 테이블에서 데이터를 읽어서 'XML Spreadsheet' 타입의 파일을 생성하여


엑셀 프로그램에서 데이터를 읽을 수 있도록 만들어주는 샘플 코드가 있습니다.

 

특정 라이브러리를 사용하지 않고 순전히 XML 관련 클래스들만을 가지고 사용하는 아주 아주 콤팩트한 샘플

 

코드.

http://www.ibm.com/developerworks/opensource/library/os-phpexcel/index.html

 

2009년 6월 8일 월요일

CC 인증하기

 

입사한지 이제 3일째..

오늘 갑자기 CC인증을 준비하라고 한다...

아직 제품에 대해서 파악도 하지 않았는데..

음..

CC인증에 대한 용어도 아직잘 모르는데..

해보고 싶었던 사항이지만 너무 갑자기 다가온것같다.

 

 
CC인증에 관련된 용어들이다.
http://nulonge.tistory.com/114 이곳에서 발췌했다.
 
 
TOE, Target of Evaluation
CC의 평가 대상이 되는 소프트웨어, 하드웨어, 펌웨어로 구성된 '집합'을 의미합니다.[각주:1] 일반적으로는 IT 제품과 같은 형태를 갖지만, 흔히 생각하는 제품(product) 개념과는 다릅니다. TOE는 어떤 기술이 제품화된 것일 수도 있고, 라이브러리일 수도 있고, 특정한 경계를 갖는 네트워크일 수도 있습니다. 제품의 일부분을 지칭하는 경우도 있고, 제품의 조합일 수도 있습니다. TOE는 그게 무엇이든 간에, CC를 근거로 보안성 평가의 대상이 되는 대상을 의미합니다. TOE는 동시에 설명서(guidance)를 포함합니다.

PP에서 TOE는 특정한 유형의 정보보호제품을 지칭합니다. 예를 들어 네트워크 침입방지시스템(IPS), 침입탐지시스템(IDS), 침입차단시스템(firewall), 무선랜 인증시스템, 웹 응용프로그램 침입차단시스템 등을 의미합니다.

ST에서 TOE는 특정한 정보보호제품 (또는 제품의 일부 기능)을 지칭합니다. 일반적으로, 특정한 정보보호제품의 모든 기능이 TOE가 되는 경우는 없습니다. 예를 들어 침입차단시스템이라면, 침입차단시스템 소프트웨어는 TOE이면서 하드웨어는 TOE 범위에서 제외될 수도 있습니다. SSL/TLS를 이용하여 원격 관리자 세션을 연결하는 경우, 정보보호제품에 탑재된 SSL 라이브러리가 TOE 범위에서 제외되기도 합니다. UTM을 표방하는 제품도 마찬가지입니다. UTM이라는 제품군에 대한 PP가 없기 때문에, 네트워크 침입방지시스템, 가상사설망시스템 등의 PP를 수용하여 특정 UTM 제품에 대한 ST를 작성했다면, 주요 IPS 기능과 VPN 기능을 제공하는 부분(소프트웨어, 하드웨어, 펌웨어, 설명서)을 묶어서 TOE로 정의하고, 나머지는 비-TOE(non-TOE)가 되는 겁니다.

ST에서, TOE의 모든 보안 기능은, ST에 명시된 보안기능요구사항(SFRs, Security Functional Requirements)과 관계있습니다. TOE를 포함하는 정보보호제품에서, ST에 명시된 보안기능요구사항으로 추적되는 기능을 제공하는 부분은 TOE, 추적되지 않는 기능을 제공하는 부분은 비-TOE가 됩니다.

보호프로파일(PP, Protection Profile)
보호프로파일은 특정한 유형의 TOE에 요구되는 보안기능요구사항과 보증요구사항을 정의하는 문서입니다. 보호프로파일은 구현 독립적인(implementation-independent) 문서이기 때문에, TOE가 구체적으로 어떻게 구현되어야 하는지 정의하지 않습니다. (제안요청서와 비슷하다고 볼 수 있습니다. 필요한 기능을 열거는 하지만, 구체적으로 어떻게 기능을 제공하는 지는 굳이 제시하지 않습니다.)

보호프로파일은 누구나 작성할 수 있습니다만, 국내의 경우, 주요 정보보호제품에 대한 보호프로파일은 국가정보원 IT보안인증사무국에서 관리합니다. 관련 링크는 여기를 참조하세요.

보호프로파일은 정해진 형식에 따라 작성되어야 합니다. 보호프로파일의 형식은 CC 1부 부록에 정의되어 있습니다.

보안목표명세서(ST, Security Target)
보안목표명세서는 특정한 TOE가 충족할 보안기능요구사항과 구체적인 구현에 대해 서술하는 문서입니다. 보안목표명세서는 특정한 보호프로파일을 준수하여 작성되기도 하고, 준수하지 않고 작성할 수도 있습니다. (제안서와 비슷하지요?) 보안목표명세서는 보호프로파일을 구체화하여 작성되는 경우가 일반적입니다.

보안목표명세서는 TOE 개발자가 작성하고, 보안목표명세서의 작성 형식도 CC 1부 부록에 정의되어 있습니다. ('개발자'라고 해서 TOE를 구현한 프로그래머를 의미하는 것은 아닙니다.)

보안목표명세서의 앞 부분은 보안목표명세서의 식별정보, TOE의 개요, 논리적/물리적 경계, TOE의 정상적인 실행에 필요한 소프트웨어/펌웨어/하드웨어, 운영 환경, TOE가 사용되는 환경에 대한 가정사항 등을 나열합니다. 그 외에 보호프로파일과 공통되는 항목인데, TOE를 운영할 조직의 보안정책, 위협, 자산, 보안목적 등을 정의합니다. (이러한 것들 없이 보안기능요구사항을 정리할 수는 없잖아요?)

중반 부분은 TOE가 보안기능요구사항을 만족하기 위해 구체적으로 어떻게 구현될/구현된 것인지 서술하고, TOE의 보안성 보증에 필요한 보증요구사항을 서술합니다. (덧붙임: CEM의 ST평가 항목중에는 보안기능요구사항을 서술할 때 사용되는 주체, 객체, 오퍼레이션을 정의했는 지 확인하도록 요구하고 있습니다. 굳이 명시적으로 정의할 필요는 없지만, 미리 정의해두면 여러모로 편리한 점이 많습니다.) 보증요구사항은 보호프로파일에 제시된 평가보증등급(EAL, Evaluation Assurance Level)을 그대로 차용하는 경우가 많습니다.[각주:2]

마지막으로, TOE 요약명세가 제공되는데, 보안기능요구사항을 중심으로 TOE가 어떻게 보안기능요구사항을 구현하는지 요약된 정보를 제공합니다.

보안목표명세서는 CC에 따른 보안성 평가가 종료된 후, 인증기관의 승인을 거치고 외부에 공개됩니다. 평가기간중 평가기관에 제공되는 보안목표명세서는 개발사의 기밀 사항이 포함될 수 있기 때문에, 외부 공개용 보안목표명세서는 평가기간중 사용되는 보안목표명세서와 그 내용이 다를 수 있습니다. (기밀에 해당하는 내용은 외부로 공개되지 않습니다.)

사용자, Users
CC 인증에서 사용자라 하면, 사람(human user)뿐만 아니라 TOE와 상호작용할 수 있는 외부 IT 실체 (external entities)를 포함합니다. 중요한 것은, 상호작용한다는 것이지요. 사용자가 TOE와 상호작용하지 않으면 아무 의미가 없습니다. 논의 대상이 되지 않는 다는 뜻입니다. TOE는 외부 인터페이스(external interfaces)를 통해 사용자와 상호작용을 주고 받습니다. (사용자도 TOE와 상호작용할 수 있는 인터페이스가 있어야 합니다.)

사용자는 인가된 사용자(authorized users)와 인가되지 않은 사용자(unauthorized users)로 구분됩니다. '인가되었다'는 건, TOE가 제공하는 보안기능을 사용할 권한을 승인해준다는 의미로 생각하시면 됩니다. 인가되지 않은 사용자가 TOE와 상호작용할 수 있는 인터페이스는 당연히 그 기능이나 호출방법 등에 제한이 있어야하고, 신뢰된 사용자와 다른 방법으로 (인터페이스를 통해) TOE와 상호작용하게 됩니다.

사용자와 TOE간 인터페이스는 '외부 인터페이스'라고 말씀드렸습니다. CC 평가에서 '외부 인터페이스'는 기능명세서(FSP, Functional SPecification)에 의해 확인할 수 있습니다.

방화벽 제품이 TOE라면, 사용자는 TOE를 통해 네트워크에 접근하고자 하는 네트워크상의 호스트, 네트워크에 연결을 시도하는 사람, 접근 제어 정책을 원격에서 관리하는 (인가된) 관리자 등을 예로 들 수 있습니다.

인터페이스, Interface
위에서 말씀드린 것 처럼, TOE가 외부 실체 또는 사용자와 상호 작용을 주고받기 위해 TOE가 제공하는 수단을 의미합니다.

사용자와 연결하여 방화벽을 예로 들자면, 네트워크상의 호스트가 TOE(방화벽)와 상호작용하는 인터페이스는 네트워크 인터페이스 카드가 됩니다. 사용자가 인증과정을 거쳐서 네트워크 연결을 사용할 수 있다면, 인증 과정에 사용되는 로그인 창(보통 CLI 또는 GUI가 되겠지요?)도 인터페이스입니다. 관리자가 TOE를 통해 구현하는 보안정책을 관리하기 위해 사용하는 웹 화면도 인터페이스입니다.

이런, 서술하다보니 혼동할 수 있는 여지를 남겼네요. 제가 위에서 설명한 인터페이스들은 모두 TOE 외부에 존재하는 사용자와 상호작용을 하는데 사용되기 때문에 '외부 인터페이스'라고 합니다. '외부 인터페이스' 외에도, TOE를 구성하는 서브시스템 수준에서 인터페이스가 있고, 서브시스템을 구성하는 모듈 수준에서 사용되는 인터페이스와 같은 인터페이스가 있습니다. 서브시스템 수준 인터페이스, 모듈 수준 인터페이스는 TOE 설계서(TDS, TOE Design Specification)에서 서술됩니다.

CC에서, 각 인터페이스는 사용 목적과 사용 방법, 인터페이스의 행동을 기술하도록 되어 있습니다. 인터페이스에 입력되어야 하는 것은 무엇인지, 인터페이스를 통해 어떤 기능이 수행된 후, 무엇을 출력값으로 내보내는지도 중요한 요소입니다. 인터페이스에 대한 서술 수준은 평가보증등급(EAL, Evaluation Assurance Level)에 따라 다릅니다. 평가보증등급이 높아질수록, 보다 상세하게 인터페이스를 기술합니다.

(외부 인터페이스와 관련있는 중요한 키워드는 TSFI가 되겠네요. 이건 나중에 다루겠습니다.)

주체, Subjects
주체란, 어떤 행동(오퍼레이션)을 시작하는 존재, 말 그대로 주체를 말합니다. 영문법에서도 Subject라는 단어는 '주어'를 의미하죠. 어떤 행동을 시작하는 '주체'를 의미하는 겁니다. 사용자(사용인, 외부 IT 실체)는 주체가 될 수 있겠군요. 사용자를 대신하여 행동하는 프로세스도 주체로 간주합니다. 주체는 객체를 대상으로 오퍼레이션을 수행합니다.

CC 용어 정의에서는 "객체에 대한 오퍼레이션을 수행하는 TOE 내의 능동적인 실체"로 정의합니다. 결국, 사용자를 대신하여 TOE에서 실행되는 프로세스를 의미합니다. Linux 혹은 Unix를 예로 든다면, 사용자가 로그온을 거친 직후 포크(fork)되어 실행되는 사용자 프로세스를 주체로 볼 수 있습니다.

덧붙임  CC 에서 용어정의 부분을 작성한 국가는 미쿡~입니다. 미국에서는 주로 운영체제를, 유럽에서는 스마트 카드를 중심으로 CC 인증이 이뤄집니다. 운영체제를 주로 다루다 보니 주체를 "TOE 내의 능동적인 실체"로 정의했는데, 사실 주체는 TOE 외부에 있을 수도 있습니다. 객체도 마찬가지로 TOE 외부에 있을 수 있습니다. >_<

객체, Objects
주체가 하는 행동(오퍼레이션)의 대상이 되는 것을 의미합니다. 영문법에서 Object는 '목적어'를 의미하죠? '동사'에 해당하는 오퍼레이션의 영향을 받는 대상으로 이해하시면 충분합니다. 객체는 데이터를 포함하거나, 데이터를 수신하는 프로세스와 같은 것들을 의미합니다. 객체로는 파일, 프로세스, 메모리, 패킷 등이 객체가 될 수 있겠습니다.

CC 용어 정의에서는 "주체의 오퍼레이션 대상이며 정보를 포함하거나 수신하는 TOE 내의 수동적인 실체"로 정의합니다.

(객체의) 오퍼레이션, Operation on objects
주체가, 객체를 대상으로 하는 행동을 의미합니다. 이것도 영문법으로 비유하자면, '동사'나 '동사구'와 비슷하다고 할 수 있습니다.
  • 객체가 파일이라면, 읽기, 쓰기, 실행, 삭제, 파일 속성/권한 변경, 해쉬값 생성, 압축과 같은 행동이 오퍼레이션이라 할 수 있겠습니다.
  • 객체가 프로세스라면, 프로세스 초기화, 프로세스 재구동, 프로세스 종료, 프로세스로 파라미터를 넘기는 것을 오퍼레이션으로 봅니다. 프로세스가 객체라면, 프로세스는 오퍼레이션에 사용될 인터페이스를 가질 수 있습니다.
  • 객체가 커널이라면, IOCTL 명령을 전달하는 행동이 오퍼레이션에 해당합니다.
  • 객체가 TCP 또는 IP 패킷이라면, 출발지/목적지와 같은 보안 속성에 따른 헤더 조작, 연결 제어(허용, 거부,  IPSec 암호화 등)이 오퍼레이션에 해당합니다.
  • 객체가 어떤 라이브러리라면, 라이브러리에 속하는 함수를 호출하기 위해 매개변수를 전달하는 것이 오퍼레이션에 해당합니다. (물론, 라이브러리 함수는 자신이 호출될 수 있도록 인터페이스를 제공해야 합니다.
오퍼레이션은 주체/객체의 보안 속성에 따라 오퍼레이션이 다를 수 있겠죠? 만약 주체로 동작하는 프로세스의 보안속성이 일반 사용자인데, 관리자 권한이 필요한 데이터를 읽는 (오퍼레이션을 하는) 것은 허용되지 않을 겁니다.

2009년 6월 3일 수요일

각종증명문서

세상 참 좋아졌다...

등본도 인터넷으로 뽑고..

졸업증명서.. 각종 자격증확인서등등..

오늘 달라고해서 바로 다 인터넷으로 뽑았다..(세삼스럽나? 언제된건데..ㅋㅋ)

 

역쉬 날마다 좋아지는 세상..

 

암튼.. 모든 서류 제출 완료..

첫출근..

첫출근..

첨에 왔을때는 차를 가져와 바로 왔는데..

지하철을 타고 오니..좀 버벅

지하철타고 버스를 또 타고와야했다..

음..

아무튼.. 아직까지 기분은 괜찬은듯..

2009년 6월 1일 월요일

입사지원

음.. 이번에 회사를 나왔다. 4월10일경..

 

경력이 5년이되어도.. 재취업은 힘들다.. 많은 입사지원서를 제출하고, 많은 면접을 보고..

참 좋은 경험이였던 것 같다...간만에 보는 면접이라서.. 처음에는 많이 어설펏던듯..

 

오늘 지원한 회사에서 출근하라는 전화 연락이 왔다...

낼모래부터 출근.. 음..

 

집에서 많이 멀지만.. 회사는 괜찬은것 같다..

 

이번에 지원한 회사는 적극적으로 했던것이 잘된것 같다..

 

신입을 뽑는거였는데.. 혹시나 하는마음에 메일을 보내서.. 물어보니.. 전화연락이와서..

면접을 보고 합격.. 당연히 신입연봉이 아닌.. 경력월급으로..

역쉬 도전하는자가 승리를 얻는다.

 

좋은일은 같이 겹치는듯..

 

고용보험도 오늘 연락이 왔다... 한달하고도 10일.. 음.. 가인정기간 참으로 길었다...

하지만 재취업과 고용보험 모두 같이되어.. 안심이다...

 

이제 울 아기 돌잔치도 다가왔는데.. 참 다행이다.

 

Jobkorea에 나온 구인광고이다..

2009년 5월 27일 수요일

[C#] 텍스트 박스에 엔터를 입력하면 다른 포커스로 이동

텍스트 박스에 글을 입력한후에 엔터를 누르면 검색이나 다음 텍스트 박스로 이동하게 하려고

MSDN을 검색해 봤다.

 

 

아래 내용은 내가 텍스트 박스를 입력후 엔터를 누르면 Search()를 호출하는것을 보여주는 코드이다.

private void txtWord_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                Search();
            }

 

MSDN에 자세히 나와있으니 자세한 사항은 MSDN을 검색해보길 권한다.

http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx

[C#] 윈폼기반 프로그래밍을 할때 Invoke() 이쁘게쓰기!

Invoke 를 써서 델리게이트를 간단히 하는 방법이 있다고 한다.

1곳에서만 메인쓰레드의 권한이 필요할경우, 이 방법을 쓰면 좋다고 한다.

만약 그렇지 않다면, 쓰는데마다 저렇게 선언을 해줘야한다고 한다.

 참고 해보길 바란다.

 

이 포스트를 보고있는 여러분들은, 모두 닷넷 프로그래밍에 관심이 있으시고,

현재도 개발툴로 사용중인 분이실 것이다. 쓰레드기반 프로그래밍을 할때(.Net)에서

폼(엄밀히 말하면 윈도우)의 Child컨트롤(요곳도 윈도우)들의 멤버변수들을 조작

하기 위해서는, 메인쓰레드의 권한이 필요하다. 따라서, 메인쓰레드의 권한이 필요

할경우, this.Invoke() 메서드를 쓰게되는데, 이때 이 메서드를 쓰면, 별별놈의

Delegate를 선언해줘야 하고, 또 선언한 델리게이트의 인스턴스를 할당해, 사용

해야해서 코드가 매우 더러워지는것을 느꼈을것이다.

 

예전에 아는 동생녀석의 C#코드를 보고있던 중. this.Invoke()를 아주 이쁘게

잘 써놓은 것을 발견했다. 물론 그놈은.. 예전부터 프로그래밍을 해왔던지라,

모르는 언어도 없고, 시스템 프로그래밍을 가지고 노는애였다.(__)

아무튼 내가 닷넷프로그래밍을 처음배울때, 그놈에게 C#.Net으로된 채팅서버

및 클라이언트 프로그램의 소스를 봐서, Invoke()메서드를 이쁘게 잘쓰는방법을

우연히 터득하게 되었다. 보통의 사람들이라면 Delegate 선언, 인스턴스할당,

Delegate변수명명 까지의 귀찮은 일을 모두 하겠지만, 이 포스트를 봤다면,

이제부터 그렇게 하지말자^^;

 

일단 사용하는 방법은 아주 간단하다. 그냥 this.Invoke()메서드 인자부분에

new MethodInvoker( delegate() { 코드 })를 써주면 끝이다. 이렇게 처리하게

되면, 저런 귀찮은 방법을 사용하지 않고, 그냥 저기안에 코드만 쓰면된다^^;

물론 저렇게 일자로 쓰면, 안이쁘겠지만, 적절히 엔터누질러주시면,

엄청 이쁜코드가 된다. ^^; 동생녀석이 썼던 코드를 보여주겠다.

 

             this.Invoke(new MethodInvoker(
                 delegate()
                 {
                     strCurTime = string.Format("{0:D2}:{1:D2}:{2:D2}", DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
                     string[] strData = new string[3];
                     strData[0] = lstLog.Items.Count.ToString();
                     strData[1] = strCurTime;
                     strData[2] = strTLog;
                     lstLog.Items.Add(new ListViewItem(strData));
                 }
                 )
            );

 

이렇게쓰면, 아주이쁘게 써진다, 또한, Form의 전역공간에 델리게이트를 선언할

필요도 없어져서, 전체적으로 코드가 안정적으로 보인다^^;

저 코드는, 채팅서버에서 로그를 추가하는 델리게이트를 기술하는 것이다^^;

물론 이방법은, 이런 델리게이트가 필요한 곳이 1곳일때만 쓰는것을 추천한다.

만약 그렇지 않다면, 쓰는데마다 저렇게 선언을 해줘야한다.(__)

하지만, 1곳에서만 메인쓰레드의 권한이 필요할경우, 저렇게 하는것이

더 바람직하고, 이쁘다^^;

 

[C#] 1차원 배열

배열이란 동일한 데이터 형을 갖는 변수들을 묶어 놓은 것이다.

일반적으로 변수를 선언한 방법은 아래와 같다.

static void Main(string[] args)
{
  int a, b, c, d;
  a=10;
  b=20;
  c=30;
  d=40;
  Console.WriteLine(“{0},{1},{2},{3}”,a,b,c,d);
}

 

이것을 배열로 선언을 하면 아래와 같다.

static void Main(string[] args)
{
  int [] arr ; //배열 선언
arr = new int [4]; //메모리에 할당
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
Console.WriteLine(“{0},{1},{2},{3}”,arr[0],arr[1],arr[2],arr[3]);
}

 

선언과 메모리 할당 초기화를 같이 할 수도 있다.

데이터형 [] 배열 이름;

int[] arr;

 

배열을 선언한 다음에는 메모리에 할당을 해주어야 하는데 이때 배열의 크기도 명시해주어야 한다.

배열의 크기란 배열이 담게 되는 데이터의 개수를 의미하는데 0번부터 시작을 한다

arr = new int [4];

다음과 같은 구조를 가짐

arr[0] arr[1] arr[2] arr[3]

 

많은 자료를 배열로 처리 할 경우 For 문을 이용하거나 foreach문을 이용하면 모든 요소에 인덱스를 하지 않아도 된다.

아래는 For문을 이용한 예시이다. For문을 이용하여 arr의 길이 만큼 수행하는 것이다.

static void Main(string[] args)
{
  int [] arr ; //배열 선언
arr = new int [100]/메모리에 할당
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
//중간생략
for (int i=0; i < arr.Length; i++)
   {
    Console.WriteLine(“arr[{0}]은 {1}”,i,arr[i]);
   }

}


아래는 foreach문을 이용한 예시이다.

foreach문의 구조는 아래와 같다.

foreach(변수의 타입 변수명 in 배열명)
{
명령문
}

foreach문은 for 문과 달리 별도의 조건식이 존재하지 않는다. 배열의 크기만큼 반복하면서 실행이 되는 것이다

static void Main(string[] args)
{
  int [] arr ; //배열 선언
arr = new int [100]/메모리에 할당
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
//중간생략
foreach (int i in arr)
   {
    Console.WriteLine(“{0}”,i);
   }
}

 

[C#] Label의 갯수만큼 배열선언

Label 에 배열 선언

Label 의 갯수만큼 올려놓고

다음과 같이 사용하면 된다. 

Label[] lbl = new Label[] { label1, label2, label3, label4, 
                label5, label6, label7, label8, label9, label10 }; 
            for (int i = 0; i < lbl.Length; i++) 
            { 
                lbl[i].Text = (i + 1).ToString(); 
            }

2009년 5월 26일 화요일

여기에서 다시 블로그를 시작해보려한다.

여기에서 다시 블로그를 시작해보려 한다.

네이버블로그를 이용하다..

구글의 블로거에서.. 주로.. 글들을 올려보고 하다가

좋을것 같아 여기로 옮겨왔다...

앞으로는 여길 주로 해야할것 같다...

 

앞으로 열심히 해봐야겠다... ^^