brunch

You can make anything
by writing

C.S.Lewis

by 지노 Mar 20. 2023

완벽한 프로그램은 없다

인간은 신이 아니니까

  회사에서 소프트웨어 개발 업무를 하다 보면 완벽함이 불가능하다는 걸 뼈저리게 느낍니다. 어떤 소프트웨어를 만들어 냈을 때 문제없이 완벽하게 동작한다는 것을 어떻게 확인할 수 있을까요? 불가능합니다. 매우 간단한 프로그램이라면 가능할지도 모르겠지만, 제품으로 나올 정도의 규모가 되면 소프트웨어가 동작하는 모든 경우의 수를 절대 확인할 수 없어요. 클릭 한 번, 동작 한 번으로 무수히 많은 가능성이 생겨납니다. 실장님의 수학적인 표현을 빌리자면 소프트웨어 개발은 무한대 차원에 있는 것을 유한한 수백 수십 개의 차원으로 투영시키는 행위이기 때문입니다. 너무 당연하게도 우리는 무한대라는 수를 다 셀 수조차 없으니까요.


  물론 그럼에도 불구하고 특정 범위와 경우에서는 오류 없이 동작한다고 이야기할 수 있습니다. 모든 경우를 이야기할 수는 없어도 꼭 확인해야 하거나 추후 발견된 문제들은 전부 해결할 수 있죠. 실제로 개발을 할 때도 최대한 많은 경우를 생각하고 대비하고자 노력합니다. 완벽하지는 않더라도 최선의 소프트웨어를 만들어 내야 제품으로써 시장에서 살아남을 테니까요. 그렇기에 소프트웨어 개발에는 무엇이 최선인지를 결정하는 것도 포함됩니다. 완벽에 도달할 수 없기에 최선이라는 기준을 합의하고 그것을 향해 달려 나가는 셈이죠. 유독 소프트웨어는 다른 분야와 달리 유형의 무엇인가로 드러나지 않다 보니 더욱 그런 것 같습니다.


  개발에 대해 모르는 게 훨씬 더 많은 햇병아리이지만, 제가 파악한 소프트웨어 개발은 이 과정을 끊임없이 반복하는 게 전부인 것 같습니다. 인간이 만들어낸 소프트웨어도 이러한데 하물며 인생은 어떨까요. 삶에 있어서도 완벽은 없고 최선이라는 것도 새로운 정보가 들어올 때마다 조금씩 변할 수밖에 없습니다. 그렇기에 나름의 최선을 잘 정하는 현명함과 그것을 성취하기 위한 건강한 노력이 필요한 것 같습니다. 또한 최선이라는 건 상황에 따라 얼마든지 달라질 수 있다는 것을 받아들이고 이미 정했던 최선을 바꿀 수 있는 유연함도 갖추면 좋을 것 같아요. 완벽한 길을 알 수 있다면 이럴 필요가 없겠지만, 우리는 완벽한 신이 아니라 부족한 많은 평범한 인간이니까요.


※ 이 글은 영상으로도 만나실 수 있습니다.

매거진의 이전글 2년 차 회사원이 되었다
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari