GUID는 정확히 무엇입니까? 왜 그리고 어디서 사용해야합니까?
GUID는 정확히 무엇입니까? 왜 그리고 어디서 사용해야합니까?
나는 많은 곳과 위키피디아에서 GUID에 대한 참조를 보았지만 그것을 어디에서 사용해야하는지 명확하지 않습니다. 누군가가 대답 할 수 있다면 좋을 것입니다. 감사
GUID는 기술적으로 전역 적으로 고유 한 식별자를 나타냅니다. 실제로 그것은 반복되거나 충돌을 일으킬 가능성 이 거의없는 128 비트 구조입니다 . 수학을한다면 값의 영역은 십진수 단위 입니다.
고유해야하는 ID를 생성하는 여러 독립 시스템 또는 클라이언트가있는 경우 guid를 사용하십시오.
예를 들어, ID에 고유 한 제약 조건이있는 테이블에 트랜잭션 데이터를 만들고 삽입하는 5 개의 클라이언트 앱이있는 경우 guid를 사용합니다. 이렇게하면 클라이언트가 먼저 서버에서 발급 된 ID를 요청하도록 강제 할 필요가 없습니다.
이는 두 개체가 동일한 ID를 갖지 않도록하는 여러 개체 유형이 서로 다른 테이블에 저장되어있는 개체 팩토리 및 시스템에도 유용합니다. 이를 통해 스키마 캐싱 및 청소를 훨씬 쉽게 구현할 수 있습니다.
GUID는 "Globally Unique IDentifier"입니다. 서로 다른 식별자가 필요한 모든 곳에서 사용합니다.
일반적으로 "로컬 고유"값만 필요합니다. 예를 들어 데이터베이스 테이블의 기본 키 ID는 해당 테이블의 다른 행과 만 달라야하지만 다른 테이블의 ID와 동일 할 수 있습니다. . (여기에는 GUID가 필요 없음)
GUID는 일반적으로 다른 사람 (컨트롤 외부)이 정의 할 ID와 달라야하는 ID를 정의 할 때 사용됩니다. ActiveX 컨트롤의 인터페이스 식별자에서 이러한 위치 중 하나입니다. 누구나 ActiveX를 만들 수 있으며 다른 사람이 ActiveX를 사용할 다른 컨트롤이 무엇인지 알 수 없으며 모든 사람이 자신의 컨트롤에 동일한 이름을 지정하는 것을 막을 수 없습니다. GUID는 구별을 유지합니다.
GUID는 시간 (초 단위) (이전 또는 이후에 정의 된 GUID와 다를 수 있음)과 위치를 정의하는 숫자 (네트워크 카드의 MAC 주소에서 가져옴)의 조합입니다. (따라서 다른 사람이 지금 정의한 다른 GUID와는 다를 수 있습니다.)
UUID (범용 고유 ID)라고도합니다.
다른 모든 답변 외에도 온라인 GUID 생성기가 있습니다 .
GUID 란 무엇입니까?
GUID (또는 UUID)는 'Globally Unique Identifier'(또는 'Universally Unique Identifier')의 약어입니다. 자원을 식별하는 데 사용되는 128 비트 정수입니다. GUID라는 용어는 일반적으로 Microsoft 기술을 사용하는 개발자가 사용하는 반면 UUID는 다른 모든 곳에서 사용됩니다.
GUID는 얼마나 고유합니까?
128 비트는 충분히 크고 생성 알고리즘은 1 년 동안 초당 1,0000,000,000 개의 GUID가 생성 된 경우 중복 가능성이 50 %에 불과할 정도로 고유합니다. 또는 지구상의 모든 인간이 600,000,000 개의 GUID를 생성했다면 복제 확률은 50 %에 불과합니다.
GUID는 어떻게 사용됩니까?
GUID는 소프트웨어 개발에서 데이터베이스 키, 구성 요소 식별자 또는 진정으로 고유 한 식별자가 필요한 거의 모든 곳에서 사용됩니다. GUID는 COM 프로그래밍에서 모든 인터페이스와 개체를 식별하는데도 사용됩니다.
GUID는 "Globally Unique ID"입니다. UUID (Universally Unique ID)라고도합니다.
기본적으로 중복 생성을 거의 불가능하게 만드는 방식 (RFC 4112 http://www.ietf.org/rfc/rfc4122.txt 참조 ) 으로 생성되는 128 비트 숫자입니다 . 이렇게하면 고유한지 확인하기 위해 일부 타사 조직에서 제공하지 않아도 GUID를 생성 할 수 있습니다.
GUID를 널리 사용하는 방법 중 하나는 Windows의 COM 엔터티 (클래스, typelib, 인터페이스 등)에 대한 식별자입니다. GUID를 사용하여 개발자는 고유 식별자를 얻기 위해 Microsoft에 가지 않고도 COM 구성 요소를 구축 할 수 있습니다. COM 엔터티 식별은 GUID의 주요 용도이지만 고유 식별자가 필요한 많은 항목에 사용됩니다. 일부 개발자는 데이터베이스 레코드에 대한 GUID를 생성하여 여러 데이터베이스에서 고유해야하는 경우에도 사용할 수있는 ID를 제공합니다.
일반적으로 GUID는 누구나 언제든지 생성 할 수있는 일련 번호로 생각할 수 있으며 일련 번호가 고유하다는 것을 알 수 있습니다.
고유 식별자를 얻는 다른 방법은 도메인 이름을 얻는 것입니다. 도메인 이름의 고유성을 보장하려면 일부 조직에서 가져와야합니다 (최종적으로 ICANN에서 관리).
GUID는 다루기 어려울 수 있기 때문에 (사람이 읽을 수있는 관점에서 볼 때 일반적으로 다음과 같이 그룹화되는 16 진수 문자열입니다. aaaaaaaa-bbbb-cccc-dddd-ffffffffffff) 다른 조직에서 고유 한 이름이 필요한 일부 네임 스페이스는 다른 체계 ( 종종 인터넷 도메인 이름을 기반으로 함).
따라서 규칙에 따라 Java 패키지의 네임 스페이스는 조직의 도메인 이름 (반전)으로 시작하고 그 뒤에 조직 특정 방식으로 결정된 이름이 이어집니다. 예를 들어 Java 패키지의 이름은 다음과 같습니다.
com.example.jpackage
이것은 이름 충돌을 다루는 것이 각 조직의 책임이됨을 의미합니다.
XML 네임 스페이스도 유사한 방식으로 고유하게 만들어집니다. 일반적으로 XML 네임 스페이스를 만드는 사람은 자신이 제어하는 등록 된 도메인 이름 '아래'로 만들어야합니다. 예를 들면 :
xmlns="http://www.w3.org/1999/xhtml"
고유 ID를 관리하는 또 다른 방법은 이더넷 MAC 주소입니다. 이더넷 카드를 만드는 회사는 IEEE에서 할당 한 주소 블록을 가져와야합니다 (IEEE라고 생각합니다). 이 경우 체계는 꽤 잘 작동했으며 제조업체가 중복 된 MAC 주소가있는 카드를 조여서 발급하더라도 해당 카드가 동일한 서브넷에 있지 않는 한 정상적으로 작동합니다. 서브넷을 넘어 IP 만 가능하기 때문입니다. 주소는 패킷을 라우팅하는 데 사용됩니다. 영향을받을 수있는 MAC 주소의 다른 용도가 있지만 GUID를 생성하는 알고리즘 중 하나는 MAC 주소를 하나의 매개 변수로 사용합니다. 이 GUID 생성 방법은 개인 정보 위협으로 간주되기 때문에 더 이상 널리 사용되지 않습니다.
잘 작동하지 않는 고유 식별자를 제공하는 체계의 한 예는 Microsoft가 Windows 9x에서 'VxD'드라이버에 대해 제공 한 ID입니다. 타사 VxD 드라이버 개발자는 타사가 작성한 드라이버에 사용할 ID 세트를 Microsoft에 요청해야했습니다. 이런 식으로 Microsoft는 중복 ID가 없는지 확인할 수 있습니다. 안타깝게도 많은 드라이버 작성자가 신경 쓰지 않았으며 시작점으로 사용한 VxD 예제에있는 ID를 간단히 사용했습니다. 이로 인해 얼마나 많은 문제가 발생했는지 잘 모르겠습니다. VxD ID 고유성이 절대적으로 필요하다고 생각하지 않지만 일부 API의 일부 기능에 영향을 미칠 수 있습니다.
GUID 또는 UUID (전역 대 범용) 고유 IDentifier는 고유 ID입니다. :) 정말 고유 한 컴퓨터 생성이 필요할 때이를 얻을 수있는 라이브러리가 있습니다.
자세한 내용 은 wikipedia의 GUID를 참조 하십시오.
GUID가 필요하지 않은 경우 제어하는 카운터 (SERIAL SQL 유형 또는 시퀀스와 같은 한 방향 또는 다른 방향)가 증가 할 때입니다. "텍스트"값 (텍스트 형식의 GUID) 또는 128 비트 이진 값 (GUID)을 인덱싱하는 것은 정수보다 훨씬 비쌉니다.
누군가는 그것들이 개념적으로 128 비트 임의의 값이라고 말했고 그것은 실질적으로 사실이지만 UUID (GUID는 일반적으로 Microsoft의 UUID 구현을 나타냄) 에 대해 약간 읽었 으므로 몇 가지 다른 UUID 버전이 있으며 대부분이 실제로 무작위가 아닙니다. 따라서 기계 (또는 다른 것)에 대한 UUID를 생성하고 해당 프로세스를 안정적으로 반복하여 도로에서 동일한 UUID를 얻을 수 있습니다. 이는 일부 애플리케이션에 중요합니다.
저에게는 단순히 "128 비트 임의 값"이라고 생각하는 것이 더 쉽습니다. 본질적으로 그들이 무엇인지입니다. GUID의 몇 자릿수에 약간의 정보를 포함하는 몇 가지 알고리즘이 있지만 (따라서 임의의 부분이 약간 작아짐) 여전히 매우 큰 거의 임의의 값입니다.
Since they are so large, it is extremely unlikely that two GUIDs will ever be generated that are the same. For all practical purposes, every GUID ever generated is unique in the world.
I'll leave it to you to figure out where to use them, but other answers already have some examples. Let your imagination run wild. :)
Can be a hard thing to understand because of all the maths that goes on behind generating them. Think of it as a unique id. You can get Visual Studio to generate one for you, or .NET if you happen to be using C# or one of the many other applications or websites. They are considered unique because there is such a silly small chance you'll see the same one twice that it isn't worth considering.
128-bit Globally Unique ID. You can generate GUIDs from now until sunset and you never generate the same GUID twice, and neither will anyone else. They are used a lot with COM.
As for example of something you would use them for, we use them in one of our products. Our users can generate categories and cards on various devices. We want to make sure that we don't confuse a category made on one device with a category created on a different one, so it's important that IDs are unique no matter who generates them, where they generate them, and when they generate them. So we use GUIDs (actually we use our own scheme using 64-bit numbers but they are similar to GUIDs).
I worked on an ACD call center system a few years back where we wanted to gather call detail records from multiple call processors into a single database. I setup a column in MS SQL to generate a GUID for the database key rather than using a system-generated sequential ID (identity column). Back then, this required setting the default value to NewID (or generating it in the code, but the NewID() function was safer). Of course, having a large value for a key may raise a few eyebrows, but I would rather give up the space than risk a collision.
I didn't see anyone address using a GUID as a database key so I thought it might help to know you could do that too.
GUID = Global Unique IDentifier.
Use it when you want to uniquely identify something in a global context.
This generator can be handy.
GUID stands for "Globally Unique Identifier" and you use it when you want to have, erm, a Globally Unique Identifier.
In RSS feeds, for example, you should have a GUID for each item in the feed. That way, the feed reader software can keep track of whether you have read that item or not. Without a GUID, it would be impossible to tell.
A GUID differs from something like a database ID in that no matter who creates an object -- you, me, the guy down the street -- our GUIDs will always be different. There should be no collisions using a GUID.
You'll also see the term UUID, which stands for "Universally Unique Identifier." There is essentially no difference between the two. UUID is the more appropriate term. GUID is the term used by Microsoft.
If you need to generate an identifier that needs to be unique during the whole lifetime of your application, you use a GUID.
Imagine you have a server with sessions, if you give each session a GUID, you are certain that it will be unique for every session ever created by your server. This is useful for tracing bugs.
One particularly useful application of GUIDs that I've found is using them to track unique visitors in webapps where the visitors are anonymous (i.e. not logged in or registered).
The Wikipedia article on GUIDs is pretty clear on what they are used for - maybe rephrasing your question would help - what do you need a GUID for?
참고URL : https://stackoverflow.com/questions/371762/what-exactly-is-guid-why-and-where-i-should-use-it
'Program Tip' 카테고리의 다른 글
Objective-C를 사용하여 다중 파트 / 양식 데이터 POST (0) | 2020.11.29 |
---|---|
rspec으로 ActionMailer delivery_later를 테스트하는 방법 (0) | 2020.11.29 |
Java의 void 메소드에서 return 키워드는 무엇을합니까? (0) | 2020.11.29 |
jQuery.validation에서 같지 않음 규칙을 추가하는 방법 (0) | 2020.11.29 |
웹킷에 예기치 않은 토큰이 잘못되었습니다. (0) | 2020.11.29 |