|
소프트웨어 엔지니어는 통상적으로 얘기하는 컴퓨터 시스템 엔지니어(시스템을 관리, 유지보수하는)와는 전혀 다른일을 하는 사람입니다. 소프트웨어 엔지니어를 타 분야와 비교해서 얘기하면 이해가 더 쉬울겁니다. 가령, 건축분야에서 "건축공학"을 전공한 사람이 주로 어떤 업무 분야에 진출하는지를 생각해보시면 소프트웨어 엔지니어의 역할이 분명해질것입니다.
소프트웨어 엔지니어는 "소프트웨어 공학"을 전공했거나 또는 그에 대한 지식을 잘 습득하고 있는 사람들이 해당 업무를 하게 될때 받게 되는 칭호입니다. 엔지니어링(engineering)은 공학이라는 뜻이고, 엔지니어(engineer)는 공학자로 번역됩니다. 때문에 소프트웨어 엔지니어는 자신의 업무분야에서 "소프트웨어 공학"을 응용하는 사람들로 생각하시면 됩니다.
그러나 위의 설명은 순진한(naive) 관점에서 얘기를 한것이고, 실제 업계에서 인정되고 있는 소프트웨어 공학자는 이렇게 생각하시면 됩니다. 코더~아키텍트 사이에 존재하는 모든 소프트웨어 개발자들이 소프트웨어 엔지니어로 인정될 수 있겠다라는것으로 말입니다. 하지만, 이렇게 개념규정을 하게 되면 거의 대부분의 프로그래머가 소프트웨어 엔지니어라는 부류에 해당될것입니다. 네 바로 이것이 문제입니다. 위의 설명에 비춰볼때 우리나라에서 진정으로 소프트웨어 개발을 공학적으로 잘 수행해서 소프트웨어 엔지니어라는 칭호를 받을만한 사람들은 별로 없다는것이죠. 게다가 아직까지는 개발자간의 역할분담이 제대로 이뤄지지 못하고 있습니다.
이것은 여러가지 한국적인 특수상황 때문이기도 하지만, 전 세계의 SW개발자들을 대상으로 놓고 보더라도 상황이 크게 다르지 않다는 면에서 일단 크게 걱정할 일은 아니라고 생각합니다. 왜냐하면 이것은 SW개발 분야가 타 분야에 비해 역사가 그렇게 오래되지 않았기 때문입니다.(전 세계적으로 봤을때도 SW개발이란것이 기껏해야 1950년대부터 시작된겁니다. 반면 건축분야는 역사가 최소한 수천년 이상은 되었습니다. 그래서 공학적 관점에서 봤을때는 소프트웨어 분야가 건축분야에서 많은 부분을 배워야 하는것이고..또 실제가 그렇기도 합니다. 예를들어 요새 소프트웨어 개발 분야에서 디자인 패턴이 유행하고 있는데 이것은 건축분야의 패턴언어를 소프트웨어 개발분야에 도입한 대표적인 사례입니다.) 역사가 짧다는것은 어떤 방식으로 조직화되기에 충분한 시간이 주어지지 않았다는 의미입니다. 때문에 우리는 소프트웨어 엔지니어라는 직함(위치, 역할)이 SW개발분야에 명확하게 들어와 있지 않다는것에 대해 최소한 SW개발분야의 짧은 역사를 그에 대한 변명으로 사용할 수는 있겠습니다.
하지만, 이 변명꺼리가 앞으로 소프트웨어 공학을 발전시키는데 방해가 되는 방향으로 자신의 마인드를 유지하라는 식의 자기 합리화에 대한 도구가 될수는 없습니다. 어쨋든 우리가 비교적 SW탄생의 초창기에 태어난 이상 우리는 그것을 제대로 발전시킬 책임이 있으며, 그에 따라 소프트웨어 공학은 학문적인면에서 또 실무적인면에서 치열하게 탄생하고, 검증되고, 사멸되기를 반복할것입니다. 그리고 그 가운데에 우리가 놓여져 있는것이죠.
소프트웨어 공학이 무엇인지는 아래 링크의 강의자료를 참고하시기 바라고, 더 쉽고 간단명료한 설명을 알고 싶으시면, 일단은 소프트웨어 엔지니어를 "소프트웨어를 설계하는 사람"정도로 생각하시면 크게 틀리지는 않는다는 말씀을 드리죠. |
첫댓글 디자인 패턴의 역사에 대한 간략한 설명은 http://www.zdnet.co.kr/news/column/hotissue/0,39024748,39131344,00.htm 참조..패턴 카탈로그에 대한 설명은 http://www.jstorm.pe.kr/v2/bbs/view.php?id=dp&no=13 참조 하시길..
하늘이님이 소개한 글(http://www.zdnet.co.kr/news/column/hotissue/0,39024748,39131344,00.htm)을 읽었습니다. 큰 도움이 됐습니다. 감사합니다. 내가 `객체'라는 말을 처음 들었던 것은 92년입니다. 이제야 그 의미가 조금 손에 잡히는 것 같습니다.
IT를 소개하는 글을 써서 먹고 살았던 내가 지금까지 `객체'가 무엇인지 몰랐다는 것은 매우 부끄러운 일이 아닐 수 없습니다. 지금 새삼스럽게 `객체'이야기를 꺼내는 것은 IT분야 전문용어를 일반인들도 알기 쉽도록 이해할 수 있는 책이 필요하다는 것을 강조하기 위해서입니다.
이를 생각하면 우리나라 대학교수들을 욕하지 않을 수 없습니다. 우리나라 공학교수들은 특급대우를 받고 있는데 이들이 너무 무식해서 자기분야 전문용어도 일반인들이 쉽게 이해할 수 있도록 가르치지 못하고 있다는 점입니다.
이들이 불량품(수준 미달의 졸업생)을 양산하기 때문에 우리나라 SW산업이 발전하지 못하고 있으며 프로그래머들이 방황하고 있는 것입니다. 공대교수들은 자기들의 실력이 뛰어난 것으로 착각하고 있습니다. 그러나 실제로는 자기분야 전문용어도 제대로 설명하지 못하는 것이 현실입니다. 이들이 공대의 몰락을
이들이 불량품(수준 미달의 졸업생)을 양산하기 때문에 우리나라 SW산업이 발전하지 못하고 있으며 프로그래머들이 방황하고 있는 것입니다. 공대교수들은 자기들의 실력이 뛰어난 것으로 착각하고 있습니다. 그러나 실제로는 자기분야 전문용어도 제대로 설명하지 못하는 것이 현실입니다. 이들이 공대의 몰락을
이야기하는 모습을 보면 한심하다는 생각이 듭니다. 조금 이야기가 빗나갔는데 이곳에서 SW에 대해 공부하는 것이 즐겁습니다.