반응형

문자형 변수에 대한 포스트에서 아스키 ASCII 코드에 대하여 잠깐 언급한 적이 있었다.

 

https://digiconfactory.tistory.com/24

 

자바 튜토리얼 (2-2) 자바의 변수 (문자형)

튜토리얼 (2-1)은 정수형 변수가 내용이었다. 공통적으로 변수의 작명(이름짓기)에 대한 내용을 먼저 해야 할 것 같다. 어떤 프로그래밍 언어이건 간에 보통 변수 이름은 제약이 있다. 소스코드를

digiconfactory.tistory.com

아스키 코드는 미국정보교환표준부호(American Standard Code for Information Interchange), 줄이면 ASCII(아스키)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 미국 국가표준협회가 1960년에 처음으로 아스키 코드의 표준화를 시작했으니까 벌써 오랜 시간이 흘렀다.

 

영어라는 특성에 미국에서 표준을 제정하고 미국이 가장 적극적으로 컴퓨터와 소프트웨어를 개발하다 보니까... 지금 보니 대부분의 문자 인코딩이 아스키에 기초를 두게 되었다.

 

컴퓨터가 영어에 의해 발전되었다는 것이 영어를 쓰는 국가들에게는 엄청난 가치를 준 것은 사실이다. 세계 최고의 IT기업집단인 GAFA는 전부 미국이 본사이고 비즈니스 원천이 IT 기술에 기반한다는 것을 생각하면 많은 것을 시사한다.

 

GAFA

 

미국 국가표준 협회(American National Standards Institute, ANSI)는 미국에서 제품, 서비스, 과정, 시스템, 인력관리 분야에서 표준을 개발하는 것을 감독하는 비영리 민간 기구로서, 미국을 대표하여 국제 표준화 기구(ISO)에 가입하였다. 이 협회는 미국의 제품이 전세계에서 사용될 수 있도록 미국의 표준을 국제표준에  맞추는 활동도 한다.(위키백과 - 미국 국가표준 협회)

 

쉽게말해 ASCII 코드는 미국의 비영리 민간 기구 ANSI(앤시)가 표준화 시켰으며, 1바이트 ASCII 코드에서 유니코드로 크기를 확장한 지금도 여전히 0부터 127까지 가장 노른자는 영어권 사용자를 위한 ASCII 코드가 들어있다. 아스키 코드는 (American Standard Code for Information Interchange) 정보 교환을 위한 미국의 표준 코드이다. 특정 국가에서 사용되던 것이 세월이 흐르다 보니 전 세계의 기준이 된 것이다.

 

그런 생각을 해본다. 컴퓨터의 언어가 영어가 아니라 다른 나라의 언어 예를들어 한글로는 쓰여질 수 없었던 것일까? 물리적으로 불가능한 것을 아닐텐데... 그런데 실제 그런 사람들이 있었다 -.-;; 이런 생각을 하는 사람들이 있었구나... 지금은 딱히 후속 뉴스가 알려지지 않았지만 시도 하는 것 자체에 큰 의미가 있었을거라 생각한다.

 

http://www.bloter.net/archives/240918

 

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

프로그래머라면 한글보다 영어를 더 많이 보고 있을 때가 더 많다. 외국인이 주변에 있거나 영어를 배우기 위해서가 아니다. 현재 전세계에서 많이 쓰이는 프로그래밍 언어 대부분이 영어이기 �

www.bloter.net

사실 한글 프로그래밍 언어까지는 아니라도 유니코드를 사용하는 자바에서는 이미 한글을 변수로 사용할 수 있다. 아래처럼 클래스도 만들 수 있다. 문제없이 작동한다.

class 고양이 {
	int 냥냥펀치력 = 100;
    String 기본무기 = "냥냥핵꿀밤"
    
	public void 냥냥필살기(String 기본무기, int 분노파워){
        int 데미지 = this.냥냥펀치력 + 분노파워;
		System.out.println("현재 무기: " 기본무기 + 데미지 + "만큼 대미지를 입혔다");
	}
}

물론 전문가들의 입장을 다를 것이다. 소스코드라는게 사람간에 소통이 되야 하는데 만약 외국인과 같이 일을 해야 한다면 언어를 바꾸는 것은 문제가 될 것이다.

 

그러나 취미로 배우는 사람이나, 아직 창의적으로 배워야 할 어린 학생들, 나이가 드셔서 공부를 하시는 분들에게는 프로그래밍에 흥미를 주는데는 좋은 방법이 될 것 같다. 많은 학생들이 (전공자, 비전공자 할 것 없이) 프로그래밍을 중도포기하게 만드는 원인의 하나가 영어라는 것은 부인할 수 없는 사실이다. 프로그래머인데 영어를 잘 못한다는 사실은 솔직히 자랑할 일이 아니다. 영어가 스트레스인 학생이 한글로 프로그래밍을 한다면 훨씬 빠르게 실력이 늘 수 있다고 믿는다.

 

미국에서 컴퓨터 공학 석사를 따서 오는 것이 시간과 돈이 크게 드는 일이라도 여전히 가치있는 것은 거기서 살아있는 영어를 배우기 때문일 것이다. 영어의 사고방식, 영어 문화권, 영어를 사용하는 사람들의 생각. 그것은 살아보면 어렵지 않다. 못 살아봤으니까 어려운 것이다.

 

학창시절 영어공부를 메인으로 하고 미국에 몇년간 파견을 다녀왔다. 그때 본 미국은 영어의 나라는 아니었다. 미국의 성인문맹인이 1600만명이라고 한다. 모든 사람이 그렇게 열심히 학교에 다니며 책을 읽지 않는다. 영어배우는 것 말고도 사람들이 할일이 많다. 미국에서는 영어를 잘 모르면 가끔 불이익이 있을 수는 있지만 사는데 지장이 없다.

 

한글로 프로그래밍하는게 보편적이 될 날은 올지 안올지 모르겠지만, 프로그래밍을 그렇게 심각하게 하지 않을 사람이면 이것저것 시도해 보는 것도 좋을 것 같다. 누가 알겠는가? 한글로 프로그래밍을 하다가 갑자기 번개에 맞은 듯 세상을 바꿀 프로그램을 만들 수 있을지도 ㅋㅋㅋ 우습게 들리지만 농담이 아니다. 인간은 언어의 종류에 따라 뇌의 다른 영역을 사용한다는 연구 결과도 있다. 즉 영어뇌와 한글뇌는 다를 수 있다는 말이다. 물론 두개의 언어를 다 유창하게 사용할 수 있으면 좋겠지만 보통의 사람은 그렇지 않다.

 

그래서 오늘의 코드는 0부터127까지 아스키코드를 준비했다. 자바는 유니코드를 사용하기때문에 출력은 128개가 아니라 백만개 넘는 문자가 담겨있다. 아래 소스코드에서 char[128]을 1000000 (100만으로) 바꿔서 돌려보면 오버플로우인지 헷갈릴 정도로 수십만의 유니코드 문자 값들이 저장되어 있다.

 

유니코드에는 역시 숫자로는 한자가 압도적이다. 한글은 한자 다음으로 많은 코드가 등록되어 있다. (신기하다)

public class AsciiEx {
	public static void main(String[] args) {
		
		char[] asciiCode = new char[128];
		
		for(int i = 0; i < asciiCode.length; i++) {
			asciiCode[i] = (char)i;
		}
		for(int i = 0; i < asciiCode.length; i++){
	       	System.out.printf(" | %3d : %3c  \n", i, asciiCode[i]);
	       	// if(i%5 == 0) System.out.println();
		}
		System.out.println();
		System.out.println("we reached the endline,sir!");
	}
}

아스키코드

가장 좋은 명당은 영어의 알파벳이 차지한다. 1부터 앞쪽에는 출력이 안되는 문자가 있는데 제어문자들은 문자표기가 없는 것도 있다.

 

유니코드 한국어

4만번 대를 보면 한국어 완성형이 나온다. 유니코드에서 한글의 존재감이 상당하다. 한글의 조합개수는 약 11700개에 달한다. 전세계에 있는 한국어 사용자들이 약 1억(남한 + 북한 + 해외이민 등)이라고 쳐도 77억명중의 1억명 77분의1이 사용하는 한글 유니코드의 개수는 엄청 많다. 한글 자체가 그렇게 조합하도록 만들어졌으니... 한글이 과학이라는 것을 증명하는 셈이다.

 

앞으로의 튜토리얼에는 한글 변수를 써봐야 겠다. 그런 발상을 하기 어려운 사람들도 분명 있겠지만, 한글이 유니코드의 상당수를 차지하고 있는 것은 부정하기 어렵다. 그동안 영어를 많이 써봤으니 한글로 조금씩 프로그래밍을 하는 것이 생각보다 의미가 있을수도 있다. 어린이들의 조기 코딩 교육에 도움이 될지도 모른다.

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.

비밀글모드