부호 (정보)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
부호는 정보 이론과 컴퓨터 과학에서 기호의 고유한 표현을 위해 사용되는 알고리즘을 의미하며, 가변 길이 코드, 오류 정정 코드, 문자 인코딩, 암호화 등 다양한 분야에서 활용된다. 생물학에서는 유전 정보를 나타내는 데 사용되며, 수학에서는 괴델의 불완전성 정리에 기여했다. 또한, 신호등, 저항의 색상 코드, 마케팅 쿠폰 코드 등 다양한 분야에서 정보를 표현하고 전달하는 데 활용된다.
정보 이론과 컴퓨터 과학에서 부호는 일반적으로 다른 대상 알파벳에 있을 수 있는 ''부호화된'' 문자열을 사용하여 일부 소스 알파벳의 기호를 고유하게 나타내는 알고리즘으로 간주된다. 소스 알파벳에 대한 기호 시퀀스를 나타내기 위한 부호의 확장은 부호화된 문자열을 연결하여 얻는다.
정보 이론과 컴퓨터 과학에서 부호(코드)는 일반적으로 다른 대상 알파벳의 ''부호화된'' 문자열을 사용하여 특정 소스 알파벳의 기호를 고유하게 나타내는 알고리즘이다. 소스 알파벳에 대한 기호 시퀀스를 나타내기 위한 부호의 확장은 부호화된 문자열을 연결하여 얻는다.
2. 이론
간단한 예로, 다음과 같은 매핑을 생각할 수 있다.
:
이 매핑은 소스 알파벳이 집합 이고 대상 알파벳이 집합 인 부호이다. 이 부호를 확장하여 사용하면 부호화된 문자열 0011001은 부호어 0, 011, 0, 01로 그룹화할 수 있으며, 이는 다시 소스 기호 시퀀스 ''acab''로 복호화할 수 있다.
형식 언어 이론에서 부호는 다음과 같이 정의된다. S와 T라는 두 개의 유한 집합이 있고, S를 정보원 알파벳, T를 부호 알파벳이라고 할 때, '''부호''' 는 S의 각 심볼을 T의 원소를 사용한 문자열(심볼의 나열)에 대응시키는 사상이다. 이 사상을 에서 로의 준동형사상으로 확장하면, 정보원 알파벳의 나열을 부호 알파벳의 나열로 자연스럽게 사상할 수 있다.
2. 1. 가변 길이 코드
가변 길이 코드는 각 소스(일반 텍스트) 문자를 어떤 사전의 코드 워드로 인코딩하고, 이러한 코드 워드를 연결하여 인코딩된 문자열을 생성하는 코드이다. 가변 길이 코드는 일반 텍스트 문자가 서로 다른 확률을 가질 때 특히 유용하며, 데이터 압축에 널리 사용된다. 엔트로피 코딩도 참조할 수 있다.
가변 길이 코드의 대표적인 예로는 접두사 코드가 있다. 접두사 코드는 "접두사 속성"을 가진 코드로, 집합 내의 다른 유효한 코드 워드의 접두사(시작 부분)인 유효한 코드 워드가 시스템에 없는 코드이다. 허프만 코딩 외에도 국가 전화 식별 번호, ISBN의 국가 및 출판사 부분, UMTS WCDMA 3G 무선 표준에 사용되는 보조 동기화 코드 등이 접두사 코드의 예시이다.
2. 1. 1. 허프만 코딩
허프만 코딩은 접두사 코드를 만드는 가장 잘 알려진 알고리즘이다. 접두사 코드는 허프만 알고리즘으로 만들어지지 않은 경우에도 "허프만 코드"라고 널리 불린다. 접두사 코드의 다른 예로는 국가 전화 식별 번호, ISBN의 국가 및 출판사 부분, UMTS WCDMA 3G 무선 표준에 사용되는 보조 동기화 코드가 있다.[1]
크라프트 부등식은 접두사 코드에서 가능한 코드 워드 길이 집합을 특징짓는다. 사실상 모든 고유하게 디코딩 가능한 일대다 코드는 접두사 코드가 아니더라도 크라프트 부등식을 만족해야 한다.[1]
2. 2. 오류 정정 코드
부호는 전송 또는 저장 시 오류에 더 강한 방식으로 데이터를 나타내는 데에도 사용될 수 있다. 이른바 오류 정정 부호는 저장(또는 전송)된 데이터와 함께 신중하게 제작된 중복성을 포함하여 작동한다. 오류 정정 부호는 ''버스트 오류'' 또는 ''임의 오류''를 감지하도록 최적화될 수 있다.[1] 오류 정정 부호의 종류는 다음과 같다.2. 2. 1. 해밍 코드
오류 정정 부호의 일종으로 해밍 부호가 있다. 해밍 코드는 단일 비트 오류를 정정할 수 있는 간단하면서도 효과적인 오류 정정 코드이다.[1]
2. 2. 2. 리드-솔로몬 코드
오류 정정 부호의 일종인 리드-솔로몬 부호는 저장 또는 전송되는 데이터에 중복성을 추가하는 방식으로 작동한다. 리드-솔로몬 코드는 버스트 오류(연속적인 비트 오류)를 정정하는 데 강점을 가진다.
2. 3. 접두사 코드
접두사 코드는 "접두사 속성"을 가진 코드이다. 즉, 어떤 코드 워드도 다른 코드 워드의 접두사(시작 부분)가 되지 않는다는 것이다. 예를 들어, '0'과 '01'은 동시에 코드 워드가 될 수 없다. 이러한 특성 덕분에 접두사 코드는 즉시 복호화가 가능하다는 장점을 가진다.
허프만 코딩은 접두사 코드를 만드는 가장 잘 알려진 알고리즘이다. 이 때문에 허프만 코딩으로 만들어지지 않은 접두사 코드도 "허프만 코드"라고 불리는 경우가 많다. 접두사 코드의 다른 예로는 국가 전화 식별 번호, ISBN의 국가 및 출판사 부분, UMTS WCDMA 3G 무선 표준에 사용되는 보조 동기화 코드 등이 있다.
크라프트 부등식은 접두사 코드에서 가능한 코드 워드의 길이 집합을 특징짓는다. 어떤 코드가 접두사 코드가 아니더라도, 고유하게 복호화 가능하다면 크라프트 부등식을 만족해야 한다.
3. 통신 및 컴퓨팅에서의 코드
예를 들어, C = { a → 0, b → 01, c → 011 }는 소스 알파벳이 {a, b, c}이고 대상 알파벳이 {0, 1}인 부호이다. 부호 확장을 사용하면 부호화된 문자열 0011001은 부호어 0 011 0 01로 묶을 수 있으며, 이는 다시 소스 기호 시퀀스 ''acab''로 디코딩될 수 있다.
부호는 전송 또는 저장 시 오류에 더 강한 방식으로 데이터를 나타내는 데에도 사용될 수 있다. 오류 정정 부호는 저장 또는 전송된 데이터와 함께 신중하게 제작된 중복성을 포함하여 작동한다. 오류 정정 부호의 예로는 해밍 부호, 리드-솔로몬 부호, 리드-뮬러 부호, 왈시-아다마르 부호, BCH 부호, 터보 부호, 이진 골레이 부호, 대수 기하 부호, 저밀도 패리티 검사 부호, 시공간 부호 등이 있다. 오류 감지 부호는 ''버스트 오류'' 또는 ''임의 오류''를 감지하도록 최적화될 수 있다.
3. 1. 문자 인코딩
문자 인코딩은 텍스트 데이터를 표현하는 방식이다. 특정 문자 인코딩은 특정 문자 집합(표현할 수 있는 문자의 모음)과 연관될 수 있지만, 일부 문자 집합은 여러 문자 인코딩을 가지고 있으며 그 반대의 경우도 있다. 문자 인코딩은 단일 문자를 표현하는 데 필요한 바이트 수에 따라 크게 분류할 수 있는데, 단일 바이트 인코딩, 멀티바이트 인코딩, 가변 폭 인코딩이 있다.
초기 문자 인코딩은 단일 바이트였으며, 가장 잘 알려진 예는 ASCII이다. 그러나 단일 바이트 인코딩은 256자 이상의 문자 집합을 모델링할 수 없다. 중국어, 일본어 및 한국어와 같이 큰 문자 집합이 필요한 스크립트는 멀티바이트 인코딩으로 표현해야 한다. 초기 멀티바이트 인코딩은 고정 길이였으며, 각 문자가 여러 바이트로 표현되었지만 모든 문자가 동일한 수의 바이트("단어 길이")를 사용하여 조회 테이블로 디코딩하기에 적합했다. 가변 폭 인코딩은 멀티바이트 인코딩의 하위 집합으로, 더 복잡한 인코딩 및 디코딩 로직을 사용한다.
문자를 부호화한 데이터 통신 부호로는 ASCII 외에도 1 바이트로 각 문자를 나타내는 것, 정수 코드 포인트에 문자를 할당하는 것(유니코드), 바이트 열로 문자를 나타내는 것(UTF-8) 등이 있다.[1]
3. 1. 1. ASCII
ASCII는 가장 잘 알려진 문자 부호화 방식의 하나이다. 여러 버전이 어느 정도 호환성을 유지하고 있으며, 컴퓨터, 터미널, 프린터 등 통신 기기에서 널리 사용된다. ASCII는 128종의 문자를 7비트 이진수로 나타내는데, 예를 들어 소문자 "a"는 1100001, 대문자 "A"는 1000001과 같이 표현한다.[1] ASCII는 HTTP 헤더 등에서 오늘날에도 여전히 사용되고 있다.
3. 1. 2. 유니코드와 UTF-8
유니코드는 전 세계의 모든 문자를 표현할 수 있는 통합 문자 집합이며, UTF-8은 유니코드를 위한 가변 길이 인코딩 방식 중 하나로, 웹에서 가장 널리 사용된다.[1] UTF-8은 더 복잡한 인코딩 및 디코딩 로직을 사용하여 더 일반적으로 사용되는 문자의 표현을 더 짧게 유지하거나 이전 버전과의 호환성을 유지하면서 큰 문자 집합을 효율적으로 표현한다.[1]
3. 2. 간결성을 위한 통신 코드
전신 메시지가 장거리 통신의 최첨단 기술이었을 때, 전체 구문을 단일 단어(일반적으로 5자 그룹)로 인코딩하는 정교한 상업 코드 시스템이 개발되어 전신 기사들이 특정 단어에 익숙해졌다.[1] 예를 들어, ''BYOXO''는 "우리 거래에서 빠지려는 거 아니지?", ''LIOUY''는 "왜 내 질문에 대답하지 않으십니까?", ''BMULD''는 "넌 스컹크야!", ''AYYLU''는 "명확하게 코딩되지 않았음, 더 명확하게 반복하세요."와 같은 의미를 가졌다.[1]
암호 단어는 길이, 발음 가능성 등 다양한 이유로 선택되었다.[1] 의미는 상업 협상, 군사, 외교, 첩보 등 인식된 요구에 맞게 선택되었다.[1] 제1차 세계 대전과 제2차 세계 대전 사이에는 허버트 야들리가 운영하는 미국 블랙 챔버를 포함하여 암호책과 암호책 출판사가 급증했다.[1] 이러한 코드의 대부분의 목적은 케이블 비용을 절감하는 것이었다.[1]
3. 2. 1. 모스 부호
모스 부호는 자주 사용되는 문자를 더 짧은 표현으로 나타내는 전신 부호이다.[1] 데이터 압축을 위한 데이터 코딩의 초기 예시로, 컴퓨터 시대보다 앞선다.[1] 허프만 코딩과 같은 기술은 컴퓨터 기반 알고리즘에서 대용량 데이터 파일을 더 압축된 형태로 저장하거나 전송하는 데 사용된다.[1]
3. 3. 암호화
암호는 평문을 다른 형태로 변환하여 내용을 알 수 없도록 하는 것을 의미하며, 군사, 외교, 첩보 활동과 같이 중요한 분야는 물론 게임 등의 일상생활에 이르기까지 다양한 방식으로 사용된다. 예를 들어 꽃, 트럼프 카드, 의복, 부채, 모자, 음악, 새 등 다양한 사물에 메시지를 숨겨 전달할 수 있다. 이러한 방식을 사용하려면 송신자와 수신자 사이에 사전에 의미를 약속해야 한다.
3. 3. 1. 코드 (암호학)
암호학의 역사에서 코드는 한때 통신의 기밀성을 보장하는 데 흔히 사용되었지만, 현재는 암호가 대신 사용된다.[1]
진지한 목적(주로 군사, 외교, 사업 등에서의 첩보)에서 사소한 목적(로맨스, 게임)에 이르기까지, 실제 메시지를 숨기려는 비밀 코드는 꽃, 게임 카드, 옷, 부채, 모자, 멜로디, 새 등과 같은 상상력 풍부한 인코딩 방식일 수 있다.[2] 이러한 방식에서 유일한 요구 사항은 송신자와 수신자 모두가 의미에 대해 미리 합의하는 것이다.[2]
암호사에서 코드북을 사용한 부호(부호, 암호)는 통신의 비밀을 지키는 수단으로 널리 사용되었지만, 현재는 복잡한 알고리즘을 사용하는 암호가 사용되고 있다. 암호는 원래의 평문을 알 수 없도록 하는 것을 의도하며, 군사·외교·첩보 활동을 위한 진지한 것부터 게임 등의 사소한 것에 이르기까지 다양한 기법이 존재한다. 꽃, 트럼프, 의복, 부채, 모자, 음악, 새 등 다양한 것에 부호화하기도 하며, 송신자와 수신자 간에 사전에 의미에 대해 합의해 두는 것이 필요하다.
4. 생물학 및 수학에서의 코드
생물학에서 유전 물질은 생명체의 기능과 발달을 제어한다. DNA는 유전자라는 단위를 포함하고 있으며, 전령 RNA는 이 유전자에서 파생된다. 유전 암호는 4가지 뉴클레오타이드의 세 염기쌍(코돈) 배열을 통해 20가지 아미노산 중 하나로 번역되어 단백질을 생성한다. 코돈 배열은 단백질 분자를 형성하는 아미노산 배열을 결정하며, 종결 코돈은 이 배열의 끝을 알린다.[2]
정보 이론과 컴퓨터 과학에서 부호는 소스 알파벳의 기호를 다른 대상 알파벳의 ''부호화된'' 문자열로 고유하게 나타내는 알고리즘이다. 부호의 확장은 부호화된 문자열을 연결하여 얻어진다.
간단한 예로, 매핑 는 소스 알파벳 와 대상 알파벳 을 갖는 부호이다. 부호화된 문자열 0011001은 0 011 0 01로 그룹화되어 소스 기호 시퀀스 ''acab''로 디코딩될 수 있다.
형식 언어 이론에서 부호는 다음과 같이 정의된다. S와 T라는 두 유한 집합에서 S는 정보원 알파벳, T는 부호 알파벳일 때, '''부호''' 는 S의 각 심볼을 T의 심볼 나열(워드)에 대응시키는 사상이다. 이는 에서 로의 준동형 사상으로 확장되어 정보원 알파벳 나열을 부호 알파벳 나열로 자연스럽게 사상할 수 있다.[2]
4. 1. 유전 코드
생물학적 유기체는 기능과 발달을 제어하는 데 사용되는 유전 물질을 포함한다. 이는 메신저 RNA가 유래된 유전자라는 단위를 포함하는 DNA이다. 유전 코드는 4개의 가능한 뉴클레오타이드로 구성된 일련의 삼중체(코돈)가 20개의 가능한 아미노산 중 하나로 번역될 수 있게 하여 단백질을 생성한다. 코돈 시퀀스는 단백질 분자를 형성하는 해당 아미노산 시퀀스를 생성한다. 종료 코돈이라고 하는 유형의 코돈은 시퀀스의 끝을 알린다.[1] [2]4. 1. 1. 코돈
생물은 생체의 기능과 그 발달을 제어하는 유전 형질을 가지고 있다. 그것이 DNA이며, 그 안에 유전자라고 불리는 유닛이 포함되어 있다. 유전자는 코드(코돈)를 통해 단백질을 만들 수 있으며, 그 코드는 4종류의 뉴클레오티드가 3개씩 늘어선 것으로, 그 배열이 20종류의 아미노산 중 하나로 번역된다. 종결 코돈이라고 하는 한 종류의 코돈은 배열의 끝을 알린다.4. 2. 괴델 코드
수학에서 괴델 코드는 쿠르트 괴델의 괴델의 불완전성 정리 증명의 기반이 되었다. 여기서 아이디어는 괴델 수를 사용하여 수학적 표기법을 자연수에 사상(매핑)하는 것이었다.5. 기타 코드
신호등, 전기 저항의 컬러 코드, 특정 유형의 쓰레기(종이, 유리, 유기물 등) 전용 쓰레기통은 색상을 사용하는 부호의 예시이다.
군대에서는 코넷으로 특정 소리를 내어 하루 중 특정 시간을 알리거나, 전장에서 보병에게 명령을 내리는 용도로 사용했다.
수화와 점자는 각각 청각 장애인과 시각 장애인을 위한 통신 시스템으로, 움직임이나 촉각 코드를 기반으로 한다.
악보는 음악을 부호화하는 가장 일반적인 방법이며, 체스 표기법과 같이 특정 게임의 경기를 기록하기 위한 고유한 코드 시스템도 있다.
5. 1. 신호등
신호등은 색깔을 이용하여 교통 흐름을 제어하는 부호 체계이다.[1]5. 2. 저항의 색상 코드
저항기 등 수동 소자의 컬러 코드는 저항값 등을 나타내는 데 사용되는 색상 부호이다.5. 3. 마케팅에서의 쿠폰 코드
마케팅에서 쿠폰 코드는 소매점에서 제품을 구매할 때 금전적 할인이나 리베이트를 위해 사용될 수 있다.참조
[1]
웹사이트
"So Why Not 29"
http://www.ajr.org/A[...]
American Journalism Review
2012-07-03
[2]
웹사이트
Western Union "92 Code" & Wood's "Telegraphic Numerals"
http://www.civilwars[...]
Signal Corps Association
2012-07-03
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com