brunch

You can make anything
by writing

- C.S.Lewis -

by Diligitis Mar 03. 2019

모순투성이 너, JS

그럼에도 불구하고

One shot, one kill

봄바람이 살랑살랑 코끝을 스치는, 코딩하기 참 좋은 계절입니다. JS로 할 수 있는 일은 많습니다. 프런트 앤드에서 웹이나 모바일 앱을 구축하거나 백앤드에서 서버 형태로 작동하기도 합니다. JS로 한 번 쓰면 OS에 상관없이 웹에 연결해 구동할 수 있습니다. 모든 객실을 여는 마스터키처럼 웹 어셈블리어로 작동합니다. 앱은 API (application programming interface)를 통해 여러 개인 정보를 동기화로 가져갑니다. 편리하지만 그 밑에서 작동하는 기술을 설명하고 사용자의 동의를 구하기에는 개발자와 비개발자의 격차가 너무나도 커졌습니다. 개발자들의 자율권이나 심기를 건드리는 날에는 핵심인력이 이탈할까 전전긍긍하기도 합니다. 반면 개발자들이 가장 두려워하는 상황이 두 가지 있는데 버그 없이 프로그램이 안 돌아가거나 버그가 있는데도 멀쩡하게 작동하는 경우입니다. 전자는 끝도 모를 원인을 찾아야 하고, 후자는 결과를 예측할 수 없기에 두렵습니다. 코딩을 배우다 보면 마주하는 다이아몬드 문제 (diamond problem)는 객체지향 프로그래밍에서 발생하는 다중 상속의 모순과 웹에서 발생하는 폭포수 오류 (cascading failure)가 대표적입니다.


너의 매력은 어디까지

JS는 브랜든 아이크 (Brendan Eich, b.1961)가 넷스케이프에 개발자로 있을 때 열흘만에 만든 프로그래밍 언어로 알려져 있습니다. 도대체 어머님이 누구신지, 그 어려운 걸 해내는군요... 그 후 파이어폭스로 유명한 모질라 파운데이션의 CTO와 CEO를 역임하기도 했죠. 그런데 급조된(?) 언어이다 보니 심심찮게 버그가 출몰합니다. 당시 JAVA의 인기가 워낙 좋았기에 마케팅 효과를 노려 이름을 비슷하게 바꿨습니다. JAVA는 스스로 함수 타입에 메모리 관리까지 하는 진화된 언어임에도 불구하고 느리다는 오명을 벗지 못하고 있으니 아이러니하지요. C언어는 적어도 프로그래밍으로 무엇을 하는지 아는 개발자가 섬세하게 다뤄줘야 최고의 성능을 발휘하는 강력한 언어입니다. 중학생도 배우는 파이썬은 귀도 반 로섬이 크리스마스 휴가 기간에 만든 언어로 JS와 더불어 매우 쉽습니다. 그러나 아직 무결점의 프로그래밍 언어는 없습니다.


노드 레드는 드래그 앤 드롭을 지원하고 IoT에 최적화된 프로그래밍 툴입니다.

중독성 있는 빨간 맛

'원숭이 엉덩이는 빨개'부터 중독성 있는 '빨간 맛'의 레드벨벳까지 수많은 이미지가 머리를 스칩니다. 스타트업의 모티브가 된 초파리 '빨간 눈'도 있고 터키의 노벨문학상 수상자 오르한 파묵 (Orhan Pamuk, b.1952)의 '내 이름은 빨강 (My name is red)'도 떠오릅니다. 물보다 진한 피를 구성하는 헤모글로빈 색소도 빨갛고, '불타는 사랑'이나 '피의 맹세'에서도 빨강을 거론하지요. 인간을 구원하신 예수님의 보혈도 빼놓을 수 없습니다. 프로그래밍계의 ‘빨간 맛’으로 부상한 노드 레드가 있습니다. 노드 레드는 node.js를 시각화하여 개발을 도와주는 오픈 플랫폼입니다. 클라우드에서도 작동하고 로컬 컴퓨터에서도 쓸 수 있고 라즈베리파이나 도커, 아두이노에서도 잘 작동합니다. JS의 스크래치 버전으로 이벤트 흐름을 직관적으로 보여주기에 일반인도 쉽게 배워서 널리 쓰는 추세입니다. 무엇보다도 JS를 활용하고 있다는 것이 강점이고, Scratch는 유치해서 못하겠다는 분들께 강력 추천해 드립니다.     


모든 길은 웹으로 통한다

 IBM 왓슨연구소에서 프로그램 테스트와 오류 분석을 하는 줄리안 돌비 (Julian Dolby)에 따르면 뉴욕의 은행 대부분이 JS를 사용하고 있기에 JS는 여전히 매력적이라고 말합니다. 수많은 결함과 버그에도 사용한다는 것은 대안이 없기도 하고, 별도의 마케팅도 필요 없습니다. 컴퓨터공학적인 측면에서 언어적 불완전성을 떠나 설문조사에서도 가장 많은 사람이 선호하는 언어입니다. 미우나 고우나 수백만 팔로어를 거느린 인플루언서처럼 말이죠. JS가 없어진다면 웹은 20년 전으로 후퇴합니다. 웹에서 html (Hypertext Markup Language)이 정보를 담는다면 CSS (Cascading Style Sheets)는 디자인을 담습니다. "Hello, World!"로 컴퓨터와 감동적인 소통을 시작하면서 절반을 왔다고 자부합니다. 앞으로 갈 길이 더 험난하다는 것은 잘 알고 있습니다. 2018년 초보 개발자로 코딩을 배우면서 성장했다면, 이제는 뛸 수도 있고 걷는 수준입니다. 눈에 보이는 세상이 신기하고 아름답습니다. © Lisay G.

 


이전 09화 AI의 지금
brunch book

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

인생은 한 편의 멋진 게임일 뿐

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari
;