1 minute read

요약

소프트웨어의 결함은 그 심각성에 비해 큰 주목을 받지 못한다. 눈에 보이지 않고, 손으로 만질 수 없는 그 특성 때문이다. 하지만 이제 소프트웨어는 우리 삶 안으로 너무 깊숙히 들어왔다. 그렇기 때문에 우리는 소프트웨어 결함의 심각성을 인식하고 안전한 소프트웨어를 만들어야 한다.

본문

소프트웨어는 다른 공학 분야에서 다루는 대상들과 달리 물리적인 실체가 존재하지 않는다. 이러한 특성으로 인해 소프트웨어는 결함을 찾기도 힘들 뿐 아니라 그 심각성과 위험성을 쉽게 체감하기 어렵다. 보이지 않는다는 점은 소프트웨어의 결함이 제대로 다루어지지 못하는 결과로 이어진다. 우선 사회적인 측면에서는 중요성을 체감하기 어려운 소프트웨어 품질과 안전에 너무 적은 예산이 할당될 수 있다. 또한 개인적인 차원에서는 개발자 본인이 느끼는 소프트웨어 안전에 대한 심각성과 도덕적 책임감이 충분하기 않다면 그만큼 안전에 덜 신경쓰게 될 것이다.

물리적 실체가 없는 것 말고도 소프트웨어 결함의 위험성을 체감하기 어려운 이유가 또 있다. 오픈소스로 관리되는 프로젝트가 많아지면서 누구나 소프트웨어에 기여할수 있게 되었고 그 소프트웨어는 어디에나 쓰일 수 있게 되었기 때문이다. 따라서 누군지도 모를 사람이 작성한 코드가 어디에서 쓰일지도 모르기 때문에 어떤 문제가 발생할지 예상하는 것이 더 어려워지는 것이다.

최근에 심각하게 다뤄지는 Log4J 라이브러리의 보안 취약점 문제는 좋은 예시가 된다. 어느 한 오픈소스 개발자가 8년 전에 날린 커밋이 불씨가 되어 전 세계가 불타고 있는 중이다. 해당 라이브러리는 프로그램의 로그를 기록하는 일반적인 목적으로 사용되는데, 그렇기 때문에 개발자들도 이 패치가 얼마나 큰 영향을 끼치게 될지 감히 상상하지 못했을 것이다. 하지만 자신의 코드가 어디서, 얼마나 많이 사용될 지 알았다면 더 꼼꼼하고 철저하게 보안의 위험요소를 검토하지 않았을까 하는 아쉬움이 생긴다.

메타버스의 시대가 왔다고 한다. 우리에게 주어지는 새로운 자연환경이 바로 소프트웨어인 셈이다. 앞으로는 마치 환경운동을 하듯이 소프트웨어 안전을 지키려는 관심과 노력이 필요하다. 오염된 현실에서 벗어나려 만든 메타버스에는 더욱 무시무시한 버그들이 숨어있을 수 있기 때문이다.