프로젝트/웹 사이트 만들기

리눅스 서버에 NodeJS 설치하기

Tech&Fin 2022. 6. 2. 16:46
반응형

 

목차 - 클릭하면 이동합니다.

     

     

    리눅스 서버에 NodeJS 설치하기

    지난 시간에 웹 사이트 만들기 프로젝트 진행에 관련된 앞으로의 계획을 잠깐 설명 드렸는데요. 이번 시간에는 그 첫번째 시간으로 프론트엔드 및 백엔드를 구동하기 위해 리눅스 서버에 NodeJS 관련 패키지를 설치하는 방법과 기본적인 설정 방법에 대해서 살펴 보겠습니다.

     

    앞으로 계속해서 웹 사이트 만들기 카테고리 안에서 관련된 내용을 순차적으로 진행할 예정이오니 이전 내용을 놓치신 분들은 해당 카테고리의 다른 포스팅들을 참고하여 순차적으로 확인해 보시면 도움이 될 것 같습니다.

     

    NodeJS를 왜 설치하나요?

    웹사이트 만들기 계획에서 말씀드렸듯이 우리는 프론트엔드로 NextJS 프레임워크를 사용할 예정이고 백엔드 시스템 개발에는 NestJS 프레임워크를 사용할 예정입니다.

     

    NextJS, NestJS 프레임워크 모두 NodeJS를 기반으로한 언어이기 때문에 해당 시스템을 실행하기 위해서는 Node라는 엔진이 필요합니다.

    Node는 여러가지 다른 환경, 예를들면 윈도우나 리눅스 등등에서 NodeJS를 기반으로 만든 프로그램을 실행시켜주는 런타임 엔진이라고 생각하시면 되는데요. 우리가 만든 프로그램을 윈도우 OS가 설치되어 있는 서버이던 리눅스 OS가 설치되어 있는 서버이던 해당 서버에 Node만 설치되어 있다면 그 Node가 설치된 OS가 이해할 수 있도록 잘 해석해서 프로그램을 띄워 주게 됩니다.

     

    이 부분은 아주 중요한 부분은 아니고 그냥 우리가 앞으로 만들 프로그램을 구동하기 위해서 필요한 엔진정도라고만 이해하셔도 무방합니다.

     

    리눅스에 NodeJS 설치하기

    기존에 파이썬으로 비트코인 자동매매 프로그램을 만들때 왜 집 PC가 아닌 서버에서 프로그램을 구동하는 것이 좋은지에 대해서 잠깐 설명드린 적이 있는데요.

     

    웹 사이트 역시 마찬가지 이유로 24시간 구동되어야 하는것이 원칙이기 때문에 자주 업데이트되고 재부팅되는 가정용 PC 보다는 서버에서 구동하는 것이 적합하며 OS 역시 서버에 더 특화되어 있는 리눅스가 더 컴팩트하고 유리할 수 있습니다.

     

    가정에서 서버를 운영하는 경우 전기세나 물리적인 서버 관리 등에 부담이 될 수 있으니 시작은 무료로 사용할 수 있는 클라우드 서버에서 시작해 보시는 것을 추천 드립니다.

     

    2021.06.02 - [코딩스토리/클라우드 서버] - 무료 클라우드 서버 서비스 비교

     

    무료 클라우드 서버 서비스 비교

    이번 시간에는 클라우드 서버를 무료로 사용할 수 있도록 서비스를 제공하는 회사 중 믿을 수 있고 유명한 곳 세 군데의 무료 서비스 범위에 대해서 간단히 비교해 보려고 합니다. 목차 - 클릭하

    technfin.tistory.com

     

    무료로 배정받아 사용할 수 있는 서버는 위의 포스팅을 참고하시면 좋을 것 같으며 저희는 그 중에서도 제공되는 스펙이 가장 뛰어난 오라클 클라우드를 사용하고 있으니 참고 부탁 드리겠습니다.

     

    어떤 클라우드 서비스를 사용하는지는 중요하지 않지만 앞으로의 진행 내용을 더 수월하게 따라하시기 위해서는 OS의 버전은 같은 것으로 해 주시는 것이 좋습니다.

     

    테크앤핀에서는 Oracle Linux 8 버전을 사용하고 있으며 리눅스 OS 중 오라클 리눅스나 CentOS와 같이 Redhat 계열의 리눅스 OS를 사용하시면 앞으로 진행하는 내용에서 이질감이 많이 없을 것 같으니 참고 하시면 좋을 것 같습니다.

     

    기존에 파이썬으로 비트코인 자동매매 프로그램을 만드는 것을 참고해 보셨던 분들이라면 이미 서버가 있을 것이라 예상되고 없다면 아래 포스팅을 참고하여 무료 클라우드 서버를 하나 배정 받고 고정 IP를 설정하고 기본적인 접속에 관련된 설정을 해 주시기 바랍니다.

     

    https://technfin.tistory.com/category/%EC%BD%94%EB%94%A9%EC%8A%A4%ED%86%A0%EB%A6%AC/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%20%EC%84%9C%EB%B2%84

     

    '코딩스토리/클라우드 서버' 카테고리의 글 목록

    코딩&재테크 이야기

    technfin.tistory.com

     

    무료 클라우드 서버가 만들어졌고 작업을 하는 집 PC에서 Putty를 통해 접속을 할 수 있게 된다면 이번에는 웹사이트 만들기 프로젝트를 진행할 계정을 만들어 보겠습니다.

     

    아래 포스팅을 참고하여 계정을 생성하고 Putty에서 접속할 수 있도록 SSH Key를 등록해 주시고 sudo를 수행할 수 있도록 설정까지 모두 진행합니다. 웹사이트 만들기 프로젝트는 web 이라는 계정으로 진행해 보려고 합니다.

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 사용자 계정 추가하기 - 오라클 리눅스8

     

    리눅스 사용자 계정 추가하기 - 오라클 리눅스8

    이번 시간에는 리눅스에서 사용자 계정을 추가하는 방법에 대해서 살펴 보겠습니다. 서버 생성 방법 및 PuTTY를 이용한 접속 방법은 아래 포스트를 참고 부탁 드리겠습니다. 2021.06.03 - [코딩스토

    technfin.tistory.com

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 사용자 계정 SUDO 권한 부여하기 - 오라클 리눅스8

     

    리눅스 사용자 계정 SUDO 권한 부여하기 - 오라클 리눅스8

    이번 시간에는 리눅스 사용자 계정에 SUDO 권한을 부여하는 방법에 대해서 살펴 보겠습니다. 사용자 계정을 추가하는 방법은 아래 포스트를 참고 부탁 드립니다. 2021.06.11 - [코딩스토리/리눅스] -

    technfin.tistory.com

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8

     

    리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8

    이번 시간에는 서버에 접속할 때 사용자 계정으로 직접 접속할 수 있도록 SSH Key의 Public Key를 추가하는 방법에 대해서 살펴 보겠습니다. PuTTYgen을 사용하여 SSH Key를 생성하는 방법은 아래 포스트

    technfin.tistory.com

     

    여기까지 잘 진행이 되었다면 작업을 하는 PC(예를 들면 집 PC)에서 Putty를 통해 클라우드 서버에 web이라는 계정으로 로그인할 수 있게 되고 위와 같이 앞으로 작업하게 될 web 계정에 대한 홈 디렉토리 공간을 확인할 수 있습니다.

     

    pwd
    whoami

    pwd는 현재 위치한 디렉토리를 표시해 주는 리눅스 명령어이며 whoami 명령어를 통해 현재 로그인한 계정의 이름을 확인할 수 있습니다.

     

    이제 NodeJS를 설치해 보도록 하겠습니다.

     

    sudo dnf module list nodejs
    실행 결과
    Oracle Linux 8 Application Stream (x86_64)
    Name            Stream             Profiles                                       Summary
    nodejs          10 [d][e]          common [d], development, minimal, s2i          Javascript runtime
    nodejs          12                 common [d], development, minimal, s2i          Javascript runtime
    nodejs          14                 common [d], development, minimal, s2i          Javascript runtime
    nodejs          16                 common [d], development, minimal, s2i          Javascript runtime

    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    [web@instance-technfin ~]$

    위의 명령어를 수행하면 설치 가능한 nodejs의 버전이 리스트업 됩니다. 안정적인 버전은 10.x 버전이지만 저희는 가장 최근 버전인 16 버전으로 진행해 보도록 하겠습니다. dnf 라는 패키지 관리자를 통해 설치를 하기 때문에 설치가 아주 간편합니다.

     

    실행 결과를 보면 Stream 컬럼에 10[d][e] 이라는것이 보이는데요. d의 의미는 default이고 e의 의미는 enabled 입니다. 즉 버전 10이 기본이고 현재 활성화되어서 설치될 버전이라는 것인데요. 우리는 16 버전을 설치할 것이기 때문에 16 버전을 먼저 enable 시키도록 하겠습니다.

     

    sudo dnf module enable nodejs:16
    실행 결과
    [web@instance-technfin ~]$ sudo dnf module enable nodejs:16
    Last metadata expiration check: 0:46:02 ago on Thu 02 Jun 2022 03:48:40 PM KST.
    Dependencies resolved.
    =============================================================================================================
     Package                  Architecture            Version                     Repository                Size
    =============================================================================================================
    Enabling module streams:
     nodejs                                           16

    Transaction Summary
    =============================================================================================================

    Is this ok [y/N]: y
    Complete!
    [web@instance-technfin ~]$ sudo dnf module list nodejs
    Last metadata expiration check: 0:46:39 ago on Thu 02 Jun 2022 03:48:40 PM KST.
    Oracle Linux 8 Application Stream (x86_64)
    Name             Stream           Profiles                                        Summary
    nodejs           10 [d]           common [d], development, minimal, s2i           Javascript runtime
    nodejs           12               common [d], development, minimal, s2i           Javascript runtime
    nodejs           14               common [d], development, minimal, s2i           Javascript runtime
    nodejs           16 [e]           common [d], development, minimal, s2i           Javascript runtime

    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    [web@instance-technfin ~]$

    dnf 명령어에서 enable 을 이용해 패키지:버전을 입력하면 해당 버전이 enabled로 변경 됩니다.

     

    sudo dnf module reset nodejs

    혹시 과정에서 에러가 발생하면 아래 명령어를 통해 reset 후 다시 시도해 보시기 바랍니다.

     

    이제 16 버전을 설치해 보겠습니다.

     

    sudo dnf module install nodejs:16

    dnf install 을 통해 nodejs:16 버전을 설치합니다. node package를 관리해주는 npm이라는 패키지도 함께 설치됩니다. 필요한 package를 한번에 모두 설치해 주니 dnf는 참으로 편리한 도구인 것 같습니다.

     

    node -v
    npm -v

    설치가 모두 완료 되었다면 node 및 npm의 버전을 확인할 수 있습니다.

     

    마치며

    이번시간에는 앞으로 만들 웹 사이트 프론트엔드 및 백엔드 프로그램을 구동하기 위해 리눅스 서버에 nodejs를 설치해 보았습니다.

     

    다음 시간에는 프로젝트를 만들어보고 개발툴에 연동하는 작업들에 대해서 차근차근 살펴보도록 하겠습니다.

     

    블로그를 구독하시면 소식을 더 빨리 받아 보실 수 있습니다. 감사합니다.

    반응형