“인간 판독 가능”이란 무엇입니까? 잘못된 이름입니까?


12

두 가지 예가 떠 오릅니다.

  • .Net 프로그래머가 Windows 레지스트리 대신 .config 파일을 사용하도록 권장하는 이유 중 하나는 .config 파일이 XML이므로 사람이 읽을 수 있기 때문입니다.

  • 마찬가지로 JSON은 독점 형식과 비교하여 사람이 읽을 수있는 것으로 간주되는 경우가 있습니다.

사람이 읽을 수있는 형식은 실제로 사람이 읽을 수 있습니까? 구성 데이터의 예에서 :

  1. 형식은 정보의 기본 의미를 변경하지 않습니다. 두 경우 모두 데이터가 같은 것을 나타냅니다.
  2. 레지스트리와 .config 파일은 모두 내부적으로 시리즈 0과 1로 저장됩니다. 그 정도로, 인간은 기본 표현을 읽을 수 없습니다.
  3. 레지스트리 및 .config 파일에는 모두 0과 1을 읽고 형식을 지정하고 표시하여 사람이 읽을 수있는 형식으로 변환하는 도구가 필요합니다. Windows 레지스트리에 저장된 구성의 경우 레지스트리 편집기입니다. XML의 경우 텍스트 편집기 또는 XML 리더 일 수 있습니다. 어느 쪽이든, 도구는 데이터 형식이 아닌 데이터를 읽을 수있게 만듭니다.

그렇다면 사람이 읽을 수있는 데이터 형식과 사람이 읽을 수없는 형식의 차이점은 무엇입니까?


3
"인간"의 정의가 프로그래머 / 등으로 제한되는지 또는 모든 사람에게 적용되는지에 따라 다릅니다.
피터 Boughton

7
사람이 읽을 수있는 직렬화 형식은 YAML 뿐입니다 . XML을 통해 눈을 want 수 있습니다.
NullUserException

답변:


35

사람이 읽을 수 있음은 기본적으로 해당 파일 형식에 대한 직접적인, 특정 인식이 부족한 프로그램에 의해 컨텐츠가 표시되는 경우, 적어도 일부를 읽고 이해할 수있는 합리적인 기회가 있다는 것을 의미합니다.

명확한 묘사가 부족하다는 기본 요점은 절대적으로 정확합니다. 한 번에 8 분 만에 프로그램 (대부분 포트란으로 작성)으로 문제를 진단 할 수있는 사람을 알았습니다. 소스 코드를 전혀 보지 않고 코어 덤프. 대부분의 사람들에게이 형식은 "사람이 읽을 수있는"형식으로 분류하기가 쉽지 않지만 분명히 예외였습니다 ...


14
+1 : 충분한 노력을 기울이면 모든 것이 "사람이 읽을 수 있습니다". 컴퓨터에서 "사람이 읽을 수있는"의 실제 의미는 일반 텍스트, 구조화되지 않은 텍스트 또는 텍스트 문자로만 구성된 일부 구조입니다.
Allon Guralnek

35

Human Readable은 원하는 경우 메모장에서 항목을 열 수 있고 원하는 경우 "password = foo"를 "password = bar"로 변경할 수 있음을 의미합니다. 컨텐츠를 보거나 편집하기 위해 독점 도구를 사용할 필요는 없습니다.

간단한 텍스트 편집기로 편집 할 수없는 PDF와 달리 형식을 알고있는 특정 도구가 필요합니다. 또는 25 년 전의 일부 응용 프로그램과 함께 제공된 이진 .dat 파일은 읽거나 편집하거나 이해할 수 없습니다.


RTF를 사람이 읽을 수 있다고 생각하십니까?
피터 Boughton

7
RTF는 프로그래머가 읽을 수 있습니다 :-). 손으로 편집했지만 쾌적하지 않았습니다. XML은 JSON보다 확실히 사람이 읽을 수 없습니다. 많은 사람들이 당신의 인간이 사용하는 것에 달려 있습니다. 많은 사람들이 .csv를 XML보다 선호하지만 확실하지 않습니다!
Kate Gregory

3
사람이 읽을 수있는 파일을 편집하지 못할 수 있습니다. 내용이 사람이 읽을 수있는 곳을 많이 보았지만 쉽게 계산할 수 없으며 파일 내용을 기반으로하는 16 진수 매개 변수 값이있는 검사 필드가있을 수 있습니다. 이 값은 응용 프로그램에서 파일 유효성 검사에 사용됩니다.
uɐɪ

6
좋은 지적 @ 이안-용어를 논의하기 때문에 인간이 읽을 수있는 것과 인간이 편집 할 수있는 것을 구별해야합니다. 제 생각에는 둘 다 좋은 것입니다.
Kate Gregory

XML 엔터티가 단지 고통 스럽기 때문에 JSon이 XML보다 훨씬 인간적으로 편집 가능하고 읽을 수 있다고 주장합니다.
Matthieu M.

10

"인간이 읽을 수있는 사람이 읽을 수있는 형식입니까?"라는 질문에 대한 대답으로 그렇습니다. 사람이 읽을 수있는 의미입니다.

사람이 읽을 수있는 기술적 정의는 없으며 주관적이며 사람이 자격을 갖추어야하는 지식 수준에 대한 질문이있을 수 있습니다 (예 : 태그 및 계층과 같은 XML의 기본 원칙을 이해해야 함) , 데이터가 존재하는 비즈니스 영역을 이해해야하는 경우 (개인적으로 둘 다 그렇다고 말하고 싶습니다.) 그러나 기본 테스트는 데이터가 나타내는 데이터의 기본 사항을 이해 한 기본 기술 기술을 가진 사람에게 데이터를 보여 주었을 때입니다. 읽을 수 있습니까?

실용적인 수준에서 이것은 일반적으로 다음을 의미합니다.

1) 데이터는 ASCII 텍스트 또는 유사하고 일반적으로 쉽게 인식 가능한 형식으로 저장됩니다

2) 기본 시험에서 자명 한 합리적인 구조가 있음. 예를 들어 Y와 관련된 첫 번째 X 문자는 다음 X가 Z와 관련이 있다는 것을 알 필요가 없습니다.

3) 데이터와 메타 데이터는 일반적으로 영어 (또는 현지 언어가 무엇이든)이며 이해하기 위해 문제 영역에 대한 제한된 지식 만 필요하므로 청구서 번호는 "가 아닌"invoiceNumber "태그 uDef_Inbr "

4) 텍스트가 아닌 데이터를 감지 할 수 있고 예측 가능한 규칙이 사용되었습니다 (예 : 해석에 더 개방적인 것이 아니라 TRUE, FALSE, Y, N, 1, 0).


5

.config 파일은 레지스트리보다 훨씬 쉽게 편집 할 수 있습니다 (대부분의 사람들에게). 전용 구성 파일을 열고 관련 데이터를 찾고 다른 프로그램에 영향을 줄 수있는 내용을 편집하지 않고도 변경하는 것이 더 쉽습니다.


5

이해의 용이성과 변화 가능성에 관한 것입니다. 그래서 "X는 사람이 읽을 수 있습니까?" "예"또는 "아니오"로 대답해서는 안됩니다. 오히려 대답은 일종의 슬라이딩 스케일을 따라야합니다.

잠재적 인 예 :

  • 프로그래머의 90 %가 일반적인 텍스트 편집기로 파일을 읽고 변경할 수 있습니다.
  • 영어 사용자의 60 %가 일반적인 텍스트 편집기로 파일을 읽을 수 있습니다.
  • XYZ 개발자의 80 %가 파일을 읽고 변경할 수 있지만 ZYX 도구 만 사용합니다.
  • YZX 개발자의 10 %가 일반 텍스트 편집기로이 파일을 읽고 변경할 수 있습니다.

"사람이 읽을 수있는"것이 실제로 의미하는 것을 설명하는 문맥 외에는이 구가 그다지 도움이되지 않습니다. (어떤 인간은 하드웨어 비트 자체의 자기 극성을 보려고 노력하지 않는다면 어떤 형식이든 읽을 수 있습니다 ...)


4

사람이 읽을 수있는 형식과 사람이 읽을 수없는 형식의 한 가지 큰 차이점은 견고성입니다. Linux 시스템에서는 모든 종류의 정보가 다양한 텍스트 파일에 흩어져 있습니다. 어디에 있는지 알아야하지만 항상 정보를 찾고 텍스트 편집기로 정보를 읽고 변경할 수 있습니다. 파일이 사라지면 일반적으로 바꿀 수 있습니다. 파일이 손상되면, 파일이 무엇인지 파악하고 고칠 수 있습니다.

MS Windows 시스템에서 대부분의 레지스트리는 레지스트리에 있으며, 이는 사용자 관점에서 하나의 큰 불투명 한 시스템이며 다양한 도구를 통해 부분적으로 액세스 할 수 있습니다 (Linux 시스템의 일부 구성 파일과 유사 함). 레지스트리 편집기로. 모든 것이 잘되는 한 괜찮습니다. 그것이 깨지면 전문 지식 없이는 할 수있는 것이 없습니다.


1
리눅스 : "어디에 있는지 알아야합니다"대 Windows : "전문 지식 없이는 할 수있는 것이 없습니다". 나는 (의 사용자로 맞설 것 많은 그들이 것을 별개의 운영 시스템) 모든 전문 지식을 필요로한다. 문제를 해결하기 위해 레지스트리를 조정할 위치를 아는 것은 Linux 또는 Solaris 시스템에서 vi로 어떤 파일을 편집 할 수 있는지 아는 것만 큼 복잡하지 않습니다.
Bevan

3

내가 "사람이 읽을 수있는"것으로 생각할 수있는 가장 쉬운 검사는 다음과 같습니다.

  • 외부 편집자가 쉽게 액세스 할 수있는 위치 / 파일에 있음 (레지스트리를 "사람이 읽을 수 없도록"만들 수 없음)
  • 데이터 구조에서 표시 할 수없는 문자를 사용하지 않습니다. 내부에 "test"라는 텍스트가있는 Office 2000 Word 문서를 만들면 메모장에서 해당 파일을 열고 4 개의 문자 "test"를 찾을 수 있지만 그 주위에는 다른 많은 것들이있을 것입니다.
  • 필수는 아니지만 설명 메타 데이터가 포함 된 형식은 장점입니다. 포함 된 파일 은 필드가 2에서 (적어도 일반적으로) 무엇인지 알기 JohnSmith|34|T|F때문에보다 친숙하지 않습니다 <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>.

2

용어로 "사람이 읽을 수있는"용어가 잘못 적용되는지, 그리고 의심의 여지가 없는지 물을 수도 있습니다. 레지스트리 항목 대 .config 파일의 예에서 데이터, intersperse comment 등에 따라 XML을 다른 방식으로 배열 할 수 있다고 생각합니다.

.config 파일의 컬렉션은 일반적으로 여러 요소로 처리되지만 레지스트리에서는 종종 MULTI_SZ처럼 더 어렵습니다.

또한 regedit를 사용하면 애플리케이션에 대한 더 많은 구성 데이터를 한 번에 볼 수 있습니다. regedit를 사용하면 다른 키에있는 항목을 찾아 해당 키로 이동해야합니다. 즉, 이전에보고 있던 항목을 더 이상 볼 수 없습니다. .config 파일을 사용하면 파일에 계층 적 데이터가 포함되어 있어도 전체 파일을 한 번에 볼 수 있습니다.


레지스트리는 둘 다입니다. 매우 전문적인 지식이없는 사람이라면 누구나 읽을 수있는 부분이 있습니다.
Jon Hopkins

사실, 일부 .config 파일은 횡설수설처럼 보일 수 있습니다. COM 레지스트리 정보조차 생각하지 않았으며 레지스트리에 들어갈 응용 프로그램 설정, .config 파일의 설정에 대한 피어를 생각했습니다. 사람이 COM 정보를 읽을 사람은 없다고 생각합니다.
JohnL

2

바이너리와 "사람이 읽을 수있는"것을 대조하십시오. 예를 들어, 일반적으로 바닐라 텍스트 편집기에서 실행 파일 또는 데이터베이스 인덱스를 열고 내용이 무엇인지 이해할 수 없습니다. 십진수 32 미만의 바이트는 시각적으로 표시되는 문자로 전체적으로 표준 표현을 가지고 있지 않습니다.


1

짧은 대답 : 정보가 이진 또는 16 진 등이 아닌 텍스트로 입력됨을 의미합니다. 컴퓨터 "기계 언어"가 아닌 읽기 가능한 "언어"와 같은 것. 그 외에도 정의가 어두워집니다.


1

또한 코드에도 적용됩니다-프로그램을 처음 보는 사람의 작업이 조금 더 쉬워 지도록 논리적이고 신중한 방식으로 프로그램을 구성하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.