검수요청.png검수요청.png

"문자 (프로그래밍)"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
77번째 줄: 77번째 줄:
  
 
==코드==
 
==코드==
문자코드는 아스키와 유니코드가 있지만여기서는 퓨니코드와 정보 교환용 ISO 표준 부호를 다루겠다.
+
문자코드는 아스키와 유니코드가 있지만여기서는 퓨니코드와 정보 교환용 ISO 표준 부호를 다룬다.
  
 
===퓨니코드===
 
===퓨니코드===
101번째 줄: 101번째 줄:
 
*int toupper(int c) : 입력된 문자를 소문자로 변경한다.
 
*int toupper(int c) : 입력된 문자를 소문자로 변경한다.
 
단. 같은 종류일 경우 0이 아닌 값을 같은 종류의 문자가 아닐 경우 0을 반환한다.<ref> 공간사랑, 〈[https://uple.net/222 문자의 종류를 알아내는 C 언어 함수들]〉, 《업넷》, 2011-03-09 </ref>
 
단. 같은 종류일 경우 0이 아닌 값을 같은 종류의 문자가 아닐 경우 0을 반환한다.<ref> 공간사랑, 〈[https://uple.net/222 문자의 종류를 알아내는 C 언어 함수들]〉, 《업넷》, 2011-03-09 </ref>
 
==활용==
 
다음은 프로그래밍 언어와 관련된 기사 내용이다. 소프트웨어 개발 분석 기관인 레드몽크(RedMonk)의 2020년 최신 순위에 따르면, 파이썬(Python)이 자바(JAVA)와 함께 가장 인기 있는 프로그래밍 언어 2위에 올랐다. 1위는 자바스크립트(Javascript)가 차지했다. 가장 인기 있는 프로그래밍 언어인 자바와 파이썬, 자바스크립트를 비교해보자.
 
 
===자바===
 
[[자바]]는 1995년에 사용되기 시작한 객체지향 프로그래밍 언어다. 객체지향이라는 말은 절차에서 상대적으로 자유롭고, 기능에 중점을 두었음을 뜻한다. 자바, 파이썬, 자바스크립트 셋 모두 객체지향 언어지만 자바는 다른 두 언어 파이썬, 자바스크립트와는 달리 자료형을 지정해줘야 한다. 자바에서 숫자 변수를 선언할 때는 정수인지 실수인지 등을 정해줘야 하고, 문자 변수를 선언할 때는 문자열로 자료형을 정해야 하는 번거로움이 있다. 다만 이렇게 배우면 컴퓨터가 사고하는 방식, '컴퓨팅적 사고'를 익히는 데 도움이 될 수 있다. 컴퓨터에 가깝다는 언어로 평가받는 C언어가 자바처럼 자료형을 지정해주는 것이다.
 
*장점 : 자바는 비교할 다른 두 언어에 비해서는 상대적으로 나온 지 오래됐다. 오래된 언어인 자바가 그래도 인기를 유지하는 이유는 수많은 사용자의 [[레퍼런스]]를 보유하고 있기 때문이다. 타 언어를 전문적으로 사용하는 개발자들도 자바는 다루는 경우가 많고, 따라서 오픈소스나 [[프레임워크]]도 많다. 프레임워크와 [[라이브러리]]는 일종의 도구 모음으로, 자주 사용하는 함수나 기능을 모아 하나의 세트로 미리 만들어둔 것을 말한다. 자바의 큰 특징은 [[이식성]]이 좋다는 것이다. 자바 언어를 사용해서 개발된 프로그램이나 애플리케이션은 자바 가상 기계(JVM) 위에서 실행된다. 기기나 운영체제에 무관하게 자바 가상 기계만 있으면 동일한 프로그램을 실행할 수 있다는 것이 장점이다. 국내의 경우 '전자정부 표준프레임워크'로 지정된 언어가 자바라서, 아직도 정부 주도의 많은 프로젝트는 자바를 이용한다. 이러한 연유로 자바 개발자들이 국비지원과정으로 많이 양성됐으며 관련 일자리가 꾸준히 공급되고 있다.
 
*사용처 : 주 사용 영역은 앱이며 그중에서도 특히 모바일 안드로이드 앱이지만, 모바일뿐 아니라 PC용 애플리케이션에도 주로 사용된다. 자바는 [[프론트엔드]] 개발과 백엔드 서버 개발 양측에 사용되고, [[임베디드 시스템]] 등에도 활용된다. 다만 다른 언어인 자바스크립트가 프론트엔드인 웹 영역에는 좀 더 특화됐다.
 
 
===파이썬===
 
파이썬은 광범위한 분야에 사용되는 객체지향 언어다. 파이썬은 1989년에 개발됐지만, 배우기 쉬운 동시에 속도도 빠르며, 다양한 확장성을 갖춰 2020년까지 무서운 속도로 성장하고 있다.
 
*장점 : 파이썬은 문법이 매우 쉽고, 사람이 사용하는 문법에 상당히 가깝다는 평가를 들으며 파이썬 특유의 개발 철학에 기인한다. 쉽게, 가장 완벽한 아름다운 코드를 찾는 특유의 파이썬 철학은 간소한 문법으로 이어진다. 자바나 C언어의 경우 자료형을 지정하고, 중괄호를 겹치지 않게 입력해야하는 등 다소 코드가 지저분해질 여지가 많으나, 파이썬은 자료형도 필요 없고, 괄호도 쓰지 않아 간결하고 깔끔하게 표현된다.프로그래밍 언어 중에서 파이썬 정도의 낮은 난이도를 가지면서, 범용성을 갖추고, 파이썬 수준의 프로그램 개발 속도를 따라잡는 언어는 손에 꼽는다. 파이썬은 2010년대에 인기가 급부상하면서 다양한 프레임워크 및 라이브러리가 지원되며 이와 관련된 많은 참고자료를 찾을 수 있다는 점도 장점으로 주로 언급된다.
 
*사용처 : 자바로 할 수 있는 앱 개발, 웹 개발도 파이썬으로 가능하다. 그럼에도 파이썬은 데이터 과학, 인공지능의 급부상과 함께 떠오른 언어라 이를 주 사용처로 꼽는다. 대용량 데이터를 수집하고, 처리하고, 분석하는 용도로 자주 사용된다. 이외에도 파이썬은 '만능'이라고 불리는 만큼 업무에 다양하게 활용된다. 업무 자동화를 지원하고, 소프트웨어를 통제하는 등 별별 작업들을 파이썬을 이용하면 단순히 처리할 수 있다.
 
 
===자바스크립트===
 
자바스크립트는 웹에 특화된 객체지향 언어다. 자바스크립트는 우리가 인터넷에서 웹사이트를 돌아다니면서 행동하는 대부분의 영역을 담당하고 자바와 자바스크립트는 이름은 비슷하지만 다른 언어다.
 
*장점과 사용처 : 자바스크립트는 문법이 쉬워서 많은 사람들이 사용하며, 따라서 관련 정보를 얻기 쉬운 편이며 자바스크립트는 웹에서 주로 사용된다. 웹 브라우저는 일반적으로 데스크톱과 스마트폰, 태블릿에서 가장 많이 사용되는 프로그램이다. 자바스크립트는 우리가 웹브라우저에서 실행하는 동작에 대한 반응을 처리한다. 인터넷을 사용하는데 필요한 웹브라우저는 대부분 자바스크립트를 지원하기 때문에, 웹사이트를 디자인하거나 반응형 웹사이트를 만들기 위해서는 [[HTML]], [[CSS]], 자바스크립트를 배우는 것이 가장 빠른 지름길이다. 최근에는 크로스 플랫폼 앱 개발에도 자바스크립트가 많이 사용된다. 크로스 플랫폼이란, 모바일과 PC, 태블릿 등의 다양한 환경에서 작동하는 프로그램이다. 기존의 모바일 앱들은 주로 자바를 기반으로 개발됐으나, 웹에서 흥행한 자바스크립트가 자바의 점유율을 침식하고 있는 상황이다.<ref> 김종민 기자, 〈[https://www.mhns.co.kr/news/articleView.html?idxno=423756 (MHN IT) 가장 인기 많은 프로그래밍 언어는? 자바-파이썬-자바스크립트 비교 분석]〉, 《문화뉴스》, 2020-12-16 </ref>
 
 
==행사==
 
프로그래밍 문자와 관련된 행사도 많이 나오고 있는데 그중 현대모비스 소프트웨어(SW) 경진대회를 설명하자면현대모비스가 미래 모빌리티 분야 소프트웨어 개발 문화를 조성하고 해당 분야 우수 인재를 발굴할 목적으로 '2021 현대모비스 알고리즘 경진대회'를 개최한다.일반인 대상으로 첫 시행되는 이번 경진대회는 만 18세 이상이면 누구나 참여할 수 있다. 대학생과 관련 업계 종사자 등 코딩과 프로그래밍에 관심 있는 사람이라면 제한 없이 모두 참여가 가능하다.현대모비스는 2019년부터 소프트웨어 중심의 연구개발 문화 확산을 위해 사내 직원들을 대상으로 소프트웨어 알고리즘 경진대회를 개최해왔다. 2021년 부터는 미래 모빌리티 분야 소프트웨어 개발 저변을 확대할 목적으로 일반에까지 문호를 개방한 것이다. 이를 위해 현대모비스는 2021년 8월부터  2021년 8월 25일까지 참가 접수를 받는다. 코딩 테스트 전문 플랫폼인 프로그래머스 홈페이지를 통해 신청할 수 있다. 시상식을 제외한 예선(8,27)과 본선(9,3) 등 모든 대회일정은 코로나19 상황을 감안해 온라인으로 진행된다. 대회는 4가지 컴퓨터 프로그래밍 언어(C, C++, 자바(JAVA), 파이썬(PYTHON))를 이용해 제한시간 내 문제를 풀고 소스코드를 제출하는 방식이다. 예선 상위 50명에게 본선에 참가할 자격이 주어지며, 본선 진출자 전원에게 상금이 전달된다. 본선 1등(1명)에게는 최신형 기아([[KIA]]) K5 자동차, 2등(2명) 1,000만원, 3등(4명) 500만원 등 총 상금 1억여원의 혜택이 주어진다.
 
*현대모비스 관계자 : 미래 모빌리티 분야 소프트웨어 개발에 대한 관심이 높은 지원자들의 많은 참여와 함께, 해당 부문에서의 소프트웨어 개발 저변이 확대되기를 기대하고 있다고 말했다.
 
현대모비스는 자율주행, [[커넥티비티]], [[UAM]]으로 대표되는 미래 모빌리티 시장에서 소프트웨어와 하드웨어를 융합한 플랫폼 및 시스템 선도 기업으로 거듭나기 위해 소프트웨어 개발 전문 인력 발굴과 육성 노력을 지속적으로 강화하고 있다.그리고 2018년부터 SW 전용 교육 센터를 구축하고, 45개의 온라인 SW 교육 강좌를 마련해 직원들이 시간과 장소에 구애받지 않고 SW 역량을 개발할 수 있도록 지원하고 있으며 차량용 SW 국산화와 개발 생태계 확대를 위해 전문 개발사들과 공동으로 소프트웨어 플랫폼 개발도 진행하고 있다.<ref> 최광민 기자, 〈[http://www.aitimes.kr/news/articleView.html?idxno=22081 총 상금 1억원, '현대모비스 SW 경진대회' 개최... 파이썬, C, C++, 자바. 4개 프로그래밍 언어 중 하나로]〉, 《인공지능신문》, 2021-08-11 </ref>
 
  
 
==교육==
 
==교육==
153번째 줄: 131번째 줄:
 
* 공간사랑, 〈[https://uple.net/222 문자의 종류를 알아내는 C 언어 함수들]〉, 《업넷》, 2011-03-09
 
* 공간사랑, 〈[https://uple.net/222 문자의 종류를 알아내는 C 언어 함수들]〉, 《업넷》, 2011-03-09
 
* jrich, 〈[https://jrich.tistory.com/1 Visual Studio 문자 집합 정리]〉, 《티스토리》, 2015-03-04
 
* jrich, 〈[https://jrich.tistory.com/1 Visual Studio 문자 집합 정리]〉, 《티스토리》, 2015-03-04
* 김종민 기자, 〈[https://www.mhns.co.kr/news/articleView.html?idxno=423756 (MHN IT) 가장 인기 많은 프로그래밍 언어는? 자바-파이썬-자바스크립트 비교 분석]〉, 《문화뉴스》, 2020-12-16
 
 
*  블로그(8109), 〈[https://clanguage.tistory.com/1 C 언어 변환문자 의미 자료형 (%d,%f,%e,%o,%x,%u,%g,%p,%c,%s)]〉, 《티스토리》, 2008-05-21
 
*  블로그(8109), 〈[https://clanguage.tistory.com/1 C 언어 변환문자 의미 자료형 (%d,%f,%e,%o,%x,%u,%g,%p,%c,%s)]〉, 《티스토리》, 2008-05-21
 
* 경남도민일보, 〈[https://www.idomin.com/news/articleView.html?idxno=770147 양산수학체험센터, 미래교육의 문 열다]〉, 《도메인》, 2021-08-18
 
* 경남도민일보, 〈[https://www.idomin.com/news/articleView.html?idxno=770147 양산수학체험센터, 미래교육의 문 열다]〉, 《도메인》, 2021-08-18

2021년 8월 19일 (목) 15:27 판

문자(文字, character)는 프로그래밍 분야에서 컴퓨터와 기계 기반 전기통신 용어로서, 자연어 기록 형태의 알파벳이나 음절 문자와 같은 상징 따위와 일치하는 정보의 단위이다.[1] 흔히 char이라고 쓴다.

개요

프로그래밍 분야에서 '문자'는 컴퓨터에게 명령을 내릴 수 있도록 도와주는 도구를 말한다.[2]

등장배경

문자는 수학에서 등장하였으며 쿠르트 괴델은 불완전성 정리를 증명하는 과정 중에 알고리즘을 추상화시킨 원시재귀함수(primitive recursive function) 개념을 만들고, 이를 이용하여 증명에 성공하였는데, 수학적으로 본다면 이것이 최초의 프로그래밍 언어라 볼 수 있다. (굳이 따지자면 함수형 언어라 할 수 있다) 그리고, 그 후에 컴퓨터의 아버지라 불리는 튜링은 불완전성 정리를 보고 자신의 방식도 될 것 같다고 생각하며 연구를 하는데, 여기서 이 원시 재귀 함수와 동치인 튜링머신을 발표하고 이 튜링머신을 이용하여 불완전성 정리를 다시 한번 증명해 보인다. 이는 어떤 체계를 통해서 이 체계의 모순성을 증명할 방법은 없다는 것과 동치이다.

  • 계산 가능성 이론(Computability Theory)이라는 수학의 분야가 생기면서 기존의 원시재귀함수를 확장한 람다 미적분(Lambda calculus)과 무제한 등록기(Unlimited register machine : URM), 프로그래밍(While-programming), SKI 등등 알고리즘을 표현하기 위한 여러 가지 체계들이 등장한다.[3]

종류

다음은 프로그래밍 문자 종류이다.

변환

  • %d : 10진수로 출력하는 정수형이다.
  • %f : 실수형이다.
  • %e : 지수형이다.
  • %o : 8진수로 출력한다.
  • %x : 16진수로 출력한다.
  • %u : 부호없는 10진수로 출력한다.
  • %g : 실수형으로 자동 출력한다.
  • %p : 포인터의 주소를 출력한다.
  • %c : 하나의 문자로 출력 문자형이다.
  • %s : 문자열을 출력한다.[4]

아무것도 없음을 값으로 표현한 문자(빈 값)를 표현한 것이다.[5]

프로그래밍

프로그램(함수 등)이 자료 검색 후 해당 값을 못 찾았을 때, 메모리 할당 실패 때 등의 경우에, 넘겨주는(반환) 값을 말한다.

  • 유의점 : 널 문자(null)는, 공백 문자 ""(empty) 또는 " "(space, 아스키(ASCII) 32)와는 다르게 취급한다.
  • `==`과 같은 비교 연산 때, 널(null)을 공백 ""(empty)과 같은 것으로 간주하기도 한다.[5]

특수

다음은 특수기호 : 한글(영어단어)을 보여주는 거다. (한글 뜻이 없는 것은 발음을 붙였다.)

  • ' : 그레이브(Grave)
  • ~ : 물결표시(Tilde)
  • ! : 느낌표(Exclamation)표시(Mark)
  • @ : 골뱅이(At)
  • # : 샾, 우물정(Number , Sharp)
  • $ : 달러(Dollar)
  • % : 퍼센트(Percnet)
  • ^ : 캐럿(Caret)
  • & : 엠퍼센드(Ampersand)
  • * : 별표(Asterisk)
  • - : 마이너스(Hyphen, Dash)
  • _ : 밑줄(Underscore, Low dash)
  • = : 이꼬르(Equals)
  • " : 큰 따옴표(Quotation)
  • ' : 작은 따옴표(Apostrophe)
  •  : : 콜론(Colon)
  •  ; : 세미콜론(Semicolon)
  • . : 점, 마침표(Period, Dot)
  • ? : 물음표(Question)
  • / : 슬래쉬(Slash)
  • 수직바(Vertical bar)
  • \ : 백슬래쉬(Backslash)
  • () : 소괄호(Parenthesis)
  • {} : 중괄호(Brace)
  • [] : 대괄호(Bracket)
  • <> : 꺽쇠 괄호(Angle Bracket)등이 특수 문자다.[6]

집합

비주얼 스튜디오(Visual Studio)에서는 프로젝트 속성 메뉴에 문자 집합이란 항목이 있다. 옵션은 크게 세 가지 설정 안 함(Not Set), 멀티바이트 문자 집합 사용(Use Multi-Byte Character Set), 유니코드 문자 집합 사용(Use Unicode Character Set)가 있다. 컴퓨터에서는 데이터를 처리하기 위해 2진법을 쓴다. 즉 컴퓨터에서는 숫자를 처리할 수는 있지만, 문자는 기본적으로 처리가 불가능해서 문자를 처리하기 위해 문자 집합(Character Set)이라는 것을 사용한다. 이 중에서 대표 코드는 아스키 코드이고 아스키코드는 이름 그대로 미국 표준 문자 집합이기 때문에 해당 문자 집합에는 전 세계 언어를 표현하기 위한 약속이 되어 있지 않다. 그리하여 만들어진 문자 집합이 바로 유니코드(UNICODE)이다. 유니코드는 전 세계 모든 문자를 컴퓨터에서 일관되게 표현하고 처리하기 위한 국제 표준이다.

  • 아스키코드 : 문자 하나를 표현하기 위해 메모리 1byte를 필요하다.
  • 유니코드 : 문자 하나를 표현하기 위해 최소 2byte를 필요하다.

이러한 문자 집합들은 크게 3가지로 나눈다.[7]

SBCS

싱글 바이트 케릭터 집합(SBCS : Single Byte Character Set) : 문자 하나를 표현 하는 데 있어 1바이트를 사용하는 방식이고 대표적인 문자 집합은 아스키코드다.[7]

MBCS

멀티 바이트 케릭터 집합(MBCS : Multi Byte Character Set) : 문자 하나를 표현 하는 데 있어 다양한 바이트 수를 사용하는 방식이고 대표적인 문자 집합은 유니코드이다.[7]

WBCS

측면 바이트 케릭터 집합(WBCS : Wide Byte Character Set) : 문자 하나를 표현 하는 데 있어 2바이트를 사용하는 방식이고 아스키코드와 유니코드를 혼용하여 사용할 수 있는 방식인 거다.[7]

코드

문자코드는 아스키와 유니코드가 있지만여기서는 퓨니코드와 정보 교환용 ISO 표준 부호를 다룬다.

퓨니코드

애플리케이션 다국어 도메인 이름(IDNA: Internationalized Domain Names in Application)의 기반하에 다국어 도메인이 아스키(ASCII)로 변환(encoding)된 구문. 국제 인터넷 표준 RFC 3492에 정의되어 있다. 다국어 문자셋으로부터 온 코드들을 기본적인 문자열(영숫자, 하이픈)들로 유일하게 표현한 것이다. IDNA는 다국어 도메인을 처리하기 위한 작동 원리에 의해 인터넷 사용자가 입력한 다국어 도메인 질의를 클라이언트단에서 아스키 기반의 퓨니코드 형태로 변환(xn--로 시작하는 문자열로 변환)하여 네임서버에 전송하며, 네임서버는 퓨니코드 형태의 영역 데이터를 운영한다.[8]

정보 교환용 ISO 표준 부호

정보 교환용 ISO 표준 부호(ISO standard code for information interchange, ISO code , 情報交換用-標準符號) : 국제표준화기구(ISO)가 ISO 646에 의해 국제 표준으로 규정한 ‘정보 교환을 위한 7비트 문자 집합(Seven-Bit Character Set for Information Interchange)’으로, 정보 처리 시스템이나 데이터 통신 관련 기기 상호 간의 정보 교환에 사용되는 부호. 보통 ISO 부호라고 한다. ISO 부호는 7비트의 부호화된 문자(패리티 비트를 포함하면 8비트)로 구성되는 표준 문자 집합으로 하위 4비트 b4, b3, b2, b1을 행 방향으로, 상위 3비트 b7, b6, b5를 열 방향으로 배열하고, 128개의 문자나 기호에 대응하도록 배치되어 있다.[9]

구분

어떤 문자 인지 구분하는 함수가 많이 쓰이고 있다.

  • int isalpha(int c) : 주어진 문자가 알파벳 인지 검사한다.(A-Z, a-z)
  • int isalnum(int c) : 주어진 문자가 알파벳 또는 숫자인지 검사한다.(A-Z, a-z. 0-9)
  • int isdigit(int c) : 주어진 문자가 숫자인지 검사한다.(0-9)
  • int isxdigit(int c) : 주어진 문자가 16 진수인지를 검사한다.(0-9, a-f, A-F)
  • int iscntrl(int c) : 제어(control)문자인지를 검사한다.
  • int isspace(int c) : FF('\f'), NL('\n'), CR('\r'), HT('\t'), VT('\v'), 공백문자(' ')등을 검사한다.
  • int ispunct(int c) : 알파벳문자 혹은 공백문자가 아닌 출력가능한 문자인지 확인한다.
  • int isgraph(int c) : 공백문자를 제외한 출력가능 문자인지 검사한다.
  • int isprint(int c) : 공백문자를 포함한 출력가능한 문자인지 검사한다.
  • int islower(int c) : 소문자인지 검사한다. a-z
  • int isupper(int c) : 대문자인지 검사한다. A-Z
  • int tolower(int c) : 입력된 문자를 대문자로 변경한다.
  • int toupper(int c) : 입력된 문자를 소문자로 변경한다.

단. 같은 종류일 경우 0이 아닌 값을 같은 종류의 문자가 아닐 경우 0을 반환한다.[10]

교육

다음은 교육과 관련된 기사이다. 경상남도교육청 경남수학문화관 양산수학체험센터(관장 강영호)는 부산대학교 빅데이터 기반 금융·제조·수산·혁신 산업 수학센터와 함께 양산지역 중학생 11명을 대상으로 2021년 8월 11일부터 13일까지 3일간 「미래교육을 위한 중학생 인공지능 캠프」를 운영하였다.미래교육을 위한 중학생 인공지능 캠프는 파이썬을 이용하는 것이며 일정은 다음과 같다.

  • 첫날 : 생활을 코딩하기다.
  • 둘째 날 : 문자 데이터를 활용하는 이 집 맛집 프로그램이다
  • 마지막 날 : 그림 데이터를 수학적으로 처리하는 내가 쓴 숫자를 알아보는 머신러닝이다.

캠프 기간 학생들은 파이썬을 이용하여 직접 프로그래밍 실습을 해 보고 자신만의 구구단 만들기, 경남 PC방 조사, 커피 자판기 원리 탐구, 맛집 탐구, 머신러닝 구현하기 등 생활 속의 빅데이터를 분석하여 수학적으로 처리하여 코팅해 보는 탐구 기회를 가졌다.

  • 이 프로그램에 참여한 학생들 : 파이썬을 배우면서 컴퓨터와 소통을 하려면 프로그래밍을 해야 한다는 것을 알게 되었다. 파이썬으로 데이터를 분석하여 맛집을 찾아보는 활동이 재미있었다며 긍정적인 반응을 보였다.
  • 강영호 경남수학문화관장 : 미래교육을 위한 인공지능 캠프를 통해 4차 산업혁명 시대를 살아갈 우리 학생들이 데이터를 활용한 프로그래밍을 통해 인공지능과 코딩에 대한 이해를 높이는 데 주목적이 있으며, 앞으로도 다양한 수학 기반의 미래 교육 관련 프로그램을 학생들에게 제공할 수 있도록 앞장서겠다고 밝힌 내용은 프로그래밍 문자 프로그램으로 다양한 활동을 하면서 앞으로 많은 교육으로 자리 잡을 거라는 기사 내용이다.[11]

중요성

문자 폰트의 중요성을 알려주는 내용이다. 프로그래밍할 때 화면 코드가 렌더링 되는 글자 폰트(글꼴)가 중요한가는 코딩할 때 글꼴은 최우선으로 신경 쓰는 요소는 아닐 수 있지만, 글꼴은 코딩에서 매우 중요하다.

  • 불틴(Bultin) : 좋은 글꼴은 가독성이 높고, 신경을 곤두세우고 읽지 않아도 되기 때문에 작업을 더 수월하고 편하게 만들어줄 수 있지만 나쁜 글꼴은 눈에 힘을 주게 만들고 작업을 느리게 만들 수 있다.

아키텍쳐와 같이 형태는 기능을 따른다. 즉, 우리가 보는 글꼴은 특정한 목적을 위해 설계되었다. 예를 들어 마케팅과 광고에서 사용되는 글꼴은 주의를 끌고 흥미를 일으키도록 디자인되었다.

  • 애로우 타입(Arrow Type) 디자인 스튜디오를 운영하는 폰트 디자이너이자 개발자인 스티븐 닉슨(Stephen Nixon) : 디스플레이나 디지털 플레어에 최적화된 폰트가 있다고 했으며 코딩 글꼴은 눈길을 끌기 위해 고안된 마케팅·광고용 글꼴과 달리 쉽게 읽을 수 있도록 최적화된 작업용 글꼴이며 각 문자를 서로 구별하기 쉽고, 코드를 온종일 읽고 써야 하는 개발자들을 위해 눈의 피로를 줄이도록 디자인되었다. 그(닉슨)는 코딩에 사용되는 글꼴은 대개 폭이 고정되는 특징이 있다고 설명했다. 이는 타이포그래피(편집 디자인에서 활자의 서체나 글자 배치 따위를 구성하고 표현하는 일)에서 글리프(glyphs)라고 알려진 개별 문자, 숫자, 기호가 정확히 같은 양의 공간을 차지한다는 것을 의미한다. 이는 인쇄 및 디지털 텍스트에 대한 기본적인 텍스트 설정과 차이점을 보인다. 일반적으로 각 글리프는 '자연적' 너비가 있다. 'i'와 'l'은 좁은 영역을 차지하는 반면, 'w'와 'm'은 더 넓은 영역을 차지한다. 이는 역사, 관습, 문화에 의해 알려져 왔지만, 코딩에 사용되는 글꼴은 대체로 고정 폭 또는 단일 공간(monospace) 을 사용한다. 닉슨은 부분적으로 초기 사용자 인터페이스 기술에서 파생된 것으로 보인다고 설명했다. 고정된 너비의 글꼴만 표시할 수 있었던 옛날 컴퓨터 모니터에서 자연적 너비를 가진 글꼴을 표현하는 모니터로 바뀐 지는 오래됐지만, 고정 너비가 코드를 더 질서 있게 보이게 하므로 여전히 관습적으로 내려오는 거다.
  • 닉슨 : 코드에 관한 많은 것들은 그것을 읽을 수 있게 하고, 코드의 구조와 계층을 이해하기 위해 발명하는 것이라고 설명했고 만약 모든 글자가 화면에서 같은 양의 공간을 차지한다면, 만약 어떤 것이 네 글자라면, 그것은 항상 네 글자와 같은 너비를 가진다. 이는 (글자가) 더 자주 줄을 맞추게 만든다고 설명했다.

글꼴 폭을 통일시키는 것은 하나의 디자인 결정이지만, 다른 곳에도 수많은 영향을 미친다고 덧붙였다. 문자 'm'과 같이 자연적으로 폭이 넓은 글리프를 표준 폭에 맞추면서 어떤 글꼴 크기에서도 읽을 수 있도록 세심하게 설계해야 하기 때문이다. 글꼴 폭을 고정하는 것은 각 글리프 설계에 영향을 미치며 구두점에도 영향을 미친다. 고정 너비 코딩 글꼴에서 구두점은 일반적인 너비보다 더 넓은 공간을 차지한다. 프로그래밍 언어에서 세미콜론이나 마침표와 같은 글리프는 중요한 논리적인 의미가 있다. 고정 폭 코딩 글꼴에서 이러한 문장 부호의 크기는 일반 글꼴에서보다 커지기 때문에 더 쉽게 볼 수 있다.

  • 개발자, 수학자, 과학자 등 특정 계층에 많이 쓰이는 고정 폭 코딩 글꼴로는 프라그마타프로(PragmataPro)가 있으며 프라그마타프로는 웹디자이너 파브리치오 시아비(Farizio Schiavi)가 2010년 코드화를 위해 개발한 글꼴이다. 당시 개발자들이 사용할 수 있었던 고정 폭 글꼴은 모나코(Monaco), 쿠리어(Courier), 레터 고딕(Letter Gothic)으로 한정됐다.
  • 쿠리어모나코는 글자 폭이 너무 넓어서 개발자들이 과도한 수평 스크롤을 막기 위해선 작은 텍스트 크기를 사용해야 한다. 쿠리어는 대부분의 문자 끝에 발이 거의 없는 세리프(Serif) 글꼴이다. 코딩하는 동안 중복으로 보이게 하며, 시아비는 모든 종류의 글리프에 잘 맞는 디자인을 가지고, 문자 외에도 숫자, 아스키 코드(ASCII symbols)를 포함하며 각 기호가 다른 글리프의 모양과 일치하고 읽기 쉽도록 새로운 폰트를 설계했고 시아비에 따르면 프라그마타 프로는 처음엔 단일 공간 글꼴로 시작됐지만, 지금은 모듈식 공간 글꼴이다.

대부분은 고정 폭을 가지며 일부 글리프는 둘 이상의 표준 공간을 차지한다. '오른쪽 물결 화살표'와 같은 일부 기호는 표준 너비로 축약할 수 없기 때문이다. 프라그마타 프로는 현재 4만 개의 글리프를 가지고 있는 다른 언어들과 특수 문자를 포함해 수년간 글리프를 추가해왔다. 프라그마타 프로는 숫자 '1'과 소문자 'l', 대문자 'I'와 같은 글리프를 구별하기 쉽고, 9pt와 60pt 사이의 모든 글꼴 크기를 검토하고 각 글리프의 스타일과 같이 글꼴을 조정했다. 한편 판독성(legibility)와 가독성(readability)은 약간 차이점을 보인다. 코딩 글꼴은 판독성을 더 중요시하는 반면 일반적인 읽기에 사용되는 글꼴은 가독성을 중요시 한다.가독성은 단어 모양을 식별하고 인지하는 것에 가깝다. 글꼴이 거기에 있다는 것을 읽기 쉽고, 단지 그것을 읽을 뿐이지만, 반면 코딩 글꼴은 판독성을 우선시해야 한다고 했다. 이유는 어떤 문자든 해당 문자로 인지해야 하기 때문이다. 코딩에서 개발자들은 일반적인 읽기에서 흔히 볼 수 없는 단어를 많이 보기 때문에 예상되는 모양에 맞는 것보다는 코드를 쉽고 정확하게 읽을 수 있는 것이 중요하다고 하는 것은 프로그래밍 코딩 시 문자 폰트 크기 조정이 왜 중요하고 그것을 조정하는 방식에 대해서 설명하는 것이다.[12]

각주

  1. 문자 (컴퓨팅)〉, 《위키백과》
  2. 프로그래밍 언어〉, 《네이버 지식백과》
  3. 프로그래밍 언어〉, 《나무위키》
  4. 블로그(8109), 〈C 언어 변환문자 의미 자료형 (%d,%f,%e,%o,%x,%u,%g,%p,%c,%s)〉, 《티스토리》, 2008-05-21
  5. 5.0 5.1 null, NULL, Null 널 문자〉, 《정보통신기술용어해설》
  6. inyong_pang, 〈(Programming) 특수 문자 용어 정리〉, 《벨로그》, 2020-08-03
  7. 7.0 7.1 7.2 7.3 jrich, 〈Visual Studio 문자 집합 정리〉, 《티스토리》, 2015-03-04
  8. 퓨니코드〉, 《네이버 지식백과》
  9. 정보 교환용 ISO 표준 부호〉, 《네이버 지식백과》
  10. 공간사랑, 〈문자의 종류를 알아내는 C 언어 함수들〉, 《업넷》, 2011-03-09
  11. 경남도민일보, 〈양산수학체험센터, 미래교육의 문 열다〉, 《도메인》, 2021-08-18
  12. 이진영, 〈코딩에서 "글자 폰트"가 왜 중요할까?〉, 《코딩월드뉴스》, 2021-03-19

참고자료

같이 보기


  검수요청.png검수요청.png 이 문자 (프로그래밍) 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.