목숨을 걸어도 사람은 쉽게 죽지 않는다
다음은 대우 중공업 김규환 명장이 삼성에서 강의한 내용입니다.
- 저는 국민학교도 다녀보지 못했고 5대 독자 외아들에 일가 친척 하나없이15살에 소년가장이 되었습니다.
- 기술 하나 없이 25년 전 대우 중공업에 사환으로 들어가 마당 쓸고 물 나르며회사 생활을 시작했습니다.
- 이런 제가 훈장 2개, 대통령 표창 4번,발명특허대상,장영실 상을 5번 받았고1992년 초정밀 가공분야 名匠으로 추대 되었습니다.
어떻게 이런 제가 우리나라에서 상을 제일 많이 받고 명장이 되었는지 말씀 드릴까요?
사환에서 名匠이 되기 까지 부지런한 사람은 절대 굶지 않는다.
- 제가 대우에 입사해서 현재까지 오는 과정을 말씀 드리겠습니다.
- 제가 대우에 입사할 때 입사자격이 고졸이상 군필자였습니다.
이력서를 제출하려는데 경비원이 막아 실강이 하다 당시 사장이 우연히 이 광경을 보고 면접을 볼 수 있게 해줬습니다.
- 그러나 면접에서 떨어지고 사환으로 입사하게 되었습니다.
- 사환으로 입사하여 매일 아침 5시에 출근하였습니다. 하루는 당시 사장님이 왜 일찍 오냐고 물으셨습니다.
그래서 선배들 위해 미리 나와 기계 워밍업을 한다고 대답했더니 다음날 정식기능공으로 승진시켜 주시더군요.
- 2년이 지난 후에도 계속 5시에 출근하였고, 또 사장님이 질문하시기에 똑같이 대답했더니 다음 날 반장으로 승진시켜 주시더군요.
내가 만든 제품에 혼을 싣지 않고 품질을 얘기하지 마십시오.
- 제가 어떻게 정밀기계 분야의 세계 최고가 됐는지 말씀 드리겠습니다.
- 가공 시 온도가 1℃ 변할 때 쇠가 얼마나 변하는지 아는 사람은 저 하나 밖에 없습니다. 이걸 모를 경우 일을 모릅니다.
- 제가 이것을 알려고 국내 모든 자료실을 찾아봤지만 아무런 자료도 없었습니다.
그래서 공장 바닥에 모포깔고 2년 6개월 간 연구했습니다.
- 그래서 재질, 모형, 종류, 기종별로 X-bar값을 구해 1℃변할 때 얼마 변하는지 온도치수가공 조견표를 만들었습니다.
- 기술공유를 위해 이를 산업인력관리공단의 ‘기술시대’란 책에 기고했습니다. 그러나 실리지 않았습니다.
그런데 얼마 후 3명의 공무원이 찾아왔습니다. 처음에 회사에서는 큰일이 일어난 줄 알고 난리가 났습니다. 그런데 알고 보니 제출한 자료가
기계가공의 대혁명 자료인 걸 알고 논문집에 실을 경우 일본에서 알게 될까 봐, 노동부장관이 직접 모셔오라고 했다는군요.
장관 曰 "이것은 일본에서도 모르는 것이오." "발간되면 일본에서 가지고 갈 지 모르는 엄청난 것입니다."
= 목숨 걸고 노력하면 안되는 일 없다.
- 일은 어떻게 배웠냐?
어느 날 무서운 선배 한 분이 하이타이로 기계를 다 닦으라고 시키더라구요. 그래서 다 뜯고 닦았습니다.
모든 기계를 다 뜯고 하이타이로 닦았습니다 . 기계 2612개를 다 뜯었습니다.
- 6개월 지나니까 호칭이 ‘야 이 X끼 야’에서 ‘김군’으로 바뀌었습니다.
서로 기계 좀 봐 달라고 부탁했습니다. 실력이 좋아 대접 받고 함부로 하지 못하더군요.
- 그런데 어느 날 난생 처음 보는 컴퓨터도 뜯고 물로 닦았습니다. 사고 친 거죠.
그래서 그 때 알기 위해서는 책을 봐야 겠다는 생각을 가지게 되었습니다.
- 저희 집 가훈은 ‘목숨 걸고 노력하면 안되는 일 없다’입니다.
- 저는 국가기술자격 학과에서 9번 낙방,
1급 국가기술자격에 6번 낙방,
2종 보통운전 5번 낙방하고
창피해 1종으로 전환하여 5번 만에 합격했습니다.
사람들은 저를 새대가리라고 비웃기도 했지요.
하지만 지금 우리나라에서 1급 자격증 최다보유자는 접니다.
새대가리라고 얘기 듣던 제가 이렇게 된 비결을 아십니까?
그것은 목숨 걸고 노력하면 안되는일 없다는 저의 생활신조 때문입니다.
- 저는 현재 5개 국어를 합니다. 저는 학원에 다녀 본 적이 없습니다.
제가 외국어를 배운 방법을 말씀 드릴까요? 저는 과욕없이 천천히 하루에 1문장씩 외었습니다.
하루에 1문장 외우기 위해 집 천장, 벽, 식탁, 화장실문, 사무실 책상 가는 곳마다 붙이고 봤습니다.
이렇게 하루에 1문장씩 1년, 2년 꾸준히 하니 나중엔 회사에 외국인들 올 때 설명도 할 수 있게 되더라구요.
- 진급, 돈 버는 것은 자기노력에 달려 있습니다.
세상을 불평하기 보다는 감사하는 마음으로 사십시오. 그러면 부러운 것이 없습니다.
배 아파하지 말고 노력 하십시오.
의사, 박사, 변호사 다 노력했습니다. 남 모르게 끊임없이 노력했습니다.
= 하루 종일 쳐다보고 생각하고 또 생각하면 해답이 나옵니다.
- 저는 제안 2만 4천 6백 12건, 국제발명특허 62개를 받았습니다.
- 저는 조금이라도 도움이 되는 건 무엇이라도 개선합니다.
하루 종일 쳐다보고 생각하고 또 생각하면 해답이 나옵니다.
가공기계 개선을 위해 3달 동안 고민하다 꿈에서 해답을 얻어 해결하기도 했지요.
- 제가 얼마 전에는 새로운 자동차 윈도 브러시도 발명하였습니다.
유수의 자동차 회사에서도 이런 거 발명 못했습니다.
- 제가 발명하게 된 배경을 설명 드리겠습니다.
회사에서 상품으로 받은 자동차가 윈도 브러시 작동으로 사고가 났습니다.
교통사고 후 자나 깨나 개선 생각을 했습니다.
그러다 영화 타이타닉에서 배가 물을 가르는 것 보고 생각해 냈습니다.
대우자동차 김태구 사장에게 말씀 드렸더니 1개당 100원씩 로열티 주겠다고 하더라구요.
약속하고 오는 길에 고속도로와 길가의 차를 보니 모두 돈으로 보입디다.
- 돈은 천지에 있습니다. 마음만 있으면 돈은 들어옵니다.
회사에 대한 나의 생각 저의 종교는 대우중공업敎입니다.
- 저는 여러분들 한테 반드시 종교를 가지라고 말씀 드리고 싶습니다.
저도 종교가 있습니다. 하지만 저는 교회나 절에 다니지 않습니다.
제 종교는 대우중공업교입니다.
우리 집에는 대우 깃발이 있고 식구들 모두 아침 밥 먹고 그 깃발에 서서 기도합니다.
- 저는 하루에 두번 기도합니다.
아침에 기도하고 정문 앞에서 또 한번 기도합니다.
"나사못 하나를 만들어도 최소한 일본보다 좋은 제품을 만들 수 있도록 도와주십시오"
마지막 당부의 말
지금하고 있는 일에 최선을 다하는 자는 영화를 얻는다.
- 저는 심청가를 1000번 이상 듣고 완창을 하게 되었습니다.
심청가에 보면 다음과 같은 구절이 있습니다.
'한번 밖에 없는 인생 돈에 노예가 되지 마라!'
지금 하고 있는일이 너의 인생이다!
지금하고 있는 일에 최선을 다하는 자는 영화를 얻는다.
- 목숨 걸고 노력하면 안되는 것 없습니다.
목숨 거십시오.
Detecting & Defeating the Debuggers
원문 : http://nagareshwar.securityxploded.com/2007/07/15/detecting-defeating-the-debuggers/
Debuggers are the main tool used in reverse engineering. It is used by serial crackers to break the software protection or to uncover the algorithm used in the proprietary applications. On the other hand it is also used by researchers to analyze the malwares.
Detecting the presence of debuggers is an important step in this direction. Here I will discuss about both user land and kernel level debugger detection techniques. Also I will throw some light on how one can defeat these techniques. Its always good to know both sides of the coin even though you always sit on one side.
In user land
Detecting debuggers in user land (ring 3) is simple. Windows provides API IsDebuggerPresent() which indicates if the application is being debugged. In such a case application may decide to terminate or may take different path just to evade the crackers.
There is a better method than one mentioned above. This involves directly reading ‘beingDebugged’ flag of PEB of the process. It is more stealthier than directly using the function since the function entry is clearly visible in the import table. In fact the IsDebuggerPresent() function internally does the same thing of reading the flag from PEB.
Here is the disassembly of IsDebuggerPresent Function
mov eax, dword ptr fs:[18]
mov eax, dword ptr ds:[eax+30] ; eax now points to PEB
movzx eax, byte ptr ds:[eax+2] ; retrieves PEB->beingDebugged value
Bypassing the above detection is simple as well.You can just attach debugger and modify the return value of IsDebuggerPresent(). You can also directly modify the ‘beingDebugged’ value in PEB. OllyDbg has several plugins which does this automatically.
This technique of detecting debuggers is pretty old, but it still helps in evading casual crackers. Now there are most customized methods specific to debuggers such as OllyDbg, IDAPro, Softice etc.
You can find some very good techniques at OpenRCE.
Inside the Kernel
There are very less resouces available online when it comes to kernel as very few people have dared to enter ring 0. However windows provides support for detecting and defeating the debuggers inside kernel. You can use exported variable KdDebuggerEnabled of ntoskrnl to detect if the machine is being debugged by kernel debugger. The good place to perform this check in the DriverEntry routine of your driver.
Once the debugger is detected, you can either terminate execution of your driver or disable the debugger itself. To stop the debugger, you can use another exported function KdDisableDebugger on NT based machines.
This same trick is used by IceSword (anti rootkit tool) to prevent reversers from knowing its internals.Here is the code snippet from IceSword driver Isdrv120.sys which does this check and then disables the debugger.
loc_disable_debugger: | |
mov eax, ds:KdDebuggerEnabled | ; check if debugger running |
cmp byte ptr [eax], 0 | |
jz short loc_next | ; no debugger found |
call KdDisableDebugger | ; disable debugger |
jmp short loc_disable_debugger | ; check again, until it is disabled |
loc_next: |
However inside the ring 0 also its not rare to find debugger specific checks. For example, you can test for the presence of SoftIce by checking if its driver is loaded or not.
- Nagareshwar
당신의 조직은 개발자를 올바르게 관리하고 있는가?
원문 : http://www.zdnet.co.kr/itbiz/column/anchor/hsryu/0,39030308,39162121,00.htm 나는 좋은 관리자가 되기 위해 어떻게 해야하는가... ---------------------------------------------------------------------------------------------
|
한국에서 SW 개발자가 성공하지 못하는 세가지 이유
원문 : http://www.zdnet.co.kr/itbiz/column/anchor/hsryu/0,39030308,39158827,00.htm "소프트웨어 개발은 멘탈(mental) 작업이다. 인간의 정신에 의해 결과물이 만들어지고 그것이 성공과 실패를 좌우한다." "심지어 복장 점검을 하기도 한다." "개발자들의 커뮤니케이션 스킬 부족과 태도 문제" 개발자도 반성하고 관리자도 반성하고 회사도 반성해야하는 정말 공감가는 글 결정적으로 내가 하고 싶은말은... 반바지를 입고싶단 말이다~ 긴바지 때문에 더워서 집중이 안되 ㅠ.ㅠ --------------------------------------------------------------------------------------------- 한국에서 SW 개발자가 성공하지 못하는 세가지 이유 류한석(IT 컬럼니스트) 2007/06/27 |
|
소프트웨어 개발자 직종에 대한 회의론적인 얘기가 여기저기에서 들린다. 한때 IT 붐이 일었을 때는 많은 사람들이 개발자를 지망하기도 했다. 하지만 최근 상황을 보면, 신규 유입되는 인력이 아주 적은 편이다. 요즘 젊은이들은 영악해서 이 직종에 비전이 없다는 것을 너무나 잘 알고 있다. 신참 인력뿐만 아니라 고급 인력도 많이 부족하다. 현재의 사회 풍토에서 고급 인력으로 성장하는 것은 결코 쉬운 일이 아니기 때문이다. 그저 사회가 제시하는 길을 따라가다가는 고급 인력이 되는 것이 아니라 퇴출된다. 필자의 경우를 보면, 필자는 정말 프로그래밍이 좋아서 시작한 8비트 키드이다. 중학교 1학년 때 처음으로 컴퓨터를 알게 된 이후로 한시도 컴퓨터와 떨어진 적이 없는 소위 컴퓨터광(geek)이다. 하지만 대학 졸업 후 사회에 나와 첫 직장인 SI 업체에서 일하면서 몇 번이나 눈물을 흘렸다. 이후 프리랜서, 개인회사 창업, 벤처기업, 중소기업, 대기업, 외국계 기업을 두루 걸치면서 현재까지 겨우 살아남을 수 있었다. 만일 그런 인생의 순간순간에서 이를 악물고 분발하지 못한 채 끈을 놓아버렸다면 어땠을까? 정말 아찔한 생각이 든다. 특유의 헝그리 정신으로 인해 겨우 버텼으며 성격도 많이 변했다. 그간 필자 자신 그리고 선배, 동료, 후배들을 보면서 느꼈던 생각을 정리해서 개발자가 성공할 수 없는 이유 세 가지를 꼽아 보았다. SI 중심의 왜곡된 업계 구조 첫 째, 업계 구조가 SI 중심으로 왜곡되어 있다. 국내의 소프트웨어 산업은 패키지나 솔루션 비즈니스가 제대로 작동되지 않는 상태에서, 대기업 중심의 SI 업체들이 시장을 차지하고 있다. 그 과정에서 산업의 혈액 순환이 잘 되지 않아, 대기업만 돈을 벌뿐 중소기업들은 협력 업체라는 미명 하에 근근이 먹고 살고 있는 형편이다. 통계에 따르면 전체 매출의 80% 이상을, 그리고 영업 이익의 90% 이상을 대기업 계열 SI 업체 상위 3개사가 가져가고 있다. SI는 소프트웨어 산업을 구성하는 한 가지 요소일 뿐이지만 국내에서는 거의 SI 밖에 없는 수준이다. 그런 상태에서 빅3업체가 모든 것을 가져가고 있으며, 산업 전반에 하청 및 재하청에 따른 죽음의 순환 고리를 형성하고 있다. 그런 생태 구조에서 개발자는 단지 머리 수에 불과할 따름이다. 또한 전문적인 지식에 대한 가치 판단이 제대로 이루어지지 않고 있기 때문에, 소프트웨어 아키텍처까지도 비전문가에게 맡겨지는 경우가 많다. SI 중심의 산업 구조, 그리고 전문가에 대한 평가 체계가 없고 단지 머리 수에 의해 개발자에 대한 판단이 이루어지는 상황에서 개발자의 성공 사례는 나올 수 없다. 대기업의 협력 업체에서 일하는 많은 개발자들이 과중한 업무로 인해 참다못해 전업을 하거나 건강이 나빠져서 자의반 타의반 일을 더 이상 할 수 없게 되곤 한다. 그러한 이유 때문에 많은 개발자들이 스스로를 막장 인생이라고 표현하고 있다. 엉성한 개발자 관리 둘째, 소프트웨어 업체들이 개발자를 제대로 관리하지 못하고 있다. 소프트웨어 개발은 멘탈(mental) 작업이다. 인간의 정신에 의해 결과물이 만들어지고 그것이 성공과 실패를 좌우한다. 하지만 국내 대부분의 소프트웨어 업체들은 그러한 멘탈 작업에 적합한 업무 환경을 제공하지 못하고 있다. 또한 커리어 관리도 이루어지지 않고 있다. 물론 실적에 대한 보상도 미비하다. 개발자들에 대해 출퇴근 시간을 정확하게 체크하고(아니, 출근시간을 지키는지 체크하고 퇴근시간은 얼마나 늦는지 체크한다), 집중할 수 없는 시끄러운 환경을 제공하고, 업무 실적의 가치를 제대로 평가하지도 못한다. 심지어 복장 점검을 하기도 한다. 또한 요즘 개발자들은 전문적인 교육은 고사하고 일일 세미나에 참석하는 것도 어려운 형편이다. 많은 기업들이 최소한의 투자조차 기피하고 있기 때문이다. 그것은 중소기업은 말할 것도 없고 소위 초일류 기업을 지향한다는 대기업도 마찬가지이다. 열악한 업무 환경을 제공하면서 성과에 있어서는 최고의 아웃풋을 강요한다. 개발 환경만 제대로 제공되지 못하는 것이 아니라 관리도 제대로 안되고 있다. 부적절한 관리자들이 개발자를 정신적으로 학대하고 있다. 소프트웨어 개발자로서 생존하기 위해서는 사회 구조적 환경, 그리고 기업문화와 싸워야 한다. 많은 선배 개발자들이 그런 생존을 위한 싸움에서 졌고 결국 사라져 갔다. 개발자들의 스킬 부족과 닫혀진 태도 셋째, 끝으로 개발자들의 커뮤니케이션 스킬 부족과 태도 문제를 지적하지 않을 수 없다. 이 문제는 한국적 기업문화(상명하복)와 결합하여 더욱 복잡한 문제를 야기하고 있다. 개발자들은 특히 다른 직종에 비해 성격이 까칠한 경우가 많다. 자신만의 지식과 세계가 있기 때문에 그것이 전부라고 우쭐한 채로, 다른 개발자나 다른 직종을 존중하지 못하는 사람들이 꽤 많다. 하지만 “타인이 원하는 것에 대해 관심을 갖지 않는 사람”은 인생의 가시밭길을 걷게 된다. 그런 태도는 타인과의 협업을 어렵게 하고 결국 자기 자신이 원하는 것도 얻지 못하게 한다. 젊은 시절에는 그런 태도에도 불구하고 큰 문제가 없을 수 있겠지만, 30대 중반이 넘을 때까지도 태도를 변화시키지 못할 경우 이후에 많은 고난을 겪게 된다. 그것은 이미 인간의 역사에서 증명된 삶의 법칙이다. 똑똑하고 샤프한 개발자들은 종종 있다. 하지만 타인의 관심사에 진정으로 주의를 기울이고 타인에게 친절한 마음을 가진 개발자를 만나기란 참으로 힘들다. 이것은 다른 직종도 마찬가지이겠지만 (개발자 출신인 필자가 볼 때에는) 개발자들의 세계에 유독 이런 까칠함과 폐쇄성이 심하다. 물론 그런 독불장군적 태도가 단지 개발자들의 탓만은 아닐 것이다. 많은 개발자들이 피해 의식을 갖고 있으며 그것이 타인에 대한 공격적 태도로 나타나기도 한다. 사회적 환경의 미비, 그리고 커뮤니케이션 스킬이 부족한 개발자들. 이 조합이 더욱 안타까운 결과를 만들어낸다. 추가적으로 언급할 점은, 혁신해야 할 여러 가지 네가티브한 요인에도 불구하고 개발자들끼리 잘 뭉치지 못한다는 사실이다. 외국과 달리 개발자 커뮤니티의 활동이 많지 않다. 물론 JCO(자바 개발자 커뮤니티), SCA(소프트웨어 커뮤니티 연합) 등 개발자들의 모임이 없는 것은 아니지만 가끔 오프라인 모임이나 컨퍼런스를 개최할 뿐, 별다른 ‘사회 변혁적 활동’을 구현하지는 못하고 있다. 개발자들의 실상을 알리고 대안을 마련하고 정부나 기업들과 접촉을 하고 해외에 진출하고 창업을 하는 등의 좀 더 적극적으로 행동하는 것이 필요하다. 아마도 필자의 이런 글에 대해 그저 현실에 대한 비판에 불과하다고 얘기하는 이도 있을 것이다. 하지만 대응 방안을 마련하기 위해서는 먼저 냉정하게 현실을 정리하지 않을 수 없다. 요약해보자. 대기업 계열사들이 장악한 SI 위주의 산업 구조에서 개발자들은 성장하지 못하고 성공하지 못한다. 이런 사회 풍토에서 과연 존경 받거나 성공한 개발자들이 얼마나 되는가? 또한 많은 소프트웨어 업체들의 기업 문화가 후진적이다. 제대로 된 업무 환경을 제공하지도 못하면서 프로젝트 관리도 안 된다. 그러면서 성과에 대해서는 초일류를 원한다. 이율배반적이다. 개발자들의 태도 문제도 있다. 환경을 바꾸지 못하면 자기 자신을 바꾸어야 한다. 개발자 스스로 그런 인식을 가져야 한다. 피해의식에 사로잡혀 있는 것만으로는 삶이 억울하지 않은가? 개인적으로 커뮤니케이션 스킬을 향상시키고 타인에 대해 친절한 태도를 갖추는 인간 수양이 필요하다. 그리고 동료 개발자들과 함께 변혁을 위해 협업하고 개척해나갈 부분이 있다는 것을 알고서 행동해야 한다. 왜곡된 업계 구조 속에서 가만히 있으면 퇴출될 뿐이다. 우리에게는 행동이 필요하다. 이후의 컬럼에서 하나씩 대응 방안을 다루어보도록 하겠다. |