본문 바로가기
Development/기타 개발관련

개발자 윈도우 세팅 (WSL 서브 리눅스, IntelliJ, vscode, git 등)

by Nahwasa 2022. 7. 24.

목차

     

     

    0. 이 글의 목표

      일반적으로 리눅스에서 IDE를 설치해 개발하기 보다는 윈도우 또는 맥 환경에서 많이 작업한다. 하지만 실제 프로젝트가 올라가는 서버는 리눅스 서버를 많이 사용한다. 또한 리눅스 시스템을 기반으로 만들어진 많은 시스템들이 있으므로 윈도우에서만 개발하기에는 한계가 있고 불편한 점들이 생긴다. 예를들어 윈도우에서만 돌려본 프로젝트가 실제 리눅스 환경에 올렸을 때 100% 정상 동작할지 보장할 수 없다.

     

      이전에 이런 생각을 했었고, 주변 친구들과 인터넷의 여러 글들을 찾아보며 기본이 되는 윈도우 세팅을 구성해두었다. 처음엔 vmware에 맥을 설치해서 해보기도 하고, 리눅스를 가상으로 올려보기도 하고, WSL로 설치한 리눅스에 ubuntu용 intellij를 올린다음 GUI 환경이 없으니 VcXsrv를 설치해 리눅스의 인텔리제이를 윈도우에서 실행하는 등 다양하게 시도해봤다. 그러면서 현재까지 크게 불만 없이 사용중인 순전히 내 취향에 맞춘 세팅 방법을 공유한다.

    이런식으로 노션에 시도한것들을 정리하면서 작성해뒀었다.

     

      윈도우 환경에서 리눅스를 서브 시스템으로 사용하는 환경을 만드는게 목표이다. 구체적으로는 윈도우에 설치된 IntelliJ, Virtual Studio Code(이하 vscode) 등에서 작업 후 실행을 윈도우에서도 할 수 있고 리눅스에서도 할 수 있는 환경을 만든다. 개인적으로 좋아보이는 것들 모아서 사용하고 있던 환경에 블로그에 글로 적기 위해 설명들을 추가한 것으로 아직까지는 만족하며 사용중이다. 기본세팅으로 당연히 더 필요한게 있다면 알아서 추가해서 쓰면 된다. 이후 docker 등 다른 것들도 정리해서 올려보면 좋을 것 같다.

     

      최종적으로 아래와 같이 윈도우에 설치된 인텔리제이 혹은 vscode에 리눅스 터미널을 연동해서 메인으로 윈도우 환경에서도 동작시킬 수 있고, 서브로 리눅스 환경에서도 동작시킬 수 있는 환경을 만들꺼다. 개인적으로 프로젝트마다 가상 환경을 올려서 새로 세팅하는걸 좋아한다(세팅 새로하는것 자체를 좋아함ㅋㅋ). 따라서 여러번 해보면서 최적화(?)된 세팅 방식이라 윈도우10 이기만 하면 글 그대로만 따라오면 별 문제없이 동일하게 세팅이 가능할 것 같다.

     

     

     

    1. WSL (Windows Subsystem for Linux)

    WSL?

      윈도우 시스템을 메인으로 사용하면서 리눅스도 서브로 사용하거나, 둘 다 메인으로 사용해야 하는 경우가 있다. 이 때 흔히 생각나는 방법은 듀얼 부팅을 사용하거나 VMware 혹은 VirtualBox 등의 가상머신을 사용해 리눅스를 설치하는 방법이다. WSL의 경우 듀얼 부팅으로 쓰는 번거로움이나 가상머신을 썼을 때의 버벅임 같은 것 없이 더 빠르고 편하게 윈도우 내에 터미널 기반의 리눅스 환경을 설치해서 사용할 수 있다. 또한 파일시스템도 어느정도 공유 가능하므로 가상머신보다 훨씬 편하게 사용 가능하다.

      다만 2022-07-22 기준 아래의 리눅스들만 설치할 수 있다. 따라서 centOS 등 원하는 특정 OS 사용시에는 사용할 수 없다.

     

     

    Windows Terminal 설치

      리눅스의 터미널처럼 만들어준 윈도우의 터미널이다. 윈도우의 cmd, powershell 등을 기본적으로 실행할 수 있고, 이 글에서 설치하려는 WSL의 리눅스 터미널도 실행할 수 있다.

     

    윈도우 버튼 -> Microsoft Store 검색 후 실행

     

     

    Windows Terminal 검색 후 설치

     

     

    WSL 설치 (Ubuntu 설치)

    A. 윈도우 버튼 -> 터미널 검색 후 관리자 권한으로 실행 (또는 powershell 검색 후 관리자 권한으로 실행)

     

    B-1. 이하의 WSL 설치 명령어 입력(기본적으로 Ubuntu 20.04 LTS가 설치되며, 특정 버전의 리눅스 혹은 다른 리눅스를 설치하려고 할 경우 'B-2'를 확인. 혹은 이하 명령어로 설치가 안될 경우에도 B-2 참고.)

    wsl --install

    관리자 권한으로 연 터미널의 powershell에서 설치
    관리자 권한으로 연 powershell에서 wsl 설치

     

    B-2. 특정 리눅스를 선택해서 설치할 경우 이하의 명령어 입력

    wsl -l -o

    목록 중 특정 OS를 이하의 명령어로 설치 ('<NAME>' 부분에 목록의 NAME 입력. 혹시 B-1이 안되서 B-2로 온 경우라면 Ubuntu-20.04 혹은 Ubuntu를 입력하면 된다.)

    wsl --install -d <NAME>

     

    C. 윈도우 재부팅

    재부팅 후 자동으로 설치 과정 진행

     

    좀 기다리면 username와 password 물어보니 입력

     

    참고로 현재는 윈도우 터미널을 실행하면 powershell이 먼저 뜰텐데, 터미널의 '설정'에서 변경 가능하다.

     

     

     

    D. 윈도우버튼 -> ubuntu 검색해서 실행하거나, 윈도우 터미널에서 우분투 실행 가능

     

     

    E. WSL1에서 WSL2로 업그레이드 (WSL1이 설치되었다면 진행)

    - powershell에서 이하의 명령어 입력해서 버전 확인

    wsl -l -v

     

    이미 VERSION이 2라면 WSL2이므로 넘어가면 되고, 1이라면 이하의 명령어로 버전 변경 가능 (2를 쓰다가 1로 낮추려고 한다면 '2' 대신 '1' 기입)

    wsl --set-default-version 2

     

     

    참고. vmware에서 진행중이라면 이하의 기능을 켜줘야 한다.

     

     

    참고. WSL2로 업그레이드 시 Hyper-V 어쩌구 하는 에러가 나올 경우

      현재 컴퓨터 구성에 따라 기본값이 다를 수 있다.(내 경우 아무런 설정도 진행하지 않고 이 글을 모두 진행할 수 있었다.) 만약 Hyper-V 어쩌구 하는 에러 혹은 필요한 기능이 설치되지 않았다는 날 경우 윈도우버튼 -> 'Windows 기능' -> Hyper-V를 켜주자. (https://docs.microsoft.com/ko-kr/windows/wsl/troubleshooting#error-0x80370102-the-virtual-machine-could-not-be-started-because-a-required-feature-is-not-installed)

     

    위의 기능이 켜지지 않는다면 pc 사양상 지원이 아예 안되는 것이거나, bios에서 세팅할 수 있다. 이 경우엔 이 글(https://bce.berkeley.edu/enabling-virtualization-in-your-pc-bios.html)을 참고해서 bios에서 가상화 기능을 켜주자. 아니면 이하 WSL1 vs WSL2에도 있듯이 서로 장단점이 있을 뿐 사용 자체는 똑같아서 WSL1 으로 써도 된다.

     

     

     

    참고. WSL1 vs WSL2

      WSL2의 경우 윈도우10, 버전 1903, 빌드 18362 이상에서 실행 가능하므로 WSL2로 변경이 불가능하다면 윈도우 업데이트를 진행할 것.

     

      가상 환경으로 구성하고 싶다면 WSL2는 VMware 15.5.5 이상, VirtualBox는 6 이상에서 동작 가능

     

      WSL1과 WSL2의 차이는 표로 보면 다음과 같음. (자세한 사항은 References의 .../compare-versions 참고)

    전반적으로 WSL2가 성능이 좋으므로 앵간하면 WSL2를 사용하는게 좋음.

     

     

    WSL과 윈도우 간의 파일 공유

      만약 가상으로 리눅스를 설치한 경우라면 공유폴더를 지정하는 등 별도의 번거로움이 있을 것이다. 하지만 WSL 사용시에는 리눅스에서 /mnt 폴더를 통해 윈도우 파일시스템을 바로 사용 가능하다! (c 드라이브로 가려면 cd /mnt/c)

     

      다만 파일 권한은 윈도우와 리눅스간에 다르기때문에, 필요한 경우 별도로 chmod로 권한은 줘야한다. 일반적으로 인텔리제이나 vscode에 연결해서 사용하는 동안엔 딱히 chmod 필요없이 사용 가능하다.

     

     

     

    2. WSL 리눅스 환경 꾸미기

    꾸미기 전후 비교 및 설명

      삭막한 리눅스 터미널을 좀 더 이쁘게 꾸며서 있어보이게 삭막해져보자. 이 부분은 부가적인 부분으로 안하려면 안해도 되는데 추천은 안한다. 시간 좀만 더 쓰시죠. 참고로 리눅스 터미널 세팅과 관련해서는 정답은 당연히 없다. 맥 사용자라면 맥 비슷하게 만들고 싶어할 것이고, 쉘도 다양하고 꾸미는 방법도 다양하다. 이하 설명은 당연히 내가 좋아하는 세팅방법이다. 너무 화려하진 않게!

     

    바닐라

     

    환경 세팅 후

     

     

    Meslo Nerd 폰트 설치

      꾸미기 위해 사용할 powerlevel10k 에서 필요하기도 하고(powerlevel10k 추천 폰트이다.), Nerd 폰트라고 하니 뭔가 좀 더 개발자스러운 느낌이 드니 폰트를 변경해보자.

      링크(https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Meslo)에서 M-DZ에 들어가보면 4개의 폴더가 있다. 내 경우엔 4개의 폴더 전부 '... Nerd Font Complete Windows Compatible.ttf' 를 받아서 사용한다.

    저 Download를 누르면 된다.

     

    다운 받아진 폰트들을 전부 설치하자.

     

      윈도우 터미널을 재시작 후 (설치된 폰트를 읽도록) '설정 -> 우분투 -> 모양 -> 폰트 변경'에서 'MesloLGMDZ NF' 선택 후 '저장'

     

     

    zsh, oh-my-zsh 설치

      현재 설치된 우분투는 기본적으로 bash 쉘을 사용하고 있다. 더 기능이 다양하고 꾸미기 좋은 zsh (z쉘)을 설치해보자. 대충 메모장을 에디터로 쓰다가 vscode를 에디터로 쓰는 그런거다. (플러그인도 다양하고 기능도 더 많다.) oh my zsh은 zsh 설정등을 더 편하게 사용할 수 있게 해주는 zsh 프레임워크이다. 대충 스프링 쓰다가 스프링부트 쓰는 그런거라고 보면 된다.

     

      우선 zsh을 설치해보자. 윈도우 터미널에서 ubuntu를 실행한 후 우선 아래 명령어를 입력해준다. 비밀번호는 아까 설정해둔 그 비밀번호를 입력하면 된다. 패키지 관리툴 업데이트 하는거라고 보면 된다. 참고로 WSL 설치할 때 우분투 말고 다른걸 깔았다면 기본 패키지 관리툴이 apt가 아닐 수 있다. 그 경우엔 다른 글을 찾아야 할 것 같다. 이 글은 WSL 설치 시 기본으로 깔리는 ubuntu를 기준으로 한다.

    sudo apt-get update

     

      다음으로 zsh 입력 명령어를 쳐준다. 'do you want to continue? [Y/n]' 물어보면 'y' 입력해주면 된다. 대소문자 상관 없음.

    sudo apt-get install zsh

     

      그리고 oh my zsh을 설치하자. 직접 치긴 어려울테니 복붙하자. 뭐라고 물어보면 이번에도 'y' 해주자. (zsh을 기본 쉘로 변경할꺼냐고 묻는거임. 이거 안해주면 매번 zsh 쳐서 들어와야 함)

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

     

      그럼 짜잔하고 뭔가 멋있는지 아닌지 애매한 아스키 아트가 나타난다.

     

     

    zsh 플러그인 설치

      이제 zsh을 깔았으니 다양한 플러그인들을 설치할 수 있다. zsh plugin 으로 검색하면 다양하게 나오니 원하는거 찾아서 써보자. 사실 우리도 인텔리제이나 vcs에 플러그인이 참 다양한데 잘 안쓴다. 그런거다. 아무튼 한번 같이 해봐야 다른 플러그인들도 설치하기 편할테니 개인적으로 잘 쓰고 있는 zsh-autosuggestions를 설치해보자. 예를들어서 막 명령어 치다가 이전 명령어 또 치고싶으면 키보드 위 방향키로 막 찾아서 많이들 썼을거다. 근데 예전에 작성한 명령어는 그렇게 찾기 힘들다. 저 플러그인 설치하면 이전에 쳤던 명령어 위주로 추천해준다. 사용 로그를 활용한 자동완성이라고 보면 된다.

     

      우선 아래 명령어를 복붙해서 클론 받아오자.

    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

     

      그리고 이하 명령어로 vi로 편집을 해야한다. 혹시 vi에 익숙치 않다면 누르라는거 말고는 누르지 말자. 분명히 골치아파질꺼다. vi를 처음 써본 모든 사람들이 그랬듯이.. 혹시 자긴 안그랬다면 기억력이 안좋은거다.

    vi ~/.zshrc

    A. 키보드의 'a'를 누른다. 그럼 아래처럼 '-- INSERT --' 가 뜨면서 수정모드가 된다.

     

    B. 자 이제 조심스럽게 아래 방향키를 눌러서 plugins=(git) 부분을 찾자.

     

    C. plugins를 아래와 같이 수정하자. (커맨드 : 방향키를 사용해 'git' 앞으로 이동 후 enter, git 뒤에서 enter, tab 누른 후 zsh-autosuggestions 쓰고 엔터ㅋㅋ)

    plugins=(
    	git
    	zsh-autosuggestions
    )

     

    D. 그리고 esc를 누른다음에 ':wq' 를 입력한다. ':'도 입력해줘야 한다. 그리고 엔터!

     

    ...

      위의 과정을 진행하면 vi를 틀기전의 안전한곳으로 다시 나올 수 있다. 참고로 뭔가 잘못했다면 esc -> ':q!'->enter 를 해보자ㅋㅋㅋ. 그리고 이하의 명령어를 실행해주면 플러그인이 적용된다. 

    source ~/.zshrc

     

      설치가 잘 되고나면 이전에 쳤었던 git c.. 이런것만 쳐도 회색으로 히스토리 기반 자동완성 추천이 뜬다. 우측 방향키로 자동완성을 적용할 수 있다. vi를 앞으로 계속 쓰기 싫다면 vim 등 좀 더 진보된 터미널 에디터를 찾아 사용해보자.

     

     

    powerlevel10k 설치

      이제 powerlevel10k를 설치할 차례이다. zsh용 터미널 테마이다. 이건 사용하던 IDE에서 다크 테마 넣는 그런거다. 다른 테마들도 있으니 다른 테마를 설치하려면 알아서 찾아보자(키워드 : zsh theme). 우선 이하의 명령어를 복붙해서 clone 받아오자.

    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

     

      다음으로 아까 봤던 vi를 다시 사용해줘야 한다. 이젠 아까 설치한 auto-suggestions 때문에 추천을 해줄꺼다. 물론 그렇다고 vi 작업도 대신해주고 그런건 없다.

    vi ~/.zshrc

     

      한 번 해봤으니 이번엔 쉬울거다. 마찬가지로 키보드 'a' 버튼을 누른 후 방향키로 'ZSH_THEME' 부분을 찾는다. 그대로 따라왔다면 위 방향키로 올라가면 있다.

     

      다음과 같이 변경해준다.

    ZSH_THEME="powerlevel10k/powerlevel10k"

      

      그리고 우분투 탭을 닫고 다시 실행하자. 그럼 powerlevel10k 설정창이 뜬다. 혹시 diamond로 보이냐고 하는데 아래처럼 다이아몬드로 안보인다면 위쪽에 'Meslo Nerd 폰트' 설정하는 부분 안했거나, 변경하고 '저장' 안누른거다. 이하 스샷은 내가 '저장' 안눌러서 저런거다. 다시 설정에서 폰트 변경해오자.

     

        아래처럼 떠야 정상적으로 폰트가 적용된거다.

     

      이제 취향대로 설정해주자. [ynq] 라고 되있으면 키보드에 'y', 'n', 'q' 버튼 누르면 넘어가는 식이다. 중간에 설정하다가 처음부터 다시하고싶으면 'r' 누르면 된다. 내 경우엔 아래와 같은 설정으로 주로 사용한다.

    Prompt Style : '2'

    Character Set : '1'

    Prompt Color : '2' 

    Show current time? : '2'

    Prompt Separators : '1'

    Prompt Heads : '1'

    Prompt Tails : '1'

    Prompt Height : '1'

    Prompt Spacing : '1'

    Icons : '2'

    Prompt Flow : '1'

    Enable Transient Prompt? : 'n'

     

      그 외 나머지는 recommended로 하면 된다. 특히 Apply changes to ~/.zshrc는 꼭 'y'로 해주자. 설정이 끝나면 테마가 적용된걸 볼 수 있다.

     

     

     

    3. GIT (Github)

      git을 사용한다면 진행해주자. svn을 사용한다거나 별도의 VCS를 사용하지 않을꺼라면 넘어가면 된다. 기본적으로 인텔리제이 등에 git을 연동시키기 위해 윈도우에 설치할꺼다. 그리고 뭘 좋아할지 모르므로 일단 powershell에서도 CLI 환경으로 github과 연동해 사용할 수 있도록 세팅한다. 또 뭘 좋아할지 모르므로 WSL에도 git을 설치하고 CLI 환경으로 github과 연동할 수 있도록 세팅할꺼다. '4. IDE' 에서 인텔리제이, vscode와 WSL 리눅스 터미널을 연동시킬것이고, 물론 윈도우 터미널의 powershell과도 연동시킬 수 있다.

      즉, 요 부분을 다 따라하면 IDE에서 지원하는 기능을 통해 github과 연동, IDE의 터미널에서 powershell을 통해 CLI 환경에서 github과 연동, IDE의 터미널에 떠있는 WSL을 통해 CLI 환경에서 github과 연동. 이렇게가 모두 가능하다. 내 경우엔 깃헙에서 가져올땐 IDE에서 제공하는 기능으로 가져오고, commit과 push는 리눅스(WSL) CLI 환경에서 진행하는걸 선호한다.(손-맛)

     

    윈도우에 git 설치

      git 사이트(https://git-scm.com/downloads) -> Downloads 에서 'Download for Windows' -> '64-bit Git for Windows Setup' 를 눌러서 깃을 다운로드 하자.

     

     

      설치에서 뭐 많이 물어보는데 대충 다 next 눌러주면 된다.

     

     

      딱히 환경변수 설정도 필요없이, 윈도우 터미널의 powershell에서 이하의 명령어를 쳐보면 잘 깔린걸 확인할 수 있다. 같이 깔린 git bash도 물론 윈도우 터미널에 연동이 가능은 한데 설정 방법이 복잡하니 필요하다면 따로 찾아보자. 굳이 git bash 안써도 powershell로도 충분히 사용 가능하기도 하고, 어차피 WSL 깔았고 거기도 git을 설치할꺼라서 크게 의미가 없다.

    git -v

     

     

    WSL(ubuntu)에 git 설치

      사실 위에서 zsh 설정할 때 잘 보면 이미 git 명령어를 썼었다. 즉 기본으로 이미 설치되어있다. 그래도 버전은 한번 보고 업데이트할 필요가 있다면 업데이트 해줘야 하니 진행해주자. 우선 이하의 명령어로 버전을 확인할 수 있다.

    git --version

     

     

      이하의 명령어를 순서대로 입력해서 git을 업데이트 해주자.

    sudo apt-get update
    sudo apt-get install git

     

     

    github 연동을 위해 access token 생성

      github에서 우측상단 사용자 아이콘 -> Settings -> Developer settings -> Personal access tokens -> Generate new token

     

     

      note에 본인이 알아볼 수 있는 토큰설명을 작성해주면 되고, Expiration은 본인이 생각하기에 토큰사용할 컴퓨터가 안전한지 여부에 따라 알아서 판단하자. 내 경우엔 개인 컴퓨터에서만 사용할거라서 그냥 무제한으로 해뒀다.

     

     

      Scope는 별도로 찾아봐서 본인이 필요한걸 선택하거나, 잘 모르겠으면 그냥 아래처럼 선택하자. (인텔리제이에도 연동할 수 있는 기본 세팅이다.)

     

     

      설정이 끝났으면 Generate token을 눌러주자. 그럼 문자열이 뜨니 그걸 복사해서 어디 적어놔주자. 이후 잃어버릴 경우 다시 확인은 불가하고, 다시 발급을 받아야 한다. 이 글의 경우 세팅이 모두 끝나면 토큰을 알고 있을 필요는 없도록 구성했으므로 이 글의 세팅이 끝날때까지만 어디 적어두면 된다.

     

     

    윈도우에 github 연동

      IDE에서 제공하는 기능으로 github을 사용할 예정이거나, WSL로만 git 명령어를 사용할거라면 진행하지 않아도 된다.

     

      우선 이하의 명령어를 윈도우 터미널의 powershell에 작성해주자.

    git config --global user.name "유저명"
    git config --global user.email "이메일"

     

     

      그리고 이하의 명령어도 일단 쳐주자. 현재 깃헙 비밀번호의 경우 access token을 발급받아 사용해야 한다. 당연히 랜덤한 문자열이므로 기억할순 없고 어디 적어놔야하는데 상당히 귀찮다. 이하 명령어를 쳐주면 처음에 한 번만 토큰을 입력하면 그 뒤로 안물어본다.

    git config --global credential.helper cache

      

     

      비밀번호도 한번 쳐서 cache에 등록하고, git도 잘 작동하는지 확인할겸 본인 repository 중에 아무거나 clone 해보자. [repository 주소]는 해당 Repository에서 초록색 Code 버튼을 누르면 나온다.

     

    git clone [repository 주소]

     

      대충 파일 하나 만들어서 add, commit, push를 수행해서 token 입력창이 뜨도록 해보자. (주의 : 해당 repository의 메인 branch가 main이 아니라 master일 수 있다. 이 경우엔 마지막 명령어는 git push origin master가 될 것이다. 깃헙에서 확인하고 수행하자.)

    echo "test" >> test.txt
    git status
    git add .
    git commit -m "test commit"
    git push origin main

     

     

      Token을 선택한 후 아까전에 발급받아뒀던 토큰을 입력해준다.

     

     

      그리고 github에 가보면 파일이 잘 올라와있다.

     

     

    위에서 진행했었던 설정때문에 이제 똑같이 한번 더 해보면 token을 물어보지 않는걸 확인할 수 있다.

     

     

     

    WSL(ubuntu)에 github 연동

      IDE에서 제공하는 기능을 통해서만 github을 연동할거라면 진행하지 않아도 된다. 진행 방식은 바로 위의 윈도우 깃헙 연동과 동일하다. 그러니 윈도우쪽 따라서 해봤다면 WSL 쪽은 한번 직접 해보는것도 재밌을 것 같다.

     

      우선 이하의 명령어를 윈도우 터미널의 ubuntu에 입력해준다.

    git config --global user.name "유저명"
    git config --global user.email "이메일"

     

      그리고 이하의 명령어도 쳐준다. 이하 명령어를 쳐주면 처음에 한 번만 토큰을 입력하면 그 뒤로는 안물어본다. 물론 개인컴퓨터가 아니라면 하면 안된다.

    git config --global credential.helper cache

     

      바로 직전에 윈도우와 github을 연동하면서 clone을 통해 이미 repository를 하나 클론해뒀을 것이다. 이걸 사용해서 리눅스에서도 바로 access token을 더 물어보지 않도록 세팅해두자. 이전에 설명했듯이 WSL에서 윈도우 파일 시스템에 바로 접근이 가능하다. 직전에 윈도우에서 깃헙을 연동할 때 clone해둔 repository로 이동해보자. 이하 명령어는 c드라이브에 repository를 받았을 때의 명령어이다. 내 경우엔 c드라이브 -> users -> nahwasa -> prj 에 repository를 넣어뒀다.

    cd /mnt/c/[repository 위치]

     

      참고로 매번 cd로 들어가고 ls로 폴더 확인할 것 없이, 이 글대로 따라왔다면 해당 폴더까지 입력한 상태에서 tab을 누르면 하위 폴더들이 보인다.

     

      이번에도 마찬가지로 파일을 하나 생성하고, push를 해서 access token을 입력하게 해보자(한번 입력해둬서 이후 물어보지 않도록). clone해둔 깃헙 repository의 메인 브랜치가 메인 브랜치인 경우로, master나 다른 브랜치를 사용한다면 git push origin 뒤쪽에 해당 브랜치를 작성하자.

    echo "test" >> test
    git status
    git add .
    git commit -m "wsl git test"
    git push origin main

     

      username을 입력해주고, password에 발급 받아둔 access token을 복붙해주면 된다(원래 password 부분은 입력해도 아무것도 안뜬다.). 그리고 github에서 잘 올라간걸 확인해보자.

     

      이제 한번 더 수정하고 위의 과정을 다시 해봐도 비밀번호를 물어보지 않는걸 확인할 수 있다.

     

     

     

    4. IDE (IntelliJ, vscode)

    IntelliJ IDE 설치 및 github 연동

      인텔리제이가 설치되어 있지 않다면 링크(https://www.jetbrains.com/ko-kr/idea/download/#section=windows)에서 다운받아 인텔리제이를 설치하자.

     

      File -> Settings -> Version Control -> Git 에서 Path를 설정해주자. git 설치 시 설치폴더를 별도로 변경하지 않았다면 C:\Program Files\Git\bin\git.exe 를 선택해주면 된다. git.exe 선택 후 'Test'를 눌러보면 Git version이 정상적으로 뜨는걸 확인할 수 있다.

     

     

      다음으로 Version Control -> GitHub -> Add account -> Log in with Token.. 을 눌러준다.

     

     

      이전에 발급받은 토큰을 넣어주고 Add Account를 눌러주면 된다. 이 글대로 따라왔다면 인텔리제이에서 요구하는 권한을 가진 토큰이 있을 것이다. 혹시 권한을 별도로 지정해서 생성했었다면 'Generate...'를 눌러서 생성해주면 된다. 생성 과정은 그냥 하라는 대로 진행하면 되니 어렵지 않을 것이다.

     

     

      정상적으로 등록되었는지 확인해보자. File -> New -> Project from Version Control -> Github 으로 가보면 정상적으로 등록했던 계정의 repository가 뜨는걸 확인할 수 있다.

     

     

      아무 repository를 하나 가져온 뒤 commit, push 등이 잘 되는지 확인해보자. 인텔리제이 자체에서 제공하는 방식으로 git을 사용하려면 프로젝트쪽에서 마우스 우클릭 -> git 메뉴를 확인하면 된다. 혹은 화면 우측 상단에 기본적인 기능들 아이콘이 있다. 이미 계정을 등록하면서 토큰을 작성해뒀으므로, 토큰을 이후에 다시 물어보지 않는다. 이후 토큰이 필요없으므로 이제 삭제해도 된다! 물론 위에도 말했듯이 보안을 위해서라면 expiration을 두고 매번 토큰을 입력해 사용하는게 좋겠지만, 난 그냥 한번 세팅이 깔끔하게 되면 더 건드리지 않는 환경세팅을 원하기 때문에 이 글처럼 진행했다.

     

     

     

    IntelliJ에 윈도우 콘솔, 리눅스 콘솔 연동

      이건 사실 간단하다. 이전에는 인텔리제이가 WSL로 설치해둔걸 인식하지 못해서 별도 설정이 필요했는데, 현재는 자동으로 잡히므로 별다른 설정은 필요없다. 인텔리제이 하단의 'Terminal'을 눌러보자. 기본적으로 powershell이 뜨게 된다.

     

     

      그리고 아래 꺾쇠 모양을 눌러보면 WSL로 설치한 Ubuntu가 뜨는걸 볼 수 있다. 그걸눌러주면 이전에 세팅했던 zsh 까지 포함해서 정상적으로 리눅스 콘솔이 연동되는걸 볼 수 있다.

     

     

      참고로 Terminal을 누르거나, '+' 버튼으로 생성되는 새로운 탭의 default를 리눅스 콘솔로 변경하려면 아래꺽쇠의 Settings 혹은 File -> Settings -> Tools -> Terminal에서 Shell path를 'wsl.exe'로 변경해주면 된다. 기본 탭 이름을 변경하려면 마찬가지로 Default Tab name을 변경해주면 된다.

     

     

      이제 취향껏 인텔리제이 자체에서 제공하는 기능으로 git을 사용하던지, CLI 환경에서 직접 타이핑하는게 좋다면 Terminal을 사용해주면 된다. 이미 이 글에서 powershell, git bash, wsl에서 모두 github 사용이 가능하도록 만들었으므로 문제 없다. 또한 wsl 터미널의 경우 윈도우에 설치된 인텔리제이에 연동되어 있지만, 별개의 리눅스 시스템이다. 따라서 인텔리제이에서 바로 실행하면 윈도우에서 실행한게 되고, wsl 콘솔에서 실행하게 되면 리눅스에서 실행한게 된다. 즉, 윈도우에서 작업했지만 리눅스에서도 이후 별다른 설정없이 바로바로 실행해볼 수 있는 환경이 마련된 셈이다. 물론 예를들어 자바 프로젝트라면 jdk를 설치하는 등은 별도로 해줘야 한다(ubuntu jdk 설치 등으로 검색). 참고로 인텔리제이는 프로젝트마다 프로젝트 단위로 jdk를 별도로 설정할 수 있으므로, 굳이 자바 프로젝트더라도 윈도우에 jdk를 설치할 필요는 없다. wsl은 인텔리제이의 설정을 영향을 받지 않는 별개 시스템이므로 jdk 설치를 해야된다.

     

     

     

    vscode 설치 및 github 연동

      vscode가 설치되어 있지 않다면 링크(https://www.jetbrains.com/ko-kr/idea/download/#section=windows)에서 다운받아 설치하자. 

     

     

      vscode 실행 후 Source Control -> Clone Repository -> Clone from GitHub 을 눌러주면 무슨 extension을 설치하라고 나온다.

     

     

      설치해주고 나면 repository를 선택해서 가져올 수 있다. 아무거나 가져와보자.

     

     

      이제 수정 후에 Version Control 부분에서 git 명령들을 사용할 수 있다.

     

     

    vscode에 윈도우 콘솔, 리눅스 콘솔 연동

      Terminal -> New Terminal을 클릭해주자.

     

     

      인텔리제이때와 마찬가지로 기본 콘솔은 powershell이다. 아래 꺽쇠를 누른 후 Ubuntu (WSL)을 선택해주면 리눅스 콘솔이 연동된다. 마찬가지로 여기도 Git Bash도 기본으로 연동 가능하다.

     

     

      기본 터미널을 wsl로 변경하려면 아래 꺽쇠 누른 후 Select Default Profile 에서 Ubuntu (WSL)을 선택해주면 된다.

     

     

      이제 vscode에서도 마찬가지로 vscode에서 제공하는 기능으로(extension) git을 사용할 수 있고, 터미널에서도 사용 가능하다. 또한 인텔리제이와 마찬가지로 vscode에서도 실행할 수 있고(윈도우 환경), 리눅스(wsl)에서도 실행해 볼 수 있다.

     

     

     

    5. 추가로 해볼 것들

      이후로는 필요에 따라 원하는 것들을 설치해서 본인만의 세팅을 추가해보자.

    내 경우엔 개인컴에 주로 기본으로 세팅해두는 것들은 위 이미지 순서대로 다음과 같다.

    - 윈도우 탐색기

    - 크롬

    - 윈도우 터미널

    - (게임관련들)

    - 카톡

    - 디코

    - 슬랙

    - 노션

    - GNS3

    - Annaconda3

    - vscode (갓텔리제이는 다양한 언어로 된 프로젝트 폴더에 약하다.)

    - 갓텔리제이 (갓갓)

    - CLion (c, c++ 용)

    - Data Grip (DB 관리툴. IntellJ에도 내장되어 있지만, 탭이 난잡해져서 별도로 쓰는걸 더 좋아한다.)

    - Pycharm

     

      순전히 내 취향에 맞춘 세팅이고, 모든 세팅을 다루진 않았지만, 개발자로써 기본 세팅이 끝난셈이니 이제 필요한걸 찾아서 붙여나가면 된다! 글을 좀 느리게 쓰는편이라 이것만 해도 짬짬히 거의 3~4일동안 작성한거다. 그래서 언제가 될진 모르겠지만 다른 세팅들도 기회가 되면 작성할 예정이다.

     

      혹시 오타나 내용 틀린부분 있으면 알려주세요!

     

     

     

    [ References ]

    https://docs.microsoft.com/ko-kr/windows/wsl/install

     

    WSL 설치

    wsl --install 명령을 사용하여 Linux용 Windows 하위 시스템을 설치합니다. Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine 등 원하는 Linux 배포판에서 실행되는 Windows 머신에서 Bash 터미널을 사용할 수 있습니

    docs.microsoft.com

     

    https://docs.microsoft.com/ko-kr/windows/wsl/compare-versions

     

    WSL 1과 WSL 2 비교

    WSL 2는 WSL 1의 이점을 제공하지만 WSL 1과 같은 변환 계층이 아닌 실제 Linux 커널을 사용하므로 성능이 향상됩니다.

    docs.microsoft.com

     

    https://github.com/ryanoasis/nerd-fonts

     

    GitHub - ryanoasis/nerd-fonts: Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code

    Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more - GitHu...

    github.com

     

    https://subicura.com/mac/dev/shell.html#oh-my-zsh-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5

     

    쉘 프롬프트 설정

    쉘을 이쁘게 꾸미는 방법을 알아봅니다.

    subicura.com

     

    https://github.com/zsh-users/zsh-autosuggestions

     

    GitHub - zsh-users/zsh-autosuggestions: Fish-like autosuggestions for zsh

    Fish-like autosuggestions for zsh. Contribute to zsh-users/zsh-autosuggestions development by creating an account on GitHub.

    github.com

     

    https://github.com/romkatv/powerlevel10k#oh-my-zsh

     

    GitHub - romkatv/powerlevel10k: A Zsh theme

    A Zsh theme. Contribute to romkatv/powerlevel10k development by creating an account on GitHub.

    github.com

     

    https://blog.nadekon.net/115

     

    [WSL] (+ WSL 2) 윈도우에서 우분투 GUI 프로그램 실행

    WSL 자체는 윈도우에서 리눅스의 유틸리티와 같은 바이너리를 실행할 수 있다는 데 큰 의의가 있습니다. 일반적으로 CLI 바이너리로도 가치가 충분합니다 (리눅스는 기본적으로 CLI기도 하고요).

    blog.nadekon.net

     

    https://www.devtopics.com/wsl1-vs-wsl2-a-comparison-and-guide/

     

    WSL1 vs WSL2 – A Comparison and Guide

    May 24 The Windows Subsystem for Linux (WSL) is a feature of the Windows operating system that enables you to run a Linux file system, along with Linux command-line tools and GUI apps, directly on Windows, alongside your traditional Windows desktop and app

    www.devtopics.com

     

    https://www.zsh.org/

     

    Zsh

    Zsh is a shell designed for interactive use, although it is also a powerful scripting language. More information can be found on the "Zsh Web Pages" sites.

    www.zsh.org

     

    https://www.configserverfirewall.com/windows-10/please-enable-the-virtual-machine-platform-windows-feature-and-ensure-virtualization-is-enabled-in-the-bios/

     

    WSL 2: Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS

    WSL 2: Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS You need to enable the Virtual Machine Platform Windows feature to use WSL 2. If this is not done, then you will get the following error: wsl

    www.configserverfirewall.com

     

    https://docs.microsoft.com/ko-kr/windows/wsl/troubleshooting#error-0x80370102-the-virtual-machine-could-not-be-started-because-a-required-feature-is-not-installed

     

    Linux용 Windows 하위 시스템 문제 해결

    Linux용 Windows 하위 시스템에서 Linux를 실행하는 동안 사용자에게 발생할 수 있는 일반적인 오류 및 문제에 대한 자세한 정보를 제공합니다.

    docs.microsoft.com

     

    https://bce.berkeley.edu/enabling-virtualization-in-your-pc-bios.html

     

    Enabling Virtualization in your PC BIOS

    Enabling Virtualization in your PC BIOS While most recent PCs support hardware virtualization, not all computer vendors enable this feature as shipped from the factory. To turn this feature on, try these instructions based on Red Hat instructions: Reboot y

    bce.berkeley.edu

     

    댓글