칼럼

[채성수의 소프트웨어 인사이드] 행운에 의존하는 코딩하고 기도하기

발행일시 : 2019-12-25 00:00
[채성수의 소프트웨어 인사이드] 행운에 의존하는 코딩하고 기도하기

많은 소프트웨어 개발자들이 테스트를 제대로 하지 않고 배포를 하는 경우가 있다. 이것을 코딩하고 기도하는 개발 모델(Coding & Pray Model)이라고 한다. 배포라고 하는 것은 실제로 사용할 수 있도록 다른 사람에게 소프트웨어를 공개하는 것이다. 종종 대규모 소프트웨어 시스템의 경우에 오픈이라는 말을 쓰기도 한다. 아파트를 다 지으면 입주자에게 오픈 하는 것과 마찬가지 일이다.
 
프로그램에는 문제가 없다는 확신 때문에 이런 방법이 사용된다. 많은 소프트웨어 개발자들은 자신이 개발한 프로그램에 대한 자부심이 있다. 심한 경우에는 자신이 개발한 프로그램에 대한 어떠한 수정도 용납이 안 된다. 자신 외에는 절대로 건드려서는 안되는 자신의 자식이고 창조물인 것이다. 소프트웨어 개발자가 자신이 만든 프로그램에 대한 자부심이 있다는 것은 좋은 것이다.

한편으로 이 자부심이 너무 강해지면 자부심이 아니라 자신의 소프트웨어 개발 능력과 실력에 대한 과대포장이나 자만심이 된다. 경험 많은 우수한 소프트웨어 개발 전문가는 항상 자신이 프로그램 코딩에서 실수할 수 있다는 것 즉 잠재적인 오류가 있다는 것을 알고 인정한다. 이런 전문가들은 초보 개발자에게 자신의 프로그램을 철저히 테스트하는 것을 철칙으로 삼으라고 조언한다.
 
코딩하고 기도하기 모델은 시간이 부족할 경우에도 어쩔 수 없이 사용된다. 이유는 명확하지 않으나, 소프트웨어 개발 프로젝트에서 소프트웨어 개발자는 항상 시간이 부족하다. 밤을 새고 주말에 나와서 프로그램을 개발해도 시간이 항상 모자라고 여유가 없다. 프로그램의 개발을 완료할 시간은 다가오고 테스트할 시간은 부족하다. 그래서 이제 마지막으로 남은 희망은 지금까지 만든 프로그램이 제대로 동작하기 만을 기도하는 일이다.
 
물론 이런 문제가 발생하지 않도록 하기 위해서는 충분한 개발 시간을 확보해서 개발자들이 제대로 된 소프트웨어를 만들어 낼 수 있도록 계획하는 것이 중요하다. 하지만 시간이 충분하다고 문제가 해결되는 것은 아니라는 것을 많은 현장의 경험에서 보아왔다. 때로는 요구사항이 수시로 변경되어 개발 완료 하루 전에도 변경되기도 한다. 때로는 연관된 다른 소프트웨어 시스템의 문제로 내가 만든 소프트웨어가 영향을 받기도 한다. 또 어떤 경우에는 개발된 소프트웨어가 다 날라 가는 황당한 경험을 하기도 한다. 너무 많은 예외적인 상황이 발생하기 때문에 시간이 충분히 준다는 것으로 해결되는 것은 아니다.

[채성수의 소프트웨어 인사이드] 행운에 의존하는 코딩하고 기도하기

남의 행운을 가져다 쓰는 방법도 있다. 모든 개발자들이 자유롭게 무료로 가져와 쓸 수 있도록 한 소프트웨어가 있는데 이를 공개 소프트웨어라고 한다. 공개 소프트웨어 개발은 모든 사람이 공평하게 쓸 수 있도록 하는 사회적 활동이다. 무료라는 장점도 있지만 단점도 있다. 공개 소프트웨어는 신뢰성에 대해서 살펴 봐야 한다. 상용 소프트웨어는 신뢰성을 근간으로 판매하고 그에 대한 책임을 진다. 그러므로 문제가 생기면 판매한 소프트웨어 회사가 문제를 해결한다. 하지만 공개 소프트웨어는 이런 신뢰 채널이 구축되어 있지 않아, 공개 소프트웨어를 쓰는 사람들이 스스로 책임을 져야 한다.
 
자기에게 필요한 소프트웨어가 이미 개발되어 있다면 그것을 사용하는 것이 빠른 방법이다. 기업에서는 상용 소프트웨어로 구매할 수 없는 경우나 개발하는 것이 사는 것보다 저렴한 경우 자신만의 소프트웨어로 경쟁 우위를 갖고 싶은 경우에 직접 소프트웨어를 개발한다. 새로 소프트웨어를 개발할 때는 기존에 개발되어 있는 소프트웨어를 일부 수정하여 사용할 수 있다면 완전히 새롭게 개발하는 것보다 유리하다. 시간과 비용을 줄일 수 있기 때문이다.
 
소프트웨어 자체를 전체 공개하지 않고 사용만을 허가하는 경우도 있다. 소프트웨어 자체를 공개하면 그 안에 있는 핵심 노하우인 알고리즘이 노출되기 때문이다. 개발자는 인터페이스 규격을 알면 내가 원하는 데이터를 넣어서 처리된 결과를 받을 수 있다. 남이 만든 소프트웨어를 쓴다고 겁먹을 필요는 없다. 쓰다가 크게 불편하거나 기능 개선이 더 이상 안될 때가 되면, 그 때가서 스스로 만들면 되기 때문이다.

채성수 chaesungsoo@iabacus.co.kr 소프트웨어개발 전문기업 ㈜애버커스 사업총괄부사장. 엘지전자와 엘지씨엔에스(LG CNS)에서 다년간 컴퓨터 관련 사업을 추진한 전문가이다. 국가 공인 최고 자격인 정보관리기술사로 대학에서 컴퓨터 관련 연구를 하였다. ‘속도경쟁사회’, ‘코딩을위한컴퓨팅사고력’, ‘소프트웨어 인사이더’ 등 6권의 책을 저술하였으며 넥스트데일리의 컬럼니스트로 활동하고 있다.

(*이 칼럼은 Nextdaily의 편집방향과 다를 수 있습니다.)

© 2020 nextdaily.co.kr 무단전재 및 재배포금지

(주)넥스트데일리 | 등록번호 : 서울 아 01185 | 등록일 : 2010년 03월 26일 | 제호 : 넥스트데일리 | 발행·편집인 : 구원모
서울시 금천구 가산디지털2로 123, 701호ㅣ발행일자 : 2005년 08월 17일 | 대표전화 : 02-6925-6346 | 청소년보호책임자 : 나성률

Copyright © Nextdaily. All Rights Reserved