개발자를 위한 Windows 11 설정

개발자를 위한 Windows 11 설정
Photo by Windows / Unsplash
  • updated 2022.08.31
    • Windows 11 TPM 2.0 회피 관련 추가
  • updated 2022.03.15: 오타수정 및 관련 패키지 업데이트
    • Visual Studio 2022로 업데이트, 제조사 드라이버 업데이트 관련 추가
  • updated 2021.10.21: 오타수정 및 기사 관련 테스터들의 의견 반영
    • IBM 폰트 추가, Visual Studio 설치 이후에 CUDA 및 cuDNN 설치

Windows 11 설치

Windows에서 개발 환경을 처음 구성하시는 분들을 위해 간단한 글을 작성하였습니다. 운영체제 설치 및 업데이트, 업그레이드에 앞서서 언제나 그렇듯이 사용하시던 시스템에 저장된 개인 데이터 및 환경 설정 관련 정보를 '철저'하고 '안전'하게 백업을 해두시길 권합니다. Dropbox, Google Drive 혹은 OneDrive의 동기화가 최신으로 되어 있는지 확인하세요. 백업이 완료 되셨나요? 그럼 시작해보죠!

Clean Install을 위한 설치 USB 만들기

설치에 앞서

  • Windows 11(21H1/22000.856, 이하 윈도우11)을 설치하기 위해선 먼저 하드웨어 사양을 확인해야 합니다. 현재 윈도우 11을 설치하기 위한 최소한의 하드웨어 중 여러분이 신경써야 하는 것은 TPM(Trusted Platform Module) v2.0을 지원 여부 입니다.

    • 사용하시는 하드웨어 제조사의 매뉴얼을 참고하시거나, 조립PC의 경우 메인보드 매뉴얼 또는 BIOS에서 TPM 2.0을 지원하는지 확인해보세요.
    • AMD PC의 경우 fTPM 항목을 활성화 하시고, Intel PC의 경우 PTT(Platform Trust Technology)를 활성화 하시면됩니다.
    • 기타 TPM 관련 사항은 하드웨어 제조사에 문의하세요.
  • TPM v2.0을 지원하신다면 일반적인 설치 방법을 참고하시고, TPM v2.0을 지원하지 않으시면 Rufus를 활용한 사용방법을 참고하세요.

일반적인 설치 방법

  • 윈도우11 ISO 파일을 다운로드 하는 방법 중 하나인 Create Windows 11 Installation Media를 사용해서 USB를 만드시길 권해드립니다.
    • 8기가 이상의 USB를 준비해주세요.
    • Windows 11 Installation MediaMicrosoft의 공식 홈페이지에서 다운로드 하실 수 있습니다.
    • Windows 11 Installation Media를 사용하면 하드웨어 지원 여부, ISO 다운로드, 설치 USB까지 한번에 진행하실 수 있습니다.

001_windows11_usb

  • 윈도우11을 개발 목적으로 사용할 예정이므로 설치할 윈도우는 영문으로 선택하였습니다. Use the recommended options for this PC의 선택을 해제하시면 언어(Language)를 선택하실 수 있습니다.

002_windows11_eng

Rufus를 사용한 USB 만들기

  • 구형 노트북이나 하드웨어 사용자의 경우 TPM v2.0을 지원하지 않는 경우도 있습니다. 이 경우 윈도우11 설치시 TPM을 우회하는 방법을 활용하시면 됩니다. TPM 우회를 하기 위해선 조금 번거로운 과정이 있으니 아래 사항을 잘 확인하셔서 진행하시기 바랍니다.

    1. 윈도우11을 설치하기 위해선 ISO 파일을 먼저 다운로드 받아야 합니다. ISO 파일은 MS에서 제공하는 공식 사이트에서 [다운로드] 받을 수 있습니다. ISO 파일 다운로드의 경우 MS 공식 사이트가 아닌 곳에서 다운로드 받는 것을 추천드리지 않습니다. 그리고 윈도우는 영문 버전을 사용하세요.

ISO 파일 다운로드

    1. Rufus에서 다운 포터블(portable) 버전을 다운로드하세요. exe 파일을 다운로드 받으면, 설치없이 사용하실 수 있습니다.
    1. Rufus를 실행하고, 다운로드 받은 ISO 파일을 Boot selection 옆에 있는 SELECT 버튼으로 선택하면 해당 파일 정보가 표시됩니다. Partition schemeGPT로 선택하시고, 하단에 있는 START 버튼을 선택하시면 새로운 창이 하나 나옵니다. 해당 창에서 Remove requirement for 4GB+ RAM, secure Boot and TPM 2.0'만 선택하시고 OK` 버튼을 선택하시면 TPM 2.0 지원 여부와 상관없이 설치 가능한 USB가 만들어집니다.

Screenshot-2022-08-31-131619

  • 구형 노트북이나 데스크탑이 아닌 경우에는 TPM 2.0을 지원하니 경우가 많으니 무리하게 TPM 2.0을 우회하지 않도록 하세요.

설치 USB를 사용한 부팅

  • 윈도우11 설치를 위해 만든 USB를 사용해서 부팅을 진행합니다. 사용하시는 하드웨어 제조사에 따라서 USB로 부팅하는 방법이 다르긴 하지만, 하드웨어 부팅시 단축키를 사용하여 설치 USB로 부팅을 진행할 수 있습니다. 예를 들어, LG 노트북은 컴퓨터 전원 인가 후 F10키를 사용해서 아래와 같이 부팅시 사용할 미디어를 선택할 수 있습니다.

003_windows11_usb

Windows 11 Clean Install

4가지 주의사항

  • 첫째, 설치 언어(Language to install)를 'English'로 선택하시고, 시간 및 통화 형식(Time and currency format)은 'Korean(Korea)'를 선택하세요.

    • 언어 전환(영문<->한글) 방법 중 Shift + Space를 사용하시면 Korean PC/AT 101-Key Compatible Keyboard (Type 3)를 선택하세요.
      004_windows11_install
  • 둘째, 윈도우11 제품키의 경우 기존에 사용하시던 제품키를 그대로 사용하시면 됩니다. 그리고 제품키가 기억이 안나거나 계정 연동으로 인증을 진행하시는 경우, 제품키 없이 설치 후에 Microsoft 계정을 사용하셔서 인증을 진행하셔도 됩니다.

  • 셋째, 윈도우11 버전은 Pro를 권해드리며, Home을 사용하신다면 회사에서 사용하지 마시고 개인적인 용도로 사용하셔야 됩니다.

    • 회사에서 업무용도로 사용하실 경우 관련 라이센스에 관한 내용은 본 기사를 참고하시지 마시고, Microsoft에 꼭 문의하세요.
    • 윈도우 구매시 N이 붙은 버전은 No Media 버전으로 미디어 재생 기능을 삭제한 버전입니다. 개발 관련해서 기존 버전과 별다른 차이점이 없으므로 N 버전을 구매하셨다면 N 버전을 사용하셔도 됩니다.

005_windows11_pro

  • 마지막으로, 기존에 사용하시던 파티션을 다 삭제하시고, New를 사용해서 새로운 파티션을 만드시면 현재 사용하시는 하드웨어에 가장 적합한 파티션 구성으로 만들어 줍니다(GPT or MBR).
    • 파티션을 새롭게 만들게 되면 모든 데이터가 삭제되니, 기존 데이터는 꼭 백업을 하셔야 됩니다.

006_windows11_disk

개발 환경 구성

새로운 배경화면의 윈도우 11을 확인하실 수 있습니다. 이제 몇가지 사소하지만 중요한 설정을 진행하도록 하겠습니다.

007_windows11_login

일반적인 환경 설정

하드웨어 드라이버 설치

  • 윈도우11에서 대부분의 하드웨어 드라이버를 다 설치해주긴 하지만, 최신의 하드웨어는 별도의 드라이버를 설치해야 하는 경우가 있습니다. 사용하시는 하드웨어의 드라이버를 다 설정해주세요.

  • 하드웨어에 드라이버 설치 관련해서는 Settings > System > About > Device Manager를 선택하셔서 느낌표로 표시된 장치가 없는지 확인하세요. 느낌표로 표시된 장치가 있으시면 해당 하드웨어의 드라이버를 설치해주세요.

Screenshot-2022-08-31-132909

  • 하드웨어 드라이버에 관한 문의는 제조사 및 구매처에 하시면 됩니다.

한글 설정

  • Settings > Time & language > Language & region > Korean > Options(...) > Language pack, Basic typing, HandwritingSpeech를 설치해주세요. 그리고 하단에 위치한 Keyboards에서 Microsoft IME를 선택해주세요. 설치후 재시작이 필요하다면 재시작을 진행해주세요.

한국어 설정

  • 유니코드로 작성되지 않은 프로그램이 실행 시 출력할 문자를 설정하기 위해서 Settings > Time & language > Language & region > Administrative language settings > Language for non-Unicode programs > Korean(Korea)로 변경하세요.

유니코드 아닌 프로그램에 사용될 문자셋 지정

  • 한글 설정(3); Settings > Time & language > Typing > Advacned keyboard settings > Korean - Microsoft IME 를 선택하세요.

입력기 지정

Windows Update(가장 중요!)

  • Settings > Windows Update를 선택하여 윈도우 11에 필요한 필수적인 업데이트를 반영하세요.

009_update

  • 설치 후 곧바로 업데이트를 진행하시면 아래와 같이 보안 및 버그 패치를 진행합니다. Windows Update는 반드시 하셔야 됩니다. 재부팅이 필요하다면 재부팅을 하셔서 업데이트를 반영하세요.

010_update

  • 윈도우 업데이트 항목 중에서 Settings > options > Receive updates for otheer Microsoft products를 활성화(ON)하시고 Optional updates도 함께 살펴보셔서 필요한 업데이트가 있으시면 진행해주세요.

optional_updates

NVIDIA 그래픽 카드 드라이버 업데이트

  • NVIDIA 그래픽 카드를 사용하신다면 NVIDIA 홈페이지에서 최신 드라이버를 다운로드 받아서 설치를 진행해주세요(저는 v516.94 버전을 사용합니다)
    • CUDA가 필요해서 윈도우11을 설치해서 개발 환경을 구성하고 있기 때문에 NVIDIA 드라이버를 최신으로 하였습니다. 만약, CUDA를 사용하지 않으시면 그래픽 카드는 사용하시는 소프트웨어나 게임에 최적화된 버전을 설치하셔도 됩니다.

011_nvidia

Microsoft Store

  • Microsoft Store를 실행 후 업데이트를 진행하시면 잠시 후 새로운 모습의 Microsoft Store가 실행됩니다. 윈도우11에 기본적으로 설치된 App도 함께 업데이트가 진행되니, Store 업데이트를 꼭 진행하세요.

018_store

  • 좌측 하단의 Library > Get updates를 선택해서 현재 설치된 App을 최신버전으로 업데이트 진행해주세요.

기타 설정

  • Settings에서 개발에 자주 사용할 몇가지 설정을 진행하세요.
    • Dark 테마/모드는 Personalization > Themes > Current theme에서 확인 할 수 있습니다.
    • 시작 프로그램 설정은 Apps > Startup 에서 확인 할 수 있습니다.
  • Desktop의 경우 Power 모드를 설정해서 성능을 확보할 수 있습니다.
    • Control Panel > Hardware and Sound > Power Options 에서 확인 할 수 있습니다.

016_theme-1

개발 관련 필수 프로그램 설치

폰트

  • D2Coding 폰트 설치
    • Github에서 D2Coding-Ver1.3.2-20180524.zip를 다운로드 받고, 압축을 해제 후 D2CodingAll > D2Coding-Ver1.3.2-20180524-all.ttc를 더블클릭해서 설치(Install)해 주세요.

019_d2font

  • IBM Plex 폰트 설치
    • Github에서 IBM Plex 폰트를 다운 하셔서 IBM-Plex-Sans-KRIBM-Plex-Mono를 설치하였습니다.

Visual Studio 관련

Visual Studio 2022 설치

  • Visual Studio 2022 Community 설치 프로그램을 다운로드 후 실행하세요. C++ 관련 패키지를 설치해주시고, 저는 C#을 공부하고 있어서 .NET 관련 패키지도 함께 설치하였습니다.

020_vs

Visual Sutdio Code 설치

CUDA 및 cuDNN 설치

  • Windows Terminal > nvidia-smi.exe를 사용해서 CUDA 버전을 확인하고, 해당 버전에 맞게 CUDA 및 cuDNN 드라이버 설치를 진행하였습니다.

012_cuda

PowerShell과 Windows Terminal 설정

  • Settings > PowerSehll > Appearance > Font faceFont size를 원하는 것으로 수정하세요.

022_wt

Scoop 설치

  • Python, Node.js, Haskell 등을 홈 디렉토리(C:\Users\username)에서 관리할 수 있게 도와주는 Scoop을 사용해서 개발 관련 툴을 설치하였습니다.

    • scoop의 경우 프로그램을 홈 디렉토리에 설치하기 때문에 chocolatey이나 winget에 비해서 관리가 편리합니다.
    • 개인적으로 사용자 디렉토리에 프로그램을 설치해서 관리하는 것을 선호하기 때문에 scoop을 사용하지만, chocolatey이나 winget도 나름의 장점이 있으니 궁금하시면 chocolatey이나 winget에 도전해보셔도 좋을 듯 합니다.
  • Scoop 설치를 위해서 Windows Terminal을 실행하세요.

// 권한설정, admin 권한을 가진 PowerShell이나 Terminal에서 사용하지 않도록 주의하세요.
$ PS C:\Users\username> Set-ExecutionPolicy RemoteSigned -scope CurrentUser

// scoop을 설치하기 위한 명령어 입니다.
$ PS C:\Users\username> Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

023_scoop

  • bucket 추가; scoop에서 사용할 수 있는 패키지 중에서 개별 버전(python 3.5, 3.6) 설치하기 위해선 scoop의 bucket을 추가해야 합니다.
    • bucket은 git을 사용해서 관리되기 때문에, git을 먼저 설치해야 하며, 이후 bucket add 명령어를 사용해서 extrasversions bucket을 추가하면 됩니다.
// scoop을 사용해서 git을 설치
PS C:\Users\username> scoop install git

// 현재 등록 가능한 bucket을 출력
PS C:\Users\username> scoop bucket known
main
extras
versions
...
jetbrains

// 차례대로 extras, versions, java bucket을 추가
PS C:\Users\username> scoop bucket add extras
PS C:\Users\username> scoop bucket add versions
PS C:\Users\username> scoop bucket add java

Python 설치

  • 현재(2022년 08월 31일) Tensorflow 2.9.1이 Python 3.10을 지원하지 않기 때문에 Python 3.9버전을 설치하도록 하겠습니다.
  • scoop의 search 명령을 사용해서 설치 가능한 python을 검색할 수 있습니다. scoop의 install 명령을 사용해서 python39 패키지를 설치하세요.
// 설치 가능한 패키지를 검색
PS C:\Users\username> scoop search python
'extras' bucket:
    anaconda3 (2021.05) --> includes 'python.exe'
    miniconda3 (4.10.3) --> includes 'python.exe'

'main' bucket:
    python (3.10.0)
    winpython (3.8.9.0)

'versions' bucket:
    anaconda2 (2019.10) --> includes 'python.exe'
    miniconda2 (4.8.3) --> includes 'python.exe'
    python-alpha (3.11.0a1)
    python-beta (3.8.6rc1)
    python27-beta (2.7.18rc1)
    python27 (2.7.18)
    python35 (3.5.4)
    python36 (3.6.8)
    python37 (3.7.9)
    python38 (3.8.10)
    python39 (3.9.7)

// Python v3.9.7 버전을 설치
PS C:\Users\username> scoop install python39
Installing 'python39' (3.9.7) [64bit]
python-3.9.7-amd64.exe (27.6 MB) [============================================================] 100%
...
'python39' (3.9.7) was installed successfully!

// Python 실행 후 버전 확인
PS C:\Users\username> python
Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Node.js 설치

  • Node는 최신 버전을 설치하도록 하겠습니다.
PS C:\Users\username> scoop search node
'extras' bucket:
    soundnode (7.0.0)
    tinode-mysql (0.17.10)

'main' bucket:
    eventstore (20.10.4) --> includes 'EventStore.ClusterNode.exe'
    geth (1.10.9) --> includes 'bootnode.exe'
    node-chakracore (10.13.0)
    nodejs-lts (14.18.0)
    nodejs (16.11.0)
    sliksvn (1.14.1) --> includes 'svn-populate-node-origins-index.exe'

'versions' bucket:
    nodejs010 (0.10.48)
    nodejs012 (0.12.18)
    nodejs10 (10.24.1)
    nodejs11 (11.15.0)
    nodejs12 (12.22.6)
    nodejs14 (14.18.0)
    nodejs4 (4.9.1)
    nodejs5 (5.12.0)
    nodejs6 (6.17.1)
    nodejs7 (7.10.1)
    nodejs8 (8.17.0)
    nodejs9 (9.11.2)

PS C:\Users\username> scoop install nodejs
Installing 'nodejs' (16.11.0) [64bit]
node-v16.11.0-win-x64.7z (16.0 MB) [============================================================] 100%
Checking hash of node-v16.11.0-win-x64.7z ... ok.
Extracting node-v16.11.0-win-x64.7z ... done.
Linking ~\scoop\apps\nodejs\current => ~\scoop\apps\nodejs\16.11.0
Persisting bin
Persisting cache
Running post-install script...
'nodejs' (16.11.0) was installed successfully!

PS C:\Users\username> node
Welcome to Node.js v16.11.0.
Type ".help" for more information.
>

Haskell 설치

  • Haskell은 Stack을 사용하기 때문에 Stack을 설치하도록 하겠습니다.
PS C:\Users\username> scoop search stack
'main' bucket:
    stack (2.7.3)

PS C:\Users\username> scoop install stack
Installing 'stack' (2.7.3) [64bit]
stack-2.7.3-windows-x86_64.zip (13.2 MB) [============================================================] 100%
Checking hash of stack-2.7.3-windows-x86_64.zip ... ok.
Extracting stack-2.7.3-windows-x86_64.zip ... done.
Running installer script...
Linking ~\scoop\apps\stack\current => ~\scoop\apps\stack\2.7.3
Creating shim for 'stack'.
'stack' (2.7.3) was installed successfully!

PS C:\Users\username> stack ghci
Writing implicit global project config file to: C:\Users\sigma\AppData\Roaming\stack\global-project\stack.yaml
Note: You can change the snapshot via the resolver field there.

...

Prelude> putStrLn "Hello world!"
Hello world!
Prelude>

Windows 11에서 즐거운 개발 되시길 바라요!