본문 바로가기

암묵지/추억의 책장 · 메모

[팟캐스트 나는 프로그래머다] 뉴욕, 서울, 도쿄 개발자의 촌철살인 IT 이야기

반응형



■ 본문 중에서


# 보안전문가의 보안범죄 - 031-033p.

객체지향, 리팩토링, NoSQL 등의 분야에서 잘 알려진 마틴 파울러(Martin Fowler)는 프로그래머의 윤리와 관련된 강연을 여러 차례 수행했다. 2010년 QCon 런던에서는 '소프트웨어 개발의 윤리 the ethics of software development'라는 제목으로, GOTO 2014 행사에서는 '그저 코드 몽키인 것은 아니야 Not Just Code Monkeys'라는 제목으로 강연을 했다. 이러한 강연을 통해서 그가 전한 질문은 이런 것이었다.

"고객이 도덕적으로, 혹은 심지어 법적으로 하자가 있는 요청을 해올 때 프로그래머는 그것을 구현해야 하는가?"


법적으로는 문제가 없어도 윤리적인 문제를 가지고 있는 경우를 묶어서 파울러는 '다크 패턴(dark patterns)'이라고 불렀다. 겉에 보이는 링크와 실제로 도달하는 URL을 다르게 만든다든지, 사용자가 모르는 사이에 광고를 누르도록 만든다든지, 스파이웨어를 몰래 설치하는 것 등이 모두 다크 패턴의 사례다. 예컨대 악성 코드를 설치하기 위해서 중동호흡기증후군(메르스) 안내문자를 무작위로 뿌리는 것은 악질적인 다크 패턴이다. 파울러는 진정한 프로그래머라면 그런 요청을 단호하게 뿌리쳐야 한다고 말한다. 당연하다.

(중략)

내가 하는 일이 윤리적으로 혹은 법적으로 정당한가라는 질문은 간단하지 않다. 쉽게 답을 찾을 수 없는 경우가 많고, 심지어 질문 자체를 의식하지 못하는 경우가 흔하다. 그래서 프로그래머는 세상 공부를 열심히 해야 한다. 무엇이 옳고 무엇이 그른지 판단하는 윤리적 힘은 저절로 갖춰지는 것이 아니기 때문이다. 그런 노력을 게을리 하는 사람은 누구든지 샤오헤이의 유혹에 흔들릴 수 있다. 10억 원의 유혹 앞에서 흔들리지 않을 수 있는 사람이, 불행하게도 그렇게 많지 않은 세상이다. 맨홀 뚜껑이 땅으로 꺼져서 속수무책으로 사고를 당한 사람들처럼, 다크 패턴의 유혹에 바지는 것도 한 순간이다. 나만큼은 윤리적이라고 자신하지 말자.




# 전자정부 프레임워크의 족쇄 - 39-40p.

회사에서 일을 하다 보면 반드시 해야 하는 일보다 '프레임워크'에 집중하는 타입의 개발자가 있다. 초보자보다는 중급 개발자 중에 이런 사람이 많은데, 스스로 고급 개발자라고 주장하는 사람 중에서도 그런 사람이 적지 않다. 코드의 확장성이나 재사용성에 대한 어설픈 이해 때문에 아무도 사용하지 않을 프레임워크를 개발하면서 소중한 시간을 허비하는 사람들이다. 그렇게 시간을 보내느라 정작 구현해야 하는 비즈니스 요구사항은 뒷전으로 밀려난다.

모든 프레임워크는 시간이 지나면 족쇄로 변한다. 그렇기 때문에 '좋은 프레임워크'보다 아예 존재하지 않는 프레임워크가 더 좋다. 내가 최근에 번역한 『브루스 테이트의 세븐 랭귀지』 (한빛미디어, 2015)의 저자인 브루스 테이트는 2004년에 이미 프레임워크의 족쇄에 갇힌 자바 언어를 신랄하게 비판했다. 그가 2004년에 출간한 『더 낫고, 빠르고, 가벼운 자바 Better, Faster, Lighter Java』라는 책은 프레임워크에 갇힌 자바를 이렇게 소개했다. 2004년의 이야기라는 점을 기억하기 바란다.

"때로는 가장 단순한 해법이 최선이다. 악순환의 늪에 빠진 자바의 복잡성에 길들여진 엔터프라이즈 자바 개발자들은 간단한 방법이 있을 때조차 지나치게 복잡한 해결책을 선택하는 습관을 갖게 되었다. 웹로직, 제이보스, 웹스피어와 같은 '헤비급' 자바 기반 아키텍처를 이용해서 서버를 구축하는 것은 많은 비용을 발생시키고 번거롭다. 실제 문제를 해결하는 것보다 선택된 프레임워크를 지원하기 위해서 더 많은 시간을 보내는 지점에 도달하게 되었다면, 무언가 단순한 방법에 대해서 고민을 해보아야 하는 시점이 된 것이다."

내가 보기에 전자정부프레임워크는 브루스 테이트가 비판하는 2004년의 기업용 프레임워크보다 더 나쁘다. 헤비급 아키텍처는 비록 비싸고 번거로운 단점이 있더라도 시장에서 타제품과 경쟁을 하며 기능을 향상시킬 수 밖에 없었다. 개발자들이 여러 제품 사이에서 최선을 찾기 위해서 노력할 공간이 존재했던 것이다. 그에 비해서 전자정부프레임워크는 삼성, LG, SK 등 지정 과정에 참여한 소수 SI 업체의 이익을 반영할 뿐, 그 안에서 개발자들이 숨 쉴 공간이 없다.




# 새로운 언어를 공부한다는 것 - 108p.

거듭 이야기하지만 새로운 언어를 공부한다는 것은 그 언어의 '문법'을 익히는 것이 아니다. 당연히 문법도 포함되어야 하겠지만, 언어를 배우는 것은 그 언어를 둘러싼 철학과 패러다임, 생태계, 도구, 그리고 라이브러리를 두루두루 익히는 것을 의미한다. 그렇기 때문에 새로 배울 언어를 선택할 때는 새 연인을 만나는 것처럼 신중해야 한다. 한 번 선택했으면 한눈을 팔거나 다른 사람의 눈치를 보지 말아야 한다. 사랑은 아무 망설임 없이 온몸을 던져서 할 때 결실을 맺는 법이다.



# '빌드'로 보여준 존재감 - 210p.

MS는 그 동안 적으로 삼았던 리눅스와 리눅스 가상화 컨테이너 기술인 도커를 자사 클라우드인 애저에서 지원했으며, 안드로이드에 오피스와 안드로이드를 위한 개발 환경까지 제공함으로써 소비자의 가치를 우선으로 하겠다는 변화된 모습과 개방성을 만천하에 과시했다.

개발자들의 마음은 어찌 보면 단순하다. 원하는 것은 유저, 소비자를 만족시키는 솔루션을 제공하는 회사에게 있다. 요 몇 년 전까지 구글이 개발자들을 열광시켰고, 이 바통을 이어받아 페이스북이 힙스터의 면모를 보여줬다.

최초로 소프트웨어 라이선스를 만든 장수 기업인 MS는 천천히 준비했고 모바일과 클라우드를 아우르는 개발자를 위한 모든 것을 선사했다. 변화하고자 하는 의지로 화석이라 조롱받았던 MS는 깨어나 이렇게 멋지게 시장을 주도하게 되었다.



# 데이터센터 vs 클라우드 - 226-227p.

DevOps는 개발(Development)과 운영(Operations)을 합성해서 만들어낸 신조어로 개발, 빌드, 배포, 테스트를 하나의 사이클로 만들어 끊임없이 반복하는 개발 프로세스와 이를 실천하기 위해 필요한 기술, 툴링을 총칭하는 하나의 개발 패러다임이다. 클라우드 컴퓨팅과 DevOps는 두 가지 접점을 가진다. 한 가지는 클라우드 컴퓨팅에서는 스케일 아웃이나 스케일 업에 대응하기 위해 인프라 구성 작업이 매우 빈번하게 이루어지게 된다는 점이고 또 한 가지는 이러한 구성 작업이 단순한 설정 작업에 그치는 것이 아니라 서버 애플리케이션의 릴리스에 따른 애플리케이션 버전 관리, 데이터 마이그레이션, 그리고 이를 테스트하기 위한 버전별 자동화 테스트에 이르기까지 복잡한 일련의 작업들이 자동화되어 빠르고 정확하게 이루어져야 한다는 점이다.

다시말해 클라우드 컴퓨팅에서의 DevOps는 서비스의 생명이라 할 수 있는 생산성과 유연성 그리고 안정성을 확보하기 위해 가장 적합한 플랫폼이라고 할 수 있다.



# 핀테크, 메가 트렌드인가 버즈워드인가? 

- 242p.

"그들이 우리 점심을 빼앗아 먹으려 하고 있다. They all want to eat our lunch"

여기에서 '그들'은 실리콘밸리고 '우리'는 월스트리트다. 그(제이미 다이먼)의 말은 실리콘밸리를 거점으로 하는 핀테크 스타트업 회사들에 대한 기존 금융기관의 공포와 우려를 대변하는 말로 유명해졌다. 하지만 월스트리트의 회사들이 핀테크의 흐름을 지켜보면서 두려움만 느끼고 있는 것은 아니다.

핀테크가 몰고 오고 있는 변화가 일시적인 유행이 아님을 깨달은 미국의 기존 금융기관들은 오히려 실리콘밸리의 스타트업과 제휴하거나 자본을 대는 방식으로 공생을 꾀하고 있다. 비트코인 지갑 서비스를 제공하는 회사인 코인베이스(Coinbase)를 적극적으로 지원하는 뉴욕증권거래소가 대표적이다.


- 249p.

의구심, 상상력, 소프트웨어 기술은 핀테크라는 나무를 떠받치는 세 개의 줄기다. 의문이 떠올랐을 때 각종 규제와 현실의 벽을 생각하고 움츠러들면 씨앗이 싹을 틔우지 못한다. 머릿속에서 맴도는 의문으로 끝나기 때문에 육화되어 세상에 모습을 드러내지 못한다. 일단 의심해서 싹을 틔웠으면 온 힘을 다해 상상해야 한다. 이때도 현실의 벽 따위는 생각하지 않는 게 좋다. 상상을 하는 동안 생각의 속도로 소프트웨어를 작성하는 것도 중요하다. 그렇게 하기 위해서는 빠르고 정확하게 소프트웨어를 구현할 수 있는 끼와 재능이 있어야 한다.

우리나라에서 핀테크와 관련된 이야기는 언제나 현실적 규제, 법적 장치, 대형 은행의 이익, 이런 부분을 중심으로 진행된다. 답답하고 지루하다. 핀테크를 생각하는 사람은 상상의 범위를 우리나라로 국한시키지 말아야 한다. 핀테크의 '비즈니스'적인 요소는 특정 나라의 법적 규제를 받을지 몰라도 '기술적'인 요소는 그런 구속이 필요 없기 때문이다. 핵심은 기술을 상상하는 것이다. 그런 상상에는 국경이 없다.



# 국세청 홈택스, 국가 프로젝트의 단면 268-270p.

임작가: 홈택스? 그게 뭐에요

데니스: 세무 관련 사이트를 통합한 겁니다. 문제는 액티브X 8개를 사이트에 모아놨는데요. 8개를 하나의 심플한 액티브X를 만든 게 아니라 여러 프로그램이 덕지덕지 붙은 괴물이 나왔죠.

임작가: 홈택스라는 게 일반 시민들이 세금 정산할 때 사용하는 사이트라는 거죠?

데니스: 네, 그 때문에 세금을 못 낸 사람도 있고, 에러가 나서 해외에서 접속을 못한 사람도 있구요, 맥에서 버추얼박스나 패러럴즈에서 사용하는 유저들도 사용에 불편을 겪었죠. 이번에 워낙 에러가 많으니 홈페이지 메인에 전화문의 말고 메일로만 접수해달라는 공지가 있었죠.

임작가: 그럼 안 보겠단 얘기잖아 ㅋㅋㅋ

데니스: 네 그래서 지금 정부의 세금, 세무 관련 분들이 분노 폭발 직전이죠.

임작가: 누가 만든 거에요 그 사이트는?

데니스: 그 유명한 임작가 님 출신의 그 회사 모 회사.

임작가: 진짜요? 그?

데니스: 다음 이슈는 뭐냐면요 분기마감 등 이럴 때 딱 나올 거예요. 세금대란. 홈택스 문제 있다. 안정화 아직도 못하고 있어요 제대로... 어떤 경우가 있냐면요, 세금계산서를 발행했는데 상대가 받지 못하는 거예요.

임작가: 야... 이거는 창피하다.

데니스: 그렇죠... 창피한 이슈죠. 발코딩이 이슈가 아니예요 이건...

임작가: 아니... 대한민국 최고기업이, 대한민국에서 최고로 중요한 웹 사이트를 만들었는데 이런 일이 발생하다니요.

데니스: 우간다에서도 이런 일이 없는데, 우리나라에서 발생했습니다.

(중략)

국세청에서 개발한 국세 관련 프로그램은 2015년 2분기부터 대혼란을 일으켰다. 기존 프로그램을 단순하게 하나로 모은 것이기 때문에 다양한 액티브X를 설치하고 웹 브라우저의 보안 레벨도 극도로 낮춰야 동작하는 등, 보안적인 면에서 좋지 않은 시스템을 만들었다. 

심지어 홈택스는 SSL에 대해서 웹 브라우저에서 안전하지 못하다는 보안경고가 2015년 9월 말 현재까지 발생하고 있다. 보안 취약점 문제로 이미 MS가 사용을 금지한 액티브X 기반의 보안 프로그램을 덕지덕지 올려 국민 PC의 안정성을 해치는 국세청 프로그램의 문제를 용납하기 힘들다.

http://www.etnews.com/20150224000210



# 여자 개발자라는 블루오션 

- 340-342p.

전수현 개발자의 이야기를 듣다가 내가 개인적으로 가장 놀란 부분이 여기다. 6개월 동안 혼자 마음을 앓다가 퇴사라는 극단적인 선택을 할 수밖에 없었는데 그걸 배려로 알고 있더란다. 여성의 입장에서는 심각한 차별이었던 것을 남성들은 자기 입장에서 배려로 생각한 것이다. 엄청난 착각이다. 생각하는 바가 화성과 금성의 거리만큼 떨어져 있다. 이런 인식의 거리가 한 사회가 열려있는 정도를 나타내는 척도에 해당한다. 나도 한국에서 생활했으면 이런 착각으로부터 자유롭지 못했을 것이다.

(중략)

성차별에는 '임신'에 대한 차별이 포함되어 있다. 나이에 따른 차별을 이야기할 때 차별받는 입장에 속하는 나이는 대략 40세를 전후로 한다. 회사에 다니고 있는 직원은 말할 것도 없고, 새로운 사람을 채용하기 위한 면접을 진행할 때 위에서 언급한 종류의 내용, 즉 인종, 신념, 피부색, 나이, 성별, 종교, 출신 나라와 관련된 이야기는 아예 언급 자체가 금지되어 있다. 만약 그런 내용이 농담으로라도 발설되고, 피면접인이 그러한 발언 때문에 불쾌하거나 불편한 기분을 느꼈다면, 그것은 즉각적인 소송감이며 회사는 불리한 입장에 처하게 된다. 그래서 미국 회사들은 손해를 보지 않기 위해서라도 직원들 교육에 정성을 들인다. 하지만 이런 차별에 대한 정확한 인식과 행동은 교육 이전에 시민의식과 상식의 문제다.

차별을 금지하는 법과 정책이 존재하는 이유는 사실 차별이 있기 때문이다. 알려진 바와 같이 미국은 조금만 껍질을 벗기면 흑백갈등이 적나라하게 드러나는 나라다. 이슬람 종교와 테러리스트를 연결 짓거나 대통령 후보에게 성경을 글자 하나 빼놓지 않고 모두 믿느냐고 질문하는 식의 종교적 차별도 존재하고, 나이에 대한 차별도 실제로는 얼마든지 있다. 하지만 일반적인 직장에서 이와 같은 차별에 대한 속마음을 여과 없이 드러냈다가는 감당할 수 없는 결과를 초래하게 된다.


- 349p.

여자들이 남자들의 영역, 즉 야근이나 맹목적인 충성 같은 부분에서 남자들에게 뒤처질 거라고 생각해서 채용을 꺼리는 것은 편협하다. 여자들도 그런 일을 남자만큼 잘 할 수 있다고 말하려는 게 아니다. 남자들의 영역이라고 생각되는 것, 그런 관념의 틀 자체를 깨야 한다는 말이다. 여자가 왜 남자의 영역으로 들어가야 하는가. 여자는 여자의 영역이 있고, 기업의 생산성이라는 측면에서 생각하면 여자의 영역과 남자의 영역이 조화롭게 공존할 때 최고의 성과를 거둘 수 있음이 분명하다. 그건 심지어 자연의 법칙이기도 하다.

우리나라의 여성 인구가 100명이고 남성 인구도 100이라고 가정하자. 여자 100명 중에서 10명이 개발자로서 재능을 가지고 있고, 남자 중에서도 10이 개발자로서 재능을 가지고 있다고 하자. 이 경우 전 사회적으로 프로그래밍에 재능이 있는 사람의 수는 20명이다. 이제 우리나라에서 필요한 컴푸터 프로그래머의 수가 20명이라고 하자. 남녀 구별 없이 실력과 재능에 따라서 채용을 하면 20명의 자리를 모두 재능 있는 사람으로 채울 수 있다. 하지만 단지 여자라는 이유로 면접결과를 취소한다면 적어도 10명의 자리는 재능이 없는 남자로 채워질 수밖에 없다. 최선이 아니다.



# 개발자와 영어, 뜨거운 애증관계에 대하여 - 373-375p.

듣기는 외국 생활 '짬밥'에 정비례한다. 외국에서 살면 들리는 것이 영어이기 때문에 늘지 않을 수가 없다. 그리고 영어듣기는 생각보다 어렵지 않다. 아직 영어가 들리지 않는 사람도 내 말을 믿기 바란다. 미국으로 오기 전에 나도 회사에서 보라는 토익시험을 보면 점수가 바닥을 기었지만 막상 미국에 건너가 수업을 따라가는 데 아무 지장이 없었다. 사람을 직접 보고 이야기를 들으니 듣기 훈련이 되어 있지 않은 상태에서도 의미를 이해하는 것이 어렵지 않았다(물론 "휘리리톡" 같은 것은 예외다).

그렇기 때문에 한국에서도 영어로 된 뉴스나 방송, 혹은 프로그래밍 관련 팟캐스트 같은 것을 열심히 들으면 영어듣기 능력을 필요한 수준 이상으로 향상시키는 것이 얼마든지 가능하다. 듣기는 그야말로 듣는 양에 정비례 한다. 장소는 큰 의미가 없다.

하지만 말하기는 조금 다르다. 듣기가 짬밥이라면 말하기는 상황이다. 무슨 말인가 하면 말을 해야 하는 상황에 자신을 밀어넣어야만 말하기 능력이 늘 수 있다는 뜻이다. 공부라는 차원이 아니다. 말하기는 생활의 일부가 되지 않으면 늘기 어렵다. 미국에서 나보다 오래 생활한 한국인을 만났을 때 영어말하기 능력이 내가 처음 미국에 왔을 때랑 다르지 않아서 놀라는 경우가 있다. 한인들을 상대로 비즈니스를 하거나 연구소에서 하루 종일 아무 말도 하지 않고 지내는 사람이 대개 그렇다. 말을 할 일이 없으니 말하기 능력이 달라지지 않는다. 10년이 지나도 마찬가지다.

(중략)

영어 때문에 스트레스받지 않기 바란다. 내가 이렇게 할 수 있었음을 생각해보면 한국에서 평균적인 수준으로 영어를 공부한 사람은 누구나 이미 해외에 나가서 살아가는 데 아무런 지장이 없다. 문제는 영어가 아니라 영어라는 그릇에 담는 내용물이다. 개발자 영어라 했을 때 방점을 찍어야 하는 부분은 영어가 아니라 개발이라는 뜻이다. 내용에 집중하다 보면 형식은 저절로 따라온다. 그래야 진짜다.



# SI 이노베이션은 개발자 처우 개선부터 - 403p.

속담에도 절이 싫으면 중이 떠나라는 말이 있습니다. 개인이 조직을 바꾼다는 것은 상당히 어렵습니다. 그런 의미에서 (라쿠텐) 홍보를 좀 하자면 좋은 곳을 찾아 떠나는 것도 한 가지 방법이 될 수 있습니다. 결과적으로 좋은 회사로 인력이 이동하다 보면 좋은 업체들만이 살아남을 수 있겠죠. 그리고 해외 이직도 한 가지 방법이 될 수 있습니다. 너무 국내에서만 찾으려 하지 마시고 해외로 조금만 눈을 돌려보시면 얼마든지 좋은 조건에 일하실 수 있는 기업들이 있으니 꼭 한 번 알아보시기 바랍니다.





<팟캐스트 나는 프로그래머다>

임백준, 정도현, 김호광 지음

한빛미디어, 2015


팟캐스트 나는 프로그래머다
국내도서
저자 : 임백준,정도현,김호광
출판 : 한빛미디어 2015.11.01
상세보기


반응형