상세 컨텐츠

본문 제목

훌륭한 프로그래머 되는 법 (Becoming a Better Programmer)

Developer

by cepiloth 2018. 9. 5. 11:08

본문

728x90
반응형




 긴 연휴이지만 다이나믹 프로그래밍 공부중이라서 서점을 향하고, 언제나 배신하지 않는 오렐리 책 중에 훌륭한 프로그래머 되는 법이라는 책이 있어서 구매 할까, 말까? 하다가 그 자리에서 다 읽고 왔다.


 전체적인 책의 내용은 객체 지향프로그래밍의 법칙, Clean Code, 테스트 주도 개발, 마틴 파울러의 리팩토링, 프로그래머로 사는법에 나오는 내용이랑 유사한 내용이 많았다. 하지만 이책에서 가장 기억 남는 내용은 히포크라테스 선서 이다. 


히포크라테스(Hippocrates, BC 460 - 377)는 보통 "의학의 아버지" 혹은 의성(醫聖)이라고 불리는 그리스의 의사이다.
히포크라테스 선서는 히포크라테스가 말한 의료의 윤리적 지침으로 의사가 될 때 선서를 한다. 


아래는 히포크라테스 선서의 내용이다.


1. 이제 의업에 종사할 허락을 받으매 나의 생애를 인류봉사에 바칠 것을 엄숙히 서약하노라. 


2. 나의 은사에 대하여 존경과 감사를 드리겠노라. 


3. 나의 양심과 위엄으로서 의술을 베풀겠노라.


4. 나의 환자의 건강과 생명을 첫째로 생각하겠노라.


5. 나는 환자가 알려준 모든 내정의 비밀을 지키겠노라.


6. 나의 위업의 고귀한 전통과 명예를 유지하겠노라.


7. 나는 동업자를 형제처럼 생각하겠노라.


8. 나는 인종, 종교, 국적, 정당정파, 또는 사회적 지위 여하를 초월하여 오직 환자에게 대한 나의 의무를 지키겠노라.


9. 나는 인간의 생명을 수태된 때로부터 지상의 것으로 존중히 여기겠노라.


10. 비록 위협을 당할지라도 나의 지식을 인도에 어긋나게 쓰지 않겠노라.



개발자 히포크라테스 선언


 이상적인 프로그래머들의 윤리 강령은 어떤 것일까? ACM과 BSI 윤리 문서는 형식적이고 장황하며 기억하기도 어렵다. 간결하고 함축적인 무언가가 필요하다. 윤리적인 프로그래머를 위한 사명 선언문 이상이어야 한다. 필자는 다음과 같은 선언문을 정중히 제안한다.


"나는 개인적인 이득을 위해 그리고 작업상의 이득을 위해 코드나 비즈니스에 해를 끼치지 않겠다고 맹세한다. 능력껏 최선을 다해 주어진 일을 충실히 수행하며, 팀 내에서도 적적히 조화를 이루도록 하겠다. 다른 사람에게 진실 될 것이고, 프로젝트와 팀을 최대한 효율적이고 가치 있게 만드는 방향으로 일할 것이다."




스스로를 위한 질문


1. 스스로를 윤리적인 프로그래머라 생각하는가? 

 -> 윤리적인 프로그래머와 윤리적인 사람 사이에는 차이가 있는가?


2. 이번 장에서 다뤘던 내용들에 대해 동의하거나 그렇지 않은 부분이 있는가? 이유는 무엇인가?

3. 소프트웨어를 만들 줄 모르는 사람의 희생을 발판으로, 은행가가 놀랄 만큼 큰 돈을 벌게 해주는 소프트웨어를 만드는 것인가? 합법적인 거래 방법과 불벅적인 거래 방법은 어떤 차이를 만들어나는가?


4. 회사에서 상용 제품에 GPL 코드를 사용하고 있는데, (코드 공개를 보류함으로써) 저작권 조항을 지키지 않고 있다면 어떤 조치를 취해야 하는가? 회사의 코드를 공개해 저작권 조항을 만족시키도록 회사에서 요구해야 하는가? 아니면 GPL 코드를 대신할 비공개 소스를 채택하도록 요구해야 하는가? 만약 제품이 이미 출시되었다면, "내부 고발자가 되어 저작권 침해를 공개해야 하는가? 업무 보안상 입다물고 있어야 한다면 어떻게 해야 하는가?"


5. 다른 프로그래머의 비윤리적인 행동을 눈치챘을 때는 어떻게 해야 하는가? 만약 그 프로그래머가 동료, 친구, 레퍼런스를 요청한 사람 혹은 만나본 적은 있지만 함께 일해본 적은 없는 코더일 경우, 대답은 어떻게 달라질 수 있는가?


6. 소프트웨어 특허는 윤리적인 프로그래밍 세계에 어떤 식으로 적합한가?


7. 당신의 소프트웨어 개발에 대한 열정은 윤리적 이슈들을 고려하는 정도와 관련이 있는가? 열정적인 프로그래머는 직업으로서의 코더보다 더 윤리적으로 행동하는가?


* 요약 정리한 슬라이드


728x90
반응형

'Developer' 카테고리의 다른 글

녹슨 소프트웨어?  (0) 2019.01.27
중복 없애기  (0) 2018.09.09
나는 가상화폐로 3달 만에 3억 벌었다.  (0) 2018.09.05
개발자의 마음 가짐  (0) 2018.09.05
그대가 엉터리 개발자라는 신호들  (0) 2018.09.05

관련글 더보기

댓글 영역