특히, 오픈 소스 개발 커뮤니티에 참여해서 수백명의 공동 개발 프로젝트에 몸을 담고 있다보니 서당개 삼년이면 풍월을 읊는다고 S/W 개발 프로세스의 중요성을 어렴풋이 알게 된듯 하다. S/W 복잡도가 증가함에 따라 더 효율적인 개발을 할 수 있도록 만들어진 학문이 '소프트웨어 공학'이다.
컴퓨터 전공자는 학부 3학년 무렴 한과목씩 의례적으로 개설되어 있고 들어보면 산업 공학의 개발 공정과 엇비슷한 이 영역은 마치 개발자에게 큰 부담을 지우는 것처럼 보이기 일쑤다. 그도 그럴것이 회사에 들어와 보면 SW 공학은 산출물과 문서화라는 것으로 개발자를 얽매고 있기 때문일 게다. 게다가 CMMI 라고 불리는 아주 복잡한 프로세스 때문에 SI 업체나 연구 개발 프로젝트에서는 개발 보다 CMMI 준수에 더 많은 리소스가 든다는 불평을 듣는다.
개발자에게 소프트웨어 공학은 뭔가 불편한 그런 것이다.
하지만, 소프트웨어 공학은 개발자들이 삽질하지 않고 더 효율적으로 개발하도록 도와 주는 도구가 되어야 한다. 문제는 국내에 그런 도움을 줄 S/W 공학자들이 잘 없다보니 인식의 전환이 잘 이루어지지 않고 있는 것이다. 솔직히 아직도 SW 개발 시 기본적인 도구인 버그 트래커와 소스 콘트롤을 사용하지도 않으면서 CMMI 같은 걸 적용한다는 데를 본적이 있다.
실제 사용한다고 해도 기본적인 지식도 잘 모르는 경우도 많다. 예를 들면, 버그 트래커와 소스콘트롤 로그는 서로 정확히 일치 했을 때 유용하다. 문제점을 해결한 커밋용 패치를 코드 리뷰하고 이를 커밋 로그를 통해 처리할 필요가 있다. 게다가 소스 콘트롤의 Branch와 Merge 기능을 멋지게 사용하는 방법도 아직 모르는 사용이 많다.
당시 XP와 애자일이 국내 인기를 끌고 있었던 때인데다 조엘 스폴스키와 맥코넬이나 켄트백의 책이 인기를 끌고 있었기 때문에 한국에서도 앞으로 S/W 공학에 대한 관심이 늘것이라고 판단했다. 문제는 기업의 요구가 있어야 한다는 점이었다. 물론 경영자의 요구가 아닌 개발자의 요구 말이다.
김성훈 교수는 기업에서도 근무한 경험이 있어서 소프트웨어 개발에서 개발자들의 요구를 연구에 접목하는 데 탁월한 능력을 발휘한다. 현재, 구글과 야후 같은 글로벌 기업과 일하고 있기도 하지만 그와 토론을 하다 보면 즉각 연구 주제를 끌어내기도 한다. 연구와 실용이 만나는 순간이다.
그는 자동 버그 검출 및 해결에 관심을 갖고 주로 오픈 소스 프로젝트를 대상으로 연구를 진행해 왔다. 그의 연구 결과에 따르면, 오픈 소스 프로젝트의 버그 검출율을 매우 낮아 높은 코드 품질을 유지한다고 한다. 따라서 관심사는 기업 내 소스 코드와 버그의 경우 어떤지에 대한 것인데, 실제 기업에서 가장 기본 데이터에 속하는 버그트래커와 소스콘트롤을 적절히 사용하는 예가 드물어 애로를 겪고 있기도 한다. 이런 부분에 도움을 줄 사람이라면 그의 학생이 되어도 좋겠다.
물론 애자일 전도사이신 김창준님의 블로그인 애자일 이야기에서는 좀 더 혁신적이고 실험적인 협업 방법 및 커뮤니케이션이 실험되고 있기도 하다.
이런 분들의 노력으로 인해 앞으로 소프트웨어 공학이 개발자에게 더욱 편한 것으로 다가왔으면 좋겠다. 제가 잘 모르는 좋은 블로그가 있으면 추천해 주시면 좋겠다.
이 저작물은
크리에이티브 커먼즈 저작자표시-비영리-변경금지 라이센스에 따라 이용하실 수 있습니다.여러분의 생각
Trackback URL: http://blog.creation.net/trackback/306
여러분의 의견
-
활의노래님의 생각
2008/12/04 15:43 e/d re:
오... 흥미있는 분야네요. -
daybreaker님의 생각
2008/12/04 20:15 e/d re:
저번에 만났을 때도 말씀드렸었지만 다짜고짜(?) UML 문서 300장씩 써내야 하는 상황이 오면 누구라도 소프트웨어공학을 저주할 것 같습니다. 좀더 즐겁고 좀더 생산성 있게 할 수 있는 방법들이 분명히 있을 텐데 말이죠. ㅠㅠ; -
제주소년님의 생각
2008/12/04 21:02 e/d re:
저번에 강의하셨던 분이시군요 자동 버그 검출은 흥미 있었습니다. 아직 잘은 모르지만 소프트웨어 공학을 공부하다보면 괜시리 작업량만 2배로 만들어주는 학문 같더군요 -_-;;; -
HannaKim님의 생각
2008/12/04 23:04 e/d re:
맞습니다. 그동안의 소프트웨어 공학(SE)이 오히려 개발자들에게 불필요한 작업만 증가 시킨 부분도 있습니다. (실패한 경우지요)
그러나 성공한 것들도 많습니다. 개발하시는 분들이 대부분 사용하시는 CVS/SVN등도 SE의 한 연구에서 나온 것이고 Unit test등도 비교적 많이 사용되는 것 같아요. 저도 역시 실 개발자들에게 도움이 되는 SE 개념이나 알고리즘, 도구등을 만들고 싶습니다.
많이 조언 주시고 도와 주세요. -
후미후님의 생각
2008/12/06 00:15 e/d re:
흥미있게 잘 읽었습니다.^^ 매주 rss로 잘보고 있습니다. -
StudioEgo님의 생각
2008/12/08 05:04 e/d re:
소프트웨어공학(S.E.)을 학교서 배울때 왜 배워야 하는지에 대해서 이해를 못하였습니다.
그러나 오픈소스 프로젝트에 대해 연구를 하고 나서는 정말 필요하구나를 졸업하는 마당에 느끼게 되었답니다.
그렀다만 UML문서를 일일히 밤새면서 작성한다면 저주를 할것입니다 ㅠㅠ -
두렁청해님의 생각
2008/12/09 13:05 e/d re:
소프트웨어 공학이 불필요한 일과 부담만 증가시킨다면 공학으로서 매력이 없을꺼 같아요 -
Ray♫님의 생각
2008/12/10 13:48 e/d re:
윤석찬님 반갑습니다.
소프트웨어 공학에 관심을 가지시는 분이 점점 많아지는 것 같아서 기쁘네요. 과거에 우리의 몸집이나 실력에 맞지 않는 방법론이나 CMMI를 가지고 소프트웨어 공학에 먹칠을 해서 아직도 부정적인 인식들이 꽤 있는 것 같습니다.
많은 젊은 분들이 소프트웨어 공학을 올바르게 리드하고 있어서 차츰 바뀌어나갈 것 같네요. -
최준열님의 생각
2008/12/15 22:59 e/d re:
오픈소스 개발모델이 소프트웨어의 품질을 높여준다는 평소의 확신이 역시 맞군요.
저는 데스크탑 회사를 하고 있지만 가끔 혼자서 완성할 수 있을 정도의 간단한 프로그램을 오픈소스로 진행할 때가 있습니다.
할 때마다 느끼는 거지만 완전히 오픈해 놓고 모두의 검증을 받을 때 최상의 결과물이 나오더군요.
죄송하지만 소프트웨어 공학이 뭔지는 잘 모르겠습니다. -_- (저의 관심사는 오로지 오픈소스 개발모델) -
hera님의 생각
2008/12/27 00:17 e/d re:
티스토리타고 왔습니다 ^^저 역시 개발자 입니다. 요즘 대규모 프로젝트에 참여 하고 있는데 규모가 커질수록 역시 소프트웨어공학의 중요성을 절실히 느끼고 있습니다. 중요성은 크게 인지하고 있지만, 굳이 소프트웨어 공학쪽으로 빠지고 싶진 않네요 ㅋㅋ 자주 와서 많이 배우고 가겠습니다 ^^ -
peer님의 생각
2009/05/06 11:58 e/d re:
소프트웨어 공학이란 너무나 필요하지만, 소프트웨어의 세계가 학문적 뒷받침할 겨를이 없이 흘러가는 것이 아닌가 생각합니다.
철학없는 소프트웨어란 상상만 해도 아찔하다는 생각을 자주 합니다..
좋은 글 많이 부탁드립니다.




이 블로그의 주요 관심사는
















All of Software (http://allofsoftware.net) 2008/12/11 14:26 e
소프트웨어 공학 블로그를 운영하고 있으면서도 전면에는 소프트웨어 공학이라는 말을 사용하고 있지 않습니다. 그 이유는 소프트웨어 공학은 막연하고 왠지 모르게 문서도 만이 만들어야 할 거 같고, 절차도 엄격히 따라야 할 것 같아서 부담스러운 느낌을 줄 수 있기 때문입니다. 이것이 다 소프트웨어 공학에 대한 오해에서 비롯된 것 같습니다. 이미 유행이 한번 쓸고 지나간 CMMI나 외국의 유명한 방법론들을 도입했다가 실해한 경험과 소문들 때문일 겁니다. Na..
자못 심각한 두 번째 낙서 2008/12/12 21:02 e
종종 들르곤 하는 Channy님 블로그에서 S/W 공학 이야기를 보곤 나름 버닝하여 쓰고 해당 글에 트랙백 단 글입니다. 저도 어지간히 당했나 봅니다. 말장난일지 모르겠습니다만.... 그래도 1999년 12월 16일부터 개발자로 나름 살았으니 감히 말할 자격은 아주 쬐끔 있다고 생각하고 말씀드리자면... 아직은 S/W 개발에 공학(Engineering)이라는 표현을 함부로 붙여도 되는 것 아닌가 모르겠습니다. 공학이 되려면 무릇 측정 및 측정 방법(..