얼마전 제게 소프트웨어 개발과 오픈소스에 대해 인터뷰를 부탁하셔서 평소 생각을 말씀 드렸는데 여러 사람들 의견을 모아 책으로 출간이 되었네요. http://jpub.tistory.com/366
인터뷰의 질문과 답 모두 의미가 있는 것 같아 블로그로 공유합니다.
Q: 중국, 인도, 영국 등에서 코딩교육을 의무화한다고 합니다. 국내에서 조심스럽게 프로그래밍을의무교육-입시화 하자는 얘기가 제기되었습니다. 비슷한 맥락에서 ‘10만 SW인력양성론’을 주장하기도 합니다. 조기에 SW를 접하는 것이 중요하다든지, 정책적 차원에서 SW인력을 길러내는 것이 필요하다는 주장에 대해 어떻게 생각하시는지요?
A: 기본적으로 어린 나이에 코딩을 접해야 한다는 것에 동의합니다. 페이스북의 마크 져커버그는 아주 어려서부터 프로그래밍을 했고, 12살 나이에 이미 아버지의 치과 사무실에서 사용하는 메신져 프로그램을 만들었습니다. 져커버그의 관심을 파악한 부모는 코딩 과외를 시켜주기도 했습니다. 트위터를 만든 잭 도시, 텀블러의 데이빗 카프등 거의 모든 소프트웨어 창업자들은 초등학교, 늦어도 중/고등학교 시절부터 프로그래밍을 했습니다.
그런데 어릴적부터 프로그래밍을 해야 하는 이유가 중요합니다. 좀 더 빠르게 접해서 단지 더 많이 배우게 하거나, 코딩을 아주 잘하는 기술자로 만드는게 목적이 아닙니다. 어린 시절에 코딩을 시작하면, 주변에서 접하는 사소한 “문제(Problem)”들을 프로그래밍으로 해결하기 시작합니다. 즉, 져커버그가 아버지 치과 사무실과 자신의 집을 연결시키는 메신저를 만든 이유는, 아버지와 가족이 일하면서도 대화를 나누는 “문제 해결”을 한 것입니다. 계속해서 주변에 존재하는 “문제”들을 인식하던 결과물이 훗날 소셜 네트웍이라는 대박 “문제”를 해결한 페이스북입니다. 어른, 특히 대학교 이후에 직업을 위해 코딩을 배운 사람들은 분명 존재하지만 쉽게 알아채기 어려운 이런 문제들을 발견 못합니다.
한국의 소프트웨어 회사들중 “문제”를 처음 발견하고 그걸 해결한 곳은 거의 없습니다. 네이버는 구글이 발견한 문제를, 삼성은 애플이 발견한 문제를, 다음은 야후가 발견한 문제를 자신들 역시 해결한 것 뿐입니다. 흔히 창의력이 없다 라고 이야기하는 것이, 바로 문제를 발견하는 눈이 없다는 뜻입니다.
프로그래밍 조기 교육 주장의 문제는, “10만 SW인력 양성론”에서 드러나듯 그 목적이 단지 많은 기술자를 양성하려 하는데 있습니다. 기술자를 만들어내는 것은 대학교 교육으로 충분합니다. 절대 프로그래밍은 어려서부터 배워야할만큼 어렵지 않습니다. 우리가 가르치는 목적은 어려서부터 주변의 문제들을 파악하는 감각을 기르기 위함이고 따라서 커리큘럼등이 이에 초점을 맞추어서 만들어져야 합니다.
Q: 오픈소스 관련 한 벤처대표는 오픈소스는 공짜라기보다는 ‘자유’다라고 강조하셨습니다. 참여와 공유를 강조하는 측면입니다. 박상민 연구원님은 블로그에서 “오픈소스가 한국 SW의 근본적 해결”라고 적으셨습니다. 국내에서는 안타깝게도 FTA 이후 오픈소스 관련 분쟁사례가 늘어나고 있는데요. 이 때문에 오픈소스 거번넌스 체계가 시급하다는 지적이 있습니다. 오픈소스의 본질(가능성)은 무엇이라고 생각하십니까? 아울러, 현실에서 오픈소스에 대한 이해 부족 혹은 오해와 곡해를 통한 저작권 침해 등을 해결하기 위한 방안은 무엇이라고 생각하십니까?
A: 그 대표분 말씀대로 오픈소스는 공짜가 아닙니다. 저희 회사 Eucalyptus systems는 모든 소스코드를 github을 통해서 공개하지만, 고객들에게 돈을 받고 소프트웨어를 배포합니다. 저희 회사 CEO는 그 전 오픈소스 회사 MySQL을 1조원 넘는 가격에 팔았습니다. 그래서 흔한 질문이 “소스 코드를 공개했는데, 왜 내가 돈을 지불해야 하는가?” 부분입니다. 답은 “소스코드는 소프트웨어의 단지 한 부분” 이라는 사실입니다. 코드이외에 실제 소프트웨어를 운영하기 위해선 다른 기술들 (패키징, QA)과 고객 서비스 (24시간 콜센터등)가 필요합니다. 그래서 오픈소스 제품을 사는 사람들은 소스를 사는 것이 아니라, 오픈소스 회사의 모든 서비스를 구입하는 것입니다. 반대로 이런 서비스를 구입하지 않고 소스코드만 가지고 스스로 패키징, QA, 서비스 조직을 만들어 운영하는 곳도 있습니다. 저희 CEO의 말을 빌리자면, “어떤 사람들은 돈이 많아서 시간을 절약하고, 어떤 사람들은 시간이 많아서 돈을 아낀다”고 합니다.
오픈소스는 두가지 측면이 있습니다. 첫째는 문화적인 측면입니다. 미국에 끊임없이 소프트웨어 회사가 생기고 회사들이 빠른 시간에 성장하는 이유는 저변에 셀수 없이 많은 오픈소스 해커들이 있기 때문입니다. 스티브 워즈니악이 PC를 취미로 만들고 공유하던 동호회에서 시작한 회사가 애플입니다. 리누스 토발즈는 주말에 시간내서 소스코드 관리툴 git 을 만들었는데, 그 툴을 좋아한 젊은이 둘이 웹 버젼으로 만든 github은 전 세계에서 가장 잘 나가는 스타트업이 되었습니다. 주말에 취미로 만들고 코드를 공개한 소프트웨어가 참여, 공유를 통해서 스타트업, 대기업이 되는 것입니다. 또한 회사가 빠른 시간에 성장하기 위해서는 능력있는 개발자가 많아야 하는데, 오픈소스 문화가 그런 고급 인력을 지속적으로 공급해 줍니다.
두번째는 기업에 도움이 된다는 측면입니다. 최근 몇년사이에 미국에서는 <스타트업은 오픈소스 해야 한다>는게 일종의 불문율입니다. 이유는 주 구매층인 중견 기업, 대기업들이 이를 원하기 때문입니다. 기업들은 몇십년간 마이크로소프트, 오라클등에 종속(lock-in)되어서 어쩔수 없이 많은 지출을 해야 했는데, 이제는 Linux, MySQL등 품질은 비슷하지만 적은 비용으로 소프트웨어를 운영하는 대안을 선택합니다. 80년대-2000년대까지는 소프트웨어의 “품질”이 최고의 요구사항 이었다면, 품질에 차이가 거의 없는 지금은 “자유”, “선택”이 소프트웨어 구매의 최고 요구사항입니다. 코드를 직접 볼 수 있고 필요하다면 구매하지 않고도 소프트웨어를 운영할 수 있는 오픈소스가 이기는게 당연합니다.
개인적으로 한국에 가장 필요한 것은, 성공적인 오픈소스 회사의 등장이라고 생각합니다. 프로그래머들에게조차 오픈소스는 괴짜들이 하는 취미 정도로만 인식되는게 현실입니다. 오픈소스는 취미일뿐 아니라 성공적인 기업 모델입니다. 오픈소스의 전도사 역할을 할만한 회사가 대기업 가운데서도 나와야 하고, 스타트업중에도 성공하는 회사가 있어야 합니다. 법, 제도적으로는 기반이 없는 지금 그런 회사들을 띄워줄 (Bootstrap)만한 지원이 있어야 한다고 생각합니다.
Q: 블로그에 보면 ‘제큐어웹(XecureWeb)’으로 인한 한국 보안 인증체계의 문제점을 언급하셨습니다. 외국에 비해 국내 보안 체계는 매우 복잡하고, 사용자에 책임을 전가한다는 지적이 있습니다.한국과 미국 보안 인증 체계의 차이점은 무엇이라고 보시는지요?
A: 질문과는 반대로 사실 가장 큰 차이는 미국은 사용자에 책임을 지우는 반면, 한국은 정부가 사용자를 보호하려는 의도가 아주 강합니다. 미국의 경우 예를들어 아마존에서 쇼핑을 하면 클릭 한번 하는 것으로 결재가 끝납니다. 구매의 전 과정에서 정부가 규제하는 것은 단 하나도 없습니다. 반대로 한국의 경우 정부가 사업체에 보안 인증을 강제하니까 제품을 한번 구매할때마다 ActiveX, 키보드 보안 프로그램등을 강제로 설치해야 하죠.
정부의 의도가 완전히 잘못 되었다고 생각치는 않습니다. 컴맹이고 나이 든 분들께는 보안을 강제 하는 것이 효과를 발휘할 수도 있습니다. 그러나 소프트웨어는 보안과 뛰어난 사용자 경험이 꼭 밸런스를 맞추어야 합니다. 한국정부는 지나치게 국민을 신뢰 못하는 나머지 보안쪽에 너무 큰 무게를 두고 사용자 경험을 무시했습니다. 웹기업 들이 창의적으로 만들 수 있는 뛰어난 사용자 경험이 정부에 의해 근본적으로 막힌 것입니다. 보안, 인증 체계는 기업들이 만들어야 하고, 자연스럽게 더 나은 보안 체계를 갖춘 회사들이 시장에서 성공해야 합니다. 그런데 정부가 모든 보안의 키를 쥐고 있으니까 오히려 기업들에서는 보안에 신경을 쓰지 않게 되고, 결과적으로는 더 위험한 웹이 되었다고 생각합니다. 지금의 정부 규제는 보안에서, 사용자 경험면에서 모두 실패입니다.
Q: 정부 주도의 진흥 혹은 규제보다는 서비스 사용자 중심의 시장에 의해 성공하는 SW가 나올 것이라는 얘기가 많습니다. 바람직한 SW정책 혹은 SW정책의 방향성은 무엇입니까? 더불어 창조적인 아이디어가 인정받고 스타트업이 시장을 이끌어나가기 위해 한국에서 가장 시급한 과제는 무엇이라고 판단하십니까?
A: 이미 크게 성공하고 있는 카카오톡, 라인등에 정부가 한 역할이 조금이라도 있었을까 궁금합니다. 스타트업이 성공하는 과정에서 대기업등에 의해 불이익을 받지 않도록 보호 해주는 역할 정도가 정부가 해야 할 것으로 생각합니다. 또한 창업자들이 빛을 지거나 신용불량이 되는 등 사업의 결과에 의해 불이익을 받는 일이 없도록 해야 합니다. 실패하면 잃을것이 너무 많은 환경에서 누가 시작을 하겠습니까?
정부 보다는 스타트업으로 이미 성공한 사람들이 투자자, 멘토 역할을 해서 다음 세대를 이끌어야 합니다. 유명한 벤처기업가 폴 그레이엄은 자신의 스타트업을 성공시킨 후 YCombinator를 만들어 매년 수십팀의 스타트업에 초기 자금을 지원하고 멘토링을 해왔습니다. 여기에서 드랍박스, AirBnB와 같은 걸출한 스타트업들이 나왔고 수십조원 가치의 회사들을 탄생시켰습니다. 아마존의 제프 베조스는 구글 창업자 둘의 가능성을 보고 맨 처음 몇억을 투자 했습니다. 우리 역시 성공한 사람들에 의해 다시 투자 되는 벤처 생태계가 필요합니다. 최근 모바일 생태계 조성을 위해 100억 투자를 약속한 카카오 김범수 의장이 좋은 예입니다.
정부가 중점적으로 해야 할 과제는 소프트웨어 문화를 진흥시키는 것이라 생각합니다. 소프트웨어 문화의 핵심은 오픈소스 입니다. 취미로 주말에 코딩을 하는 학생들, 직장인들의 수와 국가의 소프트웨어 경쟁력은 정확히 비례할 것입니다. 학교, 기업들에서 적극적으로 오픈 소스를 도입하고 개발하도록 정부가 지원을 해야 합니다. 앞에서 이야기했듯 오픈 소스는 문화이면서 또한 강력한 경쟁력입니다.
Q: 이번 책의 컨셉이 ‘SW로 성공한다는 것’입니다. 과연 SW의 성공은 어떤 의미라고 생각하시는지요? SW로 성공한다는 것(개발자들의 입장에서)과 SW가 성공한다는 것(제품 혹은 서비스의 입장에서)으로 나누어서 생각해볼 수 있을 것 같습니다. 이에 대해 마지막으로 사례를 포함해서 답변해주시면 감사하겠습니다.
A: 개발자의 입장에서 SW로 성공하는 것은 직업이 즐거움이 되는 것입니다. 한국에서 개발일을 하며 힘들어 하고 불평하는 친구들을 많이 봅니다. 이것은 이상한 현상입니다. SW를 개발하는 과정은 즐거움의 연속이어야 합니다. 오픈소스 개발자들은 직업으로 코딩하는 그 시간만큼 저녁이나 주말에 프로그래밍합니다. 이유는 단 하나 그것이 즐겁기 때문입니다. 소프트웨어를 만드는 것은 스스로 조물주가 되어 생각하고 행동하는 창조물을 만드는 것입니다. 이건 아주 중독성이 강한 즐거움이기 때문에, 경제적으로 아주 성공한 사람들 (예를들어 폴 그레이엄)이 나이 들어서도 코딩하는 것입니다. 미국의 경우 개발자들은 의사를 제외하고 가장 높은 연봉을 받는 직군입니다. 매일 놀이를 하면서 경제적으로 여유롭게 살 수 있는 것은 아마도 SW 개발자들만 누리는 성공이라고 생각합니다.
하지만 위의 설명에서 한가지 빠진 조건은 “능력있는” 개발자가 되어야 한다는 것입니다. 개발을 즐거워 하는 정도와 능력은 정확히 비례합니다. 프로그래밍을 싫어하면서 능력있는 사람은 한번도 못 보았습니다. 프로그래밍을 좋아하는데 능력이 없는 사람은 있을 수 있습니다. 그건 학생이거나 해서 아직 경험이 부족하기 때문입니다. 시간이 지날수록 코딩을 좋아하는 사람들은 능력있는 사람이 되고 경제적으로 여유로워 집니다. 이것이 개발자의 성공이라 생각합니다.
제품/서비스 입장에서 SW가 성공하는 것은 “문제를 해결”하는 것입니다. 모든 성공한 제품은 사람들이 갖고 있는 공통된 문제점 한가지를 해결한 것입니다. 구글은 “알고 싶다”, 아마존은 “사고 싶다”, 페이스북은 “친하고 싶다”, 트위터는 “말하고 싶다”는 문제를 해결한 것입니다. 해결하는 고통의 정도가 크면 클수록 서비스는 더 크게 성공합니다. 구글이 해결한 “알고 싶다”의 문제의 깊이와 현재 구글의 300조 주식 가치는 정확히 비례합니다. 아마도 트위터가 절대로 구글보다 커질 수 없는 이유는 “말하고 싶다”는 본능이 “알고 싶다”는 욕구보다 더 작기 때문일 것입니다.
앱스토어에 출시된 수십만개의 앱들 대부분이 가치가 없는 이유는, 아이디어가 기발하지만 사실 아무 문제도 해결하지 않기 때문입니다. 그중의 아주 소수 앱들만이 사람들의 문제를 해결해주고 성공합니다. 그런데 대부분의 사람들은 주변에 존재하는 문제들을 무시하고 상상속에서 문제를 만들어내 SW로 해결합니다. 제프 베조스는 인터뷰에서 “사람들은 새로운 문제를 해결하려고 하지만, 우리는 이미 다 알고 있고 고통이 큰 문제 (싼 가격에 물건사서 빠르게 받는것)를 해결합니다” 라고 이야기 했습니다.
트위터, 블로거, 미디움 세개의 서비스를 연속해 성공시킨 에반 윌리엄스는 사람들의 공통된 문제중 하나를 골라, ‘기다리기 싫어함’, ‘생각하기 싫어함’ 두가지만 SW로 해결해주면 스타트업은 반드시 성공한다고 이야기 했습니다. 그래서 SW의 성공은 고통의 정도가 큰 문제를 발견하는 것에서 시작합니다. 내가 만드는 SW가 사람들의 고통을 해결해 주는 것은 SW개발하는 과정 만큼이나 즐거운 일입니다.
매번 느끼지만 글이 정말 좋네요. 늘 많이 배우고 있습니다.
올해 목표가 한달에 두개씩은 쓰는건데 역시 1월부터 쉽지 않네요. 이번 글은 그래서 예전에 써뒀던 걸로 땜빵한 겁니다. 좋은걸 많이 쓰려면 많이 읽고 생각해야 하는데 다른것들이 바빠 더 좋은게 안나오네요. 🙂
Reblogged this on Prof. Kim's Daily Life.
좋은 글 잘 읽었습니다. 한국도 SW개발자들이 걸맞는 대접을 받는 환경이 될 수 있길 늘 기대합니다.
네 저도 하루빨리 그런 날 오길 기대합니다. 개발자들이 대접받을수록 사회 전체가 편리하고 혁신적으로 운영되리라고 믿습니다.
좋은 글 감사합니다~
정말 좋은 글 감사드립니다.
저도 지금 약간 늦은 나이에 프로그래밍을 배우기 시작했는데요.
항상 많은 생각과 깨달음을 얻어갑니다.
네 조금이나마 도움이 되고 격려가 된다면 좋겠습니다.
저도 그리 이른 나이에 시작한건 아니지만 나이는 프로그래머로서의 역량과는 별 관련 없다고 생각합니다. 주변에 50대 펄펄 나는 사람들 여럿 있습니다.
박상민 연구원님, 인터뷰에 응해주셔서 진심으로 감사드립니다. 책은 미국까지 잘 배송이 되었는지 모르겠군요. 저도 요새 정신 없이 바빠서 오늘에야 블로그에 들어왔네요!
네 잘 받았습니다. 감사합니다. 저도 요즘 정신이 없어 블로그도 없뎃 못하네요. 😦