The code I’m still ashamed of

처음엔 제목만 보고 코드의 질을 이야기하는 글타래일 거라 생각했는데.. 생각지도 못한 내용이었다.

개발자로서의 양심에 관한 글이었는데.. 정말 깊게 생각해볼만한 내용이었다.

 

원글 : https://www.vobour.com/book/view/T3gYPaPH9eFiqw7WJ

여전히 부끄러운 코드 (The code I’m still ashamed of )

당신이 직업이 코드를 작성하는 일이라면, 아마도 경력에 있어 어느 시점에 노골적으로 비윤리적이지 않다면 약간의 속임수를 쓰는 코드를 요구할지도 모릅니다.

실제로 저에게도 이런일이 2000년에 일어났습니다. 그리고 그것은 저에게 있어서 결코 잊을 수 없는 일이었습니다.

저는 6살 때 처음으로 코딩을 시작했습니다. 그렇다고 제가 신동이라는 건 아닙니다. 그 당시에 저는 아버지에게서 많은 도움을 받았으니 말이죠. 저는 정말 코딩에 푹 빠져 있었고, 그것이 너무나 좋았습니다.

15살 무렵 저는 아버지의 컨설팅 회사에서 아르바이트를 하고 있었습니다. 주말과 여름동안 웹사이트를 만드는 일과 비지니스 어플리케이션 용 작은 컴포넌트를 작성하는 일을 했습니다.

제 보수는 정말 적었습니다. 하지만 아버지께서 지금도 얘기하시듯이, 방과 보드가 무료였고, 꽤 귀중한 직장 경험을 할 수 있었던 것은 사실입니다.

나중에, 저는 몇몇의 프리랜서 코딩 일을 통해 번 돈으로 학업에 보탬이 되기도 했습니다. 지역의 중소기업을 대상으로 소수의 초기 전자 상거래 사이트를 만드는 일도 했습니다.

21살이 되었을때, 저는 캐나다 토론토에있는 마케팅 회사에서 정규직으로 코딩 작업을 했습니다.

그 회사는 의사가 설립했으며, 대부분의 고객은 대형 제약 회사들이었습니다.

캐나다에서는 제약 회사가 처방 의약품을 소비자에게 직접 광고하는 방법에 엄격한 제약이 있습니다.

그렇기 때문에, 이러한 회사들은 약이 어떤 증상을 나타내는지에 대한 일반적인 정보를 제공하는 웹 사이트를 만들었습니다. 그런 다음, 사이트를 방문한 사람이 처방전이 있다는 것을 증명 할 수 있다면, 그 약에 대한 더 구체적인 정보가 있는 포털에 접근 할 수 있도록 하였습니다.

제가 배정 된 프로젝트 중 하나는 여성을 위한 약을 포함했습니다. 웹 사이트의 디자인과 스타일은 고객이 특히 10대 소녀를 타겟팅하고 싶어 한다는 것을 분명히 했습니다.

이 웹 사이트의 특징 중 하나는 소녀에게 일련의 질문을 던지고 그 답을 바탕으로 약을 추천하는 것이었습니다.

이 웹 사이트는 분명히 어떤 특정한 약물에 대한 광고 사이트가 아닌 일반적인 정보 사이트인 것처럼 했다는 것을 기억하길 바랍니다.

요구 사항을 받았을 때, 퀴즈에 대한 질문과 각 질문에 대한 객관식 답이 포함되었습니다.

요구 사항에서 빠진 것은 퀴즈가 끝날 때 나와 있는 답을 통해 그다음에 어떻게 해야 하는지에 대한 것이었습니다. 퀴즈의 답을 통해 어떤 약을 추천 할지를 어떠한 규칙으로 결정을 해야하는지가 빠져있었죠.

저는 이것에 대해 매니저(Account Manager)와 이야기 했습니다. 그녀는 고객에게 이메일을 보냈고, 요구 사항을 알려 줬습니다. 저는 그것을 기반으로 코드를 작성 했습니다.

웹 사이트를 고객에게 보여주기 전에, 프로젝트 매니저는 테스트를 위해 퀴즈를 풀어 보더니, 저에게 왔습니다:

“퀴즈가 제대로 안되는데요?” 그녀가 말했습니다
“음. 뭐가 잘못 됐나요?” 제가 물었습니다.
“음, 제가 퀴즈에 어떤 답을 하든, 가장 좋은 치료약으로 클라이언트의 약을 추천하는 것 같은데요. 제가 알레르기가 있다고 대답했을 때 또는 이미 약을 먹고 있다고 대답 했을 때 빼고는 말이죠.”
“네. 요구 사항에는 무조건 고객의 약을 추천하도록 되어 있는데요.”
“아, 그럼 알겠어요.”

그리고 그녀가 나갔다.

처음 그 요구 사항을 받았을 때 저는 망설였습니다. 어린 소녀들을 속이기 위해 디자인된 것을 코딩하는 것이 잘못되었다고 말했어야 했는데 말이죠. 하지만 사실, 저는 그 당시에 많은 걸 생각 할 수 있는 상황이 아니었습니다. 해야 할 일이 있었고, 그저 그 일을 했을 뿐입니다.

그때 우리가 한 일은 모두 불법이었습니다. 저는 우리 팀에서 가장 어린 개발자로서, 제 나이에 비해 많은 돈을 벌고 있었습니다. 결국 저는 이 사이트의 목적이 특정 약을 보여주기 위한 것이라는 것을 알았습니다. 그래서, 저는 이 전략을 “마케팅”이라고 생각했습니다.

클라이언트는 이 사이트에 매우 만족했습니다. 그래서인지, 대표는 저와 전체 팀을 멋진 스테이크 저녁 식사에 초대했습니다.

저녁을 먹은 날, 사무실을 떠나기 직전 동료가 제게 온라인 뉴스 보도에 대한 링크를 이메일로 보냈습니다. 그것은 제가 웹 사이트를 만들었던 약을 복용 한 어린 소녀에 관한 이야기였습니다.

그녀가 자살했다는 내용이었습니다.

그 약의 주요 부작용 중 심각한 우울증과 자살 충동이 있음이 밝혀진 것 입니다.

제게 이메일을 보낸 동료는 저녁 식사에 오지 않았습니다.

저 역시 무엇인가 어렵고 어색했지만 어쩔 수 없이 그곳에 갔습니다. 저는 뉴스 보도를 한 번도 언급하지 않았습니다. 스테이크를 조용히 먹고, 억지로 미소를 지을 뿐이었죠.

다음날, 저는 여동생에게 전화했습니다. 여동생은 당시 19 살이었습니다. 제가 그 프로젝트를 진행하는 동안 실제로 여동생이 그 약을 처방 받았음을 알게됐습니다.

우리는 처음에 모든 것이 우연의 일치 일 뿐이라고 생각했습니다. 어딘지 모를 불안감이 찾아 왔습니다. 저는 동생에게 즉시 그 약을 끊으라고 얘기했고, 고맙게도 동생은 제 얘기를 들었습니다.

제가 자살과 심각한 우울증에 대한 저의 입장을 합리화 할 수 있는 수많은 변명거리가 있습니다. 심지어 지금도, 이전의 환자들과 소송이 진행 중입니다.

제가 그일에 전혀 관여하지 않았다고 주장하는 것은 쉬운 일 일지도 모릅니다. 그래도, 저는 절대로 그러한 코드를 작성하는 것이 괜찮다고 생각 해본적이 없습니다.

그 저녁 식사가 끝나고 얼마되지 않아, 저는 그만 두었습니다.

개발자로서, 우리는 잠재적으로 위험하고 비윤리적인 관행에 맞서는 최후의 방어선 중 하나입니다.

우리는 소프트웨어가 운전을 대신하고, 당신의 가족을 축구 연습장으로 데려다 줄 미래에 점점 다가가고 있습니다. 이미 의사가 질병을 진단하는 데 도움을 주는 인공 지능 프로그램도 있습니다. 이런 것들이 곧 처방약을 추천해주는 상상은 어려운 일은 아닙니다.

소프트웨어가 계속해서 삶의 모든면을 차지하면 할수록 더욱 중요한 것은 우리가 윤리를 지켜나가는 것이고, 우리의 코드안에 항상 윤리적인 측면을 고려해야 한다는 것입니다.

그 날 이후로 저는 항상 코드를 작성하기 전에 이 코드가 미칠 영향에 대해서 몇 번 생각해 보려고 노력합니다. 당신 역시 그렇게 되기를 바랍니다.


이 글은 Bill Sourour의 The code I’m still ashamed of를 번역한 글입니다. 전문 변역가가 아니라서 오역이 있을 수 있습니다. 지적해주시면 수정하도록 하겠습니다. 원문은 아래에서 확인 하실 수 있습니다.

 

 

 

My stupid conceit

요즘 들어 나태한 나를 느낀다…

이제는 일이 손에 좀 익었다고 대충대충 하려고 하는 나를 느낄 수 있다. 건성건성 얼마든지 처리할 수 있다는 근거없는 자신감, 태만감.. 등이 오늘의 일을 만들었다.

오늘 무슨일이 있었냐면…

간단한게… 그동안 단한번도 우리 테스터한테 테스팅을 부탁하지 않았다는게 뽀록났다. -_-;;;;;

순전히 나만의 자만심으로 “이건 테스터가 테스트할 수 없는 부분이야!” 라고 생각했던 것이다. 백엔드(Server-side) 개발이기에 아무래도 테스터로서는 접근하기 힘들 것이라고 생각하고 같은 팀 동료에게만 심플 테스트를 부탁하고 바로 Deploy 시켜 버렸던 것이다.

도대체 무슨 생각이었던 것일까? 영어로 부탁하기가 어려웠던 것이었을까.. 많은 이유들이 있었겠지만.. 뭐라 변명의 여지가 없었다. 그냥 동료를 안 믿었던 것이다. 동료의 실력을 과소평가하고 평가절하했다.

오늘 커밋에 대해 크리스와 이야기를 하다가 붉어져 나온 상황이었다. 그동안 테스트하지 않은 코드들이 delploy 되었던 것이었다… 하아.. 무슨 생각이었던 것일까.

이게 큰 문제를 만들었던 것은 아니다.

다만 기본 바탕에 깔려있던 나름 동료를 무시(?)했던 나의 사고방식이 뽀록났던 것이다.

얼마나 부끄럽던지.. 처음엔 문제를 파악못하다가 나 스스로 상황을 파악하면서 내가 무슨일을 저지르고 있었는지 알게 되었다.. 맙소사..

정말 부끄러웠다.. 다시는 이런일이 없을 것이라고 다짐하고, 이야기했다..

지금와서 생각하니 또 얼굴이 화끈거리네…

Quit the translate..

남몰래 살짝 진행하던 번역 프로젝트가 있었다. IT 영문 기술 서적 번역이었고, 번역이 완료되면 역자에 당당히 내이름이 새겨질예정이었다. 책 제목은 [The Practice of Cloud System Administration] 클라우드 관련 기술 서적이었다.

영어 실력도 늘리고, 돈도 벌고 일석 이조의 일이라고 생각해서 일을 맡았고, 자신도 있었다. 한국에 계시는 다른 엔지니어 분 한분과 같이 둘이서 진행하는 공동 번역 작업이었다.

하지만… 어제부로 그만두었다.

처음에는 잘 나가는 듯 싶었으나, 점차 진행이 늦어지면서 차일 피일 날짜만 끌다가, 결국 그만두기로 이야기를 했다. 어제 선금으로 받은 계약금을 다시 돌려주고 계약을 파기하고, 종료했다.

한 3 ~ 4개월 정도 붙잡고 있다가 종료한 것으로 생각했었는데, 방금 메일을 확인해보니, 1월 20일 경 부터 시작했었다. 참 오래도 붙잡고 있었구나… 싶었다.

그동안 회사를 마치고 집에 오면 항상 이 번역 작업에 대한 숙제가 생각났었고, 실제로 번역을 하는 날보다 안하는 날이 더 많았지만 마음이 편치 않았다.

사실, 번역작업의 난이도가 올라가면서(3장 이후..) 정말로 번역 속도가 엄청나게 늦어졌다. 문장 하나하나가 이해가 안되고, 문맥에서 뜻하는 의미가 어려워지기 시작하면서였다. 비록 클라우드 관련 개발자는 아니었지만, IT 에서 개발자로서 경력과 나름 꾸준히 클라우드 쪽으로 관심으로 가지고 지속적으로 공부를 했다고 생각했었는데… 아니었다. 터무니없이 빈약한 지식이었고, 근거없는 자신감이었다.

진작에 결론은 나 있었는데, 다른 미련때문에 쉽게 그만두지 못했다. 지금 가만히 생각해보니, 그 미련이란 것이 정말로 쓸데 없는 것이었다.

다른 공동 번역자님에게 묻어가려는 욕심, 내 이름이 적힌 책 출판에 대한 욕심, 투자한 시간, 어떻게든 마무리 지을 수 있다는 자만심.

이쯤되면 미련이 아니라, 범죄 수준일 수도 있겠다. 어찌되었든, 공동 번역자님과 상의하여 같이 그만 두는 걸로 이야기를 하였고, 생각을 정리하여 편집자님께 메일을 전달드렸다. 약 반년 가량 끌었던 작업의 종료는 단 일주일 정도로 마무리지을 수 있었다.

내가 감당할 수 있는 일과 범위와 상관없이, 내가 하고 싶고, 갖고 싶은 일에 욕망이 정말 크다는 것을 느낄 수 있는 날들이었다. 포기 메일을 전송하면서 모든것을 떨쳐버리려고 했으나…. 많은 아쉬움이 남았고, 아직도 미련이 조금 남은 듯 하다.

하지만, 이번일로 다시한번 놓아주는 것에 대한 중요성을 깨달은 듯 하다. 그리고, 비록 이번엔 실패로 끝이났지만, 또 언젠가는 다시한번 비슷한 일을 하게 된다면, 이번보다는 훨씬 더 잘 할 수 있겠다는 가능성을 보기도 했다. 🙂

나의 오만함.

나는 매주 일요일 1시부터 대략 2시간 내지 3시간 정도의 강의가 있다.
자원봉사의 개념으로 하는 것으로, 강의라고 말할 것 까지는 아니고 대충 주말 수업이라고 생각하면 되겠다.

강의 내용은 컴퓨터 기초.
윈도우 익스플로러 및 오피스등과 같은 기초 프로그램을 사용하는 법, 컴퓨터 재설치, 하드웨어 구성 등에 관한 컴퓨터 전반에 관한 기초를 가르킨다.

학생들은 외국인 근로자 2 ~ 3명.
처음에는 5~6 명 정도로 많이 있었던 것으로 생각되었으나 지금은 2~3명 밖에 남지 않았다.
수업 진행은 대부분 영어와 한국어를 섞어가며 진행한다.

그들이 집에서 출발해서 수업장까지 오기까지는 평균 4시간 정도.

그동안 한번도 빠짐없이 수업을 진행했었는데, 오늘은 왜 일까. 나가기 싫었다.
아침에 일어나서 눈을 떴을때, 시계는 11시.
1시까지 수업장에 도착하기 위해서는 바로 일어나서 씻고 준비를 해야한다.

하지만 난 그러지 않았다.
결국 꾀병을 부려 오늘 수업을 취소했다.

그 덕분에 오늘 하루 나는 한명의 잉여가 될 수 있었다.
부끄럽다.

누가 시키는 것도 아니고 자발적으로 하는 일에 어느 순간인지 굉장히 귀찮게 느껴졌다.
너무도 편해진 지금의 생활에 길들여진 것일까..

미안한 마음 뿐이다.
그 먼길을 그들은 무엇인가를 배우겠다는 마음으로 왔을 것인데, 나는 내 자신의 편안함만을 위해 그들을 져버렸다.

사실, 이 활동을 하면서 가장 많은 덕을 본 것은 나였을 것이다.
알게 모르게 점점 느껴지는 무엇인가에 대한 뿌듯함과 사람들 앞에서 당당하게 이야기를 하는 자신감…
이런 것들은 결코 쉽게 얻어지는 것이 아닌데, 나는 그것들은 단지 내가 잘나서 얻게 된 것이라고 착각하고 있었던 것 같다.
그래서 이런 행동도 할 수 있었던 것 같다.

너무 오만했다.

조금있다가 그들의 연락처를 통해 하나하나 사과의 말을 남겨야겠다.
너무 미안한 마음뿐이다.