📖
인터페이스의 색상을 어둡게 해 가시성과 가독성을 향상시키고 배터리 절약을 돕는 다크 모드. 2010년 후반 이후 거의 필수적인 기능이 되었습니다. 다크 모드의 기능을 지원하고 있는 OS와 그 사용 유무를 확인하는 방법에는 어떤 것들이 있을지 살펴보겠습니다.
다크 모드 지원 버전
다크 모드를 지원하는 OS와 웹브라우저 최소 버전은?
다크 모드는 사용자 인터페이스의 색상을 어두운 색조로 변경하여 눈의 피로를 줄이고 배터리 수명을 연장하는 데 도움을 주는 기능입니다. 다크 모드를 지원하는 OS와 웹브라우저의 최소 버전을 알아보겠습니다.
운영 체제 (OS)
- Windows : Windows 10 버전 1809 (2018년 10월 업데이트) 부터 다크 모드를 지원합니다.
- macOS : macOS Mojave (10.14)부터 다크 모드를 지원합니다.
- Linux : Linux의 다크 모드 지원은 사용하는 데스크탑 환경에 따라 다릅니다. 예를 들어, GNOME 3.28 이상 또는 KDE Plasma 5.10 이상에서 다크 모드를 지원합니다.
- iOS : iOS 13부터 다크 모드를 지원합니다.
- Android : Android 10 (Q)부터 다크 모드를 지원합니다.
웹 브라우저
- Google Chrome : Chrome 74 버전부터 다크 모드를 지원합니다.
- Mozilla Firefox : Firefox 67 버전부터 다크 모드를 지원합니다.
- Microsoft Edge : Chromium 기반의 Microsoft Edge 79 버전부터 다크 모드를 지원합니다.
- Safari : Safari 12.1 이상에서 다크 모드를 지원합니다.
지원 여부 시트 : https://caniuse.com/prefers-color-scheme
각 운영 체제와 웹 브라우저의 다크 모드 기능은 설정에서 쉽게 활성화할 수 있으며, 사용자 환경에 따라 다크 모드를 세부적으로 조정할 수 있는 옵션이 제공되기도 합니다.
Windows의 다크 모드
윈도우 다크 모드 설정 방법
Windows 10에서 다크 모드를 표시하는 토큰이나 레지스트리 값, 스위치, 변수 값이 있어?
Windows 10에서 다크 모드를 활성화하거나 설정을 변경하는 데 사용되는 다양한 방법과 관련된 정보는 다음과 같습니다:
1. 설정 앱을 통한 다크 모드 활성화
가장 일반적인 방법은 Windows 10의 설정 앱을 사용하는 것입니다.
- 설정 앱을 엽니다 (
Win + I단축키). - 개인 설정으로 이동합니다.
- 색을 클릭합니다.
- 기본 앱 모드 선택에서 다크를 선택합니다.

2. 레지스트리 편집기를 통한 다크 모드 활성화
레지스트리 편집기를 사용하여 다크 모드/라이트 모드를 전환할 수도 있습니다.
- 레지스트리 편집기를 엽니다 (
Win + R을 눌러regedit입력 후 Enter). - 다음 경로로 이동합니다 :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize - 기본 앱 모드 선택을 변경하려면
AppsUseLightTheme값을 변경합니다.0으로 설정하면 다크 모드가 활성화됩니다.1로 설정하면 라이트 모드가 활성화됩니다.
- 기본 Windows 모드 선택을 변경하려면
SystemUsesLightTheme값을 변경합니다.0으로 설정하면 다크 모드가 활성화됩니다.1로 설정하면 라이트 모드가 활성화됩니다.
3. PowerShell을 통한 다크 모드 활성화
PowerShell 스크립트를 사용하여 다크 모드를 설정할 수도 있습니다. 다음 스크립트를 PowerShell에서 실행하면 됩니다:
Set-ItemProperty -Path "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize" -Name "AppsUseLightTheme" -Value 0
Set-ItemProperty -Path "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize" -Name "SystemUsesLightTheme" -Value 0
- Value
0으로 설정하면 다크 모드가 활성화됩니다. - Value
1로 설정하면 라이트 모드가 활성화됩니다.
다크 모드 활성화 여부 인식 방법
어플리케이션이 다크 모드 활성화 여부를 인식하는 방법은 무엇이 있어?
어플리케이션이 다크 모드 활성화 여부를 인식하는 방법에는 여러 가지가 있습니다. 일반적으로 사용되는 방법은 운영 체제의 다크 모드 설정을 읽어들이는 것입니다. 여기에는 운영 체제 API 호출, 레지스트리 값 확인, 시스템 테마 설정 감지 등이 포함됩니다. 아래는 주요 방법들을 정리한 것입니다:
다크 모드 인식 방법
1. 운영 체제 API 호출
운영 체제에서 제공하는 API를 사용하여 다크 모드 활성화 여부를 확인할 수 있습니다. 각 운영 체제에서 다크 모드 정보를 제공하는 API가 있습니다.
- Windows
- Windows 10과 Windows 11에서는
Windows.UI.ViewManagement네임스페이스의UISettings클래스를 사용하여 다크 모드 활성화 여부를 확인할 수 있습니다.Application.RequestedTheme속성을 사용하여 앱의 테마를 감지할 수 있습니다.
var theme = Windows.UI.Xaml.Application.Current.RequestedTheme;
bool isDarkMode = theme == Windows.UI.Xaml.ApplicationTheme.Dark;
- Windows 10과 Windows 11에서는
- macOS
- NSAppearance 클래스를 사용하여 다크 모드 활성화 여부를 확인할 수 있습니다.
- NSApp.effectiveAppearance 속성을 통해 현재 앱의 테마를 확인할 수 있습니다.
let isDarkMode = NSApp.effectiveAppearance.name == .darkAqua
- iOS
- UITraitCollection 클래스를 사용하여 다크 모드 여부를 확인할 수 있습니다.
let isDarkMode = traitCollection.userInterfaceStyle == .dark
- Android
- UiModeManager 또는 Resources 클래스를 사용하여 현재 다크 모드 설정을 감지할 수 있습니다.
int nightModeFlags = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;boolean isDarkMode = nightModeFlags == Configuration.UI_MODE_NIGHT_YES;
2. 레지스트리 값을 통한 확인 (Windows)
레지스트리에서 다크 모드 설정을 확인할 수 있습니다. 위에서 언급한 레지스트리 경로와 값들을 읽어들이면 다크 모드 여부를 확인할 수 있습니다.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme
3. 시스템 테마 파일 또는 설정 읽기
- Windows에서는
%APPDATA%\\Microsoft\\Windows\\Themes폴더에 있는 테마 파일을 분석할 수도 있습니다. - macOS의 경우,
defaults명령어를 사용하여 시스템 설정을 확인할 수 있습니다.
4. CSS와 JavaScript를 통한 웹 애플리케이션
웹 애플리케이션에서는 CSS와 JavaScript를 사용하여 다크 모드 여부를 감지할 수 있습니다.
- CSS 미디어 쿼리
@media (prefers-color-scheme: dark) {… }
- JavaScript
JavaScript const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
이와 같은 방법들을 통해 애플리케이션은 사용자의 다크 모드 설정을 감지하고, 그에 맞게 UI를 조정할 수 있습니다.
이전 버전의 Windows에서의 다크 모드 사용
Windows 7, 8, 미지원 10에서는 어떻게 확인할 수 있어?
Windows 7과 Windows 8에서는 기본적으로 다크 모드를 지원하지 않기 때문에, 다크 모드 여부를 직접적으로 확인하는 표준 API나 설정이 존재하지 않습니다. 다크 느낌의 시스템 테마를 제공하거나, 일부 앱에서 자체적으로 다크 모드 테마나 기능을 제공합니다.
일반적으로 현재 사용되는 다크 모드를 인식하는 레지스트리나 API는 이전 버전의 Windows 10 1809 미만 버전에서 제공되지 않습니다.
몇 가지 다크 모드 기능을 유추할 수 있는 항목들이 있습니다.
- 테마 파일 확인 : (.theme)에서 관련된 설정을 확인할 수 있습니다. 사용자 정의 테마를 사용하는 경우, 이러한 테마 파일을 분석하여 다크 모드와 유사한 설정이 포함되어 있는지 확인할 수 있습니다.
- 서드파티 소프트웨어 사용 : 서드파티 애플리케이션을 사용하여 다크 모드를 구현할 수 있습니다. 자체적으로 특정 요소를 어둡게 변경하는 등의 기능을 제공할 수도 있습니다.
- UI 요소 색상 감지 : 어플리케이션에서 UI 요소의 색상을 검사하여 다크 모드와 유사한 색상 설정이 적용되었는지 확인할 수 있습니다. 예를 들어, 윈도우의 배경색이나 텍스트 색상을 검사하여 어두운 색상을 감지할 수 있습니다.
이전 버전의 Windows의 경우 고대비 테마 사용 여부로 판단할 수 있어?
고대비 테마는 사용자에게 더 큰 대비를 제공하며, 일반적으로 눈의 피로를 줄이고 접근성을 향상시키기 위해 사용됩니다. Windows 10 미만, 즉 Windows 7 및 Windows 8에서는 기본적으로 다크 모드가 지원되지 않지만, 고대비 테마(High Contrast Themes)를 사용하여 다크 모드와 유사한 효과를 얻을 수 있겠네요.
고대비 테마 사용 여부를 판단하는 방법은 다음과 같습니다:
- 레지스트리 값을 확인하는 방법
- Windows 7 및 Windows 8에서 고대비 테마가 활성화되었는지 확인하려면 레지스트리 값을 확인할 수 있습니다. 고대비 테마는 특정 레지스트리 키에서 확인할 수 있습니다.
HKEY_CURRENT_USER\Control Panel\Accessibility\HighContrast에서Flags가126이면 고대비 해제,127이면 고대비 설정 상태입니다.
- 레지스트리 색상 값 확인을 통해 유추
- UI 요소의 색상 값을 검사하여 고대비 색상이 적용되어 있는지 감지할 수 있습니다.
HKEY_CURRENT_USER\Control Panel\Colors에서 UI 설정 RGB 값을 확인할 수 있으며 고대비 테마를 사용할 때 색상 값이 일반적인 테마와 다를 수 있습니다.
- PowerShell 스크립트를 사용하여 고대비 테마 감지
다음 PowerShell 스크립트를 사용하여 고대비 모드가 활성화되었는지 확인할 수 있습니다.
# PowerShell
$highContrastEnabled = (Get-ItemProperty -Path "HKCU:\\Control Panel\\Accessibility\\" -Name "HighContrast")["HighContrast"]
if ($highContrastEnabled -eq 1) {
Write-Output "High Contrast Mode is enabled."
} else {
Write-Output "High Contrast Mode is not enabled."
}
레지스트리에서 고대비 모드 설정을 읽어와서 활성화 여부를 출력합니다.
안드로이드의 다크 모드
다크 모드 변경 방법
Android의 경우, Android 10부터 전역적으로 지원하며, 빠른 설정 창에서 다크 모드로 변경하거나, 기기 설정 > 디스플레이 에서 라이트, 또는 다크 테마로 변경할 수 있는 기능이 제공됩니다.


안드로이드 다크 모드 인식 방법
Android에서는 다크 모드 사용 여부를 어떻게 앱들이 확인할 수 있어?
보통 Android 앱은 개별 설정 항목에서 밝게, 어둡게, 시스템 설정 사용 등으로 기능을 제공할 수 있으며, 이 중 시스템 설정 사용의 경우 위와 같은 확인 방법을 이용하여 다크 모드로 앱을 표시하게 됩니다.
Android 앱에서 다크 모드를 감지하는 방법은 다음과 같습니다.
Configuration 객체 사용
// Activity나 Context에서 현재 다크 모드 상태 확인
int nightModeFlags = getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_MASK;
boolean isDarkMode = nightModeFlags == Configuration.UI_MODE_NIGHT_YES;
AppCompatDelegate 사용
// 현재 야간 모드 상태 확인
int nightMode = AppCompatDelegate.getDefaultNightMode();
boolean isDarkMode = nightMode == AppCompatDelegate.MODE_NIGHT_YES;
다크 모드 변경 감지
// Kotlin에서 다크 모드 변경 감지
class MainActivity : AppCompatActivity() {
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val isDarkMode = (newConfig.uiMode and
Configuration.UI_MODE_NIGHT_MASK) ==
Configuration.UI_MODE_NIGHT_YES
}
}
XML에서 다크 모드 리소스 정의
<!-- res/values-night/colors.xml -->
<resources>
<color name="background">@color/black</color>
<color name="text">@color/white</color>
</resources>
이러한 방법들을 통해 Android 앱은 시스템의 다크 모드 설정을 감지하고 그에 맞게 UI를 조정할 수 있습니다.
정리
- 다크 모드는 : 사용자 인터페이스의 색상을 어두운 색조로 변경하여 눈의 피로를 줄이고 배터리 수명을 연장하는 데 도움을 주는 기능입니다.
- Windows 10 1809 이상에서 다크 모드가 지원됩니다. Windows 7 및 Windows 8에서 고대비 테마는 다크 모드와 유사한 효과를 제공할 수 있지만, 직접적인 다크 모드 기능은 없습니다.
- 일부 앱에서 독립적으로 다크 모드 기능을 제공하고 있을 수 있습니다.
- Windows에서 다크 모드나 고대비 테마가 활성화되어 있는지 확인하려면 레지스트리 값을 확인하거나 색상 검사, 또는 PowerShell 스크립트를 사용하여 확인할 수 있습니다.
- Android 10부터 에서 시스템 상태가 다크 모드인지 판단할 수 있는 코드가 있습니다. 각 앱 개발사들은 다크 모드의 활성화 여부를 감지하여 최적화된 화면을 보여주는 데 이용됩니다.
※ GPT-4를 사용하는 생성형 AI 서비스가 작성하는 내용을 기반으로 필자가 교차 검증과 팩트 체크를 통해 정확한 정보를 전달, 게시합니다. 어투를 친숙하게 변형하고자 노력하지만 생성형 인공지능의 어투가 남아 있음을 참고해 주세요.
※ 콘텐츠에 오류 또는 실수가 있을 수 있습니다. 잘못된 정보를 제공하고 있을 경우 언제든지 댓글 또는 공식 연락처를 통해 제보해 주시면 수정하도록 하겠습니다. 관심 가져 주셔서 감사합니다.

