프로그래밍 윤리학
Programming ethics이 글은 검증을 위해 인용구가 추가로 필요하다.– · · 책· · (2021년 6월)(이 템플릿 |
이 글은 컴퓨터 프로그래밍과 소프트웨어 개발에 적용되는 직업 윤리의 개요, 특히 프로그래밍 코드(소스 코드라고도 함)를 작성할 때 개발자가 따르고 적용할 것으로 기대되는 윤리적 가이드라인, 프로그래머-고객 또는 직원-고용주 관계의 일부인 경우에 대한 개요를 제공한다. 이러한 규칙은 소프트웨어를 만들거나 프로그래밍 프로젝트에 관한 중요하거나 미묘한 문제에 대한 결정을 내릴 때 좋은 관행과 태도를 잘못된 관행과 구별한다. 그것들은 또한 전문적 업무 수행에 있어서 윤리적 의사결정 능력의 기초가 된다.
역사
1940년대 중반 미국 매사추세츠공대 수학공학과 교수인 노버트 비너(Norbert Wiener)는 새로운 유형의 윤리의 기초를 닦은 최초의 인물이었다. 그는 급성장하는 컴퓨터 산업과 함께 과학기술의 혁신과 발전이 그가 (그리스어로 배의 조종사를 지칭하는 말에서) '사이버네틱스'라고 이름 붙인 이런 유형의 윤리의 출현으로 이어지고 있음을 알아차렸다. 컴퓨터와 다른 기술의 새로운 사용은 새로운 윤리적 지침을 사용하여 신중하게 분석되어야 할 새로운 윤리적 문제를 제기하고 있었다.
비너 교수는 제2차 세계대전이 끝난 후 새로운 윤리 분단의 기초를 닦은 3권의 책을 썼다. 그 책들은 사이버네틱스 (1948년), 인간의 사용 (1950년), 그리고 신과 골렘 주식회사 (1963년)이다. 자신이 새로운 윤리의 영역을 창조하는 것을 본 적은 없지만, 위너는 컴퓨터를 사용함으로써 발생한 윤리적, 사회적 문제와 시사점을 파악할 수 있는 상세한 예를 들었다. 그러나 그의 사상은 그를 윤리(바이넘)에 환상을 품는 괴팍한 과학자로 여겼기 때문에 다른 학자들에게 심각하게 받아들여지지 않았다.[1]
1976년, "컴퓨터 윤리학"이라는 이름의 윤리학과 관련된 새로운 용어가 노버트 비너(Norbert Wiener)의 사상과 원리에 기초하여 월터 매너(Walter Maner)에 의해 제안되었다. 마너는 그 순간 의료산업과 기업산업이 그랬던 것처럼 컴퓨터 산업을 위한 윤리 분야가 필요하다고 느꼈다. 마너는 또 이 분야를 '컴퓨터 기술에 의해 윤리적 문제가 악화되거나 변형되거나 만들어진다'(바이넘)고 규정하고 대학생들에게 전달할 수 있는 컴퓨터 윤리 강좌까지 설계했다.[1]
1990년대 초, 도널드 고터번은 컴퓨터 윤리를 컴퓨터 전문가(Bynum)의 모범 사례와 행동 강령의 표준 개발 및 진보로 이끌 수 있는 힘을 가질 수 있는 직업 윤리로 간주해야 한다고 주장했다.[1] 그는 윤리 강령을 만들기 위한 윤리 지침을 작성하기 위해 몇몇 전문 윤리 옹호자들과 함께 일했다. 1992년 전산기계협회(ACM)가 채택한 윤리 및 전문행동강령과 전기전자공학연구소(IEEE)와 ACM이 채택한 소프트웨어공학윤리 및 전문실천강령 창조의 일부를 구성했다. 이 코드에는 프로그래밍 윤리 원칙도 포함되어 있다.
윤리적 가이드라인
ACM(Association for Computing Machine)은 세계에서 가장 큰 교육 및 과학 컴퓨팅 사회다. 그것은 소프트웨어 엔지니어링을 가르치고 실행하기 위한 표준으로 IEEE가 승인한 윤리 강령과 또 다른 윤리 원칙 세트를 가지고 있다. 이러한 코드는 각각 윤리강령과 전문행동강령, 소프트웨어공학윤리강령 및 전문실천강령이며, 그 가이드라인의 일부는 아래에 제시되어 있다.
윤리 및 전문 행동 강령(ACM):[2]
- 사회와 인간의 복지에 기여한다. 프로그래머들은 안전과 건강에 대한 위협과 같이 사회에 미치는 부정적인 결과를 줄일 수 있고 일상 활동과 일을 더 쉽게 할 수 있는 컴퓨터 시스템을 개발하기 위해 노력해야 한다. 「높은 표준으로 발전해야 할 의무」(절약)이다.[3]
- 남에게 해를 끼치지 않도록 하라. 컴퓨터 시스템은 제3자에게 간접적인 영향을 미친다. 그것들은 사용자, 일반 대중 또는 고용주에게 심각한 피해를 줄 수 있는 정보와 자원의 손실을 야기할 수 있다. 따라서 소프트웨어 개발자는 시스템 설계 및 시험(윤리 및 전문 행동 강령)에 대한 표준을 준수함으로써 코딩 오류, 즉 보안 문제로 인해 타인에게 피해를 주는 위험을 최소화해야 한다.[2]
- 정직하고 믿음직스럽다. 이 원칙은 프로그래머들이 컴퓨터 시스템을 쓸 때 정직하고 지식과 교육에 대한 한계를 인식하도록 장려한다. 또한 프로그래머가 컴퓨터 시스템에 이상이 있는 것을 알고 있다면 즉시 보고하여 바람직하지 않은 결과를 피해야 한다.
- 지적 재산에 대해 적절한 공로를 인정하라. 모든 소프트웨어 개발자는 저작권법, 특허 등에 의해 보호받지 못한 경우에도 다른 사람의 저작물에 대해 절대로 사용하고 신용을 받지 않는 것이 의무적이다. 타인의 작품을 인정하고 충분히 신용해야 하며, 자신의 아이디어를 활용해 소프트웨어를 개발해야 한다.
- 타인의 사생활을 존중하라. 컴퓨터 시스템은 일부 사람들에 의해 다른 사람들의 사생활을 침해하기 위해 잘못 사용된다. 소프트웨어 개발자는 사용자의 개인 정보를 보호할 수 있고 원하지 않는 다른 사람이 이에 무단으로 접근하는 것을 피할 수 있는 프로그램(윤리 및 직업 행동 강령)을 작성해야 한다.
- 기밀을 존중하다. 프로그래머는 법률이나 다른 윤리적 지침이 요구되지 않는 한 프로젝트에서 작업하면서 발생하는 고용주와 관련된 추가 정보를 비밀에 부쳐야 한다.
소프트웨어 엔지니어링 윤리 및 전문 관행 법규(IEEE[4], ACM):
- 소프트웨어가 안전하며 사양에 부합한다는 확실한 근거가 있는 경우에만 소프트웨어를 승인하십시오. 프로그래머는 시스템이 필요한 작업을 수행한다고 해서만 사용할 준비가 되었다고 가정할 수 없다. 또한 이러한 시스템이 안전하고 사용자가 요구하는 모든 규격을 충족하는지 확인해야 한다. 프로그램이 안전하지 않으면 사용자는 중요한 정보나 돈을 훔칠 수 있는 해커로부터 보호받지 못한다. 따라서 승인하기 전에 시스템의 보안을 보장하기 위해 몇 가지 시험을 수행해야 한다.
- 그들 자신의 일에 대한 모든 책임을 인정하라. 프로그램이 오류를 나타낼 경우 소프트웨어 개발자는 자신의 작업에 대한 모든 책임을 지고 수정, 수정, 수정 및 테스트에 힘써야 한다.
- 불법 또는 비윤리적으로 취득하거나 보유하는 소프트웨어를 고의로 사용하지 마십시오. 만약 컴퓨터 시스템이 다른 시스템을 만드는 근거지로 사용된다면, 그렇게 할 수 있는 허가는 프로그래머에 의해 요청되어야 한다. 이 원칙은 제공된 방법이 명확하지 않거나 불법적이거나 비윤리적인 것으로 알려진 경우 어떤 목적으로도 다른 소프트웨어를 사용하는 것을 금지한다.
- 작업 프로젝트와 관련된 윤리적, 경제적, 문화적, 법적 및 환경적 문제를 식별, 정의 및 처리한다. 만약 프로그래머가 프로젝트를 하는 것이 어떤 종류의 문제를 야기할 것이라는 것을 알아차리고 알아차린다면, 프로그래머는 계속하기 전에 고용주에게 그것을 보고해야 한다.
- 작업 중인 소프트웨어 사양이 사용자의 요구 사항을 충족하고 적절한 승인을 얻는지 확인하십시오. 소프트웨어 개발자들은 다음 파트 작업을 계속하기 전에 고용주에게 와서 그들이 만들고 있는 시스템에 통신원의 승인을 요청해야 한다. 요구 사항을 충족하지 못하면 시스템의 소스 코드를 수정해야 한다.
- 소프트웨어에 대한 적절한 테스트, 디버깅 및 검토를 보장한다. 프로그래머는 자신이 사용하는 소프트웨어 조각에 대해 적절한 테스트를 수행해야 하며, 프로그램이 잘 구현되었는지 확인하기 위해 오류와 시스템 보안 구멍을 확인해야 한다.
- 뇌물, 이중 청구 또는 기타 부적절한 금융 관행과 같은 기만적인 금융 관행에 관여하지 마십시오. 프로그래머들은 돈을 벌기 위해 불법행위에 참여하는 것으로 밝혀졌다. 그들은 위협이나 경제 문제 때문에, 혹은 단순히 컴퓨터 시스템이 어떻게 작동하는지 알고 있는 지식을 이용하여 쉽게 돈을 벌고자 하기 때문에 이들에 관여하게 된다. 이 지침은 그러한 불법 행위에 프로그래머가 관여하는 것을 금지한다.
- 안전하고 신뢰할 수 있으며 유용한 품질의 소프트웨어를 만드는 능력을 향상시키십시오. 기술이 해마다 더 빠르게 발전하고, 가상 범죄도 더 빠르게 발전하기 때문에, 잘 짜여지고 설계된 프로그램의 필요성이 증가하고 있다. 컴퓨터 시스템은 낡고 새로운 시스템과 새로운 장치에 의해 제한된다. 프로그래머는 더 나은 소프트웨어를 만들기 위해 "분석, 규격, 설계, 개발, 유지보수 및 테스트 소프트웨어와 관련 문서의 개발에 대한 지식을 더 넓혀야 한다."([4]소프트웨어 엔지니어링 윤리강령 및 전문가 관행)
대학의 역할
오하이오 대학은 또한 프로그래밍 윤리 분야에서 컴퓨터 과학 전공자들을 훈련시킨다. 그들은 모든 학생들이 ACM의 원칙과 책임을 이해하고 따르기를 기대한다.[5]
법적 결과
안전하지 않은 비밀번호를 만들거나 시스템의 보안성과 신뢰성을 손상시킬 수 있는 프로그램 구현에 보안 공백을 두는 것과 같은 고의적인 실수를 저지르면 프로그래머는 재판에 회부된다.[3] 프로그램 관련 법적 분쟁에서 발생할 수 있는 구체적인 제재는 각 주마다 다를 것이다. 제재에는 시정조치, 일정한 시간의 사회활동, 또는 몇 달 또는 몇 년의 징역이 포함될 수 있다.
참고 항목
참조
- ^ a b c Bynum, Terrel (2015-10-26) [2001-08-14]. Edward N. Zalta (ed.). "Computer and Information Ethics". The Stanford Encyclopedia of Philosophy (Spring 2011 Edition). Retrieved 2021-06-21.
- ^ a b ACM Code 2018 Task Force. "ACM Code of Ethics and Professional Conduct". Association for Computing Machinery. Retrieved 2013-09-28.
- ^ a b Savage, Brandon (2009-08-12). "Ethics for Programmers?". BrandonSavage.net. Retrieved 2013-09-29.
- ^ a b Donald Gotterbarn, Keith Miller, and Simon Rogerson (2013-09-28). "Software Engineering Code of Ethics and Professional Practice". Association for Computing Machinery, IEEE. doi:10.1145/265684.265699.
{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크) - ^ "World of Programming". Ohio University. 2021-05-08.