GUID 만들기 및 최적화
IID(인터페이스 식별자)와 같은 CLSID는 GUID이므로, 누가 작성하든 다른 클래스에는 중복 CLSID가 있습니다. 서버 구현자는 일반적으로 CoCreateGuid 함수를 통해 CLSID를 가져옵니다. 이 함수는 고유한 CLSID를 생성하도록 보장되므로 전 세계의 서버 구현자는 다른 사용자가 작성한 소프트웨어와 실수로 충돌할 걱정 없이 독립적으로 소프트웨어를 개발하고 배포할 수 있습니다.
CLSID는 기본 구현에 사용되는 이름에 연결되지 않으므로 고유한 CLSID를 사용하면 클래스 간에 이름이 충돌할 가능성이 없습니다. 예를 들어 두 공급업체는 "StackClass"라는 클래스를 작성할 수 있지만 각각에는 고유한 CLSID가 있으므로 혼동할 수 없습니다.
COM은 GUID(IID 및 CLSID)를 임의로 큰 일부 다른 값 집합에 매핑해야 하는 경우가 많습니다. 애플리케이션 개발자는 연속 값 블록으로 애플리케이션에 대한 GUID를 생성하여 이러한 검색 속도를 높이고 시스템 성능을 향상시킬 수 있습니다.
연속 GUID 블록을 생성하는 가장 효율적인 방법은 -n 및 -x 스위치를 사용하여 uuidgen 유틸리티를 실행하는 것입니다. 이 스위치는 각각 첫 번째 DWORD 값이 하나씩 증가되는 UUID 블록을 생성합니다.
예를 들어 를 입력하는 경우
uuidgen -n5 -x
uuidgen 유틸리티는 다음과 유사한 UUID 블록을 생성합니다.
12340001-4980-1920-6788-123456789012
12340002-4980-1920-6788-123456789012
12340003-4980-1920-6788-123456789012
12340004-4980-1920-6788-123456789012
12340005-4980-1920-6788-123456789012
전체 프로젝트에 대한 GUID를 생성하고 추적하는 한 가지 방법은 임의로 많은 수의 UUID 블록을 생성하는 것으로 시작합니다(예: 500). 예를 들어 를 입력하는 경우
uuidgen -n500 -x > guids.txt
유틸리티는 500개의 연속 UUID를 생성하고 지정된 텍스트 파일에 씁니다. 그런 다음 이 파일을 원본 트리에 검사 프로젝트에서 사용할 모든 GUID에 대한 단일 리포지토리를 제공할 수 있습니다. 사용자는 프로젝트의 부분에 GUID가 필요하므로 파일을 검사 필요한 GUID를 여러 개 가져와서 가져온 것으로 표시하고 코드 또는 "사양"에서 사용하는 위치에 대한 메모를 남길 수 있습니다.
시스템 성능을 개선하는 것 외에도 이러한 방식으로 연속 GUID 블록을 생성하면 다음과 같은 이점이 있습니다.
- 애플리케이션에 대한 모든 GUID가 포함된 중앙 파일을 사용하면 어떤 GUID가 어떤 GUID이고 어떤 사용자가 사용하는지 쉽게 추적할 수 있습니다.
- 특정 애플리케이션과 연결된 연속 GUID 블록은 개발자와 테스터가 디버깅 중에 내부 GUID를 인식하는 데 도움이 되며 순차적으로 저장되기 때문에 시스템 레지스트리에서 쉽게 찾을 수 있습니다.
관련 항목