이 사이트에서 OOO을 열려고 합니다.
윈도우 운영체제를 사용하는 유저분들이라면 웹 브라우저에서 "이 사이트에서 OOOO을 열려고 합니다." 라는 메시지 팝업을 볼 수 있습니다. 이는 특별한 규약을 통해 실행되는 규칙이 운영체제에 정의되어 있기 때문입니다. 대표적인 예로 discord 서비스가 웹으로 접근할 경우 아래의 그림과 같이 프로그램을 실행시키는 로직을 제공합니다.
아래와 같은 URL Protocol 을 웹 브라우저의 주소 표시줄에 입력하면 원하는 앱이실행됩니다.
만약 디스코드라면 아래와 같이 입력하면 됩니다.
discord:// => 디스코드 앱 실행
calculator:// => 계산기 앱 실행
어떤 원리로 실행되나요?
윈도우 운영체제에 한하여 레지스트리에 등록된 값을 참고하여 실행됩니다. Win + R 단축키를 통해 "실행" 프로세스를 띄웁니다. 그리고 regedit.exe 명령어를 입력합니다. 이는 레지스트리 편집기라는 윈도우 운영체제가 제공하는 도구입니다. 레지스트리라는 데이터 구조를 관리하는 역할을 합니다.
레지스트리는 크게 5개의 키로 나누어져 있습니다. 각각이 하는 역할은 상황에 따라 다릅니다. 여기서 우리가 주목해야할 키는 HKEY_USERS 입니다. 이 키 내에 discord:// 와 같은 설정이 숨겨져 있습니다.
마우스를 통해 HKEY_USERS 폴더를 확장하면 하위 정보가보입니다. 이중에 OOOOOO_Classes 와 같이 Classes 로 끝나는 키가 있습니다. 바로 우리가 찾는 위치입니다.
예시로 discord 를 찾아 볼 수 있습니다. Discord 폴더를 찾았다면 클릭해보면 URL Protocol 이라는 키가 보입니다. 이 키가 설정되어 있다면 discord:// 와 같은 URL Protocol 을 제공한다는 의미입니다.
그리고 하위에 shell\open\command 키의 값을 보면 어떤 명령이 실행되는지도 정의되어 있습니다.
지금까지 calculator:// 가 실행되는 원리를 살펴보았습니다.
이상입니다.
K-IN 드림.
'프로그래밍' 카테고리의 다른 글
Hyper-V, Ubuntu에서 가장 확실한 디스크 공간 확장 방법(gparted) (0) | 2025.01.21 |
---|---|
면접, 단일 장애점을 예방하는 Microservice Architecture 개념 분해 (53) | 2024.03.27 |
파이썬 버전관리, pipenv를 이용한 개발환경관리 (61) | 2024.03.21 |
면접, REST API vs RESTful API 란 무엇? (92) | 2024.03.19 |
코드 리뷰 주의사항, 선언(Declaration)과 정의(Definition)의 차이점 (78) | 2024.02.27 |