사용자 삽입 이미지

컴퓨터 프로그램이 구조와 해석

먼저 새해 복많이 받으세요!!

지난 번 블러그를 통해 씽크프리에서 새 식구를 찾는 다는 소식을 듣고 많은 분들이 연락을 주셨읍니다. 연락주신 분들과 몇 주간에 걸쳐 면접아니 면접을 진행했고 그 결과 몇 분은 씽크프리란 배에 함께 탑승하여 웹 오피스란 오션을 탐험하게 되었습니다(언제고 제게 연락주세요).

주로 2년에서 3년 정도의 경력을 갖거나 신입 개발자 경력을 갖는 분들이 대부분이었습니다. 열정과 가능성 그리고 개발자로서의 자질, 좀 더 나가면 수행한 프로젝트의 경험과 개발파워를 주로 보았습니다.

그런데 공통적으로 느낀 부분은 컴퓨터 관련 전공을 한 많은 개발자 분들이 수학이나 물리처럼 문제를 논리적으로 풀어내는 과목을 좋아하지 않고는 다는 점과 학부에서 공부한 과목 특히, 개발에 대한 부분이 문제의 의미를 찾고 이를 해결하는 방법을 배우는 Semantic 적 프로그래밍이  아니라 해당 언어의 문법을 위주로 배우는 Syntatic 적 교육을 받았다는 사실입니다.  오히려 전산 관련된 전공은 아니지만 문제를 논리적으로 풀어나가는 사고를 제대로 배운 분들이 더 개발에 대해 열정과 가능성이 보였다는 사실입니다.

안타까운 마음에 여러 분들에게 제가 컴퓨터 프로그램의 구조와 해석이라는 책을 소개하고 시간이 되는 데로 꼭 읽어보라고 권했습니다. 아울러 다른 분들에게도 이 책을 좀 소개하고자 합니다. 이 책은 말 그대로 캄퓨터 프로그램의 구조와 해석을 다루는 책으로서  MIT에서  모든 학생에게  가르치는 필수 교제 입니다. 사람의 생각을 컴퓨터 프로그램으로 표현해서 이를 컴퓨터를 통해 표현하는 방법을 가르치는 멋진 책입니다. 내부의 예제도 자바나 C++같은  일반 개발 언어가 아니라 Lisp의 한 형제격인 Scheme을 사용하여 생각하는 방법과 생각을 표현하는 방법, 이 표현을 컴퓨터 내부에서 어떻게 해석하고 실행하는 가에 대한 좋은 지침을 주는 책 입니다.

저도 이 책을 마이크로소프트의 김명호 박사님으로 부터 선물을 받고 연휴 기간에 한장 한장을 넘기면서 너무나도 재미있게 보았습니다 . 아직  전부 보지는 못했지만 짬짬히 머리 아플때 마다 보고 있습니다. 과거 저도 처음 컴퓨터 프로그램을 배울 때 이런 방법으로 학습하지는 못했지만 컴파일러나 다른 유사한 과목들을 학습하면서 이러한 접근 방법의 필요성을 이 느꼈습니다.

개발을 사랑하는 여러분 너무 새로운 것에만 관심갖지 말고 항상 기본을 튼튼히 하는 것도 멋진 투자입니다. 

아래 링크에 가시면 관련된 자료와 전문을 웹으로 이용할 수 있습니다. - http://mitpress.mit.edu/sicp/

마지막으로 다시한번 좋은 책 선물해 주신 마이크로소프트의 김명호 박사님께 감사드립니다. 꾸벅

2008년 힘네세요!




Posted by 박재현
,

2008 근하신년

Log/LifeLog 2007. 12. 31. 10:15

사용자 삽입 이미지

새해에는 원하는 모든 일 성취하는 한 해 되길 기원합니다.



Posted by 박재현
,

사용자 삽입 이미지
개인적으로 검색엔진과 더불어 가장  많이 사용하는 서비스는 위키입니다. 구글은 로봇을 통해 인터넷상의 문서를 수집하고 이를 색인한 후 가장 랭킹이 높은 정보를 사용자에게 제공하는 반면에 위키는 사용자들의 자발적인 참여로 정리된 용어 사전이기 때문에 정보의 질이 다릅니다. 검색을 통해 얻는 정보라는 것이 본질적으로 공개되어 있는 엄청난 양의 정보중에서 가장 가치있는 정보를 순위별로 정리하여 제공받는 것이기 때문입니다. 실제 첫페이지에 원하는 것이 나오지 못하면 좌절하게 됩니다. 실제 어떤 용어(Term)를 검색하면 대부분 첫페이지 결과에 위키가 포함되어 있습니다.

위키는 초보적인 수준의 Semantic Web입니다. 이해할 수 있는 위키 태그로 정보를 보다 구체적으로 명시할 수 있기 때문입니다. 그러나 그 의미가 상호 연동되지 하기 때문에 진정한 Semantic Web은 아닙니다. 이에 반해 블러그 정보의 교환을 위해 RSS로 정리된 정보는 Semantic Web입니다. RSS 명세를 통해 서로 그 의미를 이해할 수 있기 때문입니다. 이처럼 현재 보이지 않는 여러 곳에서 이미 기존의 Syntatic Web이 Semantic Web 으로 진화되어 가고 있습니다. FreeBase처럼 Semantic Wiki 기반의  검색엔진이 차세대 검색 서비스로 주목을 받고 있으며 구글 Base , 야후의 Answer 서비스 등 여러 방면에서 Semantic 기반의 서비스와 커뮤니티가 출현하고 있습니다.

초기 팀 버너스 리에 의해 제안된 Semantic Web의 스펙을 보면서 무척 복잡하고 정제되지 않은 상태라 이해도 떨어지고 무척 어려웠던 기억이 납니다. 특히, 상호운영성을 위한 온토로지에 대한 이해와 온토로지의 작성 및 활용에 대한 명확한 개념 정리가 어려웠습니다. 짬짬히 단편적으로 이해하던 Semantic Web 을 체계적으로 정리할 좋은 기회가 있었습니다.
"인터넷 진화의 열쇠 : 온톨로지"라는 책은 바로 이렇게 모호했던 Semantic Web을 체계적으로 이해하는 데 많은 도움을 줄 것 입니다. 이 책은 경영정보 분야입장에서 Semantic Web에 대해 연구를 하고 있는 서울대 노상규 교수와 박진수 교수께서 집필한 책으로서 엔지니어 입장에서 보다 넓은 시각에서 Semantic Web 을 바라보게 해주는 좋은 안내서라 소개해 드립니다. 저도 올해 가을에 구매해서 보고 연휴때 다시 한번 책을 보게 되었는데 두고두고 많은 도움이 되네요^-^.


Posted by 박재현
,

사용자 삽입 이미지

즐거운 성탄절!

성탄전 연휴 사이에 읽은 "초난감 기업의 조건"이란 책에서 소개한 많은  IT 기업의 실패한 여러 사례를 들을 보면서 , 소프트웨어 라는 분야의 사업에 대해 다시 한번 많은 생각을 하게 되었습니다. 소프트웨어 개발사가 망하는 주요한 원인 제공처가 크게는 소프트웨어 기술을 이해못하는  난감한 CEO , 아둔한 개발진 , 띨방한 마케팅 부서 등을 볼 수 있는 것 같습니다.  최소한 난감한  CEO와 띨빵한 마케팅 부서를 제외하고 개발과 관련된 사안들에 대해 다음과 같은 실수는 피해야 하지 않을까 싶습니다.

- 제품을 처음부터 다시 개발해야 한다는 개발팀의 의견은?
심정은 이해하지만 절대 다시 개발해서는 안됩니다. 이미 경쟁자는 신규 개발 기간의 몇배는 빨리 시장에서 자리를 잡게 됩니다. 또한 안정화되기까지 엄청 많은 시간을 요하게 됩니다. 개인적으로도 유사한 상황에 빠진 경험이 몇 번 있었는데 구조적으로 문제가 있고 , 처음 시도하고 적용한 기술 등을 인해 많은 문제가 있어 다시 처음부터 시작해야 하는 상황이라면 어쩔수가 없습니다. 그러나  이미 시장에 출시되어 경쟁이 되는 제품이라면 현재의 상황을 점진적으로 개선해 나가는 것이 당연히 유리합니다. 유명한 사례지만 넷스케이프사가 전제 제품을 다시 개발하는 데 4년이 걸렸고 그 사이는 빌게이츠는 익스플로러로 인터넷 분야의 판세를 뒤집었죠.

- 개발 목표가 모듈화 라는 개발팀의 의견은?
모듈화의 필요성과 기존 모듈의 문제점, 투입 비용 및 기간 등 여러 요소를 비교하여 그 활용성을 세밀하게 살퍄보고 결정해야 합니다.

- 개발 환경을 변경하겠다는 개발팀의 의견은?
런타임 업그레이드 등을 통해 개발 환경이 손쉽게 변경된다면 큰 문제가 없지만 개발 언어를 다른 언어로 바꾼다거나 개발 환경을 바꾸면서 대대적인 변경이 생긴다면 투입 비용 대 효과에 대해 신중하게 판단하여 결정해야 합니다. 큰 효과가 없다면 변경하지 않는 게 유리합니다.

- 제품을 개발 일정이 부정확한 경우는?
일정 관리는 개발에 있어 가장 중요합니다. 주간 단위의 일정이 지켜지지 않으면 일단위, 일단위가 지켜지지 않으면 시간단위로 라도  일정을 수립하고 이를 지켜내는 프로세스가 있어야만 성공합니다.

- 의도적으로 개발을 거부하거나 태업을 하는 우수한 개발자는?
가슴 아프지만 집으로 돌려보내야 합니다. 결코 소프트웨어는 혼자 개발하는 것이 아닙니다.  여러가지 이유로 자신의 입장만을 고려하는 개발자는 반드시 전체 개발 조직에게 유익하게 작용하지 않습니다.

- 제품 관리(기획)팀의 80:20 법칙을 주장할 때는?
경력이 많은 기획자가 이렇게 말하면 내공을 의심하고 , 신입 기획자가 말하면 팔레토 법칙에 따라 80% 사용자가 20% 기능만을 사용한다고 생각하고 개발을 하면 반드시 망한다는 이야기를 해줘야 합니다.

마지막으로 제 경험상 우수한 QA 팀이 반드시 갖춰져야 고품질의 제품을 안정적으로 출시할 수 있습니다.  실제 위와 같이 하다보면 개발자가 오해를 할 수 있습니다. 그러나 결코, 그렇치 않습니다. 함께 개발로서의 제품이 아니라 , 비지니스로서의 제품으로 이해하는 과정을 통해 모두 이러한 현실을 이해하게 만드는 것이 반드시 병행돼야 합니다. 

'Log > LifeLog' 카테고리의 다른 글

베풀며 살아가는 삶을 위해  (0) 2008.05.21
S/W 개발자로서의 나의 삶은?  (3) 2008.04.14
이메일 활용 가이드  (1) 2008.02.04
딴따라와 개발자는 한끗차이  (5) 2008.01.05
2008 근하신년  (2) 2007.12.31
국내 S/W 개발자들이 알아야 할 생활백과  (5) 2007.12.05
시스템이 경쟁력이다.  (0) 2007.12.01
역사상 인물 가상 재판  (0) 2007.11.24
10년 후의 개발자?  (6) 2007.11.19
나만의 사람보는 법  (3) 2007.11.18

Posted by 박재현
,

사용자 삽입 이미지




즐거운 성탄절! , 2008년에는 모두 행복하고 부자되세요!


'Log > PhotoLog' 카테고리의 다른 글

창의적인 재개발  (2) 2008.10.26
첫번째 사진..  (0) 2007.12.01
마침내 새로운 취미가 생기다..  (0) 2007.11.25

Posted by 박재현
,