brunch

브런치북 Code Pink 18화

You can make anything
by writing

- C.S.Lewis -

by Diligitis Feb 24. 2019

언어는 신앙과도 같다

코딩을 대하는 성스러운 자세

어서 와, 도커는 처음이지?

 몇 년 전 개발자 커밍아웃하면서 흥미로운 현상을 발견했습니다. 개발자에게 자신이 사용하는 언어는 신앙과도 같습니다. JAVA, Ruby, C, C++ 등을 쓰는 옛날 분도 계시고, 최근 코딩을 배웠다면 아마도 JS, Python 등을 사용할 것입니다. 프로그래밍 언어도 불교와 힌두교, 유대교와 천주교 및 기독교처럼 비슷한 듯 디테일이 달라 1:1로 전환이 되지는 않습니다. 문득 그런 생각이 듭니다. 인류가 바벨탑을 올리기 전으로 돌아가 개발자들이 하나의 언어로 소통할 수 있다면 좋지 않을까요. 그런데 이미 나와 있었군요! 앞서간 개발자분들이 작년 10월 GraalVM [그랄 브이엠] 1.0 정식 버전을 론칭을 했습니다. 저는 JAVA 자바를 잘 알지 못합니다만 그랄 브이엠은 리눅스와 맥에서도 사용할 수 있다니 매력적입니다. 머뭇거릴 필요도 없이 성큼 앞으로 나아가 위험할지도 모르는 성배 (graal)를 들고 신앙 고백했습니다.  




Polyglot

 개발자가 여러 언어를 사용하는 일은 흔합니다. 업력이 오래되신 분들은 수십 가지 언어가 가능하기도 하지요. 우스갯소리를 하나 하자면 페이스북 프로필에 무려 17개 국어가 가능하다고 게시한 대학원생이 있어 친구 신청을 거절한 적이 있습니다. 언어학 전공이라면 가능할 수도 있었겠지만 생물학 전공자였습니다. 독대할 기회가 생겨 엄. 근. 진. 물어보니 인사말 정도이고 스피치는 영어밖에 할 수 없다고 말합니다. 얼마나 많은 언어를 하느냐가 아니라 얼마나 하느냐가 중요하겠지요. 비슷한 수준이라면 다양한 언어를 할 수 있는 폴리글랏 개발자가 경쟁력이 있습니다. 하지만 경력이 벌어지면 얼마나 수준 있게 개발을 해봤는지가 경쟁력을 대변합니다. 저는 JS로 멀티페이지 웹사이트와 웹게임은 만들 수 있고 Objective C로는 간단한 퍼즐게임, 다이어리, AR/VR 앱 정도 만들 수 있습니다. 블록체인 개발도 해보았고 Python 데이터 분석 및 시각화도 합니다. MIT, Apache, OpenJDK 등 오픈소스의 도움을 받았습니다. 요즘 핫하다는 도커, 컨테이너, 쿠버네티스도 활용합니다. 이제 개발자와 시스템 관리자의 구분이 사라지고 배의 선장 같은 데브옵스 엔지니어가 각광받고 있습니다.


  

디스크 이미지 ISO

작년 블록체인 코딩을 할 때 가상 머신을 사용하면서 크게 느낀 점이 있습니다. 사실 분산 장부, 제일, 웹하드는 오래전부터 있던 기술입니다. 하지만 하이퍼 레저, 도커, 클라우드 등 새로운 용어로 포장되면서 거듭나기 시작합니다. 뛰어난 개발자는 수학뿐 아니라 인문학적으로도 깊이가 있어야 한다는 것이 여기서 드러납니다. 역사보다는 과학에 친숙하고 코딩보다 디자인이 익숙한 제게 멘붕이 오는 사건들이 있었습니다. VM을 종료하면서 스크린샷으로 디스크 이미지를 저장하라는데, 제가 알고 있는 그 이미지 파일 (jpeg, gif, png...)이 아니더군요. 맥킨토시에서 인스톨을 할 때 쓰는 DMG 패키지 꾸러미처럼 디스크 이미지 파일을 풀면 프로그램이나 OS, 라이브러리가 실행되는 백업 파일을 칭하는 말이었습니다. 예전에 프로그램을 설치할 때 사용하던 플로피 디스크나 CD, DVD 롬을 떠올리면 비슷합니다. 이를 디지털화해서 부르는 개념입니다. 그리고 우리가 화폐단위로 알던 달러 ($) 표시는 프로그래밍에서 특정 ID로 접속해있다는 뜻이고, 약학에서 무게 단위 파운드를 나타내는 샾 (#) 표시는 루트 계정으로 로그인되었다고 나타내는 의미입니다.


GraalVM

 사람도 그렇지만 사업에서도 작명은 중요합니다. 얼마나 어마어마한 것을 담았으면 '성배 (graal)'로 이름을 지었는지, 어떤 구조인지도 궁금했습니다. 그런데 여기서 질문을 던지겠습니다. 그럼 성배가 중요할까요 아님 잔에 담는 내용물이 더 중요할까요? 물론 그릇보다는 내용물이 중합니다. 그러다 보니 시스템 프로토콜 개발자보다 앱 개발자가 수적으로도 더 많고 눈에 띕니다. 하지만 담을 잔이 없으면 아무 소용이 없습니다. 화려하거나 겉으로 드러나지는 않지만 시스템이나 플랫폼 개발자의 존재 가치는 충분합니다. 뉴스에서 이름이 오르내리는 블록체인 개발자들은 전자에 속합니다. 그런데 칩거해 코드를 써 내려가던 천재들이 목소리를 내고 세상으로 나오기 시작했습니다. 이제 코드를 보고 문제점을 찾을 책임은 누구에게 있을까요? 코딩을 읽을 수 있는 전문가들입니다. 전산이나 통계, 암호학, 컴퓨터공학 연구자나 교수일 수 있고 재야의 숨은 고수일 수 있습니다.

 

개발자와 윤리

아직은 심각하게 와 닿지 않는 이야기일 수 있습니다. 완전 자율주행차가 등장하는 날도 얼마 남지 않았습니다. 2차원에서 달리다 보니 불가피하게 사고가 발생할 수 있습니다. 가령 A라는 선택이 어린이 1명을 치이게 하고, B라는 선택은 대규모 연쇄충돌이 예상된다면 어떤 선택을 해야 할까요. 사고가 날 때 책임을 차량 제조사가 질 것인지, 차량 소유주 혹은 탑승자가 질 것인지, 아니면 자율주행 프로그램을 만든 개발자가 질 것인지는 정치적 이슈로 번질 여지가 있습니다. 돈이라면 아무거나 개발을 하는 코드 몽키 (code monkey)가 아니라 숨겨진 다크 패턴 (dark patterns)을 판단하고 거절할 수 있는 주체성을 가져야 합니다. 이는 불합리한 자본과 권력을 거부할 수 있는 양심의 자유입니다. 과학기술은 어떻게 사용될지 고려해야 하기에 결코 가치중립적일 수 없습니다. “모르고 개발했다"는 비겁한 변명은 성립하지 않습니다. 잘 알고 개발하거나 아니면 알기 때문에 개발하지 않거나 둘 중 하나가 되겠지요. 대기업이나 글로벌 기업의 일원이라서 존경받는 것이 아니라, 개발자라면 사용자 정보를 함부로 수집하는 프로그래밍은 하지 않을 용기와 윤리는 가지고 있어야 합니다. © Lisay G.



이전 17화 웹, 어디까지 가봤니
brunch book

현재 글은 이 브런치북에
소속되어 있습니다.

Code Pink

매거진 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari