개발자

21세기 개발자들을 괴롭히는 12가지 윤리적 딜레마

Peter Wayner | InfoWorld 2014.04.29


윤리적 딜레마 10: 모니터링은 어디까지 정당화되는가
사장은 고객이 회사의 수익을 갉아먹지 않기를 원한다. 개발자는 그저 하는 일에 대해 대가를 받기를 원한다. 정부 관리가 말하길 악당을 잡으려면 백도어를 설치해야 한다고 한다. 어떤 경우든 백도어가 마치 슈퍼맨의 힘처럼 진실과 정의를 위해서만 사용될 것이라는 보장이 넘쳐난다. 정치적 적을 향해, 또는 약자를 향해 사용되지 않을 것이라고 한다. 독재적인 정권에 팔리지 않을 것이라고 한다.

그러나 만일 악당이 숨겨진 문을 발견하고 직접 그 문을 사용하는 방법을 알아낸다면? 백도어가 거짓과 부당을 위해 사용된다면? 코드는 스스로 윤리적 결정을 내릴 수 없다. 그건 개발자들이 해야 할 일이다.

윤리적 딜레마 11: 코드의 방어 능력은 어느 정도여야 하는가
물론 최소한의 계산, 단순한 데이터 구조, 무식하게 밀어붙이는 접근 방법은 문제의 규모가 작은 데모에서는 잘 통한다. 사용자들은 코드를 실험해보고 "아주 빠른데!"라고 말한다. 몇 달 후, 시스템에 충분한 데이터가 로드되자 싸구려 알고리즘의 약점이 드러나고 코드의 속도는 한없이 느려진다.

개발자는 최종 제품을 위해 얼만큼 노력을 기울일지 결정해야 하는 경우가 많다. 빠르고 저렴한 솔루션을 막 쏟아내는가, 아니면 극한의 경우에도 대처하는 튼튼한 코드를 추가하기 위해 몇 주를 소비하는가? 물론 클라이언트와 사용자도 요구 사항 전달 시점에 일부분 책임이 있겠지만 실행 코드의 잠재적인 문제점을 예측하는 데 있어 아무래도 개발자가 더 유리한 위치에 있는 경우가 많다.

윤리적 딜레마 12: 미래에 나타날 결과가 현재의 의사 결정에 얼만큼 영향을 미쳐야 하는가
대부분의 프로젝트에서 정보는 한 번 들어가면 밖으로 새나오지 않는다. 그러나 일부 정보는 스스로 생명력을 갖고 밖으로 뛰쳐나와 막대한 해를 입힌다. 보안, 침투 테스트, 간첩 활동 –코드의 부수적인 피해를 고려하기 위한 확실한 후보들이다.

이란의 우라늄 정화에 사용되는 원심분리기를 공격하기 위한 도구라고 간주되는 바이러스인 스턱스넷을 보자. 그 목적은 달성했을지도 모른다. 그러나 그 이후 지금도 살아남아서 전세계 윈도우 시스템 사이를 떠다니고 있다.

대부분의 개발자에게 부수적인 피해는 명확하게 다가오지 않는다. 우리는 지금을 위해 코딩하지만(그것만으로 충분히 힘들다) 미래도 고려해야만 한다.

예를 들어 일부 프로그래머는 운영체제와 통합되어 새롭거나 더 복잡한 드라이버를 설치하는 복잡한 코드를 즐겨 작성한다. 그 코드가 미래에도 작동할까? 다른 새로운 드라이버들과 잘 연동될까? 차세대 OS에서 작동할까? 아니면 수시로 장애를 일으키는 느려터진 컴퓨터를 사람들에게 남겨주게 될까?

보기에는 단순하지만 API를 고수할지 또는 표준에 따를지 여부의 선택은 윤리적인 의사 결정이다. 물론 기술은 빠르게 발전하고 과거에 노예처럼 헌신하는 것은 발전을 저해할 수 있다. 그러나 긴 수명을 가진 코드를 만들 때 개발자가 할 일에 대해 생각해야 하며, 정도를 벗어나는 의사 결정을 결코 가볍게 여겨서는 안 된다. 개발자는 필요하면 언제든 표준 또는 API에 변경을 요청할 수 있다.  editor@itworld.co.kr

Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.