일부 기술이 "표준"인 경우 무엇을 의미합니까?


16

Java EE 7을 배우기 시작했고이 용어 "표준"을 자주 접하게되는데 그 의미를 이해하지 못합니다.

예를 들어이 책 에서 인용 한 내용은 다음과 같습니다.

W3C 표준에 의존하는 SOAP 및 WS- * 스택과 달리 REST에는 표준이 없으며 디자인 원칙을 가진 단순한 스타일의 아키텍처입니다. REST 애플리케이션은 HTTP, URI, URL 등 다른 많은 표준에 크게 의존합니다.

나는 그것이 무엇을 의미하는지에 대한 아이디어를 가지고 있지만 확실하지 않습니다.

내가 만난 가장 좋은 설명은 여기 에서의 정의입니다 .


7
기술 표준 에 대한 위키 페이지를 읽으십시오 . 그러나 실제로 유행어 일 수 있습니다 . 표준은 일반적으로 사양이므로 C ++ 11 및 Posix 는 표준입니다.
— Basile Starynkevitch

그것은 그것을 밀고있는 사람이 당신이 그것을 사도록 설득하려고한다는 것을 의미합니다.
— bmargulies

답변:


21

프로그래밍에서 "표준"이라는 용어는 종종 그룹이나 커뮤니티가 관리하는 기술 / 문서를 나타냅니다. 이 그룹의 구성원은 종종 공통 투자 목표를 공유하고 해당 기술을 적극적으로 사용하며 기술을 계속 유지하기를 원합니다.

프로그래밍에는 커뮤니티를 관리하는 많은 "사물"이 있습니다. 이 멤버는 프로그래머부터 회사 대표 (예 : Apple, Microsoft, IBM 등)에 이르기까지 다양합니다.

W3C는 많은 표준을 정의하기 위해 함께 작동하는 매우 큰 그룹입니다.

다음은 회원 목록입니다.

http://www.w3.org/Consortium/Member/List

REST는 기술의 예이며, 많은 사람들이 대중적으로 사용하는 기술이지만이를 관리하는 그룹이나 커뮤니티는 없습니다. 따라서 손가락을 가리켜 "표준이 그렇게해야한다고 말하는 곳"이 없습니다 .

IBM, Microsoft 및 기타 회사와 같은 회사는 REST를 구현하는 방법에 대한 문서를 공개했습니다. REST를 구현하는 "일반적인 방법"이 있다고 말할 수 있습니다. REST 구현을 설명 하는 신뢰할 수 있는 소스 를 선택하고 해당 참조를 따르도록 주장 할 수 있습니다. 신뢰할 수있는 출처를 사용하는 것은 웹 브라우저의 호환성 문제를 해결하는 한 가지 방법입니다.


4
예를 들어,

2
@Snowman 모든 RFC가 표준 추적은 아닙니다 . 나는 대부분 이 아니라고 생각 합니다. 또한 링크 된 페이지의 상단을 볼 수 있듯이 RFC 2616은 RFC 7230-7235에 의해 사용되지 않으며 대신 참조되어야합니다. 또한,이 표준은 "인터넷 표준"이 아닌 "제안 된 표준" 일뿐입니다 (둘 다 표준 트랙이지만 후자는 훨씬 더 성숙하고 변경 될 가능성이 없습니다).
— Bob

@ Snowman : 귀하의 의견은 실제로 가장 중요한 것을 보여줍니다. 표준은 사람들이 표준이라고 동의 할 때입니다. 실제로 RRF 페이지를 보면 수백 개의 RFC가 있지만 실제로는 78 개의 표준 만 있음을 알 수 있습니다. 그리고 당신이 언급 한 HTTP는 실제로 표준 이 아닙니다 ! 그것은 단지 "의견"에 대한 의견 요청, 즉 누군가가 그가 논의하고 싶어한다는 생각입니다. HTTP를 표준으로 만드는 것은 일부 치리회가이를 공개하는 것이 아니라 (문제의 치리회가 실제로이를 "표준"이라고 부르지 않기 때문에) 사람들이이를 표준으로 취급하기 때문입니다.
— Jörg W Mittag

JörgWMittag 난 항상 표준을 찍은 @ 뭔가 방법을 알리는 신뢰할 수있는 소스에서 발표 한 문서가 될 수 . 문제는 사람들이 권위있는 출처에 동의하지 않는 반면 다른 사람들은 권위있는 권한을 남용하는 것입니다 (예 : Microsoft와 Apple이 좋은 예입니다). 그들은 종종 표준을 무시하거나 강요하려고합니다. 표준은 종종 대기업이 느끼지 않는 느낌 일 수 있습니다.
— Reactgular September

1
@Mathew "저는 항상 어떻게해야하는지 설명하는 권위있는 출처에서 발행 한 문서로 표준을 채택했습니다." -귀하의 의견에이 문장에 동의하지만, 귀하의 답변에 따르면 '표준'이라는 용어는 기술 자체를 나타냅니다. (예를 들어, Java는 표준이고 Java EE 7 사양은 표준이 아닙니다.) 이전 버전은 Oracle 또는 W3C와 같은 조직 이 '표준'의 의미 라고 말했습니다 . 여기서 의미하는 바를 말하도록 답변을 업데이트해야합니다. 있는 그대로, 귀하의 답변에 잘못된 정보가 포함되어 있습니다. :(
— doppelgreener

10

표준은 기술의 작동 방식을 지정하는 기술 문서입니다. (일부 기술의 경우 다른 종류의 기술 표준 일 수 있습니다 .) 이것이 전부이며 그 이유는 문서이며 기술을 설명합니다.

이 문서는 기술이 작동하는 방식을 결정하고 사양 문서를 표준으로 공개 할 때 사람들이 관심을 갖도록하는 데 필요한 권한과 신뢰를 가진 관리 기관이 작성합니다. 관리기구는 다른 기술이나 다른 버전의 기술에 대해 많은 표준을 생성 할 수 있습니다. 치리회는 표준의 관리자, 저자, 관리인 등으로도 알려져 있습니다.

(Mathew의 설명과 달리 표준은 치리회 나 기술 자체가 아닙니다 . 기술 이나 특정 버전을 설명 하는 문서 입니다.)

언급 한 기술 (및 기타)에 대한 몇 가지 표준 예 :

HTML은 다른 버전의 언어가 종종 다른 표준을 가지고 있다는 사실의 좋은 예입니다. 다양한 버전은 다양한 버전의 언어를 처리하는 방법을 설명하는 서로 다른 문서를 가지고 있습니다.

한편, HTTP 는 그룹 간에 이동하는 표준의 많은 예 중 하나입니다 . 먼저 네트워크 작업 그룹에서 HTTP 작업 그룹으로 이동 한 다음 두 그룹 모두 IETF의 일부입니다. 다른 기술은 이동 한 회사 사이에 같은 HTML (다시)로, 버전 2는 그 중 한 RFC1866의 IETF에 의해 작성된 .

표준이 존재하는 이유는 무엇입니까?

그것들은 우리에게 일이 어떻게 작동하는지 보장하기 위해 존재합니다.

HTML5 사양은 다양한 브라우저가 표준을 올바르게 구현한다고 가정했을 때 HTML5 마크 업을 처리하고 표시하는 방법을 알려줍니다 (이전에는 문제가되었습니다). C ++ 11 표준은 내가 작성하거나 수행하지 않을 다양한 C ++ 11 코드에 대해 알려줍니다.

마찬가지로, 브라우저를 작성 하는 경우 HTML5 표준은 사람들이 기대하는 것을 얻을 수 있도록 다양한 HTML5 마크 업을 어떻게 처리해야하는지 알려줍니다. C ++ 11 컴파일러를 작성하는 경우 C ++ 11 표준은 언어를 올바르게 구현하고 사람들의 코드가 예상대로 작동하도록하기 위해 수행해야 할 작업을 알려줍니다.

예를 들어, Microsoft는 C #을 작성합니다. C # Language Specification 5.0 을 직접 다운로드 할 수 있습니다 . 이 문서는 작성한 C # 코드가 실제로 사양을 올바르게 구현하는 모든 컴파일러에서 사양에 설명 된 방식으로 작동해야한다는 약속입니다.

( 사양 이외의 작업을 수행하는 경우 정의되지 않은 영역에 있으며 발생하거나 발생하지 않을 일에 대한 보증이 없습니다.)

역사적으로 표준은 나사산 과 같은 것으로 돌아갑니다 . 따라서 X 타입의 나사를 주문하면 내가 뚫은 구멍에 맞으며 X 타입의 다른 나사와 호환 될 수 있음을 보증 할 수 있습니다.

"standard"이라는 단어의 정의로 되돌아갑니다 .

다른 사람들이 판단하거나 측정하는 것에 대한 승인되거나 승인 된 예 -Collins Dictionary

양적 또는 질적 가치에 대한 인정 된 비교 측정 기준. — American Heritage® Stedman 's Medical Dictionary

즉, 당신이 기대하는 것을 얻을 수 있도록 물건을 비교하는 것.


1
ECMA에서 발행 한 C #, .NET, CLR 및 C ++ / CLR에 대한 표준도 있으며 ISO로 빠르게 추적됩니다. ISO에는 HTML 표준도 있으며 ISO HTML 1.0은 W3C HTML 4.01 Strict의 하위 집합입니다.
— Jörg W Mittag

4

기술 표준은 동일한 표준의 두 가지 구현이 상호 운용 가능하거나 상호 교환 가능할 것으로 예상되는 사양입니다. 예 : USB, Bluetooth, Java EE7, HTTP

그런 다음 "사실상"표준이 있습니다. 상호 운용성을 가능하게하지만 명시 적으로 합의 된 사양이없는 규칙입니다. 예 : 많은 제품이 DOC를 읽고 쓸 수 있었지만 표준 사양을 사용할 수 없었기 때문에 Microsoft DOC 형식은 역사적으로 사실상 표준이었습니다. 문서는 여전히 모든 수신자가 읽을 수있을 것으로 기대되는 DOC 형식으로 배포되었으므로 사실상 표준이되었습니다.

특정 예를 해결하기 위해 REST에는 명시 적으로 합의 된 사양이 없으므로 실제 표준이 아니며, 실제로 올바르게 수행되어야하는 방식에 상당한 모호함이 있으며, 주요 구현이 존재하지 않기 때문에 사실상의 표준은 아닙니다. 이러한 모호성을 해결합니다. (저는 REST에 반대하지 않습니다. 웹 서비스를 구축하는 매우 좋은 방법입니다)


1

표준은 공식 규격에 의한 표준 컨벤션이거나 공통 컨벤션이 지배적 일 정도로 인기를 얻었 기 때문에 표준화 된 컨벤션입니다.

A de jure standard는 표준위원회에서 발표 한 사양입니다. 일부 표준위원회는 ISO, ECMA, DIN, ANSI 및 W3C입니다.

예를 de jure standards들어 A4 용지 크기 (ISO 표준 219), c # 언어 (ECMA-334) 등이 있습니다.

'사 법률'이라는 용어는 거의 사용되지 않으며 '사 법률 기준'은 종종 표준이라고합니다.

사실상의 표준은 대중의 수용 또는 시장 세력에 의해 지배적 인 입지를 확보 한 관습, 협약, 제품 또는 시스템입니다. "

(출처 : Wikipedia- 나는 그것을 더 잘 쓸 수 없었다)

사실상의 표준이 반드시 공식적인 사양을 따르지는 않습니다.

Gudmundur Orn 이이 답변 에서 썼 듯이 Microsoft Office DOC 형식은 사실상 표준이었습니다. 그것은 지배적 인 위치에 있었고, 사람들은 MS Word 문서를 읽을 수 있다고 일반적으로 가정했습니다.

JSON은 사실상 표준으로 시작된 재미있는 짐승입니다. 그러나 이후 ECMA-404 로 공식화 되었으므로 이제는 '법정 표준'이되었습니다.

그러나 그것은 또한 HTTP 기반 API와 데이터를 교환하기위한 주된 형식입니다 (내 지식으로). 따라서이 목적을 '사실상 표준'으로 만듭니다.


-4

법적 제품 책임의 경우 결함은 디자인, 제조 또는 문서로 분류됩니다. 표준에 기반을 둔 표준에 결함이 있든 없든 설계에는 결함이 없습니다. 적용되는 표준은 제품을 만들 때의 표준입니다. 표준은 공개 표준 (ISO)이거나 표준 협회에서 공개하지 않은 허용 산업 표준 일 수 있습니다. 따라서 스푸핑과 같은 고유 한 결함이 모두있는 TCP / IP는 표준이며 VOIP와 같은 새로운 기술을 만들고 기본 기술의 알려진 문제로부터 사용자를 보호하기 위해 아무 작업도하지 않으면 신체 상해를 계속하는 것이 안전합니다. 또는 내가 잘못하고 여기에 문서 결함이있을 수 있습니다 ...


3
정의에 따르면 표준에는 결함이있을 수 없습니다. 그러나 표준을 올바르게 구현 한 제품은 결함이있을 수 있으며 목적에 맞지 않습니다. 제품이 의도 한 목적의 요구 사항을 충족하지 않으면 결함이있는 표준을 얼마나 또는 얼마나 잘 준수하든 상관 없습니다.
— Lie Ryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.