Unicode (2) 썸네일형 리스트형 [Swift]허프만 코딩 구현 3 - 검증 검증하기 전에 압축과 추출에서 구현한 다양한 동작들을 구조체로 묶어보자. Compressor와 Extractor 구조체를 생성하였다. 코드는 지난 시간에 전부 구현을 하였기 때문에 클래스 다이어그램만 제시하고 따로 구현은 필요 없어 보인다. 몇 가지 특성은 다음과 같다. 두 구조체 모두 input을 속성으로 갖는데, 해당 속성은 입력받은 데이터를 의미한다. pNumber는 지난 시간과 동일하게 이진 문자열을 쪼개는 개수이다. ASCII가 7bit의 이진수를 나타내므로 기본값은 7이다. Compressor 구조체의 makeHuffmanCodes()는 허프만 코드를 반환하는데, 이전에 설명한 바와 같이, 허프만 코드는 구할 때마다 값이 다를 수 있어 private으로 선언해 다른 곳에서의 사용을 방지하였다... 인코딩과 UTF-8 트랜지스터는 일종의 스위치이다. 스위치는 off와 on의 두 가지 상태를 나타낼 수 있으며, 이러한 각각의 상태를 0과 1로 치환하여 모으면 이진수로 나타낼 수 있다. 컴퓨터는 자신을 구성하는 트랜지스터를 이용해 이진수로 데이터를 저장한다. 하지만 이진수는 사람이 바로 이해하고 사용하기 힘들기 때문에, 우리가 일반적으로 사용하는 문자들(숫자, 글자, 기호 등)을 컴퓨터가 이해할 수 있는 이진수로 변환하는 작업이 필요하다. 이렇듯 우리가 입력한 문자열을 이진수의 모임으로 변환하는 작업을 인코딩(encoding)이라고 하며, 반대로 이진수의 모임을 문자열로 변환하는 작업을 디코딩(decoding)이라고 한다. 인코딩을 하기 위해서는 각각의 이진수와 문자들을 대응시킨 규칙이 필요하다. 이러한 규칙에는 대표적으.. 이전 1 다음