들어보셨나요? 한글 프로그래밍 언어 3종

가 +
가 -

프로그래머라면 한글보다 영어를 더 많이 보고 있을 때가 더 많다. 외국인이 주변에 있거나 영어를 배우기 위해서가 아니다. 현재 전세계에서 많이 쓰이는 프로그래밍 언어 대부분이 영어이기 때문이다. 사실 영어로 쓰여지지 않은 프로그래밍 언어도 꽤 존재한다. 위키백과에 따르면 영어 기반이 아닌 프로그래밍 언어는 60개가 넘는다. 독일어, 일본어, 아랍어, 터키어, 중국어, 러시아어, 프랑스어 등 다양하다. 개발자들이 재미삼아 만든 오랑우탄을 위한 프로그래밍 언어도 존재한다. 이러한 언어들은 기존 프로그래밍 언어를 대체하기 위해서 나온 것은 아니다. 대부분 교육용 언어로 활용되며 특정한 목적을 수행하기 위해 만들어진다. 대신 범용 언어가 아니니 사용자가 적고, 결국엔 유지보수가 끊겨 사라지기도 한다. 그렇다면 한글 프로그래밍 언어도 존재할까? 당연히 있다. 특히 1990년대에 ‘씨앗’이란 한글 언어는 프로그래머 사이에서 꽤 회자됐다. 씨앗은 다음과 같이 쓰여진다.

정수 가, 나, 다.

위 코드는 C언어로 치면 ‘int a, b, c;’와 같은 뜻이다. 이 외에도 ‘한글베이직’, ‘한프로’, ‘창조’, ‘한글 파이썬’ 등 한글 프로그래밍 언어가 등장했다. 지금은 대부분 사라졌지만, 여전히 프로그래머들은 한글 프로그래밍 언어 개발에 도전하고 있다. 현재 개발되고 있는 한글 프로그래밍 언어는 무엇이 있고, 어떻게 생겼을까? 최근 회자 되고 있는 한글 프로그래밍 언어 3종을 살펴보자.

1. 약속

약속‘은 하재승 넥슨 개발자와 퍼즐릿 정이라는 닉네임을 가진 개발자가 만든 언어다. 약속은 오픈소스 언어로 공개된 이후 창시자 외 여러 개발자들의 도움을 받아 발전되고 있다. 하재승 개발자는 “2015년 만우절에 첫 버전으로 공개했다”라며 “한 달 정도 시간을 투자해 약속을 만들었으며, 현재는 알파버전 상태”라고 설명했다.

Korean_programming_Lang_01-re

▲약속 언어 예(사진 : 하재승 개발자 발표 자료)

약속 개발팀은 일반 프로그래밍 언어에서 ‘함수’에 해당하는 기능을 ‘약속’이라는 명칭으로 대체하고 한글 언어를 개발했다고 한다. 하재승 개발자는 “다른 언어와 겹치는 것도 적고, 단어의 뜻이나 발음 등이 이쁘며 프로그래밍을 처음 접하는 사람에게 친근감을 줄 수 있을 것 같아 이름을 약속으로 정했다”라고 설명했다. 그럼 실제 약속 언어는 어떻게 생겼을까. 먼저 일반 C언어에서 다음과 같은 코드가 있다고 치자.

Korean_programming_Lang_02

위 코드를 실행하면 화면에 ‘3’이 나온다. 만약 프로그래밍을 처음 접하는 사람이라면 화면에 3을 출력하기 위해 ‘include’, ‘int’, 세미콜론, 대괄호 등을 입력하는 것에 대해 의문을 가지고 막연히 어렵게 느낄 수 있다. 약속으로 ‘3’을 출력하려면 아래와 같이 입력하면 된다.

삼:3
삼 보여주기

여기서 ‘보여주기’는 ‘printf()’ 같은 출력함수라고 보면 된다. 한글로 표현해놨기 때문에 기존 C언어보다 직관적이다. 약속에서 반복문을 표현하려면 다음과 같이 작성하면 된다.

Korean_programming_Lang_03

▲약속 실행 예(사진 : 약속 홈페이지)

위 코드는 ‘출력한 함수’라는 변수를 지정하고 초기값은 ‘0’을 할당했다는 의미를 담고 있다. ‘반복’은 ‘if’문을 뜻하고 ‘반복 그만’은 ‘else’와 동일한 기능을 한다. 위 코드의 실행문은 다음과 같다.

Korean_programming_Lang_04

▲약속 실행 예(사진 : 약속 홈페이지)

하재승 개발자는 “처음 프로그래밍이 접하는 사람들이 두려워하지 않을 수 있는 언어를 만드는 데 집중했다”라며 “개인적으로 동호회나 여러 조직에서 프로그래밍을 가르치면서 얻었던 경험을 토대로 사람들이 많이 하는 실수를 최소화하고 어려워하는 개념을 줄일 수 있는 언어를 만들려고 했다”라고 설명했다.

“약속은 어린이, 청소년, 성인 등 모두가 사용할 수 있는 언어입니다. 앞으로 사물인터넷같은 기술 발전으로 점차 우리 주위에 원하는대로 코드를 수정할 수 있는 장치들이 늘어나게 될 것입니다. 그런 상황에서 진지하게 프로그래밍 공부를 하지 않은 사람이라도 자신의 뜻을 충분히 펼칠 수 있게 돕고 싶습니다. 약속으로 프로그래밍에 대한 재미를 느낀다면 향후 목적에 맞는 다른 언어로 넘어가는 게 더 쉬워질 것이라고 봅니다.”

프로그래밍을 하려면 프로그래밍 도구가 필요하다. 글을 쓸 때 노트와 펜 혹은 문서 프로그램이 필요한 것과 비슷하다. 기존 언어들이야 ‘비주얼스튜디오’나 ‘이클립스’같은 도구를 이용하면 되지만, 약속은 전통적인 코딩 작성 도구에서 이용할 수 없다. 대신 약속 깃허브 페이지에 있는 소스코드를 실행해서 이용할 수 있다. 하지만 이런 방식은 초급 개발자에게 어려울 수 있다. 이런 상황을 대비해 약속 개발팀은 약속을 쉽게 실행하고 체험할 수 있는 ‘약속 언어 놀이터’라는 페이지를 만들었다.

Korean_programming_Lang_05

▲약속을 좀 더 쉽게 이해할 수 있는 ‘약속 언어 놀이터'(사진 : 약속 홈페이지)

최근 비전공자나 어린이를 위한 ‘소프트웨어 교육’이 인기를 얻고 있다. ‘스크래치‘나 ‘엔트리‘같은 어린이 교육용 언어도 많이 사용되고 있다. 약속은 기존 교육 언어보다는 더 다양한 프로그램을 만들 수 있다. 특히 단순히 화면에 글자를 찍어내는 것 이상으로 일상생활에서 볼 수 있는 프로그램을 만들 수 있다. 학습자들은 약속으로 웹 애플리케이션, 게임, 스마트폰 앱 등 눈에 보이는 결과물을 만들면서 더 성취감을 느낄 수 있다. 약속 개발팀은 직접 약속을 이용해 만든 안드로이드 앱을 홈페이지에 공개하기도 했다. 약속은 앞으로 람다와 객체지향 관련 기능을 보강하고 사람들이 흥미를 느낄만한 라이브러리도 만들어 약속을 개선해 나갈 계획이다.

“아직 약속은 ‘신기하다’는 반응 정도이고 실제로 사용하려는 분은 드뭅니다. 더 많은 개발자분이 관심을 약속에 관심을 가져주시고 함께 개발했으면 좋겠습니다. 약속과 관련된 강의 자료를 따로 만들어 공개할 생각도 하고 있습니다.”

2. 와글

와글‘은 느림과누림이라는 스타트업에서 만든 한글 프로그래밍 언어이다. 느림과누림은 2014년 설립된 1인 출판기업이다. 최근에 소프트웨어 개발에도 투자하고 있다. 와글은 느림과누림이 만든 첫 번째 제품이다. 와글 프로젝트에는 1년 정도 시간이 투자됐으며, 2015년 9월 첫 버전이 공개됐다. 김양미 느림과누림 대표는 “어린이부터 성인까지 초보자가 선택할 수 있는 프로그래밍 언어를 만들고 싶었다”라며 “서로 모여 떠드는 ‘와글와글’의 느낌이 좋아서 와글이란 이름을 선택했다”라고 설명했다.

더 읽어보세요!

느림과누림은 외부 개발자와 협력해 와글을 완성했다. 개발 과정에서 오픈소스 소프트웨어를 일부 활용했다고 한다. 와글은 현재 0.92버전이고, 무료로 이용할 수 있다. 김양미 대표는 “당분간 와글을 무료로 배포하고 수익은 하드웨어를 결합하거나 관련 교재를 만들어 창출할 생각”이라고 말했다.

와글은 한글 언어지만 우리말 어순이나 문법을 지나치게 고집하진 않았다. 그렇다고 영어를 그대로 번역하는 식으로 언어를 설계하지도 않았다. 예를 들어 전통적인 프로그래밍 언어 반복문은 ‘repeat’, ‘for’, ‘while’ 등 여러 개가 있다. 와글에서는 우리말의 특징을 살려 모든 반복문을 ‘반복’이라는 하나의 단어로 시작하되, 짝을 이루는 조사를 바꿔 반복문 기능을 다르게 만들었다. ‘반복 ~ 번’, ‘반복 ~ 까지’, ‘반복 ~ 동안’ 같은 식이다. 김양미 대표는 “우리말 어순을 고집했다면 ‘반복’이 다 뒤에 와야겠지만, 코드를 이해하는 데 더 어려워지는 것 같아 위와 같이 구성했다”라고 설명했다.

“또 다른 예로 ‘return’에 대응하는 단어를 정할 때도요. ‘되돌려’, ‘되돌림’, ‘반환’ 등 여러 단어를 검토하다가 ‘되돌’로 정했습니다. ‘되돌’은 우리말 사전에는 없는 단어이지만, 뜻이 충분히 통하고 더 간결했기 때문입니다.”

Korean_programming_Lang_09

▲와글 예(사진:와글 홈페이지)

현재 와글을 이용하기 위해서는 자체 프로그램을 내려받아야 한다. 와글을 실행하면 ‘터보’라는 이름을 가진 거북이가 그림을 그리는 것을 볼 수 있다. 이는 터틀 그래픽을 활용한 기능이다. 터틀 그래픽은 직진과 회전, 두 가지 동작으로 거북이를 움직여 그림을 완성하는 그래픽 기법이다. 와글은 터보를 활용해 코딩 결과가 바로 화면에 나타나게 만들었다. 학습자가 결과물을 쉽게 이해할 수 있게 돕기 위해서다. 김양미 대표는 “자동완성 기능을 지원하고 싶은데 아직 영문 위주로, 부족한 편”이라며 “디자인에 대한 고민도 하고 있고, 기술 전문가의 검증도 추가로 필요한 상태여서 계속 개선시킬 것”이라고 설명했다.

Korean_programming_Lang_06

▲와글 활용 예. 빨간 색 창에 코드를 입력한다. (사진 : 와글 홈페이지)

Korean_programming_Lang_07

▲와글 활용 예. 오른쪽 창 거북이 캐릭터가 그림을 그리면서 명령어를 실행한다. (사진 : 와글 홈페이지)

Korean_programming_Lang_09

▲와글 활용 예. 자동완성 기능을 추가됐다. (사진 : 와글 홈페이지)

“와글은 나이에 상관없이 프로그래밍에 관심이 있고 타자 입력에 어려움이 없는 모두 사람을 위한 도구입니다. 코딩에 관심있는 분이라면 부담없이 시도할 수 있는 ‘쉬운’ 언어로 자리잡았으면 좋겠습니다. 와글이 출시된 지 얼마 안 됐기 때문에 일단은 소프트웨어 교육을 진행될 때 주로 활용됐으면 좋겠습니다. 특히 와글이 선생님들의 부담을 덜어주고 학생들에게는 흥미를 주는 도구로 성장했으면 좋겠습니다. 더 많은 분이 이용하셔서 피드백을 많이 주셨으면 좋겠습니다.”

3. 아희

이번에는 초급 프로그래머가 다가서기엔 조금 힘든 프로그래밍 언어를 소개하고자 한다. ‘아희‘라는 언어다. 아희는 ‘난해한’ 프로그래밍 언어이다. 만들다보니 어려워진 게 아니라, 애초부터 사람들이 읽기 어렵게 만든 언어다. 아마 일반인들은 고개를 갸우뚱할 수 있다. ‘읽지도 못하는 언어라면 뭐하러 만들었지?’ 이러한 시도는 프로그래머들만의 지적유희이자 재밌는 장난이라고 보면된다. 난해한 프로그래밍 언어라고 해도 분명 규칙이 있다. 그냥 한글을 파괴하듯이 언어를 만드는 것이 아니라, 프로그래밍 언어 원리에 대한 명확한 이해가 있어야 난해한 언어를 만들거나 해석할 수 있다. 역발상을 통해 프로그래밍 언어를 새롭게 바라보는 효과도 있다. 위에 언급된 오랑우탄을 위한 프로그래밍 언어도 난해한 프로그래밍 언어의 일종이다. 난해한 프로그래밍 언어에 대한 개념은 1970년대부터 등장했으며, 전세계에 퍼져 있다. ‘국제 난독화 코드 대회’도 존재한다.

Korean_programming_Lang_11

아희는 공식 홈페이지를 통해 “한글 낱자의 디자인을 살릴 수 있는 프로그래밍 언어를 만들려고 아희를 만들었다”라고 설명했다. 예를 들어 ‘ㅏ’, ‘ㅓ’, ‘ㅗ’, ‘ㅜ’는 실행기가 움직이는 방향을 지정하고, ‘ㄷ’이 덧셈을, ‘ㄷ’이 중복된 ‘ㄸ’은 곱셈을 나타낸다. ‘아희’라는 용어는 조선 시대에 쓰이던 용어에서 따왔으며 ‘아이’라는 의미를 담고 있다. 아희는 실용적인 언어가 아니기에 사용자가 많진 않지만, 일부 마니아들 사이에서 꾸준히 회자되고 있다. 2015년 10월8일에는 아희 10주년 기념 소규모 컨퍼런스가 열리기도 했다.

난해한 프로그래밍 언어로 쓰여진 프로그램의 실행 결과는 굉장히 단순하거나 무의미할 수 있다. 주로 어떻게 읽는지에 대해 더 관심을 받는다. 아희도 마찬가지다. 아희 코드를 해석해주는’아희 인터프리터’들도 개발되고 있다. 아래는 “hello world”라는 문자열을 찍어내는 아희 코드다.

Korean_programming_Lang_12

▲’hello wolrd’라는 단어를 출력하는 아희 코드(사진 : 정윤원 개발자 발표 자료)

아희는 ‘약속’이나 ‘와글’처럼 활발하게 개선되고 있는 언어는 아니다. 이미 출시된 지 꽤 오랜 시간이 지났다. 대신 아희에 관심이 있는 프로그래머라면 아희 깃허브 계정으로 정보를 얻거나 커뮤니티 관계자를 만날 수 있다. 아희를 만든 창시자는 약속 언어를 공동 개발한 퍼즐릿 정이다.

네티즌의견(총 17개)