개발자를 위한 Windows 11 설정

개발자를 위한 Windows 11 설정
Photo by Windows / Unsplash

Windows 11 설치

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

Clean Install을 위한 설치 USB 만들기

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

    • 사용하시는 하드웨어 제조사의 매뉴얼을 참고하시거나, 조립PC의 경우 메인보드 매뉴얼 또는 BIOS에서 TPM 2.0을 지원하는지 확인해보세요.
    • AMD PC의 경우 fTPM 항목을 활성화 하시고, Intel PC의 경우 PTT(Platform Trust Technology)를 활성화 하시면됩니다.
    • 기타 TPM 관련 사항은 하드웨어 제조사에 문의하세요.
  • 사용하시는 하드웨어가 윈도우11을 지원하는지 정확히 모르겠다면, 윈도우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

설치 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

Windows Update(가장 중요!)

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

009_update

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

010_update

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

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

011_nvidia

AMD/Intel Chipset Driver 업데이트

  • AMD/Intel 칩셋 드라이버의 업데이트를 진행합니다. 메인보드 칩셋 제조사에서 최신 버전의 칩셋 드라이버를 다운로드 받아서 진행하시면 됩니다.

한글 설정

  • 한글 설정(1); Settings > Time & language > Language & region > Administrative language settings > Language for non-Unicode programs > Korean(Korea)로 변경하세요.

013_korean-1

  • 한글 설정(2); Settings > Time & language > Language & region > Korean > Options(...) > Language packBasic typing 등을 설치하시고 재부팅을 합니다.

014_korean

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

015_korean

기타 설정

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

016_theme-1

Microsoft Store

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

018_store

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

폰트

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

020_vs

  • Visual Sutdio Code 설치

  • CUDA 및 cuDNN 설치

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

012_cuda

PowerShell과 Windows Terminal 설정

  • PowerShell v7 설치

  • Windows Terminal 설정

    • Windows Terminal > Settings(Ctrl + ,) > Startup > PowerShell을 선택해서 PowerShell v7을 기본 쉘로 지정하세요.

021_wt

  • 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 설치

  • 현재(2021년 10월 09일) Tensorflow 2.6이 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) [============================================================================]
...
'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.
Using latest snapshot resolver: lts-18.13
Preparing to install GHC to an isolated location.
This will not interfere with any system-level installation.
Downloaded ghc-8.10.7.
Downloaded 7z.dll.
Downloaded 7z.exe.
Decompressing ghc-8.10.7.tar.xz...

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Processing archive: C:\Users\sigma\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.7.tar.xz

Extracting  ghc-8.10.7.tar

Everything is Ok

Size:       2768711680
Compressed: 434126144
Extracting ghc-8.10.7.tar...
Extracted total of 10342 files from ghc-8.10.7.tar
GHC installed to C:\Users\sigma\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.7\
Downloaded msys2-20210604.
Already downloaded.
Already downloaded.
Decompressing msys2-20210604.tar.xz...

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Processing archive: C:\Users\sigma\AppData\Local\Programs\stack\x86_64-windows\msys2-20210604.tar.xz

Extracting  msys2-20210604.tar

Everything is Ok

Size:       390021120
Compressed: 99822772
Extracting msys2-20210604.tar...
Extracted total of 17688 files from msys2-20210604.tar
Copying skeleton files.
These files are for the users to personalise their msys2 experience.

They will never be overwritten nor automatically updated.

'./.bashrc' -> '/home/sigma/.bashrc'
'./.bash_logout' -> '/home/sigma/.bash_logout'
'./.bash_profile' -> '/home/sigma/.bash_profile'
'./.inputrc' -> '/home/sigma/.inputrc'
'./.profile' -> '/home/sigma/.profile'

Note: No local targets specified, so a plain ghci will be started with no package hiding or package options.

      You are using snapshot: lts-18.13

      If you want to use package hiding and options, then you can try one of the following:

      * If you want to start a different project configuration
        than C:\Users\sigma\AppData\Roaming\stack\global-project\stack.yaml, then you can use stack init to create a new stack.yaml for the
        packages in the current directory.

      * If you want to use the project configuration
        at C:\Users\sigma\AppData\Roaming\stack\global-project\stack.yaml, then you can add to its 'packages' field.

Configuring GHCi with the following packages:
GHCi, version 8.10.7: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from C:\\Users\\sigma\\AppData\\Local\\Temp\\haskell-stack-ghci\\2a3bbd58\\ghci-script
Prelude> putStrLn "Hello world!"
Hello world!
Prelude>
  • updated 2021.10.21: 오타수정 및 기사 관련 테스터들의 의견 반영
    • IBM 폰트 추가
    • Visual Studio 설치 이후에 CUDA 및 cuDNN 설치