http://news.kbs.co.kr/special/digital/vod/newspuri/2010/06/11/2110948.html#//
저작자 표시
신고
by danguria 2010.06.22 22:59
너무 너무 좋은 강의 인것 같네요..


http://news.kbs.co.kr/special/digital/vod/newspuri/2010/06/18/2114742.html#//

저작자 표시
신고
by danguria 2010.06.22 22:58

임백준님의 블로그에 좋은 글이 있어서 소개 합니다.(링크 - http://blog.daum.net/baekjun)



늘 웃는 얼굴이고 실력도 뛰어난 중국 프로그래머 한 명이 최근에 회사를 그만 두고 다른 회사로 옮겨갔습니다. 맨하탄의 센트럴 파크 바로 아래에 있는 뱅크오브아메리카에서 MBS(Mortgate Backed Security)라는 금융 상품과 관련된 수식을 연구하고 그것을 소프트웨어로 작성하는, 그런 일을 하게 되었다고 합니다. 자기는 대학 시절에 물리학을 전공했기 때문에 좀 더 이론적이고 수학적인 분야에서 일하기를 희망했다고 하면서, 현재 직장에서는 그런 일을 찾을 수 없었다는 설명이었습니다.


그러한 그의 설명이 저에게 하나의 질문을 떠올리게 했습니다. 그것은 소프트웨어 개발의 본질적인 성격에 대한 질문이었습니다.


소프트웨어를 개발하다보면 화면 한구석을 차지하는 컴포넌트의 색깔을 연두색으로 할지 노란색으로 할지를 가지고 논쟁을 벌여야 하는 것처럼 김새는 경우가 있습니다. 일주일 동안 잠을 설쳐가면서 구현한 논리가 사용자가 변덕을 부리는 바람에 아무 쓸모없는 쓰레기로 변하는 일도 있습니다. 창조적인 일에 몰두하기보다는 누구나 할 수 있는 단순한 일을 반복하는 경우도 흔합니다. 정연한 논리와 창의력이 아니라 단지 다른 사람에게 자기 생각을 강요하는 ‘말빨’이 뛰어난 사람이 프로젝트의 운명을 들었다 놓는 일도 부지기수입니다. 간단히 말해서 프로그래머가 자기 일에 <회의>를 품을 수밖에 없는 순간은 어디에서나, 누구에게나 하루에 열 두 번입니다.  


이 중국 친구는 저와 마찬가지로 영어가 제 1 언어가 아닙니다. 그 사실은 위에서 언급한 <회의>에 더욱 진한 <회의>의 그림자를 드리웁니다. 제가 보기에 똑똑한 그 친구는 가끔 자신의 말을 다른 사람들이 알아듣지 못하거나, 자기가 다른 사람들의 말을 알아듣지 못하는 일을 힘겨워 했습니다. 자기에게 좋은 아이디어가 있어도 그것을 설득력 있게 설명하지 못하는 순간, 다른 사람이 제안한 별로 아름답지 못한 알고리즘이 자신의 아이디어를 밀어내는 일에 그는 고통을 느꼈을 겁니다. 스스로 그런 과정을 겪어왔고, 지금도 겪고 있는 제가 그의 아픔을 모를 수는 없었습니다. 그래서 저는 “좀 더 이론적이고 수학적인” 일을 찾아서 떠난다는 그의 이야기가 사실은 멋진 변명에 불과하다고 생각했습니다.


그가 말하는 “좀 더 이론적이고 수학적인” 일이란 사실 조금이나마 덜 <회의>해도 좋은, 그런 일이라고 생각한 탓입니다. 그는 자기에게 주어진 <일상>을 벗어나고 싶었던 것입니다.


프로그래머의 입장에서 보았을 때, 수학자나 경제학자가 작성한 수학 공식을 그대로 프로그램으로 옮기는 일처럼 따분한 일이 또 어디 있을까 싶습니다. 그 과정에서 <창조>의 희열을 맛보는 사람은 수학자나 경제학자이지 프로그래머가 아닙니다. 일반적인 프로그래밍의 과정에서도 <사용자 요구사항>을 작성하는 사람들은 대개 프로그래머가 아닌 다른 사람입니다. 그것은 사용자 자신일 수도 있고, 사용자와 대면하는 분석가일 수도 있습니다. 하지만 이러한 과정에서 프로그래머는 결코 자기 자신을 주어진 <요구사항>을 <프로그램>으로 그대로 옮기는 단순한 존재로 낮추지 않습니다. 프로그래머는 사용자와 분석가에게 무엇을 해야 하고, 무엇을 하면 안 되는지를 당당하게 이야기합니다.


뜨거운 사랑에 빠진 연인들조차 주어진 시간의 대부분을 정작 연애가 아니라 밥을 먹고, 잠을 자고, 화장실에 가는 일로 보내야 합니다. 그와 마찬가지로 세상의 모든 일은, 모든 창조적인 일은, 쉽게 눈에 드러나지 않는 <일상의 힘>을 토대로 합니다. 그리하여 <회의>의 대상이 있다면 그것은 주어진 일상을 딛고 창조에 몰두하지 않는 자기 자신이 되어야지, <일상> 자체가 되면 안 됩니다. 그것은 대부분 착각이기 때문입니다.


저는 그 중국 친구가 차라리, 하게 될 일은 지금 하는 일하고 별로 다르지 않은데, 뱅크오브아메리카에서 돈을 더 많이 주더라. 이렇게 솔직히 말했더라면 좋았을 거라고 생각했습니다. “이론적이고 수학적”이기로 따진다면 지금 하는 일도 별로 다를 게 없기 때문입니다. 사람은 누구나 일상을 벗어나고자 합니다. 그건 어쩔 수 없습니다. 하지만 일상에 <회의>의 그림자가 드리워졌을 때, 그 점을 기억하시기 바랍니다. 누가 <회의>의 대상이 되어야 하는가. 자기 자신인가 아니면 일상 그 자체인가. 대부분의 경우 문제가 있는 것은 일상이 아니라 자기입니다. <일상의 힘>을 믿고 존경하지 않는 사람에게 <창조>는 없습니다.

저작자 표시
신고
by danguria 2010.06.22 15:25
면접 준비 하면서, 임백준님 자료 찾다가 좋은 글이 있어서 소개 합니다.^^




(마이크로소프트웨어 2004 1월호)

필자는 프로그래밍을 비교적 늦은 나이인 이십대 중반에 시작했다. 따라서 독학을 통해서 익힌 ‘초식’이 많았는데 그래서인지 10년이 지나도록 잘 고쳐지지 않는 습관이 하나 있다. 머리 속에 알고리즘의 윤곽이 떠오르면 일단 키보드를 붙잡고 코드를 두드려야만 직성이 풀리는 것이다. 그렇게 하지 않으면 다음 내용이 잘 떠오르지 않는다. 프로그래밍 방법론이나 소프트웨어 공학의 충고에 의하면 이것은 ‘코딩’이 ‘설계’에 앞서는 대단히 잘못된 방법에 속한다. 교과서에 적힌 기본을 무시하는 철저한 아마추어리즘의 소산인 것이다.

 

프로그래밍의 맛

여러 명의 개발자가 함께 코딩을 하는 경우에는 물론 얘기가 다르다. 그런 경우에는 레쇼날 로즈(Rational Rose) 같은 소프트웨어나 객체 설계용 언어인 UML을 이용해서 어느 정도 설계를 마친 다음에 코딩을 시작할 수밖에 없다. 하지만 프로그래밍을 혼자서 할 때는 언제나 ‘코딩’이 ‘설계’를 앞선다. “진정한 ‘프로’는 설계를 마친 다음에 비로소 키보드를 잡는 거야”라고 아무리 말해도 소용이 없다. 커피를 마실 때 크림을 넣지 않으면 맛이 느껴지지 않는 것처럼 손끝에 전달되는 키보드의 감촉이 없으면 프로그래밍의 ‘맛’이 느껴지지 않는다.

이런 습관은 회사에서 수행하는 공식적인 프로그래밍에도 종종 연결된다. 외부의 API가 모두 결정된 상태에서 독립적인 컴포넌트의 내부를 구현하는 경우에는 예외 없이 코딩에서 부터 설계가 시작된다. 화면에 뜬 편집기(필자의 경우에는 주로 vi)라는 캔버스 위에 키보드 커서라는 연필을 조금씩 움직여 나가면 머리 속에 감추어져 있던 알고리즘이 서서히 눈앞에 모습을 드러낸다. 때로는 종이 위에 동그라미, 네모, 선 등을 그리면서 설계를 하는 경우도 있지만 그것은 어디까지나 키보드를 통해서 하는 붓질을 돕는 보조적인 조치일 뿐이다.

프로그래밍에 ‘조예’가 있는 개발자라면 이런 습관은 그다지 자랑할 바가 아니라고 생각할 것이다. 당연하다. 필자도 아주 최근까지 그렇게 생각했다. 그렇지만 프로그래머 중에서 이와 같은 습관을 가지고 있는 사람이 적지 않으리라는 점은 분명하다. 손끝에 키보드의 감촉이 전달될 때 비로소 프로그래밍의 맛을 느끼는 사람은 결코 필자에 국한되는 얘기가 아닐 것이다.

하지만 그런 사람들조차 대부분 ‘설계’에 앞서는 ‘코딩’은 자랑할 바가 아니라고 생각한다. 특히 프로그래밍 실력이 뛰어난 고수일수록 설계를 마치기 전에는 키보드를 넘실거리지 않을 것이라고 믿는다. 뒤집어 말하면 설계를 끝내기 전에 키보드를 만지작거리는 사람은 일종의 ‘하수’로 간주되는 셈이다.

 

프로그래밍 예술론

필자가 이와 같은 ‘설계’와 ‘코딩’의 관계를 포함하여 흔히 알려진 프로그래밍의 방법론이나 소프트웨어 공학의 ‘교리’를 의심하기 시작한 것은 (지난 해에 두 권의 책을 쓰면서) 프로그래밍의 본질이 ‘공학’에 있는가 아니면, ‘예술’에 있는가 하는 문제를 고민하면서부터였다.

프로그래밍이 도대체 예술일 수 있는가에 대한 답을 구하려면 우선 예술이 무엇을 의미하는지 이해해야 하는데 그것은 간단하지 않은 주제이므로 여기서 다루기 어렵다. 하지만 한 가지 분명한 것은 필자의 관점에서 볼 때 프로그래밍은 공학적 요소를 포함하고 있긴 하지만 분명히 예술에 더 가깝다는 점이다.

프로그래밍을 예술로 파악하는 것은 물론 새로운 관점이 아니다. 「프로그래밍의 예술(The Art of Computer Programming」로 유명한 스탠포드 대학의 도날드 카누스 교수는 일찍이 「문학적 프로그래밍(Literate Programming)」이라는 책에서 ‘프로그래밍은 예술’이라고 선언한 바 있다. 그는 이러한 선언을 한 걸음 더 밀고 나아가 프로그램 소스 코드도 다른 예술 작품들과 마찬가지로 미학적 요소와 독창성을 고려해서 ‘값’이 매겨지는 시대가 도래할 것이라고 예언하기까지 했다.

 

문학적 프로그래밍이란

카누스 교수가 말한 ‘문학적 프로그래밍’이란 사실 단순한 비유에서 그치는 것이 아니라 코드의 예술성을 담보하기 위한 일종의 구체적인 프로그래밍 방법론이었다. 우리나라에서는 「생각하는 프로그래밍」이라는 책으로 번역된 ‘프로그래밍 펄(Programming Pearl)’로 유명한 존 벤틀리는 카누스 교수가 ‘문학적 프로그래밍’을 설명한 글을 읽고 감명을 받은 나머지 자신의 컬럼 몇 개를 카누스 교수의 새로운 방법론을 소개하는데 바치기도 했다.

‘프로그래밍은 예술’이라는 명제는 사실 수학 명제처럼 명쾌하게 증명될 수 있는 것이 아니다. 그러나 프로그래밍을 하는 사람이라면, 그 ‘맛’을 조금이라도 아는 사람이라면, 이 명제를 간단하게 거부하지 못할 것이다. 오픈소스 프로젝트에 참여하여 자신의 여가시간마저 프로그래밍에 바치는 해커든, 아니면 회사에 출퇴근하면서 정해진 틀에 따라 코딩을 하는 ‘월급쟁이’이든 상관이 없다.

프로그래밍이 단순히 기술이나 공학의 수준에 머무르지 않는다는 사실은 누구에게나 분명하다. 프로그래밍이라는 행위 안에는 꼭 집어서 설명할 수 없지만 가슴이 떨리고 흥분이 밀려오는 ‘창조적 긴장’의 순간이 담겨 있기 때문이다.

카누스 교수는 스스로 수학적 논리와 알고리즘에 대해서 실로 심오한 내공을 갖추고 있었다. 그런 맥락에서 그는 프로그래밍이 가지고 있는 ‘과학적 미학’의 측면을 강조했다. 이에 비해서 폴 그래이엄은 프로그래밍에 담겨 있는 ‘창조적 미학’의 측면을 날카롭게 부각시켰다. 그래이엄은 하버드에서 컴퓨터 공학 박사 학위를 받고 인공지능 언어인 LISP에 대한 교과서를 쓸 정도로 내공이 중후한 프로그래머였다. 뿐만 아니라 인터넷 붐이 한창이던 1998년에 ViaWeb이라는 회사를 야후에 팔아서 ‘비즈니스맨’으로서도 이름을 얻었다.

그래이엄은 프로그래밍에 담긴 예술의 측면을 설명하기 위해서 프로그래밍을 그림 그리는 행위에 비유했다. 앞에서 그를 소개하면서 내공이 중후한 ‘프로그래머였다고’ 말한 이유는 그가 지금은 그림(painting)을 공부하여 화가의 길을 걷고 있기 때문이다.

그가 보기에 프로그래밍은 순수한 논리나 학문의 대상이라기보다는 ‘실천적 행위’를 통해서 몸에 익혀 가는 구체적인 ‘행동’에 가까웠다. 그것은 마치 텅빈 백지 위에 붓을 한 번 크게 긋는 행위와 다를 바 없었다. 그래서 그는 컴퓨터 과학이라는 표현이 프로그래밍의 진정한 속성을 정확하게 담지 못한다고 비판했다.

프로그래밍이 ‘컴퓨터 과학’ 혹은 ‘컴퓨터 공학’과 같지 않은 이유는 그림을 그리는 예술적 실천이 물감의 화학적 배합을 연구하는 ‘학문’과 같지 않은 이유와 동일하다. 다시 말해서 그림을 그리는 화가는 물감의 화학적 성분이나 여러 화학 이론에 대해서 굳이 알 필요가 없다.

이와 마찬가지로 프로그래밍이라는 창조적 활동을 하는 사람(즉, 프로그래머)들은 컴퓨터 과학과 공학의 수많은 이론을 굳이 자세하게 알 필요가 없다. 예를 들어서 튜링 기계나 오토마타의 개념 정도는 알 필요가 있을지 몰라도 복잡성 이론(complexity theory)에 등장하는 명제를 모두 읽어야만 좋은 프로그램을 만들 수 있는 것은 아니다.

 

코딩이 설계에 앞선다?

그래이엄을 알기 전까지 필자는 ‘코딩’이 ‘설계’를 앞서는 습관을 ‘아마추어리즘’의 표현이라고 생각해 왔다. 진정한 프로라면 교과서에서 가르치는 대로 정확하게 설계를 마친 다음 비로소 코딩을 시작해야 하는 것이라고 생각했다. 이런 강박관념은 일종의 열등감마저 수반했는데 그래이엄의 통찰은 필자를 ‘예술’이라는 아름다운 이름과 함께 구원해 주었다.

프로그래밍을 예술로 바라보는 관점에서 생각해 보면 ‘판에 박힌 듯한’ 소프트웨어 개발 방법론은 프로그래머 개개인의 감성을 존중하기보다는 정해진 틀에 맞는 상품을 생산하기 원하는 기업의 욕망을 반영하고 있다. ‘획일적인 틀’은 상품 생산을 위해서 필요할 뿐 진정한 창조와 아무런 상관이 없기 때문이다.

뛰어난 프로그래머였던 그래이엄은 자기 자신도 프로그래밍을 할 때 키보드를 붙잡고 코딩부터 시작한다고 고백했다. 그가 밝힌 방법은 우선 가볍게 키보드를 두드리면서 코드의 전체 윤곽을 잡고, 다시 처음으로 돌아가서 조금씩 각 부분의 디테일을 살려 나가는 방식으로 프로그램을 작성하는 것이었다. 그는 코딩이 설계에 앞서는 이와 같은 방식을 조금도 이상하게 여기지 않았다. 오히려 그는 모든 예술적 창조가 대개 이와 비슷한 과정을 거치면서 이루어지며 그림을 그리는 과정도 이와 다르지 않다고 말했다. 그리고 미술에서는 그것을 ‘스케치’라는 자연스러운 이름으로 부른다고 지적했다.

혹시 필자가 이 글을 통해서 ‘코딩은 설계에 앞서야 한다’는 명제를 주장하고 있다고 잘못 이해하지 않기 바란다. 그것은 손으로 달을 가리켰더니 손가락만 바라보더라는 이야기와 다를 바 없는 오해가 될 것이다. 여러 명이 함께 복잡한 소프트웨어를 만들 때 ‘설계’의 과정이 결정적으로 중요하다는 사실에는 이견이 있을 수 없다. 다만 필자는 소프트웨어의 ‘생산성’을 높이기 위한 방법론이 반드시 프로그래밍의 ‘예술성’을 강화시키는 쪽으로 작용하지 않는다는, 아니 정확하게 말하자면 그 반대의 방향으로 작용한다는 사실을 지적하고 싶었을 뿐이다.

그럼 프로그래밍의 ‘예술성’을 강조하는 프로그래머는 그렇지 않은 프로그래머에 비해서 소프트웨어 ‘생산성’이 떨어지는 것일까? 놀랍게도 전혀 그렇지 않다. 오히려 그 반대의 경우가 더 많다. 창조의 기쁨을 아는 사람과 그렇지 않은 사람이 발휘하는 능력에는 본질적인 차이가 존재하기 때문이다. 필자가 이 글을 통해서 말하고 싶은 것이 바로 그 차이이다. ‘기쁨’이 있는 사람과 없는 사람 사이에 존재하는 차이는 프로그래밍의 예술적 속성을 이해하는데 있어서 핵심적인 열쇠가 된다.

저작자 표시
신고
by danguria 2010.06.22 15:18


학교에서 세미나를 잘 듣지 않는데 왠지 들어 보고 싶은 세미나가 있더군요..
이화식이라는 분은 "엔-코어"라는 데이터베이스 관련 컨설팅 회사의 대표이시자, 저희 학교 선배이십니다. 기술적인 부분이 아닌, 학생들이 "전문가"로 거듭나기 위해서 어떻게 해야 하는지 자신의 경험을 중심으로 재미있게 이야기 해주셨습니다.

세미나 장소는 전산원 이었는데요, 의외로 학생들이 많더군요.. 나중에 알게 되었는데 융복합센터 참여 학생은 의무이더군요.ㅋ 뭐 아무튼 사람이 북적북적하고 카메라로 녹화도 하는등 굉장하신 분인건 확실 한 것 같았습니다.

1. 높아지고 있는 IT의 위상
세미나 초반에는 "하드웨어에서 소프트웨어로 변해야 한다."라는 골자로 이야기를 해주셨습니다.
어려운 경제여건 속에서도 성장하고 있는 산업을 소프트웨어라는 것을 어려 통계자료를 통해 보여 주셨습니다. 이미 알고 있는 "아바타, 아이폰"이야기도 해주셨고, IBM과 HP와 같은 하드웨어를 주로 다루는 회사도 소프트웨어로 이익구조가 바뀌고 있다는 이야기를 해 주셨습니다. 새롭게 알게 되었던 것은 순이익부분에서는 특히 소프트웨어가 뛰어난 것을 알 수 있었습니다. 삼성이 10퍼센트의 이익을 내는데 반해 소프트웨어는 최고 80퍼센트까지 이익을 내는 것을 보고, 역시 우리나라와 같이 자원이 부족하고 고인력이 많은 나라는 소프트웨어를 해야 한다는 생각이 들었습니다.

2. 재주를 부리는 곰이 될 것인가? 돈을 챙기는 왕서방이 될 것인가?
세미나를 하시는 자신도 재주를 넘는 것이 재밌다고 하셨습니다. 문제를 해결하고 프로그램을 만드는 것이 재밌어서 통닭한마리 사주면서 일을 시키면 밤새가면서 일을 하는게 엔지이어, 공대생 기질이라고 하셨습니다. 하지만 그래서는 한국 소프트웨어는 클 수 없다고 하셨습니다. 시스템이 커질 수록 결국 아키텍쳐가 필요하고 그래서 아키텍트가 되어야 한다고 결론 지으셨습니다. 그러면 재주를 부리는 것이 좋긴 한데, 왕서방이 되긴 되어야 하고.. 어떻게 해야 하느냐!!
왕서방과 곰을 다 하는 것입니다.
그 과정에서 해딩으로 기네스 오른 사람이 되지 말고, 박지성이나 호날두가 되어야 하며, 생활에 달인이 되어서는 안된다는 예시는 굉장히 와닿았던 부분입니다. 저도 단순히 기술에 대한 호기심과 개발에 대해 관심이 많았는데 이런 이야기를 듣고 생각을 많이 하게 되었습니다.

3. 전문가가 되려면 어떻게 해야 하는가?
대략 12가지의 소제목으로 이야기를 하셨는데요, 인력거를 타는 일과 끄는 일중 어떤 일을 할 것인가에 대한 이야기로 시작을 하셨습니다. 시대가 급격하게 바뀌므로 인력거를 끄는 일을 하면 나중에 설 땅이 없지만 일력거를 타는 일을 하면 할일이 많아진다는 이야기입니다. 즉 단순 개발자로만 남게 된다면 새로운 기술이 생기면 살아 남을 수 없지만 아키텍트가 되면 할일을 더 늘어난다는 이야기였습니다.(목수와 설계자이야기도 있었습니다.)

① 목표 부터 남달라야 한다.
"5등을 했을때 기뻐 하는가? 부끄러워 하는가?" 즉, 만족지수가 어떤가에 따라 인생의 결과가 달라진다는 말씀을 해 주셨습니다.

② 구체적인 목표를 세워라
"바로 앞만 보고 곧바로 가면 목표에 도달 할수 없다. 조금의 각도만 틀려도 멀리가면 그 차이가 크기 때문이다. 그래서 구체적인 목표를 세워서 계속 해서 수정해 나가야 한다"라고 정리 할 수 있겠습니다. 굉장히 공감가는 이야기였는데요, 소프트웨어 공학에서 소프트웨어를 만들때 Iteration을 하면서 프로그램을 만들어나가는 것과 같은이야기라고 생각됩니다. 작은 단위로 쪼개어 프로그램을 만들고 다시 요구사항에 맞는지 보고 조금더 만들어 요구사항에 맞는지 또보고.. 이런식으로 계속해서 목표에 다가갈때 한번에 곧게 가는 것이 아니라, 계속해서 체크하고 수정하는 것은 굉장이 중요 한것 같습니다.

③ 대기권을 돌파하라
"로켓이 대기권을 뚫고 나가려면 초속 11km/h의 속도가 필요하다. 하지만 중력을 생각하면 더 높은 속도가 필요하다. 이를 해결하려면 중간중간에 추진로켓을 달아야 한다." 라는 비유로 설명을 해 주셨습니다. 삶에 있어서도 목표를 향해 나아가기 위해서 중간중간에 추진장치가 필요하다는 말씀이신것 같았습니다.

④ 한쪽 뺨도 마져 내밀어라
"열심히 공부해서 코피나면 기분이 좋다" 즉 어떤일에도 도전정신을 발휘하여라 라는 말씀이셨습니다.

⑤접근 방법이 달라야 한다.
"IT는 시험잘치는 머리가 필요한 것이 아니다. 분석력, 사고력, 창의력이 중요하다"라고 말씁하셨습니다. 그 예로 자신의 경험을 들어 보이셨는데요, 시험전날, 모르는 문제가 있을때 시험을 못치더라고 이것을 끝까지 고민하느냐, 아니면 일단 외구고 보느냐의 갈림길에서 자신을 미래를 위해 끝까지 고민했다고 합니다.

⑥행군의 원리
"행군할때 후미에서는 '후미속보!', 전방에서는 '전방 반보' 라는 아이러니한 메세지를 전달한다. 항산 선두에 있기 위해 미리 준비해야 한다"라는 내용이었습니다. 뒤에서 새로운 기술이 나올때 마다 힘들게 공부하면 또 새로운 기술이 나오는 생활 보다, 선두에 서서 변화를 주도 하라고 하셨습니다.

⑦ 논리의 완벽성
자신이 화려하지 않은 이력으로 성공 할 수 있었는 이유는 논리의 완벽성이라고 하셨습니다. 대학교때 대수학수업에서 습관이된 논리의 완벽성이 자신의 기술력에 대한 자신감으로 되돌아와서 그것을 무기로 성공할 수 있다고 하셨습니다.

⑧참는 것이 능사가 아니다.
이것이 아닌것 같지만 좀만 더 노력 해봐야지..... 이렇게 하면 안되고 아닌것 같으면 바로 더 좋은 방법을 생각해 봐야 한다고 주장 하셨습니다. 즉, 촉매를 찾는 것이 중요하다는 말이 겠죠.

⑨ 각도의 원리 and 중력
"자신이 다른 사람보다 늦게 시작했고, 배경이 않좋다고 생각하면 실력이 증가하는 증가량을 늘려라"라고 말씀하셨습니다. X축은 시간이고,Y축은 실력일때 각도를 높여야 한다는 것입니다. 또, 사람을 지치고 게을러지는 중력이 있기 때문에 그 각도를 유지 하기 위해서 항상 노력해야 한다고 했습니다.

⑩전봇대의 원리
⑨의 각도를 유지 하기 위해 "전봇대의 원리"를 가르쳐 주셨는데요, 어린 시절 학교 갈때 앞에서 먼저 가고 있는 친구를 따라 잡기 위해 고안했다고 합니다. 즉, 친구를 학교에 도착하기 전에 따라잡기 위해서는 그사이에 있는 전봇대를 지나야 하는데 결국 전봇대 하나를 몇초에 통과하면 되겠구나라는 것입니다. 멀리 있는 목표를 이루기 위해 그 사이에 작은 목표를 세우라는 뜻인 것 같습니다. 저도 비슷 한 경험이 있는데요, 학교에 늦어서 빨리 걸어가야 하는데 동기 부여를 위해 저보다 앞에 있는 사람을 하나 정해서 그 사람을 따라 잡기 위해 발거름을 빨리 했습니다. 그 사람을 따라 잡으면 또 다시 더 앞에 있는 사람을 목표로 잡아서 계속 해서 속도를 유지 했죠..ㅋ


세미나는 2시간 정도 였는데 정말 시간 가는 줄 모르게 몰입이 되었습니다.
글을 쓰면서 "~라고 말씀하셨습니다."가 많아서 성서 같은 느낌이 드네요..ㅠ
아무튼 저에게 있어서 자극이 되는 세미나였습니다~
Good!!!

신고
by danguria 2010.03.26 17:17


VS2008을 언인스톨 하려할때

A problem has been encountered while loading the setup cmponents. Canceling setup

이런 메시로 언인스톨이 되지 않는다면 

다음과 같이 해 보세요.

실행 ->> regedit

다음 레지스트리 폴더를 찾아값니다.

(영문 버전)
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\
DCC60C0870D768BDc58b7F360418D\Patches\

(한글 버전)

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\
2F5B0C81B134C6130A6B87589A22B84A\Patches\

여기서 Patches(REG_MULTI_SZ)함목을 제거 합니다.

신고
by danguria 2010.03.24 22:28
Untitled Document






신고
by danguria 2009.11.16 17:30
head first에 MVC를 설명? 찬양? 하는 노래를 만들었네요.ㅋㅋ

역시 특이합니다. 

아래 링크로 노래를 들을 수 있습니다.ㅋㅋ

저는 지금 기타로 악보를 만들어 보려고 합니다.ㅋ


노래 가사: 

Lyrics by James Dempsey

Model View, Model View, Model View Controller
MVC’s the paradigm for factoring your code,
into functional segments so your brain does not explode.
To achieve reusability you gotta keep those boundaries clean, 
Model on the one side, View on the other, the Controller’s in between.

Model View - It’s got three layers like Oreos do.
Model View creamy Controller

Model objects represent your applications raison d’tre.
Custom classes that contain data logic and et cetra.
You create custom classes in your app’s problem domain,
then you can choose to reuse them with all the views,
but the model objects stay the same.

You can model a throttle in a manifold,
Model level two year old.
Model a bottle of fine Chardonnay.
Model all the twaddle stuff people say.
Model the coddle in a boiling eggs.
Model the waddle in Hexley’s legs.

One, two, three, four.
Model View - You can model all the models that pose for GQ.
Model View Controller

View objects tend to be controls that view and edit,
Cocoa’s got a lot of those, well written to its credit.
Take an NSTextView, hand it any old Unicode string,
the user interacts with it, it can hold most anything.
But the view don’t knows about the Model:
That string could be a phone number or the words of Aristotle.
Keep the coupling loose and so achieve a massive level of reuse.

Model View - All rendered very nicely in Aqua blue
Model View Controller

You’re probably wondering now.
You’re probably wondering how,
the data flows between Model and View.
The Controller has to mediate,
between each layer’s changing state,
to synchronize the data of the two.
It pulls and pushes every changed value.
Yeah.

Model View - mad props to the smalltalk crew!
for Model View Controller

Model View - it’s pronouced Oh Oh not Uh Uh
Model View Controller

There’s a bit more on this story, 
a few more miles upon this road,
well nobody seems to get much glory 
writing controller code.
Well the model is mission critical 
and gorgeous is the view,
But I’m not being lazy, but sometimes it’s just crazy 
how much code i write is just glue.
And it wouldn’t be so tragic,
but the code ain’t doing magic:
it’s just moving values through.
And I wish I had a dime
for every single time 
I set a TextField’s stringValue.

Model View - how we’re gonna deep-six all that glue
Model View Controller

Controller’s know the Model and View very
uahh - intimately 
They often are hardcoding 
which is very verboten for reusability.
But now you can connect any value you select
to any view property.
And I think you’ll start binding,
then you’ll be finding less code in your source tree.
Yeah I know I was astounded,
that’s not even a rhyme.

But I think it bares repeating
all the code you won’t be needing,
when you hook it up in IB.

Model View - it even handles multiple selections too
Model View Controller

Model View - hope I get my G5 before you
Model View Controller

Yeah, yeah, yeah. Yeah.
신고
by danguria 2009.10.30 20:26

역시 "손컴파일러의 중요성"을 스티브 맥코넬 아저씨도 알고계시는 군요.ㅋ

Code Complete 2nd책에서

효율 적인 프로그래머는 머리에서 돌려보고 손으로 계산해 보는 것이 오류를 찾는데 도움을 준다

라고 이야기하고 있습니다.

다들 이런 경험 있으시죠?

늦은밤, 코딩을 다하고 컴파일을 한후 결과를 봤습니다.

짜잔~

......

다른 값이 나왔네요..

if 문에서 <= 문을 잘못 적었나? "="를 빼야 되나? 빼보자!!

아니네.. 다른걸 바꿔볼까?...

....

밤이 꼴닥 지나가 버렸네...

당장 디버거를 갖다 버리도록 합시다
신고
by danguria 2009.10.21 16:46
수원으로 삼성 소프트웨어 멤버십에서 열린 사내 전문가 양성 교육을 다녀왔습니다.

주제는 3D Engine의 이해와 그 활용 이었는데요

평소에 관심이 그다지 많이 가지는 않지만, T자형 지식 분포를 지향 하기 위해서 3D에 대한 

개념을 잡고자 다녀 왔습니다.

다음주가 시험 기간이라서 좀 부담 되긴 했지만, 시험이 전부는 아니라고 생각하고 과감히 결정했습니다.

교육내용은 하루에 많은 내용을 배우기 때문에 아직 정리가 되진 않았지만,

역시 대단한 사람의 강의를 들으면 나도 열심히 해야 겠다는 생각이 드는건 굉장이 좋은 것 같습니다.

가끔씩 저의 꿈과 목표를 다질 수 있는 계기가 되는 것 같습니다. 

오랜만에 글을 올리게 된 이유도 그렇지요^^;;

다시 한번 화이팅해야 겠습니다.
신고
by danguria 2009.10.18 15:53
MSDN을 탐험하다가 웹의 MSDN을 찾아 볼일이 있어서 구글을 통해 사이트를 접속했습니다.

그러나 도메인을 찾을 수 없다는 메시지가 계속 드더라구요..

다른 사이트는 잘 들어가지는데 유독 microsoft관련된 사이트가 계속 안들어가지는 겁니다..

그냥 아쉬운데로 참고 살다가 갑자기 원인을 알아야 겠다는 생각으로 노트북에 제 랜선을 꼽고 인터넷을 써 보았습니다.

그러니 잘되는 것이 아니겠습니까.!!

처음에는 IP설저이나 다른 네트워크 설정이 잘못되어 있어서 그런줄 알고 다르게 설정되어 있는 것이 있는지 찾아봐도 다른

점은 찾을 수가 없었습니다.

그러던중.. 효진이 형이 저에게 말걸어 오실때 한번 보여 주니까 형도 그런 현상이 있었다고 하는 군요..

 작업관리자의 svchost.exe의 NETWORD SERVICE라는 사용자 이름을 가진 프로세스가 microsoft관련 사이트

를 접속시 cpu시간을 많이 잡아 먹고 있는 현상이 있어 그 프로세스를 종료하니잘되더라 하였고 제 컴퓨터의

 svchost.exe프로세서를 종료 하니까 저역시 잘 되더라구요..

아마도 바이러스가 아닌가 싶네요.. 다른 사람들 몇몇도 그런 현상을 보이고 있습니다..

현제 나온 몇몇 백신들로는 발견이 되지 않으니.. 참 ... 누가 이런 걸 만들어내는지 신기하고 대단하고 나쁘다는 생각이 듭니

다..내일은 멤버십 신입회원 기술 면접이 있는날입니다..

실력이 좋은 사람들이 많이 지원했다고 하는데 두렵기도 하고(??!!) 하네요^^

저는 오늘 당직이라서 오랜만에 늦게까지 있다가 글하나 올립니다^^
신고
by danguria 2009.01.15 03:10
어제 멤버십내에 바이러스가 돌고 있다고 하길래 무서웠는데 다음과 같은 바이러스라고 한다...

이제 바이러스에 대해 관심이 많아 졌는데.. 요런거 만드는 놈들 정신세계는 이상하지만 기술은 배우고 싶다.ㅋ

출저 : http://blog.naver.com/worm99?Redirect=Log&logNo=40053311468

아래부터는 블로그에서 퍼온 글..

어느날 갑자기 만자가 파일을 보내는 것이다...

 

그래서 별생각 없이 받았는데... 실행파일이라 실행을 할까 말까 고민하다 별일이야 있겠냐 해서

 

실행했더니 정말 별일없는 박카스 먹고 힘내라는 플래시 파일이었다.

 

그런데 그다음날 점심시간에 점심먹고 돌아오니 네이트온 창이 스무개 가량 열려있는게 아니겠는가... ㄷㄷㄷ

 

뭐하는 거냐는 둥 귀엽다는둥 생전 말도 제대로 안걸던 사람들 한테 까지 박카스 파일이 내이름으로 돌았는가 보다...

 

 

 

제기랄

 

네이트온 박카스F 바이러스!!!!! 일명 '만자바이러스'

 

아직 특별하게 치료법이 나온것 같지는 않으나 곧 나올것으로 보인다.

 

아마 지금 돌고 있는 네이트온 바이러스 여러 종류드른 백도어 프로그램인것 같다.

 

백도어는 컴퓨터에 몰래 숨어들어가 컴퓨터 속의 정보를 빼내가거나 특정 작업을 하도록 제작된 프로그램이다.

 

우선 친한 친구라도 쪽지나 대화창으로 갑자기 말도없이 파일을 보낸다면 상콤하게 쌩까주자.

 

그리고 무슨파일이냐고 물어보고 받을것!!!  지금은 딱히 치료방법이 없으니... 네이트온을 지우고 다시 까는것도 좋은방법

 

그리고 한가지 절대 공인인증서는 컴퓨터내에 보관하지 맙시다.

 

그리고 비슷한 네이트온 쪽지 바이러스는 치료백신이 나왔으니 체험판이라도 받아서 해결하는게 좋을듯 싶다.

 

 

 

기존 네이트온 바이러스 정보 - 출처 하우리

Dropper.PSWIGames.159222
별칭
분류 기타 활동범위 윈32
파괴/확산 등급 특정활동일 없음
확산방법 메신저
대표적 증상 레지스트리 변경, 메시지 전송, 정보유출
    , 파일생성, 화면출력, 트로이 목마 설치
    , 악성코드 설치
제작국가 이탈리아 암호화여부 비암호화
감염위치 파일 시스템 메모리
상주여부
비상주
발견일 [국내] 2008/07/06
[해외] 불분명
엔진버전 2008-07-07
[진단, 치료 가능]

내용
[전체 요약]
국내 유명 메신저인 네이트온의 쪽지 전송 기능을 통해 전파된다.
특정 온라인 게임 및 포털 사이트 접속 시 사용자의 개인정보를 절취한다.

[확산 방법]
국내 유명 메신저인 네이트온의 쪽지 전송 기능을 통해 전파된다.

[감염 후 증상]
1. 네이트온의 쪽지로 다음과 같은 메시지를 통해 전파된다.

   우리집에 애완견인데 이뻐요 ?
   http://(생략)/img/?kia(생략).jpg

   당신에게 매우 흥미로운 내가 찍은 사진을 보냅니다.
   http://(생략)/img/title/?kia(생략).jpg

2. 해당 URL을 클릭하게 되면 RAR로 실행압축된 실행파일이 다운된다.

3. 파일을 실행할 경우 다음의 그림이 보여진다.

  

4. 다음의 파일들이 생성된다.

   (윈도우 시스템 폴더)\serfarcp.dll
   (윈도우 시스템 폴더)\coinme.exe
   (윈도우 시스템 폴더)\drivers\windf.exe
   (윈도우 시스템 폴더)\drivers\windf.hlp
   (윈도우 시스템 폴더)\nwizsys32.exe
   (윈도우 시스템 폴더)\nwizsys32.dll

5. 다음의 레지스트리를 수정하여 시스템 재 시작시에 자동 실행되도록 한다.

   [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
"load"="(윈도우 시스템 폴더)\coinme.exe"

   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
policies\Explorer\Run]
"DF"="(윈도우 시스템 폴더)\drivers\windf.exe"

   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{683f21A6-DAAD-30A4-5ACD-D96750A35C28}]
"StubPath"="(윈도우 시스템 폴더)\nwizsys32.exe 1"

6. wsock32.dll의 send 함수를 후킹하여 사용자의 개인정보(특정 온라임 게임 및 포털 사이트)를 절취한 후 해커에게 전송한다.

치료방법
[치료 방법]

1. WinXP/ME 사용자라면 시스템 복원 기능을 비활성화 한다. 시스템 복원 기능을 비활성화 하는 이유는 깨끗하게 바이러스를 치료하기 위해서이다. 관련 정보는 MS 홈페이지 기술문서(Q263455)에서 확인할 수 있다.

2. 백신 엔진을 최신으로 업데이트 한다.
이 바이러스를 치료하기 위해서는 최신의 백신 엔진이 필요하다.
  1. 바이로봇 정식 사용자의 경우 :
  2. 바이로봇을 사용하지 않는 일반 고객 :
3. 바이러스 검사를 한다.
  1. 바이로봇을 실행하여, 검사 옵션에서 모든 파일 검사로 한다.

    • 바이로봇 Expert 4.0 : [편집]->[환경설정]->[검사] : 모든파일 체크
    • 바이로봇 Desktop 5.0 : [도구]->[환경설정]->[바이러스 검사] : 모든 파일 체크
    • 라이브콜(무료검사) : [고급검사] : 체크

  2. 발견되는 모든 바이러스에 대해서 치료한다.
  3. [재부팅 후 자동 치료] 메시지가 나타났다면 재부팅을 한 후에 다시 검사한다.
신고
by danguria 2008.10.30 10:33

http://p-clean.kisa.or.kr/

 

지금 현재 KISA(한국정보보호진흥원) 에서

자신의 주민등록번호로 가입된 홈페이지를 일괄 확인하여

탈퇴신청에 체크만 하면 탈퇴처리를 할수 있게 해줍니다

일일이 자기가 가입한 싸이트에 들릴필요 없이~

간단히 자신의 본인 확인민 되면 자신이 가입된 모든

홈페이지가 나옵니다. 그리고 체크를 하여 탈퇴신청을하면

KISA(한국정보보호진흥원) 에서 탈퇴처리를 해줍니다^^

 

 

아는 형이 좋은 정보를 주셔서 공유 하면 좋겠다 싶어서 글올립니다^^

위의 글이 전달 받은 원문입니다.

 

신고
by danguria 2008.09.24 16:19
출처 : kkamagui.tistory.com

오래된 동영상이지만 저에게 있어서 컴퓨터를 많이 하는 사람들이 모두 공감할 것 같은 컴퓨터 할때
올바른 자세화 스트레칭에 대한 동영상입니다.
지금 목이 굽은 나로서..
이 스트레칭이 효과가 있을지 모르겠지만^^
지금 당장 모니터의 위치를 높여야 겠다는 생각이 듭니다^^
하나!둘!하나!둘!
모두 스트레칭 합시다~
신고
by danguria 2008.09.23 23:51
드디어 접수가 되었다는 완료가 떴다.ㅋㅋ

다 해주는 거지만 그래도 신기하다.ㅋㅋ 미쿸에서 건너 오는 거니까 조금 시간은 걸리겠지.ㅋㅋ

사용자 삽입 이미지
신고
by danguria 2008.09.06 02:30
인텔 홈피에 가면..

IA-32 Intel Architecture 매뉴얼을 PDF로 다운 받을 수 있다.

그러나!!

나는 책으로 보는 것을 더 좋아하는데..무료로 책을 보내준다고 한다.

그래서 인텔에 메일을 보냈는데 답장이왔다.ㅋㅋ

허접한 영어가 통했다.ㅋㅋ 우편번호를 안적어서 답문이 왔는데 외쿡인과 대화를 하는건 재밌는 일

이다.ㅋㅋ'

다음 답이 기다려 진다.

사용자 삽입 이미지
신고
by danguria 2008.09.04 14:41
http://blogoscoped.com/archive/2008-09-01-n47.html

코드 프로젝트 사이트에서 메일이 왔는데 구글에서 웹브라우저를 만들었다고 한다.

그래서 구글 홈피에 들어가보니까 베타 버전이 있더군...

베타 버전이라서 아직 깔지는 않지만 조만근에 깔아야 겠다.ㅋㅋ

익스플로러는 느린거 같애..ㅋ
신고
by danguria 2008.09.04 14:32
여차 저차해서 꽤나 길었던 과제가 마무리 되어 간다.

멤버십에서 처음 한 과제인데 꽤나 우여 곡절이 많았던 과제 같다.ㅋ

팀원이 빠지게 되고, 처음 윈도우즈 디바이스 드라이버를 맛보게 되고, 5개월의 긴기간이지만..

실제로 구현은 2달 정도 한거 같다...

언제나 마무리를 잘 못하는 내가 PL이기때문에 좀더 노력을 하고 있지만 역시나 난 초반 러쉬형인

가.ㅋㅋ

저번주에 마무리 하려고 했는데 운영자님의 몸살 감기로 한주가 미뤄지는 바람에 개강전 주말의 계

획과 졸업여행에 위기가 왔다.ㅠㅠ

놀러못가는 것이 안타까운것은 아니지만 심적으로 쉬고 싶었고, 과대표와 여자친구에게 미안하다..

완료 세미나때 담담한 마음으로 편안하게 해야 겠다.ㅋ


신고
by danguria 2008.08.30 11:37

오늘 과제 하다가 계속 에러가 나서...

평소에 존경하는 선배의 블로그에 글을 남겼다..

별 생각없이 올렸다가 과외를 마치고 오니 원근이 형이 "니 이제 죽었다! 승훈이형이 니 친구추가하

고 기다리고 있다! 화났나!"라고 하는 순간 가슴이 철렁했다.

네이트에서 승훈이형한테 첫 만남이지만 엄청 혼났다..

이 바닥도 예의가 있는데 그것도 같은 학교 같은 멤버십 선배한테 예의 없이 질문했다고ㅠ

검색도 제대로 하지 않고.. 코드도 제대로 보지 않고 올렸다고 혼내고 나 혼자 다시 에러를 찾아 내도

록 시키셨다.

정망 혼나도 싸다..ㅠ 나도 평소에 친구들이나 누가 물으면 책에 있는거 묻는다고 귀찮아 하는데ㅠ

느낀점도 많다. 학교 선배라고 해도 나이 차이가 많이나서 한번도 본적이 없는데 이렇게 관심을 갖어

주시는것에 고맙기도 하고 나는 무얼 하고 있나 하는 생각도 든다.

오늘 이 일을 교훈 삼아 더욱더 노력하는 내가 되어야 겠다고 생각한다.

그래도 승훈이 형이랑 나름 서로 알게 되어 기쁜 날이기도 하나.ㅋ

다 혼나고 나서 일어나니까 다리가 후들 거리네.ㅋ

신고
by danguria 2008.07.24 23:44

코드를 짜다가 매크로함수를 만들었는데 계속 에러가 나서 참 애를 먹었다..

매크로 함수에서 시작 괄호를 띄어 쓰면 안되는 줄 모르고 ...ㅋㅋ

visual 2008에서 코딩하는데 에러 메세지가 더욱 정교해 졌다는데 나한테는

이상한 소리만 하는지.ㅠㅠ

신고
by danguria 2008.07.22 17:06

공부하다 보니까 보안쪽이 아주 먼 곳은 아니라는 것이 느껴졌다.

윈도우즈에서 시스템프로그래밍을 공부하는데 '루트킷'이라는 책을 알게
되었는데
보안에 관해서 이야기하는데 재밌을꺼 같다.

돈도 없는데 책을 질러버릴 것 같은..ㅠ

원서로 읽고 싶지만 아직 내공이 부족해서...

원서를 후딱 읽어 버리는 그 날 까지~

화이팅!!





루트킷은 해커들이 공격하고자 하는 시스템에 지속적이면서 탐지되지 않은 채로 교묘히 접근할 수 있는 최고의 백도어라고 할 수 있다. 루트킷에 관한 최고의 전문가 두 명이 최초로 종합적인 루트킷 가이드를 집필했다. 루트킷이 무엇이고 어떻게 작동하며 제작하는지, 어떻게 루트킷을 탐지하는지 등에 대해 차례로 설명한다.

rootkit.com의 그렉 호글런드와 제임스 버틀러는 블랙 햇에서 루트킷과 관련한 유명한 교육을 만들고 꾸준히 강의도 해오고 있다.
이 책에서는 그들이 지금까지 공개한 바 없는 루트킷 기술들을 다루고 있다. 어떻게 하면 공격 시스템에 침투해서 몇 년 동안이나 탐지되지 않을 수 있는지 배울 수 있다.
저자들은 윈도우XP와 윈도우2000의 커널 조작 방법을 보여준다. 그리고 윈도우 서버 2003이나 리눅스, 유닉스에 쉽게 적용할 수 있는 공격 개념을 설명한다. 이 책에 나와있는 다운로드 가능한 다양한 예제를 통해 루트킷 프로그래밍 기술을 배울 수 있으며, 운영체제 드라이버나 디버거 같은 다양한 분야의 보안 툴 제작에 도움을 얻을 수 있다.

신고
by danguria 2008.07.14 17:08
| 1 |