사용자 도구

사이트 도구


windows:development_environment

Windows 개발 환경 구축

기본

  • 절대로 한글 혹은 유니코드 사용자명을 만들지 않는다. 각종 문제를 일으킨다. 사용자명과 사용자 HOME 폴더(C:\Users\XXX) 영문과 숫자, 점 정도로만 이뤄지게 구성한다.
  • 특히 Ahnlab Safe Transaction, nProtect 등 각종 민원이나 은행 업무를 위한 자동 설치 프로그램들을 깔지 말고 별도 가상 머신으로 관리한다.
    • Ahnlab Safe Transaction, nProtect 등은 해당 서비스 사이트 접속 여부와 관련없이 백그라운드로 항상 떠 있으면서 PC 안정성을 해치는 것으로 보인다.
    • 이 원인이 DockerWindows Subsystem For Linux과의 충돌일 수도 있다. 어쨌든 심하게 시스템을 다운시킨다.
    • 필요할경우 구라제거기에서 최신 버전을 받아서 실행하여 해당 보안프로그램들을 삭제해버린다.
  • 각종 애플리케이션을 시작 프로그램으로 지정하려면 Win-R 하고 shell:startup 명령을 실행하면 나오는 폴더에 애플리케이션의 바로가기를 만들어 넣으면 된다.

소프트웨어 패키지 관리

  • winget MS 공식 소프트웨어 패키지 관리
  • Chocolatey Gallery 를 이용하여 Linux 의 aptyum, MacOS X의 Homebrew 처럼 애플리케이션을 설치할 수 있다.
    • Chocolatey는 애플리케이션을 전역 설치 한다. 따라서 Admin 권한으로 애플리케이션을 설치해야 한다.
    • sudo 혹은 elevate 를 이용해 이 문제를 편하게 할 수 있다. 아래에 기술.
    • scoop은 기본적으로 현재 로그인 사용자용으로 애플리케이션을 설치한다.
    • 애플리케이션 수가 적은 편으로 보이는데 리눅스에서 사용하던 명령어들을 많이 가지고 있다.

PowerShell sudo

  • Chocolatey 이용시에 관리자권한으로 콘솔을 열어야만하는게 매우 불편하다.
  • Windows sudo 에서 sudo 명령 혹은 elevate 를 받아서 깔고 그 뒤부터 관리자 권한이 필요한 콘솔 명령은 sudo choco install xxx 혹은 el choco install xxx 처럼 실행하면 된다.
  • sudo는 권한 상승 요청 창이 한 번 뜬다. elevate는 안 뜬다.

ssh client

  • Putty 를 설치하고
  • pageant로 Key 를 등록해준다. pageant는 이후 Git for Windows, 그리고 WSL Linux에서도 ssh-agent 로 사용할 수 있다.

WSL Ubuntu Linux 설치 / SSH Server 설치

  • Windows Subsystem For Linux 로 Ubuntu 리눅스를 설치했다.
  • 성능 저하가 심각하다.
    • 바이러스 백신 혹은 Windows Defender에서 %USERPROFILE%\AppData\Local\Packages 폴더에서 CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc 처럼 생긴 폴더를 제외 처리해주면 약간 빨라진다.
    • oh-my-zsh, oh-my-bash등은 거의 사용하기 힘들 정도로 느리게 작동한다. 그래서 프롬프트는 간단히 git에 있는 color prompt 정도만 설정했더니 쾌적하게 사용가능했다.
  • WSL Ubuntu Linux OpenSSH Server 에서 SSH 서버 설정도 하였다.
  • Weasel Pageant - WSL Linux ssh-ageant to putty pageant 를 이용하여 pageant를 ssh-agent 로 지정해주면 pageant에만 키를 등록해도 WSL Linux 에서 ssh명령이 pageant의 key를 사용할 수 있게 된다.
  • GradleMaven의 repository 디렉토리를 윈도우용 과 동일하게 맞춰준다. → 디스크 용량 아끼기
  • WSL Linux 상에서는 윈도우 애플리케이션도 쉽게 실행할 수 있다. 따라서 git 의 difftool 도 윈도우용 diff 애플리케이션으로 지정가능하다. Meld, WSL, git, and Beyond Compare - SEP Blog
  • WSL Linux가 Windows의 파일을 읽고/쓸 수는 있으나 Windows의 애플리케이션이 Linux 측의 파일에 쓰기를 해서는 안된다

Console

  • CmderConEmu Windows Terminal Emulator를 둘 다 써봤는데(Cmder는 어차피 ConEmu 확장이다), Cmder는 느리고 버그도 많았다. ConEmu 추천.
  • Quake 모드에 Win+~ 키를 할당해서 사용한다.
  • PowerShell과 Wsl Bash 모두 한 창에서 열도록 했다. tasks 파일을 만들어 지정해주면 한 번에 두개의 콘솔이 열린다. %ConEmuBaseDirShort% 환경변수로 미리 ConEmu의 설치 폴더 지정해 뒀음.
    >powershell.exe
    set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -C~ -cur_console:pm:/mnt
  • bash console의 경우에는 그냥 사용하면 온갖 버그가 창궐한다. ConEmu가 제공해주는 wslbridge를 사용해야 한다. ConEmu Windows Terminal Emulator 참조

Git

  • Git for Windows 를 참조.
  • 기존 처럼 windows 용 git을 설치해도 되고 WSL Linux의 git을 사용할 수도 있다. https://github.com/andy-5/wslgit
  • plink.exeGIT_SSH 환경 변수로 설정해주면 pageant를 ssh-ageant로 사용한다.
  • Powershell, CMD 콘솔에서 한글을 올바로 보려면 LC_ALL 환경변수를 지정해야 한다.
    set LC_ALL="C.UTF-8"

Docker / Vagrant / VirtualBox 등 설치

  • docker, VirtualBox, Vagrant 로 각종 서버류 설치.
  • Windows 10 부터는 Docker가 native로 작동해서 너무 좋다.

한영 전환을 Shif-Space로 하기

  • jwShiftSpaceKey(Windows참조)를 사용하연 기본 한/영키 매핑에 Linux 사용자에게 익숙한 Shift-Space 키를 한영 전환키로 추가해준다.

ClipBoard 관리

  • Linux에서 clipit 같은 프로그램으로 다중 클립보드를 사용했었는데, 윈도우의 경우에도 Ditto Clipboard Manager 같은 것이 있어서 사용가능하다.
  • 복사한 것의 히스토리를 유지해서 기존에 복사했던 문자열을 다시 붙여넣기 할 수 있다.

PowerShell

  • 아직 Windows Powershell에 익숙치 않지만 어느정도는 꾸며두었다.
  • PowerShell Gallary 를 통해 원하는 확장을 쉽게 설치할 수 있다.
  • Oh-My-Posh를 설치하고, tehrob 테마 사용중.
  • 또한 ls도 컬러로 지정.

코딩용 글꼴

  • 코딩용 글꼴은 고맙게도 네이버에서 만들어서 무료로 제공해주고 있는 D2Coding 글꼴을 지정했다.
  • D2Coding ligature를 지정하고 IntelliJ IDEA 에서 Ligature를 활성화 하면 코딩에서 자주 사용하는 특수 기호등이 예쁘게 나온다.

Windows 10 Desktop

  • Windows 10 에서 다중 데스크탑을 지원하는데 아직 매우 불편하다. 게다가 현재 보고 있는 데스크탑이 몇번인지도 쉽게 알기 어렵다.
  • VirtualDesktopManager를 깔면 현재 보고 있는 데스크탑 번호를 태스크바에서 보여준다. - 단축키 충돌, 기능부족으로 폐기.
  • Virtual Desktop Enhancer가 더 낫다.

프로그래밍 언어 설치

  • Java 는 Jabba 와, 직접 설치로 관리
  • nvm windowsnode.js 설치
  • Gradle의 경우 Windows와 WSL Linux 어느 한쪽에 daemon이 떠있으면 다른쪽에 오동작한다. 그래서 daemon을 아예 꺼버렸다. ~/gradle.properities

기타 개발 도구

windows/development_environment.txt · 마지막으로 수정됨: 2023/07/20 19:45 저자 kwon37xi