내 컴퓨터에서 Exercism 연습 문제를 풀 수 있도록 JavaScript를 로컬에 설치하는 방법을 배워봐요.
이 트랙은 JavaScript의 실행 환경을 제공하기 위해 전반적으로 Node.js를 사용해요. 즉, 컴퓨터에서 JavaScript를 실행하는 일은 모두 Node.js로 이루어진다고 가정해요.
많은 컴퓨터에 Node.js가 미리 설치되어 있거나, 이전에 설치되었거나, 다른 것의 의존성으로 설치되었을 수 있어요. 그래서 무엇이든 하기 전에 이미 설치되어 있는지 확인해 봐요:
Terminal, cmd, Powershell, bash, ...)node -vNode.js가 설치되어 있다면 버전이 표시돼요.
이 버전을 적어 둬요.
Node.js가 설치되어 있지 않다면 오류가 출력돼요.
보통 'node' is not recognised 같은 내용이에요.
Node.js 웹사이트에 접속해 봐요.
그러면 버전을 두 개 표시해요 (운영체제를 감지하면요. 그렇지 않으면 먼저 운영체제를 선택해요).
node -v로 확인한 버전이 이 중 하나와 같다면 문제없어요.
같지 않다면 Node.js LTS를 사용하는 걸 권장해요.
업그레이드가 시스템의 무언가를 망가뜨릴까 걱정된다면, 모든 것이 괜찮은 것처럼 계속 진행해도 돼요.
예상치 못한 일이 생기면 지원을 해드리지 못할 수도 있어요.
Node.js를 설치하는 방법은 몇 가지가 있어요:
두 방법 모두 Windows, macOS, Linux를 지원해요. 무엇을 해야 할지 모르겠다면 설치 프로그램을 사용하는 게 가장 쉬워요.
설치 프로그램이 끝나거나, 패키지 관리자 작업이 완료되거나, 바이너리를 복사하고 안내를 따랐다면, 모든 것이 잘 되었는지 확인해 보는 게 좋아요.
Terminal, cmd, Powershell, bash, ...)node -v버전이 웹사이트에 있는 것과 일치해야 해요.
[!NOTE] 새 터미널 창을 여는 게 중요해요. 이미 열려 있는 터미널 창은 설치가 끝난 뒤 새로 고쳐지지 않았을 수 있어요. 그러면 열려 있는 터미널은 새 프로그램이 설치된 걸 모르게 돼요.
[!IMPORTANT] > 도움말:
'node' is not recognised공식 설치 프로그램을 사용했다면
PATH가 자동으로 설정되었을 거예요. 하지만 셸이 전역으로 설치된 모듈을 찾지 못하거나 Node.js를 소스에서 빌드했다면,PATH에npm바이너리가 포함되도록 수정해요.macOS와 Linux에서는
~/.bash_profile이나~/.zshrc에 다음을 추가하면 돼요:export PATH=/usr/local/share/npm/bin:$PATHWindows에서는 시작 메뉴를 열고 "environment variables"를 검색해요.
PATH항목을 편집해서npm바이너리 경로를 여기에 _추가_해야 해요. 보통C:\Program Files\nodejs에 있어요.File Explorer로 여기를 찾아보면node.exe,npm.bat,npx.bat이 있을 거예요.열려 있는 터미널을 모두 닫고 새 터미널을 열어요.
이 트랙과 호환되는 버전 지정 패키지 관리자를 사용하려면 corepack을 한 번 활성화해야 해요:
corepack enable pnpm
운영체제에 맞는 Exercism CLI를 내려받으려면 이 안내를 따라요.
CLI를 설정하고 구성했다면, 첫 번째 연습 문제인 hello-world를 내려받아요:
exercism download --exercise=hello-world --track=javascript
그다음 각 연습 문제는 테스트를 실행할 도구가 필요해요. 각 연습 문제 디렉터리에서 다음 명령을 실행하면 설치할 수 있어요:
corepack pnpm install
이 트랙은 pnpm으로 전환했기 때문에 디스크 공간은 걱정하지 않아도 돼요. pnpm을 한번 살펴봐요. 패키지 버전마다 디스크에 단 하나의 복사본만 설치되도록 보장해 줘요.
그런데 corepack이 뭐고 왜 이게 동작할까요?
JavaScript 트랙을 완료하는 데는 이 정보가 필요 없어요. 하지만 방금 무슨 일이 일어났는지 알고 싶다면 다음 문단을 읽어 봐요:
이게 동작하는 이유는
corepack이 위 단계에서 설치한 Node.js에 함께 포함된 도구이기 때문이에요.pnpm이라는 패키지 관리자를 설치할 수 있어요. 시스템을 설정해 줘요.corepack명령은package.json파일을 찾는데, 이 파일은 각 연습 문제 폴더에 있어요. 그런 다음pnpm과 일치하는packageManager를 확인하고 계속 진행해요. 필요하면 먼저pnpm을 업그레이드해요. 이 파일에는 위에서 말한"dependencies"도 나열되어 있는데,pnpm이 이를 내려받아 로컬 캐시에 넣어요.
package.json의 스크립트는 로컬 캐시의 바이너리를 사용하고, 바로 이 스크립트들이exercise설명에 나열된 대로 테스트를 실행하는 데 쓰여요.