12월, 2021의 게시물 표시

Acrobat DC 설치 실패 코드 1603

방금 뱅킹 사이트에서 다운로드한 PDF 파일을 엑셀에 삽입하려 하니 암호가 걸려있어서 안 된다고 하더군요. 그래서 암호를 해제하고자 Acrobat DC를 오랜만에 설치하려 하는데, 계속 설치 실패가 뜨더라고요. Third party payload installer Adobe Acrobat\Setup.exe failed with exit code: 1603   그냥 일시적 오류인가 싶어 한 번 재시도를 해봐도 똑같은 오류가 나오길래 해당 키워드로 검색을 해보니, Print Spooler 서비스가 꺼져 있으면 발생하는 문제 라고 합니다.   그래서 services.msc 에서 Print Spooler를 사용 설정하고 키니 정상적으로 설치되네요. 심지어 설치 속도도 매우 빠릅니다. 아마 서비스 상태를 확인하는 타임아웃이 길어서 실패하기까지 오래 걸렸나 봅니다.

Flags Attribute를 사용해보세요.

개발 중에는 때때로 하나의 enum 타입을 가지고 여러 value에 대해 분기해 처리해야 하는 경우가 생깁니다. public enum EnumExample { A, B, C } 위와 같은 enum 타입이 있을 때, 상황이 항상 A이거나, B이거나, C이거나 셋 중 하나로 끝나면 매우 바람직하겠지만 대개 그렇지 않죠. A이거나, A와 B이거나, A와 C거나, B거나, ... 이런 상황이 자주 나옵니다. 그럼 어떻게 코딩해야 할까요? 아래처럼? if (value == EnumExample.A) { // ... } else if (value == EnumExample.A && value2 == EnumExample.B) { // ... } 말이 안 되죠. System.FlagsAttribute Class MSDN 문서 에 따르면, 이 어트리뷰트가 적용된 enum은 비트 필드로 취급될 수 있다고 합니다. 즉, C언어 등에서 사용되는 비트 필드마냥 사용할 수 있게 된다는 뜻이죠. 다음 예시를 보세요. [Flags] public enum FlagsExample { NONE = 0, A = 1, B = 2, C = 4, D = 8, E = 16, } 위와 같이 선언된 enum은 각각의 값이 비트 필드로 취급됩니다. 즉 0은 0000 0000 0000 0000, A는 0000 0000 0000 0001, B는 0000 0000 0000 0010, C는 0000 0000 0000 0100, D는 0000 0000 0000 1000, E는 0000 0000 0001 0000과 같은 식으로 생각하시면 됩니다. 이렇게 되면 어떤 방식의 코딩이 가능해지냐? enum 값에 대한 비트 연산이 가능해집니다. var abc = FlagsExample.A | FlagsExample.B | FlagsExample.C; // abc = A, B, C 따라서 위와 같이 하나의 enum 변수에 여러

Visual Studio 2022에서 현재 열린 문서를 솔루션 탐색기에 표시하는 몇 가지 방법

이미지
제목에는 VS Code와 구분짓기 위해 VS 2022를 사용했으나 Visual Studio 2019, 2017 모두 사용 가능한 방법입니다. 첫 번째 방법: 솔루션 탐색기의 활성 문서 동기화 버튼 수동으로 활성 문서 동기화 버튼을 클릭해 동기화하는 방법입니다. 해당 버튼을 누르면 현재 에디터에 열려있는 문서 [1] 가 솔루션 탐색기에 동기화됩니다. 두 번째 방법: 활성 문서 동기화 단축키 사용 마우스를 사용할 필요 없이 단축키를 사용해 동기화하는 방법입니다. 기본 단축키는 Ctrl+[, Ctrl+S 또는 Ctrl+[, S 입니다. 저는 이 바로가기 키가 불편해 Ctrl+Shift+Alt+[, Ctrl+ShiftAlt+; 로 변경해 사용하고 있습니다. 여기서 지정된 단축키를 누르면 첫 번째 방법 의 동기화 버튼을 클릭한 것과 같은 액션이 실행됩니다. 주의할 점 은, 일부 단축키와 충돌이 날 수 있으니 저처럼 사용되지 않는 단축키 위주로 조합하시기 바랍니다. 예를 들어 단축키 조합에  Ctrl+; (기본값: 솔루션 탐색기 검색)과 같은 키가 조합되어 있을 경우엔 작동하지 않을 수 있습니다. 세 번째 방법: 항상 자동으로 동기화 이 방법은 항상 현재 활성화된 문서가 솔루션 탐색기에 자동으로 동기화되도록 설정합니다. 그렇기 때문에 이 옵션이 켜져있을 경우 첫 번째 방법의 활성 문서 동기화 버튼이 표시되지 않습니다. 이 옵션을 키기 위해서는 옵션 - 프로젝트 및 솔루션 - 일반 메뉴의 솔루션 탐색기에서 활성화된 항목 추적 옵션을 체크하시면 됩니다. 포커스된 문서. 즉, 분할 창일 경우에는 마지막으로 활성화된 문서. ↩︎

VS2022를 지원하는 ReSharper 2021.3 버전이 출시되었습니다.

 EAP를 사용하기 시작한지 거의 반 년이 되어가는 지금, 드디어 ReSharper 2021.3 버전이 출시되며 Visual Studio 2022를 정식으로 지원하기 시작했습니다. 64비트 프로세스 EAP가 시작될 때 예고했듯, 이 버전부터 ReSharper가 64비트 프로세스로 동작합니다.  해당 블로그 에 따르면 기존 기능들은 여전히 사용 가능함에도 불구하고 메모리 제한이 없어졌기에 기능들이 더 빠르게 동작한다고 합니다.

파워쉘을 통해 핸드폰 파일 복사하기

오늘 일어나보니 제 노트10의 유심 트레이가 죽어있었습니다. 현금도 얼마 없는데 수리비 깨질 것을 생각하니 그냥 핸드폰을 바꾸고 몇 달에 걸쳐 할부금을 납부하는게 이득 아닐까라는 생각이 계속 들더군요. 그래서 핸드폰을 바꾸고자 마음먹고 기종을 찾아보니, 제가 바꾸고자 하는 기종은 Micro SD를 지원하지 않는다는 것을 알게 되었습니다. 따라서 저는 외장 SD카드와 내장 SD카드의 중요 내용을 [1] 컴퓨터에 백업하고자 했는데... 느려터진 탐색기 언제나 그렇듯 이 탐색기가 또 발목을 잡았습니다. 탐색기에서 파일 복사/이동/삭제를 대량으로 할 때에 우선 탐색기는 해당 컨텐츠들 [2] 을 쭉 읽어들입니다. 이건 제 뇌피셜이지만 아마 대량의 파일 복사/이동/삭제시 나타나는 프로그래스바를 표시하기 위해 일단 전체 파일이 몇 개인지 읽어들이는 것 같습니다. 그래야 현재까지 복사/이동/삭제된 파일 수와 전체 파일 수의 비율로 프로그래스바를 표시할 수 있을 테니까요. 아무튼, 이미 저는 대량의 파일 삭제 시 이렇게 느려터진 게 짜증나서 [3] 파워쉘을 통해 빠르게 삭제하는 스크립트를 레지스트리로 컨텍스트 메뉴에 등록해둔 상태였습니다. mtp는 다르다 하지만 핸드폰은 같은 방법을 사용할 수 없었습니다. 정확히 말하면, 기본적으로 파워쉘에서 제공해주는 명령어 셋으로는 불가능했습니다. 단순히 제가 찾지 못한 것일 수도 있지만, 아무튼 찾을 수조차 없었습니다. 하지만 구글, 그리고 스택오버플로우는 언제나 답을 알려주죠. 검색해보니 이런 스택오버플로우 글 을 찾을 수 있었습니다. Shell.Application COM Object MSDN 문서 를 보면 해당 COM Object는 쉘 어플리케이션을 반환합니다. 즉 탐색기 API라고 보셔도 무방할 듯 합니다. 이를 사용하면, 탐색기로 할 수 있는 일을 프로그램화시켜 할 수 있다는 것이죠. 그리고 해당 스택오버플로우 글에서 제시한 방법을 따르면, 다음과 같이 사용이 가능합니다. $shell

Ctrl+Alt+F9가 전자/반자 전환을, Ctrl+Alt+F10이 가상 키보드를 띄우는 문제

이미지
오늘 괴상한 일을 겪었습니다. ReSharper의 Breakpoints 기능을 사용하기 위해 Ctrl + Alt + F9 키를 눌렀는데 기능이 작동하지 않은 것이죠. 그래서 단축키가 잘못 설정됐나 하고 옵션을 보려다가, 귀찮아서 그냥 액션 창을 열어 Breakpoints를 쳐서 실행하려 했는데... 위와 같이 전자로 전환된 영어가 입력되고 있었습니다. 의도되지 않은 버그 처음엔 심지어 이게 해당 단축키를 눌러서 발생한 버그라는 것조차 인지하지 못했습니다. 예-전에, XP를 쓰던 시절에 분명 어떤 단축키를 누르면 전자/반자가 전환되었던 것 같은 기억은 있는데, 그건 분명 F9랑은 관계없는 Ctrl , Shift , Alt 의 특정 조합을 눌렀을 때였던 것으로 어렴풋이 기억하고 있기 때문이죠. 그래서 처음 증상이 발생했을 때엔 Win + Space 로 입력기를 영어로 바꿨다가 한글로 돌아오는 식으로 해결했습니다. 그리고 다시 VS로 돌아와, 자동 숨김 기능으로 숨겨진 Breakpoints 창을 열기 위해 본능적으로 단축키를 눌렀습니다. 그리고 깨달았죠. 문제는 바로 Ctrl + Alt + F9 였다는 것을. 비슷한 증상을 겪은 유저 처음엔 이 단축키를 해제할 수 있으리라 믿고 언어 옵션 등 온갖 설정에 들어갔었습니다만, 결국 찾지 못했습니다. 그래서 구글링을 하다 보니 동일한 증상을 겪고 있는 한 유저의 MS 커뮤니티 질문 글 이 있더라고요. [1] 어라라? 증상이 완전히 동일하네? 하며 설마 가상 키보드도 나오나 싶어서 Ctrl + Alt + F10 를 눌러보니... 네. 나옵니다. 심지어 지금 사용하는 Windows 11이 문제인가 싶어 가상 머신에 설치된 Windows 10에서도 해봤으나 마찬가지였습니다. 해당 답변을 보니 이는 의도되지 않은 버그라는 것을 확신할 수 있었습니다. 원인 그렇다면 원인은 뭘까요? 제일 처음 생각했던 것은 윈도우의 새로운 기능이 아닐까 였으나 바로 생각을 접었습니다. 새

C# 인터렉티브에서 .NET Core 사용하기

이미지
저는 꽤나 자주 C# 인터렉티브 콘솔을 사용합니다. 간단한 로직을 테스트하거나, 현재 C# 버전의 어떤 기능이 어떻게 작동하는지 기억이 안 날 때 확인하는 용도로 말이죠. 디버그를 걸어도 물론 되지만 코드 입력과 실행 결과 확인에 길어야 1, 2분도 채 걸리지 않는 테스트를 위해서 코드를 새 파일에 작성하고 빌드하고 디버그하는 것은 너무나도 귀찮기 때문입니다. 이럴 때 C# 인터렉티브 콘솔은 그야말로 딱이죠. 심지어 Visual Studio에 내장되어 있는 기능이라 따로 실행파일을 직접 실행하지 않아도 간편히 작업할 수 있다는 장점까지 있습니다. .NET Framework, .NET Core 이번에 제가 확인하고자 했던(까먹었던) 기능은, C#의 Ranges and Indices 기능입니다. a .. b 혹은 a .. ^b 식으로 사용하는 것이란 건 기억이 나는데, str[a .. b] 와 같이 사용했을 때 문자열의 a번째 인덱스부터 b번째 인덱스까지였는지, 아니면 a번째 인덱스부터 b - 1번째 인덱스까지였는지가 기억이 나질 않았죠. 기본값은 .NET Framework 그래서 어느 때와 같이 단축키로 C# Interactive 콘솔을 열어 다음과 같이 입력해봤습니다. 그랬더니 위와 같이 System.Range , System.Index 를 정의하지 않았거나 가져오지 않았다며 CS0518 에러가 발생했습니다. 구글링은 필요없다! 다행히도, 예전에 .NET Framework 프로젝트에서 Ranges, Indices를 사용하는 방법에 대해 찾던 중 이런 에러를 마주한 적이 있기 때문에 이 에러가 왜 발생했는지 바로 알 수 있었습니다. C# 인터렉티브 콘솔이 Core가 아닌 .NET Framework에서 실행되고 있기 때문 라는 것을요. .NET Core 인터렉티브로 전환 그리고 거의 동시에 예전, 즉 C# 8.0이 출시된지 얼마 안 됐을 때 비슷한 경험을 한 적이 있다는 사실을 떠올렸습니다. 그 때엔 분명 C# 인터렉

닷넷 Random.Next(minValue, maxValue) 사용시 주의사항

개발을 하다보면 생각보다 자주 System.Random 클래스를 사용하게 됩니다. 닷넷의 랜덤 클래스에는 미리 정의된 Random.Next(int, int) 라는, 최솟값과 최댓갑 사이의 값을 반환해주는 좋은 기능이 있죠. 예전에 루아를 사용할 때엔 이게 없어서 직접 n * (max - min) + min 과 같은 식을 함수로 만들어서 썼었는데 정말 고마운 프레임워크입니다. maxValue 오늘도 어김없이 개발을 하던 도중, GitLab에 이슈가 올라왔습니다. 최소 설정값과 최대 설정값 사이의 랜덤한 값으로 작업이 반복되어야 하는 로직이 있는데, 이게 작동을 안 한다는 것이었죠. 해당 부분의 코드는 제가 만든 것이 아니기 때문에 디버그를 하며 어디가 문제인지 찾아봤습니다. 그러다가 찾은 다음 코드. public int RandomValue { get { return m_rnd . Next ( COND_MIN , COND_MAX ) ; } } 아... 설마? 하고 브레이크포인트를 걸어봤습니다. 아니나 다를까, COND_MAX 값에 사용자가 입력한 값이 그대로 들어가있더군요. 예를 들어, 사용자가 최소 설정값을 1, 최대 설정값을 2로 지정했다면 COND_MIN = 1, COND_MAX = 2가 되는 식이었습니다. 그렇다면 이게 뭐가 문제일까요? 얼핏 보면 minValue, maxValue라는 인자명을 생각해보면 당연히 해당 코드가 1 또는 2를 반환하리라 생각됩니다. 하지만, 그게 바로 함정 입니다. MSDN의 Random 클래스 문서를 보면, 다음과 같은 내용이 있습니다. A 32-bit signed integer greater than or equal to minValue and less than maxValue ; that is, the range of return values includes minValue but not maxValue. If minValue e

Gmail 데스크톱 알림 사용 설정하기

이미지
모바일 환경에서는 이메일 관련 앱 [1] 을 설치하고 설정하면 이메일을 수신했을 때 푸시 알림이 옵니다. 데스크톱에도 이메일을 위한 프로그램 [2] 이 다양하게 존재하지만 저를 포함한 어떤 유저는 그런 프로그램을 사용하기 싫어하기도 합니다. 데스크톱 푸시 알림 언제부터인지 기억은 안 나지만 메이저 브라우저들이 데스크톱 푸시 알림 기능을 지원하기 시작했습니다. 페이스북이나 트위터 등에 설정이 초기화된 브라우저로 접속하면 알림을 허용할지 묻는 메세지 가 나오는데, 바로 이 메세지가 데스크톱 푸시 알림 기능과 연관되어 있습니다. 알림을 허용하면, 그 때부터는 해당 사이트에서 뭔가 알릴 거리가 있을 때 마치 모바일 앱의 알림마냥 Windows 알림 센터, 혹은 그에 준하는 기능에 알림이 도착하게 됩니다. 지메일 푸시 알림 지메일도 이러한 푸시 알림을 지원합니다. 예전에는 브라우저를 켰을 때 일정 주기마다 이메일을 확인하기 위해 WebmailNotifier [3] 등의 확장 프로그램을 사용했었는데 이제는 지메일이나 이러한 푸시 서비스를 지원하는 메일 서비스에 한해 그럴 필요가 없다는 얘기죠. 이제부터 이 데스크톱 푸시 기능을 활성화하는 방법에 대해 알려드리겠습니다. 우선 위 이미지에 표시된 아이콘을 눌러 지메일 설정 패널을 여세요. 일반적으로 우측 상단에 있습니다. 이후 모든 설정 보기 버튼을 눌러주세요. 기본설정 탭의 데스크톱 알림 섹션까지 스크롤한 뒤, 월하는 메일 알림 형식을 선택하고 Gmail에서 바탕화면 알림을 사용하려면 여기를 클릭하세요 링크를 클릭하세요. [4] 그럼 구글에서 알림 표시 권한을 요청한다는 다이얼로그가 나타나게 됩니다. 허용을 누르세요. 이제 다 됐습니다. 앞으로는 지메일에 도착하는 이메일들이 데스크탑 알림으로 도착하게 됩니다. 지메일, 이메일, ... ↩︎ 아웃룩, Windows 10의 메일 앱, ... ↩︎ 현 X-Notifier ↩︎ 이 링크는 이미 이전에 지메일 알림을 수락한

WSL2 방화벽 문제?

이미지
제가 이전 포스트 에서 작성한 방법대로 잘 써먹던 중, 어느 순간부터 다시 WSL2에서 인터넷이 안 되기 시작했습니다. 여전히 핑은 됐고 여타 포트들로 통신도 되지만 80포트, 443포트 등 필수 포트에 연결이 안 되는 증상이었죠. 더 최악은, 갑자기 IIS까지 작동을 안 하기 시작했다는 겁니다. 생각해보니 재부팅 한 뒤로부터 이런 것 같은데 문제는 제가 재부팅을 아무리 자주 해봐야 최소 3일에 한 번 정도밖에 안 한다는 것이죠. 원인 찾기 어쩌겠습니까. 최대한 기억을 더듬어서 재부팅 전에 제가 시스템에 뭘 했는지 찾아보는 수밖에요. IIS는 왜 갑자기 작동을 안 해? 일단 급한 불부터 끄기로 했습니다. IIS가 작동을 안 하는 문제에 대한 해결책을 우선 찾아야했습니다. 정확히 어떻게 작동을 안 하느냐 하면, IIS의 80포트, 443포트에 바인딩된 사이트가 윈도우 부팅 시부터 중지 상태로 있으며, 시작하려 해도 다른 프로세스에서 파일을 사용 중 이라며 시작되지 않았습니다. 예전 같았으면 파일은 옘병할 무슨 파일? 이라며 삽질을 오지게 했겠으나, 지금까지의 경험 덕분에 여기서 말하는 파일 이 포트 라는 것을 깨닳을 수 있었습니다. 그래서 일단 어떤 프로세스가 80포트를 점유하고 있는지 알아보기 위해 터미널을 켰습니다. grep 을 사용하기 위해 우분투 디스트로를 사용했습니다. ~$ netstat.exe -aon | grep :80 실행해보니 다음과 같은 결과가 뜨고, 어떤 PID가 해당 포트를 점유중인지 알 수 있었습니다. [1] 해당 PID를 점유하는 프로세스가 뭔지 작업 관리자에서 찾아보니 svchost.exe . 어떤 서비스인지 알기 위해 우클릭 후 서비스 보기를 눌러보니 iphlpsvc 가 잡히더군요. 해당 서비스가 뭔지 구글링해보니 포트포워딩에 관여하는 서비스라고 설명돼있었습니다. 그래서 생각했죠. netsh . 근 10년 전에 게리모드 서버를 운영하며 포트포워딩이 필요했던 때가 있어서 윈도우에서 포트포

WSL2 ping은 먹는데 인터넷은 안 된다?

이미지
WSL2가 나온 직후부터 저를 계속해서 괴롭혀오던 문제가 있습니다. 바로 Hyper-V에서 새 가상 스위치를 추가하는 시점부터 WSL이 제대로 작동하지 않는다는 것이죠. 정말 가능한 모든 경우의 키워드를 들고 스택오버플로우, 깃헙 이슈 페이지, MSDN, 마소 서포트 센터 등 오만 곳을 다 돌아다녔으나 해결하지 못했습니다. 핑은 되는데 인터넷은 안 된다? 그러다가 어느 순간 핑이 되기 시작했습니다. 아마 Interface Metric을 조정했을 때였던 것으로 기억합니다. 핑이 비허용되지 않은 어떤 곳에도 핑을 날릴 수 있었습니다. [1] Name Resolution 그러나 여전히 도메인 URL에 대한 핑은 안 됐었는데, 이건 /etc/wsl.conf 에 아래와 같은 사항을 등록한 뒤, [ network ] generateResolvConf = false /etc/resolv.conf 를 우선 지우고 ~$ sudo rm /etc/resolv.conf /etc/resolv.conf 에 네임서버를 추가한 뒤 ~$ sudo vim /etc/resolv.conf # /etc/resolv.conf 내용 # # nameserver 8.8.8.8 # nameserver 1.1.1.1 WSL이 시작할 때마다 resolv.conf를 삭제하거나 덮어쓰는 것을 방지하기 위해 읽기 전용 속성을 /etc/resolv.conf 에 할당했습니다. ~$ sudo chattr +i /etc/resolv.conf 여전히 인터넷은 불가 그러나 여전히 인터넷은 불가능했죠. IP로 핑을 날리던 게 이제 ping google.com 과 같이 도메인으로 날릴 수 있게 되었다는 차이 뿐이었습니다. 미쳐버릴 노릇 저한테 이런 현상은 그야말로 미쳐버릴 노릇이었습니다. 사설 GitLab을 운영중이기 때문에 Docker를 지울 수 없었고, 개발 상의 이유로 Hyper-V의 가상 스위치를 제거할 수도 없었으며, 마찬가지의 이유로 WSL [2] 도 자

Windows Terminal에서 아크릴 배경을 사용하는 방법

이미지
이제 pwsh이나 cmd보다 윈도우 터미널 [1] 을 더 자주 사용하게 되었습니다. 하지만 비주얼이 조금 아쉬웠습니다. 파워쉘은 반투명하게 처리할 수가 있었는데 터미널은 옵션에서 아무리 찾아도 그런 설정이 보이지 않았기 때문입니다. 옵션은 settings.json에서 변경 하지만 구글링 해보니 단지 옵션이 숨겨져 있었을 뿐이란 걸 깨닫게 되었죠. 누가 개발자용 툴 아니랄까봐 UI에는 대충 필요한 것만 박아두고 세부 설정은 죄다 settings.json에서 하게 되어있더군요. 설정 파일 .json 파일과 연결된 프로그램이 없으면 메모장으로 열리니 사전에 자주 사용하는 에디터에 연결을 해놓으시거나 %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json 파일을 직접 열어도 됩니다. profiles 수정 이제 간단히 두 줄만 추가하거나, 개별로 설정할 경우 여러 줄을 추가해주시면 됩니다. 여러 줄이라고 해봐야 앞서 얘기한 두 줄과 동일한 형식이니 크게 어려울 것은 없습니다. 전역 설정 profiles.default 에 다음과 같은 코드를 추가하면 전역 투명도가 설정됩니다. "acrylicOpacity" : 0 , // 0-1; 0: 완전 투명, 1: 불투명 "useAcrylic" : true 프로필별 설정 profiles.list 의 원하는 요소에 위와 같은 옵션을 적용하면 됩니다. 더 투명했으면 좋겠다 싶은 프로필에는 acrylicOpacity 값을 낮추고, 아니면 높이고. 불투명했으면 좋겠다 싶은 프로필에는 useAcrylic 을 false 로 설정하면 됩니다. 저는 그냥 전역으로 0을 박아놓고 사용하고 있습니다. 아크릴 효과 덕분에 0으로 박아도 별로 거부감이 없더라고요. 0으로 박은 모습 추가: 2021-12-09 최신 Windows Terminal Prev

Windows의 방화벽 해제. 하지만 모든 프로필을 곁들인

이미지
기본적으로 Windows OS의 방화벽은 설치 직후부터 항상 켜져있습니다. 그리고 사용자는 필요에 의해 방화벽 허용 규칙을 추가하거나, 방화벽을 끄게 됩니다. 예전에는 제어판에서, Windows 10 이후에는 설정 앱과 제어판에서 방화벽을 끌 수 있는데, 이번 포스트에서는 모든 프로필 의 방화벽을 해제하는 방법에 대해 작성하도록 하겠습니다. 방화벽 프로필 윈도우는 세 개의 방화벽 프로필을 제공합니다. 바로 개인 프로필, 공용 프로필, 도메인 프로필입니다. 개인/공용 프로필 이 중 개인 프로필과 공용 프로필은 비교적 이해가 쉽습니다. 여러분이 포맷 등으로 신선한 상태의 윈도우를 설정할 때, 혹은 설치 후에 인터넷에 연결했을 때, 혹은 새로운 네트워크 어댑터를 추가했을 때마다 윈도우는 우리에게 해당 어댑터가 어떤 프로필로 작동하게 할지 묻습니다. 윈도우 10 이상에서는 알림 바가 열리며 공용 또는 개인 버튼이 보여지게 되며, 기본값은 공용으로 선택되어 있죠. 즉 개인 프로필과 공용 프로필은 관리자 [1] 가 마음대로 선택할 수 있는 겁니다. 도메인 프로필 도메인 프로필은 성격이 좀 다릅니다. 깊게 들어가지 않고 간단히 설명하자면, 해당 네트워크 어댑터가 도메인에 가입되어 있고, 그러한 도메인의 도메인 컨트롤러를 검색할 수 있다면 도메인 프로필이 규칙이 적용되게 됩니다. 그렇다면 도메인이 뭘까요? 이것 역시 겉핥기 식으로 설명하면 윈도우에서 제공하는 디렉터리 공유 기능을 위한 네트워크로 연결된 하나의 그룹입니다. 죄송합니다. 더 쉽게 설명해보겠습니다. 간단히 설명하자면 학교나 회사에서 같은 라우터에 연결된 컴퓨터끼리 폴더 [2] 를 공유해 작업할 때, 이 컴퓨터들은 같은 도메인에 가입되어 있어야 합니다. 윈도우의 도메인 주소( \\BUJANG-PC\data\document.doc 과 같은 형식)를 이 글을 보시는 여러분께서 한 번쯤은 보셨으리라 생각합니다. 여기서 BUJANG-PC 를 식별하기 위해 도움을 주는 것이