window 11 환경에서 풀스택 개발을 하기 위해서 필요한 기본적인 프로그램들을 설치한다.

윈도우 패키지 관리자인 choco를 사용하여 개발에 필수적인 git 부터 프런트엔드 개발을 하기 위한 node, 백엔드 개발을 하기 위한 java, docker 등 개발에 필수적인 툴을 설치한다.

command line으로 설치시에 터미널 프로그램을 관리자로 실행해야 한다는것만 기억해두자. 터미널 프로그램이 window 10에서는 별도로 설치해야 했지만 윈도우 11에서는 기본 앱으로 설치되었다. 검색에서 터미널이라고 검색해서 실행할 수 있으며 wsl을 설치하게 되면 리눅스도 쉽게 띄울수 있게 된다.

윈도우 패키지 매니저 Chocolatey 설치

리눅스의 yum 혹은 apt-get 그리고, 맥의 HomeBrew 와 같이 윈도우에서도 패키지 관리자를 이용해서 손쉽게 패키지를 관리할수 있는데 그 툴이 choco 이다.

choco가 설치되어있는지 cmd 창에서 확인해보자. choco -v

만일 chocolatey가 설치 되어있지 않다면 먼저 설치를 해야 한다.

cmd 창에서 터미널을 검색한 다음 우클릭해서 관리자 권한으로 실행한다.

https://chocolatey.org/install 에 접속하여 화면 중간쯤에 표시되는 명령어를 powershell상에서 실행한다.

만일 설치시 다음과 같은 에러가 발생한다면

WARNING: An existing Chocolatey installation was detected. Installation will not continue.
For security reasons, this script will not overwrite existing installations.
Please use choco upgrade chocolatey to handle upgrades of Chocolatey itself.

C:\ProgramData\chocolatey 디렉토리를 지우고 powershell도 최신버전으로 설치한 다음에 다시 위의 명령어를 실행해야 한다. 자세한 것은 여기를 참고하자.

git 설치

위에서 터미널 프로그램을 관리자 권한으로 실행해서 choco 를 설치했다면 choco를 이용해서 git을 쉽게 설치할 수 있다.

번거롭게 https://git-scm.com 에 가서 다운로드 받아서 설치할 필요가 없다. 또한 이렇게 설치하면 나중에 업그레이드 할때 삭제하고 다시 인스톨해야 한다. 하지만 choco로 설치하면 upgrade 명령으로 쉽게 업그레이드도 가능하다.

설치가 끝난후 터미널을 새로 열어서 아래와 같이 설치가 되었는지 확인해본다. (새 창을 띄우지 않으면 설치된 프로그램을 인식을 못하기 때문에 반드시 새 창에서 실행해야 한다)

node 설치

npm 저장소는 https://www.npmjs.com/ 인것처럼 윈도우 패키지 매니저의 저장소는 https://chocolatey.org/packages 이다

nodejs를 검색하면 여러가지 버전이 나오는데, nodejs 로 설치한다.

설치가 끝난후 터미널을 새로 열어서 node -v 명령어로 설치가 제대로 되었는지 확인한다.

java 설치

스프링 프레임웍 6, 그리고 스프링부트 3 을 사용하기 위해서는 java 17이 필요하다. choco 로 검색시 openjdk를 설치하면 가장 최신 버전을 설치해준다.

openjdk로 설치시 가장 최신 버전으로 설치를 한다. 2024년 1월 기준으로 21이 최신 버전이므로 이 시기에 설치하면 21이 설치된다. 만일 특정한 버전으로 설치하고 싶다면 아래와 같이 version을 명시해주면 된다.

wsl 설치

docker 를 설치하기 위해서 wsl이 필요하다. window 10에서는 wsl 설치가 어려웠지만 window 11에서는 아래 명령어 한 줄로 쉽게 설치가 가능하다.

docker desktop 설치

관리자 권한으로 터미널을 실행하고 choco로 설치한다.

postman 설치

postman은 rest api 뿐만 아니라 웹소켓, grpc 등 여러가지 프로토콜을 테스트할 수 있으며 테스트 자동화라든가 스프링 연동 등 여러가지 기능이 있어서 필수 프로그램이다.