문제

를 사용해야 하는 이유는 무엇이 인간 읽을 수 있는 파일 형식을 선호하는 바이너리나요?가 있을 때의 상황이 아닌 경우는?

편집:나이로 설명할 때 처음에 질문을 게시,하지만 너무 관련 지금:

경우 응답 이 질문 고 싶었을 참조하십시오 asker 표준서에 대한 답변을 사용하는 이유는 무엇 인 읽을 수 있는 파일 형식은 좋은 생각이 아니다.그때 나는 검색을 위해 하나 하나를 찾을 수 없습니다.그래서 여기 질문

도움이 되었습니까?

해결책

때에 따라 다르지

정답은 그에 달려 있다는 것입니다. 예를 들어 오디오/비디오 데이터를 작성하는 경우 인간 읽기 쉬운 형식으로 크라우 르를 가면 읽기 쉽지 않습니다! 그리고 단어 문서는 사람들이 인간이 읽을 수 있기를 바랐으므로 더 유연하며 XML MS로 이동함으로써 그런 식으로 진행되고있는 전형적인 예입니다.

이진이나 텍스트보다 훨씬 더 중요한 것은 표준이거나 표준이 아닙니다. 표준 형식을 사용한다면, 당신과 다음 사람은 파서를 쓸 필요가 없으며, 그것은 모든 사람에게 승리입니다.

다음은 자신만의 형식 (및 구문 분석기)을 작성 해야하는 경우 다른 하나를 선택하려는 이유가 있습니다.

왜 인간 읽기를 사용합니까?

  1. 다음 사람. 지금부터 30 년 또는 6 개월 동안 코드를보고있는 개발자를 고려하십시오. 예, 그는 소스 코드가 있어야합니다. 예, 그는 문서와 의견을 가져야합니다. 그러나 그는 아마도 그렇지 않을 것입니다. 그리고 그 사람이었고, 낡고 극도로 귀중한 데이터를 구출하거나 전환해야했지만, 그냥보고 이해할 수있는 무언가를 만들어 주셔서 감사합니다.
  2. 내 도구로 읽고 써 드리겠습니다.. 내가 EMACS 사용자라면 사용할 수 있습니다. 또는 VIM, 또는 메모장 또는 ... 훌륭한 도구 나 라이브러리를 만들었더라도 내 플랫폼에서 실행되지 않거나 더 이상 실행되지 않을 수도 있습니다. 또한 도구로 새 데이터를 만들 수 있습니다.
  3. 세금은 그다지 크지 않습니다. 저장은 무료입니다. 거의 항상 디스크 공간은 무료입니다. 그리고 그것이 모르면 알 수 없습니다. 몇 개의 각도 브래킷이나 쉼표에 대해 걱정하지 마십시오. 일반적으로 그다지 큰 차이가 없습니다. 조기 최적화는 모든 악의 근원입니다. 그리고 정말로 걱정이된다면 표준 압축 도구를 사용하면 사람이 읽을 수있는 작은 형식이 있습니다. 누구나 실행할 수 있습니다.
  4. 세금은 그다지 크지 않습니다. 컴퓨터는 빠릅니다. 이진을 구문 분석하는 것이 더 빠를 수 있습니다. 추가 열 또는 데이터 유형을 추가하거나 레거시 및 새 파일을 모두 지원해야 할 때까지. (이것은 완화되었지만 프로토콜 버퍼)
  5. 거기에는 좋은 형식이 많이 있습니다. XML을 좋아하지 않더라도. CSV를 시도하십시오. 또는 JSON. 또는 .properties. 또는 심지어 XML. 이미 많은 언어로 구문 분석하기위한 많은 도구가 존재합니다. 그리고 모든 소스 코드가 손실되면 신비하게 쓰는 데 5 분 밖에 걸리지 않습니다.
  6. 차이가 쉬워집니다. 버전 제어에 체크인하면 변경된 사항을 확인하는 것이 훨씬 쉽습니다. 웹에서보십시오. 또는 iPhone. 이진, 당신은 무언가가 바뀌 었음을 알고 있지만, 당신은 당신에게 무엇을 말해주는 의견에 의존합니다.
  7. 합병은 쉬워집니다. 웹에서 하나의 PDF를 다른 PDF에 추가하는 방법을 묻는 질문을 여전히받습니다. 이것은 텍스트에서 발생하지 않습니다.
  8. 손상된 경우 수리가 더 쉽습니다. 손상된 텍스트 문서 대 손상된 Zip 아카이브를 시도하고 수리하십시오. 충분했다.
  9. 모든 언어 (및 플랫폼)가 읽거나 쓸 수 있습니다.. 물론 바이너리는 컴퓨터의 모국어이므로 모든 언어는 이진을 지원합니다. 그러나 많은 고전적인 작은 도구 스크립팅 언어는 텍스트 데이터에서 훨씬 더 잘 작동합니다. 나는 텍스트 (어셈블러)가 아니라 바이너리에서 잘 작동하는 언어를 생각할 수 없지만 다른 방식으로는 그렇지 않습니다. 그리고 그것은 귀하의 프로그램이 생각조차하지 않았거나 30 년 전에 작성된 다른 프로그램과 상호 작용할 수 있음을 의미합니다. 유닉스가 성공한 이유가 있습니다.

왜 안되고 대신 이진을 사용하지 않습니까?

  1. 데이터가 많이있을 수 있습니다 - 테라 바이트 어쩌면. 그리고 2의 계수는 실제로 중요 할 수 있습니다. 그러나 조기 최적화는 여전히 모든 악의 근원입니다. 지금 인간을 사용하고 나중에 변환하는 것은 어떻습니까? 시간이 많이 걸리지 않습니다.
  2. 스토리지는 무료 일 수 있지만 대역폭은 그렇지 않습니다 (Jon Skeet의 의견). 네트워크 주위에 파일을 던지는 경우 크기는 실제로 차이를 만들 수 있습니다. 디스크와의 대역폭조차도 제한 요인이 될 수 있습니다.
  3. 실제로 성능 집중 코드. 이진은 심각하게 최적화 될 수 있습니다. 데이터베이스에 일반적으로 자체 일반 텍스트 형식이없는 이유가 있습니다.
  4. 이진 형식이 표준 일 수 있습니다. PNG, MP3 또는 MPEG를 사용하십시오. 다음 사람들은 다음과 같은 직업을 더 쉽게 만듭니다 (적어도 다음 10 년 동안).
  5. 좋은 이진 형식이 많이 있습니다. 일부는 해당 유형의 데이터에 대한 글로벌 표준입니다. 또는 하드웨어 장치의 표준 일 수도 있습니다. 일부는 표준 직렬화 프레임 워크입니다. 좋은 예는입니다 Google 프로토콜 버퍼. 또 다른 예: 벤 코드
  6. 이진을 더 쉽게 포함시킬 수 있습니다. 일부 데이터는 이미 이진이며 포함해야합니다. 이것은 이진 파일 형식으로 자연스럽게 작동하지만 추악 해 보이며 인간 읽을 수있는 사람은 매우 비효율적이며 일반적으로 인간 읽기가 가능하지 않습니다.
  7. 고의적 인 모호함. 때때로 당신은 당신의 데이터가 무엇을하고 있는지 분명히 원하지 않습니다. 암호화는 모호함을 통해 우발적 인 보안보다 낫지 만 암호화하는 경우 이진을 만들어서 수행 할 수 있습니다.

논쟁의 여지가 있습니다

  1. 더 쉽게 구문 분석. 사람들은 텍스트와 이진이 모두 구문 분석하기가 더 쉽다고 주장했습니다. 이제 가장 쉽게 구문 분석하기 쉬운 것은 언어 나 도서관이 구문 분석을 지원할 때이며, 이것은 일부 바이너리와 인간 읽기 가능한 형식의 경우에 해당되므로 실제로 지원하지 않습니다. 이진 형식은 명확하게 선택할 수 있도록 구문 분석하기 쉽지만 인간 읽기 가능 (CSV 또는 고정 너비를 생각할 수 있음)이 가능하다고 생각합니다. 일부 바이너리 형식은 메모리에 덤프하여 그대로 사용될 수 있으므로 특히 숫자가 관련된 경우에는 가장 쉽게 구문 분석하기가 쉽다고 말할 수 있습니다. , 디버거에서 무슨 일이 일어나고 있는지 (약간) 볼 수 있기 때문에.
  2. 쉽게 제어 할 수 있습니다. 그렇습니다. 누군가 편집자에서 텍스트 데이터를 망칠 가능성이 높거나 하나의 유니 코드 형식이 작동하고 다른 유니 코드 형식이 작동하지 않을 때 신음 할 것입니다. 가능성이 낮은 이진 데이터를 사용합니다. 그러나 사람과 하드웨어는 여전히 이진 데이터를 담을 수 있습니다. 또한 유연하거나 고정 된 사람이 읽을 수있는 데이터에 대한 텍스트 인코딩을 지정할 수 있습니다.

하루가 끝날 무렵, 나는 여기서 실제로 이점을 주장 할 수 없다고 생각합니다.

다른 것

정말 파일을 원하십니까? 데이터베이스를 고려해 보셨습니까? :-)

크레딧

이 답변의 많은 부분은 다른 사람들이 다른 답변으로 쓴 것들 (당신은 거기에서 볼 수 있습니다). 그리고 특히 Jon Skeet에게 그의 의견 (여기 및 오프라인)에 대해 개선 될 수있는 방법을 제안한 것에 대해 큰 감사를드립니다.

다른 팁

그것은 전적으로 상황에 달려 있습니다.

인간 읽기 가능한 형식의 이점 :

  • "기본"형식으로 읽을 수 있습니다.
  • 예를 들어 단위 테스트 또는 실제 콘텐츠에 따라 직접 쓸 수 있습니다.

이진 형식의 가능한 이점 :

  • 쉽게 구문 분석 (코드 측면에서)
  • 더 빨리 구문 분석
  • 공간 측면에서 더 효율적입니다
  • 쉽게 제어 할 수 있습니다 (텍스트가 필요할 때마다 UTF-8 인코딩 및 길이 접두사 등이 있는지 확인할 수 있습니다).
  • 불투명 바이너리 데이터를 효율적으로 쉽게 포함시킬 수 있습니다 (이미지 등 - 텍스트 형식으로 Base 64에 들어갈 수 있습니다.)

항상 바이너리 형식을 구현할 수는 있지만 사람이 읽을 수있는 형식으로/로 변환 할 수있는 도구를 생성 할 수 있다는 것을 잊지 마십시오. 이것이 바로 프로토콜 버퍼 프레임 워크가하는 일입니다. 실제로 프로토콜 버퍼의 텍스트 버전을 구문 분석 해야하는 것은 드문 일이지만 텍스트로 작성할 수있는 것은 정말 편리합니다.

편집 : 이것이 받아 들여진 답변이 될 경우를 대비하여, 당신은 또한 명심해야합니다. Starblue가 만든 요점: 인간 읽을 수있는 형태는입니다 많이 Diffing에 더 좋습니다. 차이에 적합한 바이너리 형식을 설계하는 것이 가능할 것이라고 생각하지만 (그리고 사람이 읽을 수있는 Diff가 생성 될 수있는 경우) 기존 Diff 도구의 상자가없는 지원이 텍스트에 더 좋을 것입니다.

버전 제어 변경 사항을 쉽게보고 병합 할 수 있으므로 텍스트 형식으로 더 쉽습니다.

특히 MS-Word는 이와 관련하여 우리에게 슬픔을주고 있습니다.

  • 오픈 형식 - 이진 비트 저글링 없음
  • 가독성 :)
  • 플랫폼 간 교환
  • 디버깅 원조
  • 쉽게 구문 분석 (그리고 쉽게 변환 어느 체재)

중요한 점 : 파서를 한 번 작성하지만 출력을 여러 번 읽으십시오. 그런 종류의 HRF에 찬성하여 균형을 기울입니다.

주요한 이유는 누군가가 데이터를 읽어야한다면 30 년이 지난 지금 인간 읽기 가능한 형식을 알아낼 수 있기 때문입니다. 이진은 훨씬 더 어렵습니다.

본질적으로 이진 인 큰 데이터 세트가있는 경우 (예 : 이미지), 이진 형태 이외의 다른 어떤 것도 저장할 수 없습니다. 그러나 그럼에도 불구하고 메타 데이터는 인간을 읽을 수있을 수 있습니다.

무언가가 있습니다 유닉스 프로그래밍의 예술.

나는 그것이 좋거나 나쁘다고 말하지는 않지만 상당히 유명합니다. 그것은 있습니다 전체 장은 텍스트라고합니다 저자는 인간 읽기 가능한 파일 형식이 Unix 프로그래밍 방식의 중요한 부분이라고 주장합니다.

그들은 원래 도구 이외의 도구로 생성/편집 할 가능성을 열어줍니다. 새롭고 더 나은 도구는 다른 사람들이 개발할 수 있으며 타사 응용 프로그램으로의 통합이 가능해집니다. 예를 들어 바이너리 파일에 대해 생각해보십시오. 형식이 성공했을까요?

그 외에도 : 사람이 읽을 수있는 파일은 디버그하는 기능을 향상 시키거나 정통한 사용자의 경우 최소한 오류를 찾습니다.

이진에 대한 장점 :

  • 빨리 구문 분석
  • 일반적으로 더 작은 데이터
  • 파서를 쓰기 쉽습니다

인간 읽기에 대한 장점 :

  • 읽는 동안 이해하기 쉽습니다 - "필드 X는 4 487로 설정되어 있습니다.
  • XML과 같은 것을 사용하는 경우 모든 파일을 구문 분석하는 도구를 작성하기 쉽습니다.

두 유형을 모두 다루어야했습니다. 데이터를 보내고 있고 작은 바이너리를 유지하려면 좋습니다. 사람들이 그것을 읽을 것을 기대한다면 인간은 읽을 수있는 것이 좋습니다.

인간은 일반적으로 다소 자기 문서화도 읽을 수 있습니다. 그리고 바이너리를 사용하면 실수를 쉽게하기가 쉽고 찾기가 어렵습니다.

  • 편집 가능한
  • 읽기 쉬운 (duh!)
  • 인쇄 가능
  • 메모장 및 VI가 활성화되었습니다

가장 중요한 것은 그들의 기능이 컨텐츠에서 퇴제 될 수 있다는 것입니다 (대부분)

당신은 인간이기 때문에, 조만간 당신 (또는 고객 중 하나)이 데이터를 읽을 수 있습니다.

속도가 문제 인 경우 이진 형식 만 사용합니다. 그리고 그 다음에도 디버깅이 번거 롭기 때문에 인간 읽기 가능한 동등한 것을 추가했습니다.

상호 운용성은 표준 인수이며, 즉 인간이 읽을 수있는 형태는 이질적인 시스템 개발자가 다루기가 더 쉬워서 일부 이점을 제공합니다.

개인적으로 나는 그것이 사실이 아니라고 생각하며, 이진 파일의 성능은 특히 프로토콜을 게시하는 경우 그 주장을 이길 수 있어야합니다. 그러나 기계 상호 작용에 대한 XML/HTTP 기반 프레임 워크의 유비 쿼트는 채택하기가 더 쉽다는 것을 의미합니다.

XML은 과도하게 사용됩니다.

인간이 읽을 수있는 문서 형식이 더 나은 선택이 될 수있는 빠른 그림입니다.

제작에 응용 프로그램을 배포하는 데 사용되는 문서

우리는 우리가 가지고 있었다 릴리즈 노트 단어 형식으로, 그러나 해당 릴리스 노트 문서는 사전 제작 및 생산 플레이트 형식의 다양한 환경 (Linux, Solaris)에서 열려야했습니다.
또한 다양한 데이터를 추출하기 위해 구문 분석해야했습니다.

결국, 우리는 Wiki 기반 구문으로 전환했으며, 여전히 위키를 통해 HTML에 멋지게 표시되었지만 여전히 다른 상황에서는 간단한 텍스트 파일로 사용되었습니다.

이에 대한 주제로서, 인간의 가독성이 다르고, 코드 채색, 접기 또는 내비게이션이있는 훌륭한 편집기 또는 뷰어를 사용하여 모두 향상됩니다.

예를 들어,

  • JSON은 일반 텍스트로도 읽을 수 있습니다
  • XML이 있습니다 앵글 브래킷 세금 그러나 사용할 수 있습니다 좋은 편집자를 사용할 때
  • INI는 대부분 인간 읽을 수 있습니다
  • CSV는 읽을 수 있지만 스프레드 시트에로드 할 때 가장 좋습니다.

아무도 말하지 않습니다. 그래서 나는 말할 것입니다 : 인간 읽기 가능성은 실제로 파일 형식의 속성이 아니라 파일 형식과 뷰어 앱 조합입니다.

소위 인간 읽기 가능한 형식은 모두 기존 텍스트 인코딩 중 하나의 추가 추상화 계층을 기반으로합니다. 그리고 인간이 읽을 수있는 형태로 이러한 인코딩을 렌더링 할 수있는 시청자 프로그램 (종종 편집자 역할을하는 경우 종종 편집자 역할을합니다)은 매우 일반적입니다.

텍스트 인코딩 표준은 널리 퍼져 있고 상당히 성숙합니다. 이는 가까운 미래에 많은 진화가 될 가능성이 높습니다.

일반적으로 형식의 텍스트 인코딩 계층 위에 대상 사용자 지식과 문화적 배경이 주어지면 합리적으로 직관적 인 구문 계층을 찾습니다.

따라서 "사람이 읽을 수있는"형식의 이점 :

  • 적합한 시청자와 편집자의 편재성.

  • 시대를 초월한 (문화적 관습이 크게 변하지 않을 것이라는 점을 감안할 때).

  • 학습하기 쉬운, 읽기 및 수정.

추가 추상화 레이어에 대한 의존으로 텍스트를 인코딩 한 파일을 만듭니다.

  • 우주 배가 고프다.

  • 처리가 느리다.

"바이너리"파일은 텍스트 인코딩 추상화 레이어를 기본 (또는 공통 분모)으로 사용하지 않지만 목적에 더 적합한 일종의 추가 추상화를 사용할 수도 있거나 사용하지 않을 수도 있으므로 훨씬 더 잘 최적화 될 수 있습니다. 손에있는 특정 작업 :

  • 더 빠른 처리.

  • 더 작은 발자국.

반면에:

  • 시청자와 편집자는 특정 이진 형식에 따라 다르며 상호 운용성을 더 어렵게 만듭니다.

  • 주어진 형식의 시청자는 더 전문적이기 때문에 넓은 스프레드입니다.

  • 형식은 시간이 지남에 따라 크게 발전하거나 사용이 중단 될 수 있습니다. 특정 작업에 매우 적합하고 작업 또는 작업 요구 사항이 발전함에 따라 형식도 마찬가지입니다.

순간을 가지고 생각하는 응용 프로그램에 대한 다른 웹 개발.

가정:A)그것이 의미하는 것이"분명한"텍스트 형식으로 거짓입니다.같은 것들을 제어 시스템에 대한 철강 공장 또는 제조 공장하지 않는 일반적으로 어떤 장점을 가지고 있는 인간이 읽을 수 있습니다.소프트웨어를 이러한 유형의 환경은 일반적으로 일과 데이터를 표시하는 그래픽으로 의미있는 방식이다.

B)출력에서 텍스트는 것이 더 쉽습니다.불필요한 전환이 실제로 더 필요한 코드를 사용하게되면 시스템 적은 견고합니다.사실의 문제를 사용하지 않는 경우는 언어로 모든 변수 문자열로 그 다음 사람이 읽을 수 있는 텍스트를 추가로 변환합니다.I.E.추가 코드 더 의미하는 코드를 검증,테스트하고 더 많은 기회를 소개한 오류 응용 프로그램에서입니다.

C)당신은 당신이 구문 분석해야 합니다.그것은 많은 사례에 대한 DSP 시스템 내가 일했다(I.E.아니 인간의 읽기 쉬운 인터페이스로 시작합니다.) 데이터 스트리밍 시스템에서 균일하게 패킷을.기록 데이터를 분석하고 나중에 처리하는 것은 단순한 문제를 가리키는 시작 부분의 버퍼를 쓰는 여러 개의 블록 크기 데이터 로거 시스템입니다.믿을 수 없을 정도로 정확한 분석 데이터"손길이 닿지 않은"고객의 시스템은 볼 것 그것을 다시 한 번,그것을 변환하는 다른 형식으로 결과의 가능성을 도입 오류가 있습니다.그 뿐만 아니라,는 경우에만 저장하"변환된 데이터는"정보를 잃게 됩니다에 번역하는 데 도움이 될 수 있는 진단하는 문제입니다.

D)텍스트 형식의 자연에 대한 데이터이다.하드웨어 나는 이제까지 본을 사용하"텍스트"인터페이스입니다.(나의 첫 직장학교를 쓰기에 대한 장치 드라이버 카메라 라인스캔 카메라가 있습니다.) 시스템 구축 최고의 않을 수도 있지만,모든"컴퓨터"입니다.

웹 페이지에 대한 정보는""자연적인 의미에서,텍스트 형식으로 그렇게 확다.처리에 대한 소스 코드 그것은 생각할 필요 없,물론입니다.그러나 만연한 컴퓨팅 환경에도 당신은 냉장고 및 칫솔이 프로세서가 내장되어 그렇지 않습니다.단순히 부담을 주는 이러한 유형의 시스템으로의 오버헤드를 추가하는 기능을 사용하기 위한 도구를 소개 unnessary 복잡합니다.하지 않겠다는 링크를"printf"소프트웨어에 대한 8 비트 마이크로 컨트롤하는 마우스입니다.(네,누군가를 쓰는 소프트웨어도 있습니다.)

세계는 흑인과 백인 장소로만 형태의 컴퓨팅 할 필요가 고려하는 개고 웹 서버에 있습니다.

도 PC 에서 수 있다면,직접 부하를 직접 데이터로 큰 데이터 구조를 하나를 사용하여 OS 전화 읽고 함께 할 수 없이 쓰는 직렬화를 나열 루틴이는 환상적인 확인,블 CRC 직장에서 수행하는 다음의 문제입니다.

음… 인간이 읽을 수있는 파일 형식을 읽을 수 있기 때문에? 나에게 꽤 좋은 이유 인 것 같습니다.

(음, 구성 파일의 경우 인간이 읽고 편집 한 것은 불가피합니다. 어떤 종류의 지속적인 저장을위한 파일 또는 다른 사람은 실제로 인간이 읽거나 편집 할 필요가 없습니다.)

이진을 선호하는 사람이 읽을 수있는 파일 형식을 사용해야하는 이유는 무엇입니까? 이것이 사실이 아닌 상황이 있습니까?

예, 압축 볼륨 (zip, jpeg, mp3 등)은 인간이 읽을 수있는 경우 차선책이 될 것입니다.

나는 그것의 좋지 않아 대부분의 상황에서 아마도.나는 생각한 주요 이유로 이러한 형식과 같은 JSON 및 XML 이기 때문에 웹 개발,그리고 일반적인 사용하여 웹을 통해 필요할 수 있는 과정에서 데이터를 사용자 쪽 당신은 반드시 읽어리를 갖고 있습니다.의 좋은 예로 나쁜 경우를 사용하여 인간에 읽을 수 있는 형식의 것 어떤 것은 아닌 본문과 같이 이미지,비디오,오디오.Ive 주의 사용에 바이너리 형식에서 사용되는 웹 개발 그것은 의미가 없다,나는 죄책감을 느끼!

파일은 종종 인간 인터페이스의 일부가되므로 인간 친화적이어야합니다 (프로그래머 만 아님)

아카이브가 아닌 파일에 이진 스트림을 사용하는 유일한 시간은 캐주얼 관찰자로부터 물건을 숨기고 싶을 때입니다. 예를 들어, 임시 파일을 만드는 경우 응용 프로그램이 편집해야합니다. 이진을 사용하겠습니다.

오히려 난독 화하려는 시도가 아니라 사용자가 파일을 수작업으로 편집하는 것을 방해하지 않습니다 (응용 프로그램을 중단 할 수 있음).

이것이 좋은 아이디어가 될 예정인 한 가지 인스턴스는 게임에 대한 데이터를 저장 / 저장하는 것입니다. 즉, 게임을 저장하고 나중에 계속하려면. 다른 시나리오는 중간 파일을 설명하지만 일반적으로 이진 / 바이트는 어쨌든 컴파일됩니다.

이진을 선호하는 사람이 읽을 수있는 파일 형식을 사용해야하는 이유는 무엇입니까?

내용과 컨텍스트에 따라 다릅니다. 즉, 데이터는 어디에서 나오고 가는가 데이터가 일반적으로 사람이 직접 작성하는 경우 텍스트 편집기를 통해 조작 할 수있는 형식으로 저장하는 것이 좋습니다. 예를 들어, 프로그램 소스 코드는 일반적으로 정당한 이유가있는 사람으로 읽을 수있는 것으로 저장됩니다. 그러나 버전 제어 시스템을 사용하여 보관하거나 공유하는 경우 스토리지 전략이 변경됩니다.

인간 형식은 필드에 문제가있는 경우 구문 분석 및 디버깅에 더 간단합니다 (예 : 필드에는 사양 에이 필드가 문자열이어야한다고 말하는 숫자가 포함되어 있음)도 인간 형식도 문제 영역에 더 가깝습니다.

나는 많은 데이터가있는 이진 형식을 선호하며 그를 구문 분석하기위한 소프트웨어가 있다고 확신합니다 :)

REST에 대한 Fielding의 논문을 읽을 때, 나는 "개념을 정말 좋아했습니다."건축 특성"; 고집 된 것은"가시성 "이었습니다. 그것이 우리가 여기서 이야기하는 것입니다. 데이터를 '볼 수있는'것입니다. 시스템을 디버깅 할 때 큰 이점이 있습니다.

다른 답변에서 누락 된 한 측면 : 의미론 시행.

사람이 읽기 쉬운 순간부터 바보 같은 메모장 사용자가 시스템에 공급할 데이터를 생성 할 수 있습니다. 이 데이터를 보장 할 방법이 없습니다. 시스템이 현명한 방식으로 응답 할 수있는 방법은 없습니다.

따라서 데이터를 메모장을받을 필요가 없으며 데이터를 확인하기보다는 유효한 데이터 (예 : API 사용)를 시행하려는 경우 인간 읽을 수있는 데이터를 피할 수 있습니다. 디버건 성이 문제 인 경우 (대부분 자주), API를 사용하여 데이터를 검사 할 수 있습니다.

인 읽을 수 있 같지 않은 쉽게 구문 분석하여 기계 코드입니다.

인간의 자연적인 언어를 예로 들어보겠습니다.:)기계 분석의 인간의 언어가 여전히 보류 중인 문제를 완전히 해결합니다.

그래서 동의 https://stackoverflow.com/a/714111/2727173 는 훨씬 더 깊은 통찰력에서 이 질문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top