부호 (정보)

섬네일|모스 부호
커뮤니케이션 및 정보 처리에서 **부호**(符號) 또는 **코드**(code)는 글자, 낱말, 소리, 이미지, 제스처와 같은 정보를 통신 채널을 통한 통신이나 저장 매체에 저장하기 위해 다른 형태(때로는 축약되거나 비밀이 유지되는 형태)로 변환하는 규칙 체계이다. 초기 사례로는 사람이 생각하거나 보고 듣고 느낀 것을 말하기를 통해 타인에게 전달할 수 있게 해준 언어의 발명을 들 수 있다. 그러나 말하기는 목소리가 닿는 거리로 통신 범위를 제한하며, 청중을 말이 발화되는 순간에 현장에 있는 사람들로 한정한다. 구어를 시각적 상징으로 변환한 쓰기의 발명은 공간과 시간을 넘어 통신의 범위를 확장했다.

**부호화**(encoding) 과정은 정보원의 정보를 통신 또는 저장을 위한 상징으로 변환한다. **복호화**(decoding)는 그 반대 과정으로, 부호 상징을 수신자가 이해할 수 있는 형태(영어, 스페인어 등)로 다시 변환하는 것이다.

부호화를 하는 한 가지 이유는 구어나 문어와 같은 일반적인 자연어를 사용하기 어렵거나 불가능한 장소에서 통신을 가능하게 하기 위함이다. 예를 들어, 수기신호는 신호수가 잡고 있는 깃발의 배치나 신호탑의 팔 모양으로 메시지의 일부(보통 개별 글자와 숫자)를 부호화한다. 멀리 떨어진 곳에 있는 다른 사람이 깃발을 해석하여 전송된 단어를 재현할 수 있다.

## 이론

정보 이론과 컴퓨터 과학에서 부호는 보통 어떤 정보원 알파벳의 상징을 다른 대상 알파벳의 부호화된 문자열로 고유하게 표현하는 알리즘으로 간주된다. 정보원 알파벳의 상징 서열을 표현하기 위한 부호의 확장은 부호화된 문자열을 연결함으로써 얻어진다.

수학적으로 정밀한 정의를 내리기 전에 간단한 예를 들면 다음과 같다. 매핑
:C = \{\, a\mapsto 0, b\mapsto 01, c\mapsto 011\,\}
은 정보원 알파벳이 집합 \{a,b,c\}이고 대상 알파벳이 집합 \{0,1\}인 부호이다. 부호의 확장을 사용하면, 부호화된 문자열 0011001은 부호어 0 011 0 01로 그룹화될 수 있으며, 이는 다시 정보원 상징의 서열인 acab로 복호화될 수 있다.

형식 언어 이론의 용어를 사용하면, 이 개념의 정확한 수학적 정의는 다음과 같다. S와 T를 각각 정보원 및 대상 알파벳이라고 불리는 두 개의 유한 집합이라고 하자. **부호** C:\, S \to T^*는 S의 각 상징을 T의 상징 서열로 매핑하는 전역 함수이다. C의 **확장** C'는 S^*에서 T^*로의 준동형 사상으로, 정보원 상징의 각 서열을 대상 상징의 서열로 자연스럽게 매핑한다.

### 가변 길이 부호

이 섹션에서는 각 정보원(평문) 문자를 어떤 사전의 부호어로 부호화하고, 이러한 부호어들의 연결이 부호화된 문자열을 형성하는 부호에 대해 다룬다. 가변 길이 부호는 평문 문자들이 서로 다른 확률을 가질 때 특히 유용하다. 엔트로피 부호화를 참고하라.

접두 부호는 "접두사 속성"을 가진 부호이다. 즉, 시스템 내에 다른 유효한 부호어의 접두사(시작 부분)가 되는 유효한 부호어가 존재하지 않는다. 허프먼 부호화는 접두 부호를 도출하는 가장 잘 알려진 알고리즘이다. 접두 부호는 허프먼 알고리즘에 의해 생성되지 않았더라도 널리 "허프먼 부호"라고 불리기도 한다. 접두 부호의 다른 예로는 국가 전화 번호, ISBN의 국가 및 출판사 부분, UMTS WCDMA 3G 무선 표준에서 사용되는 보조 동기화 부호 등이 있다.

크라프트의 부등식은 접두 부호에서 가능한 부호어 길이의 집합을 특징짓는다. 반드시 접두 부호가 아니더라도, 사실상 모든 고유하게 복호화 가능한 일대다 부호는 크라프트의 부등식을 만족해야 한다.

### 오류 정정 부호

부호는 전송 또는 저장 시 발생하는 오류에 더 강한 방식으로 데이터를 표현하는 데 사용될 수도 있다. 이른바 오류 정정 부호는 저장(또는 전송)된 데이터에 정교하게 설계된 중복성을 포함시킴으로써 작동한다. 예로는 해밍 부호, 리드-솔로몬 부호, 리드-뮬러 부호, 월시-하다마드 부호, BCH 부호, 터보 부호, 이진 골레 부호, 대수 기하 부호, 저밀도 패리티 검사 부호, 시공간 부호 등이 있다.
오류 검출 부호는 군집 오류나 무작위 오류를 검출하도록 최적화될 수 있다.

## 사례
### 간결함을 위해 사용되는 통신 부호

전신 부호는 단어(예: 선박이나 송장)를 더 짧은 단어로 대체하여, 동일한 정보를 더 적은 문자로 더 빠르고 저렴하게 전송할 수 있게 한다.

부호는 간결함을 위해 사용될 수 있다. 전신 메시지가 최신식 장거리 통신 수단이었을 때, 전체 문구를 단일 단어(보통 5글자 그룹)로 부호화하는 정교한 상업 부호 시스템이 개발되었다. 전신 기사들은 BYOXO ("우리의 거래에서 빠져나가려 합니까?"), LIOUY ("왜 내 질문에 대답하지 않습니까?"), BMULD ("당신은 비겁한 사람입니다!"), 또는 AYYLU ("명확하게 부호화되지 않았습니다, 더 명확하게 반복하십시오.")와 같은 "단어"들에 익숙해졌다. 부호어는 길이, 발음 가능성 등 다양한 이유로 선택되었다. 의미는 인지된 필요에 따라 선택되었다. 상업적 협상, 군사 부호를 위한 군사 용어, 외교 부호를 위한 외교 용어, 그리고 간첩 부호를 위한 앞의 모든 것이 포함되었다. 부호 책과 부호 책 출판사가 난립했으며, 그중 하나는 제1차 세계 대전과 제2차 세계 대전 사이에 허버트 야들리가 운영한 미국 블랙 챔버의 위장 기관으로 운영되기도 했다. 이러한 부호들의 대부분의 목적은 통신 비용을 절감하는 것이었다. 데이터 압축을 위한 데이터 부호화의 사용은 컴퓨터 시대 이전부터 존재했다. 초기 사례로는 더 자주 사용되는 문자에 더 짧은 표현을 할당한 전신 모스 부호가 있다. 허프먼 부호화와 같은 기술은 이제 대용량 데이터 파일을 저장이나 전송을 위해 더 컴팩트한 형태로 압축하기 위해 컴퓨터 기반 알고리즘에서 사용된다.

### 문자 인코딩

문자 인코딩은 문자 기반 데이터(텍스트)가 어떻게 부호화되는지를 설명한다. 과거의 인코딩 시스템은 4에서 7 사이의 고정된 비트 수를 사용했지만, 현대 시스템은 각 문자에 대해 하나 이상의 8비트 바이트를 사용한다. 수십 년 동안 지배적이었던 시스템인 ASCII는 각 문자에 1바이트를 사용하므로 최대 256개의 서로 다른 문자를 부호화할 수 있다. 더 많은 문자를 가진 자연어를 지원하기 위해, 각 문자에 둘 이상의 바이트나 가변적인 수의 바이트를 사용하는 다른 시스템들이 발명되었다. 중국어, 일본어, 한국어와 같이 방대한 문자 집합을 가진 문자 체계는 멀티바이트 인코딩으로 표현될 수 있다. 초기 멀티바이트 인코딩은 고정 길이였으며, 이는 각 문자가 동일한 수의 바이트로 표현됨을 의미하여 순람표를 통한 복호화에 적합했다. 반면, 가변 너비 인코딩은 단일 순람표를 통해 복호화할 수 없고 순차적으로 처리해야 하므로 복호화가 더 복잡하지만, 더 자주 사용되는 문자에 더 작은 표현을 사용하여 대규모 문자 집합을 더 효율적으로 표현할 수 있도록 지원한다. 오늘날 유니코드 문자 집합의 인코딩인 UTF-8은 인터넷에서 가장 흔히 사용되는 텍스트 인코딩이다.

### 유전 부호

생물체는 기능과 발달을 조절하는 데 사용되는 유전 물질을 포함하고 있다. 이것이 DNA이며, 여기에는 전령 RNA가 도출되는 유전자라는 단위가 포함되어 있다. 이는 다시 네 가지 가능한 뉴클레오타이드의 3중 서열(코돈)이 20가지 가능한 아미노산 중 하나로 번역될 수 있는 유전 부호를 통해 단백질을 생성한다. 코돈의 서열은 단백질 분자를 형성하는 해당 아미노산 서열을 초래하며, 종결 코돈이라 불리는 유형의 코돈은 서열의 끝을 알린다.

### 괴델 부호
수학에서 괴델 부호는 쿠르트 괴델의 불완전성 정리 증명의 기초가 된다. 여기서 아이디어는 (괴델 수 매기기를 사용하여) 수학 기호를 자연수에 매핑하는 것이다.

### 기타 사례
신호등, 저항기의 공칭 값을 표시하기 위해 사용되는 전자 색상 코드, 또는 특정 유형의 쓰레기(종이, 유리, 유기물 등)를 위한 쓰레기통에 부여된 색상 코드와 같이 색상을 사용하는 부호들이 있다.

마케팅에서 쿠폰 코드는 (보통 인터넷) 소매업체에서 제품을 구매할 때 금융 할인을 위해 사용될 수 있다.

군사 환경에서는 코넷을 이용한 특정 소리가 다양한 용도로 사용된다. 하루의 특정 시간을 알리거나, 전장에서 보병에게 명령을 내리는 등의 용도이다.

청각 장애인을 위한 수어나 시각 장애인을 위한 점자와 같은 감각 장애인을 위한 통신 시스템은 움직임이나 촉각 부호를 기반으로 한다.

악보는 음악을 부호화하는 가장 일반적인 방법이다.

특정 게임들은 경기를 기록하기 위해 그들만의 부호 시스템을 가지고 있다. 예: 체스 기보법.

### 암호학
암호학사에서 부호는 한때 통신의 기밀성을 보장하기 위해 흔히 사용되었으나, 현재는 대신 사이퍼(cipher)가 사용된다.

실제 메시지를 가리려는 목적의 비밀 부호는 심각한 것(주로 군사, 외교, 비즈니스 등의 간첩 행위)부터 사소한 것(연애, 게임)까지 모든 종류의 상상력 풍부한 부호화가 될 수 있다. 꽃, 게임 카드, 의복, 부채, 모자, 멜로디, 새 등이 있으며, 유일한 요구 사항은 송신자와 수신자 양측이 의미에 대해 사전에 합의하는 것이다.

## 다른 예시
부호화의 다른 예시는 다음과 같다:
* 부호화(인식에서) - 들어오는 자극을 해석하는 기본적인 지각 과정. 기술적으로 말하면, 상대적으로 객관적인 감각 입력(예: 빛, 소리)을 주관적으로 의미 있는 경험으로 변환하는 복잡한 다단계 과정이다.
* 텍스트 부호화는 마크업 언어를 사용하여 텍스트의 구조와 기타 특징을 태그함으로써 컴퓨터에 의한 처리를 용이하게 한다. (텍스트 인코딩 이니셔티브 참고.)
* 형식 언어 A를 비형식 언어 B로 의미론 부호화하는 것은 언어 B를 사용하여 언어 A의 모든 용어(예: 프로그램 또는 설명)를 표현하는 방법이다.
* 데이터 압축은 신호를 전송 또는 저장에 최적화된 부호로 변환하며, 일반적으로 코덱을 통해 수행된다.
* 신경 부호화 - 정보가 신경 세포에서 표현되는 방식.
* 기억 부호화 - 감각을 기억으로 변환하는 과정.
* 텔레비전 부호화: NTSC, PAL, SÉCAM

복호화의 다른 예시는 다음과 같다:
* 복호화 (컴퓨터 과학)
* 복호화 방법, 잡음이 섞인 채널을 통해 전송된 부호어를 복호화하기 위한 통신 이론의 방법들.
* 디지털 신호 처리, 디지털 표현으로 된 신호와 이러한 신호의 처리 방법에 대한 연구.
* 디지털-아날로그 변환회로, 복호화 작업을 위해 아날로그 회로를 사용하는 것.
* 단어 복호화, 인쇄된 패턴을 판독하여 언어의 소리로 번역하기 위해 파닉스를 사용하는 것.

## 실생활에서의 부호

용어의 일상적인 사용에서 "부호(코드)"는 "부호 체계"의 요소를 의미한다. 예를 들어, "우리 집의 우편번호"는 지역 체계(예: 미국의 ZIP 코드 체계)에서 지리적 실체를 식별하는 지리 부호이다. 전형적인 부호는 영숫자 식별자이다.

두문자어와 약어 또한 "부호"로 간주될 수 있으며, 어떤 의미에서 모든 언어와 문자 체계는 인간의 사고를 위한 부호이다.

국제 항공 운송 협회 공항 코드는 공항을 지정하기 위해 사용되는 세 글자 부호이며 수하물 표에 사용된다. 역 코드는 철도에서 비슷하게 사용되지만 보통 국가 단위이므로, 서로 다른 국가에 있다면 동일한 부호가 다른 역에 사용될 수 있다.

때때로 부호어는 독립적인 존재(및 의미)를 획득하는 반면, 원래의 동등한 문구는 잊혀지거나 적어도 더 이상 부호어에 부여된 정확한 의미를 갖지 않게 된다. 예를 들어, '30'은 저널리즘에서 "이야기의 끝"을 의미하기 위해 널리 사용되었으며, 다른 맥락에서 "끝"을 나타내기 위해 사용되어 왔다.

## 같이 보기

* 기호
* 부호화
* 복호화
* 암호화
* 문자 인코딩
* 유전 부호
* 부호화 영역

## 각주

분류:신호 처리
분류:부호화