레지스트리

최근 수정 시각:
분류
 
다른 뜻 아이콘   사전적 의미의 registry에 대한 내용은 등기소 문서를, 패키지가 등록된 데이터베이스에 대한 내용은 패키지 관리자 문서의 레지스트리 부분을 참고하십시오.
win11 regedit
Windows 11의 레지스트리 편집기 모습
 
1. 개요2. 도입3. 구성
3.1. 값 형식3.2. 하이브 파일
4. 수정
4.1. *.reg
5. 주의 사항6. 기타7. 관련 문서

 

1. 개요[편집]

 
Microsoft Windows 시스템의 설정 및 구성 정보를 담고 있는 데이터베이스.
Windows Old Rege...
external/az64899...
Windows 8.1까지 사용한 아이콘
Windows 10부터 사용 중인 아이콘
편집기의 아이콘은 박살나거나 모이는 트위스티 퍼즐 모양으로, 레지스트리 하면 대번에 이 모양을 연상할 것이다. 여담으로 초창기 만들었던 도트 아이콘(Windows 3.1 시절이다)을 Windows 8.1까지 가져온 바 있다. 이 아이콘은 청록색이다.

레지스트리 편집기의 exe 명칭은 regedit으로, registry edit이다.

Windows 9x/NT4는 v4를 Windows 2000부터 v5를 사용한다.
 

2. 도입[편집]

 
Windows 3.x까지는 시스템 구성 정보를 ini 파일이나 다른 파일로 만들어 저장하였다.[1] 다만, 여러 군데 퍼져 있어 관리가 불편하고, 파일의 특성 자체가 쉽게 수정 가능하고 손상될 수 있기 때문에 Windows 95부터 레지스트리라는 개념이 추가되었다.
 

3. 구성[편집]

 
키, 값으로 구성되어 있다. 키는 폴더와 비슷한 개념이고, 값은 파일과 비슷한 개념이다. 그렇다고 같은 개념은 아니다. 사용 방법 자체는 비슷하지만 다르다.
  • HKEY_CLASSES_ROOT
    확장자 설정, 기타
  • HKEY_CURRENT_USER
    사용자 설정(프로그램 설정도 여기에 포함된다)
  • HKEY_LOCAL_MACHINE
    모든 사용자의 설정을 담고 있으며 시스템 정보도 포함된다.
  • HKEY_USERS
    각각의 사용자 프로파일에 대한 HKEY_CURRENT_USER 키와 일치하는 서브키를 담고 있다.
  • HKEY_CURRENT_CONFIG
    실행 시간에 수집한 자료를 담고 있다. 이 키에 저장된 정보들은 디스크에 영구적으로 저장되지는 않고 시동 시간에 생성된다고 한다.
  • HKEY_PERFORMANCE_DATA
    런타임 성능 데이터 정보를 제공한다. 기본적으로는 레지스트리 편집기에서 보이지 않고, 윈도우 API의 레지스트리 검색 함수를 통해 볼 수 있다.
  • HKEY_DYN_DATA
    윈도우 95, 윈도우 98, 윈도우 Me에서만 존재하며 NT에서는 컴퓨터 관리의 성능 모니터로 대체되었다. 플러그 앤 플레이를 비롯한 하드웨어 장치, 네트워크 성능 통계에 대한 정보를 포함한다. 이런 정보는 하드디스크에 저장되지 않는다고 한다. 플러그 앤 플레이 정보는 컴퓨터가 시작할 때 구성되며 메모리에 저장된다.
 

3.1. 값 형식[편집]

 
값에는 6개의 형식이 있다.
  • 문자열 값(REG_SZ): 말 그대로 문자열 값이다.
  • 이진값(REG_BINARY): 말 그대로 00부터 FF까지의 바이트를 사용하는 이진값이다.
  • DWORD(REG_DWORD): 32비트 DWORD 값. 16진수나 10진수 값을 저장한다. 프로그램에서 참을 1, 거짓을 0으로 하여 저장하는 경우가 많다.
  • QWORD(REG_QWORD): 64비트 QWORD 값. Windows Vista에서 추가되었다. 이름 때문에 64비트 윈도우에서만 사용할 수 있을 것 같지만, 실제로는 32비트 윈도우에서도 사용할 수 있다. 64비트는 그저 데이터 길이가 64비트라는 것을 의미할 뿐이다.[2]
  • 다중 문자열 값(REG_MULTI_SZ): 문자열을 다중으로 표현할 수 있다. 줄바꿈이 가능한 것을 알 수 있다.
  • 확장 가능한 문자열 값(REG_EXPAND_SZ): 문자열 값이지만 환경 변수를 포함할 수 있다.

이외에 잘 사용되지 않는 값 형식이 있는데, 레지스트리 편집기 내에서는 생성할 수 없고, *.reg 파일로 강제로 만들면 볼 수 있다. 모두 레지스트리 편집기 내에서는 이진값으로 인식하며, Windows XP 서비스 팩 3 기준으로 값 데이타를 hex(0):로 설정하면 REG_NONE, hex(5):는 REG_DWORD_BIG_ENDIAN, hex(6):는 REG_LINK, hex(8):는 REG_RESOURCE_LIST hex(9):는 REG_FULL_RESOURCE_DESCRIPTOR, hex(a):는 REG_RESOURCE_REQUIREMENTS_LIST라는 형식으로 저장된다.
 

3.2. 하이브 파일[편집]

 
레지스트리 정보가 저장되어 있는 파일은 '하이브'라고 부르며 시스템 폴더의 config 폴더에서 찾을 수 있다. 레지스트리 편집기 내에서 하이브 파일을 편집기 내에 가져올 수 있다. 다만 HKEY_LOCAL_MACHINE 키에만 불러올 수 있다. 또한 하이브 파일들은 커널에 의해 잠겨있어 접근할 수 없다. 즉 열 수도 없고 삭제하거나 복사할 수도 없다.
하이브 파일에 따른 레지스트리 경로
하이브 파일 위치
하이브 이름
레지스트리 경로
설명
%SystemRoot%\System32\config[3]
SOFTWARE
HKEY_LOCAL_MACHINE\SOFTWARE
윈도우 및 소프트웨어 전역 설정 정보[4]
SYSTEM
HKEY_LOCAL_MACHINE\SYSTEM
시스템 전역 설정 정보
SECURITY
HKEY_LOCAL_MACHINE\SECURITY[SYSTEM]
권한, 인증 도메인 등의 보안 관련 정보
SAM
HKEY_LOCAL_MACHINE\SAM[SYSTEM]
사용자 별의 암호화된 비밀번호 저장소
%USERPROFILE%[7]
NTUSER.DAT[8]
HKEY_CURRENT_USER
각 윈도우 계정의 HKEY_CURRENT_USER 키
 

4. 수정[편집]

 
레지스트리 편집기를 쓰면 된다. 윈도우+R 키를 누르면 실행창이 뜨는데. regedit를 입력하고 실행하면 된다. Vista 이후에는 관리자 권한은 필수다.

레지스트리 관련 API는 MSDN의 Registry Functions에서 확인하면 된다.
 
 
reg 확장자를 이용해 클릭 한번으로 레지스트리에서 키/값을 추가하거나 수정 또는 삭제할 수 있다.
.reg 파일 내용 예시
Windows Registry Editor Version 5.00/REGEDIT4[9]

[HKEY_CURRENT_USER\test]
"DWORD"=dword:00000001
"QWORD"=hex(b):02,00,00,00,00,00,00,00
"다중 문자열"=hex(7):e4,b2,11,c9,00,00,38,bb,90,c7,f4,c5,00,00,00,00
"이진"=hex:00,00,00,00,00,00,00,00
"문자열"="문자열"
"확장 가능한 문자열"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f, 00,74,00,25,00,00,00

[HKEY_CURRENT_USER\test\test2]
"문자열"="Hello, World!"

[(레지스트리 경로)]는 키를 설정하는 부분으로 그 아래에 키 안에서 값을 추가하거나 수정, 삭제할 수 있다. [-(레지스트리 경로)]으로 하면 해당 키는 삭제된다. 값 설정은 "(이름)"=(데이터)하면 되는데 형식에 따라 데이터가 달라진다. (데이터) 부분을 -로 설정하면 해당 값은 삭제된다.

레지스트리 편집기 내에서 선택한 키를 .reg 파일로 저장하여 내보낼 수 있다.
 

5. 주의 사항[편집]

 
레지스트리는 운영 체제의 설정 및 정보까지 담고 있는 데이터베이스라서 레지스트리 수정에 대한 지식이 없다면 수정하는 행위를 하지 않는게 좋다. 잘못 수정했다간 문제가 생기거나 심하면 부팅 불능으로 이어질 수도 있다. 이런 경우는 복구하면 되지만 복구조차도 할 수 없다면 윈도우를 재설치하거나 AS 수리점에 맡겨야 하는 위험 부담이 있다. 레지스트리를 수정하기 전에 미리 복구나 백업을 해두거나 찾기 기능을 활용하자.[10]

요즘은 system32[11] 폴더 삭제 낚시처럼 지식인에 올라오는 사람들에게 레지스트리를 지우라고 답변을 해 줘서 여기에 낚인 사람들이 컴퓨터 한대를 그냥 날려먹는 사례가 있다. 더 무서운 건 system32 폴더를 날려먹어도 부팅하면서 복구가 가능하지만 레지스트리를 몽땅 날리면 복구조차 어렵다는 것이다.[12]

사실, 이렇게 잘못 건드리면 치명적인 문제를 일으킬 수 있는 레지스트리를 아무나 접근할 수 있다는 것 자체가 문제점이자 장점이라고 볼 수 있다. macOS의 경우 레지스트리 같은[13] OS 내부 설정은 일반 사용자가 접근할 수 없도록 막아놓았다. 물론 관리자 권한을 요구하기는 하지만 윈도우 사용자의 태반은 관리자 계정이 기본 세팅이라(...)
 

6. 기타[편집]

 
Windows XP까지는 정품 인증을 미루거나 원래대로라면 지원되지 않았을 업데이트를 라이선스 위반해가며[14] 설치할 수 있게 만들어주는 등 시스템 해킹에 사용되었다. POSready 2009용 업데이트를 일반 XP에 설치하는 행위를 보고 MS에서는 '레지스트리 해킹'이라고 부르며 비판하는 인터뷰를 한 적이 있다. # POSready 2009도 현 시점에선 완전히 죽었으니 아무래도 좋은 소리가 되었다.


레지스트리 키들을 전부 삭제하면 어떻게 되는지 보여주는 영상이다. 다만 권한 등 문제로 전부 삭제할 수는 없다.

파일 탐색기 형식의 RegCool도 존재한다.

레지스트리의 성질을 이용한 게임도 등장했다. 자세한 건 Execution 문서 참고.
 

7. 관련 문서[편집]

 
[1] 다만 regedit.exe 자체는 3.1부터 추가되기는 하였으나 파일 형식 위주로 저장되었으며 INI가 많이 사용되었다.[2] 다만 윈도우 XP SP3에서 *.reg 파일로 값 데이터를 hex(b):로 설정하여 병합하면 XP에서도 REG_QWORD를 볼 수 있다.[3] 쉽게 말해 C:\Windows\System32\config[4] 정품인증 정보 등[SYSTEM] 5.1 5.2 SYSTEM 권한이 없으면 접근 불가능[7] 윈도우 10 기준 C:\Users\(사용자 이름)[8] 윈도우 사용자 계정마다 이 파일이 존재한다.[9] reg 파일 작성 시 맨위에 반드시 있어야 한다. 왼쪽은 Windows 2000 이상, 오른쪽은 Windows 9x, Windows NT 3.x, Windows NT 4.0. Windows 3.1용 레지스트리 파일은 REGEDIT이지만 현재 버전의 윈도우와는 호환되지 않는다. 여담으로 윈도우 7 기준 그냥 REGEDIT으로 시작하고 뒤에 아무 문자열을 넣어도 정상적인 reg 파일로 인식한다(...).[10] 단축기는 Ctrl+F, 혹은 '편집>찾기'로 들어가 찾고 싶은 레지스트리를 검색할 수 있다.[11] 참고로 System32는 윈도우에서 실행중이기 때문에 지워지지가 않는다.[12] 여담으로 레지스트리의 하이브 파일은 system32 내의 디렉토리인 config 안에 있다.[13] macOS 같은 유닉스 계열 운영체제들은 기본적으로 레지스트리를 보유하고 있는 구조가 아니다. 비슷한 역할을 하는 root 관련 시스템은 존재하지만 레지스트리랑은 엄연히 다른 체계.[14] 클라이언트 윈도우를 임베디드 윈도우로 인식시키는 꼼수으로 엄연히 라이선스 위반이기는 하다. 다만 XP 자체가 퇴물인지라 MS에서도 딱히 손 쓸 이유가 없다. 또한 인터뷰에서도 라이선스 위반을 언급하지도 않았다.

크리에이티브 커먼즈 라이선스
이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외)
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.

나무위키는 백과사전이 아니며 검증되지 않았거나, 편향적이거나, 잘못된 서술이 있을 수 있습니다.
나무위키는 위키위키입니다. 여러분이 직접 문서를 고칠 수 있으며, 다른 사람의 의견을 원할 경우 직접 토론을 발제할 수 있습니다.

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
더 보기