다음을 통해 공유


Azure에 적합한 Node.js 버전 선택

Azure용 JavaScript 애플리케이션을 개발할 때는 로컬 개발 환경 및 호스트 런타임 환경에서 Node.js 버전을 조정하는 것이 중요합니다. 이 버전 맞춤은 호환성을 보장하고 런타임 오류 가능성을 줄이며 Azure 플랫폼의 전체 기능을 사용합니다. 이 문서에서는 Azure 호스팅 애플리케이션 및 서비스에 적합한 Node.js 버전을 선택하는 방법을 알아봅니다.

Node.js 버전

Node.js LTS(장기 지원) 및 현재 릴리스를 모두 포함하는 예측 가능한 릴리스 일정을 따릅니다. LTS 버전은 장기 유지 관리 및 안정성을 위해 지정되므로 프로덕션 환경에 이상적입니다. 이러한 버전은 일반적으로 30개월 동안 중요한 버그 수정, 보안 업데이트 및 성능 향상을 받습니다. Node.js 짝수/홀수 번호 매기기 시스템을 사용하여 LTS와 현재 릴리스를 구분합니다. 짝수 번호가 매겨진 버전(예: 18, 20)은 LTS 릴리스이고 홀수 번호가 매겨진 버전(예: 19, 21)은 현재 릴리스입니다. 현재 릴리스에는 최신 기능과 개선 사항이 포함되어 있지만 6개월 동안만 지원되며, 짝수 번호가 매겨진 경우 LTS 릴리스로 전환됩니다.

6개월 기간이 Azure 호스팅 플랫폼 런타임 및 SDK와 잘못 정렬될 수 있으므로 프로덕션 환경에서 현재 릴리스를 사용하면 안 됩니다. Node.js의 개발 컨테이너는 홀수/현재 버전을 제공하지 않는다는 점을 알게 될 것입니다.

필수 구성 요소

모든 Azure SDKS 및 호스팅 서비스는 LTS 버전의 Node.js사용합니다. 애플리케이션 코드가 더 이상 LTS(장기 지원)에 사용할 수 없는 이전 버전의 Node.js실행된 경우 LTS 런타임에서 실행되도록 애플리케이션 소스 코드를 업데이트해야 합니다.

배포하려는 호스팅 서비스 및 배포된 애플리케이션에서 사용하는 Azure 서비스도 알아야 합니다.

환경 간 호환성

애플리케이션에서 사용하는 Azure 서비스 및 SDK를 알고 나면 애플리케이션에 대한 모든 환경이 동일한 버전의 Node.js빌드하고 실행할 수 있는지 확인합니다.

  • 로컬 개발 환경 또는 개발 컨테이너
  • CI/CD 프로세스 환경
  • 애플리케이션 호스트 런타임
  • Azure SDK들

환경 전체에서 다른 버전을 사용하는 것과 관련된 문제에 대한 설명은호환성 문제를 참조하세요.

호스팅 서비스

Azure 호스팅 서비스를 사용하는 경우 호스트에 컨테이너를 배포하거나 호스트에 대한 런타임으로 Node.js 버전을 선택할 수 있습니다. 두 경우 모두 런타임 버전, 애플리케이션 코드 및 Azure SDK와 같은 종속성을 정렬해야 합니다.

런타임 정보를 찾으려면 다음 표를 사용합니다.

서비스

버전 정보

Linux 환경에서 실행 중인 경우 다음 Azure CLI 명령을 실행하여 지원되는 모든 버전을 볼 수도 있습니다.

az webapp list-runtimes | grep node

새 프로젝트는 최신 프로그래밍 모델을 사용해야 합니다.

정적 Web Apps에서 API를 호스팅하는 경우 프런트 엔드와 API라는 두 가지 다른 런타임을 고려해야 합니다.

SWA CLI

SWA CLI는 프록시, 인증 및 기타 구성을 포함한 개발 환경 기능을 제공합니다.

Azure SDK들

Azure SDK에는 지원 정책설명된 대로 Node.js LTS 버전이 필요합니다. 호스팅 환경에서 지원하는 LTS 버전과 SDK가 일치하지 않는 짧은 기간이 있을 수 있습니다. 새 Node.js LTS 버전을 확인하는 데 시간이 걸리기 때문에. 일반적으로 세 가지 버전의 Node.js 장기 지원 버전으로 표시되므로 일반적으로 중간 버전을 대상으로 지정할 수 있습니다. 이 대상을 사용하면 애플리케이션이 다음 LTS 버전으로 이동할 수 있는지 테스트하고 확인할 수 있습니다.

여러 버전의 Node.js 관리

로컬 및 원격 환경에서 둘 이상의 Node.js 관리해야 하는 경우 다음을 수행하는 것이 좋습니다.

  • 개발 컨테이너: 특정 Node.js 버전의 컨테이너를 사용합니다. 컨테이너를 사용하여 여러 환경에서 Node.js 버전을 관리할 수 있습니다. Visual Studio Code의 Remote - 컨테이너 확장 이 프로세스를 간소화합니다.
  • NVM(노드 버전 관리자): 로컬 버전의 Node.js설정하거나 전환하는 명령줄 인터페이스입니다.

의도한 용도에 따라 Node.js 다운로드 및 설치

요구 사항에 따라 Node.js 다운로드하고 설치할 수 있습니다.

호환성 문제

Node.js 버전이 환경 간에 일치하지 않을 때 발생할 수 있는 호환성 문제의 몇 가지 일반적인 범주는 다음과 같습니다.

  • 보안 취약성: 알려진 보안 취약성이 있는 오래된 버전을 사용하면 애플리케이션이 보안 위험에 노출될 수 있습니다.

  • 구문 오류: 이전 Node.js 버전에서 지원되지 않는 최신 JavaScript 구문을 사용하는 애플리케이션은 구문 오류를 일으킬 수 있습니다. 이러한 오류로 인해 애플리케이션이 실행되지 않습니다.

  • 사용되지 않는 API: 최신 Node.js 버전에서 더 이상 사용되지 않는 API는 여전히 이전 버전에 존재할 수 있으므로 버전이 정렬되지 않은 경우 예기치 않은 동작 또는 런타임 오류가 발생합니다.

  • 성능 저하: 최신 Node.js 버전에는 종종 성능 향상이 포함됩니다. 이전 버전에서 애플리케이션을 실행하면 실행 시간이 느려지고 성능이 저하될 수 있습니다.

  • 일관성 없는 동작: Node.js 버전이 버퍼 처리, 이벤트 루프 동작 또는 모듈 확인과 같은 특정 작업을 처리하는 방식의 차이로 인해 환경 간에 일관되지 않은 동작이 발생할 수 있습니다.

  • 종속성 충돌: 한 버전의 Node.js 호환되는 Node.js 모듈 또는 패키지가 다른 버전과 호환되지 않아 종속성 충돌 및 런타임 오류가 발생할 수 있습니다.

  • 빌드 실패: 로컬 개발 환경과 다른 Node.js 버전을 사용하는 CI/CD 파이프라인은 빌드 실패로 이어져 개발 및 릴리스 프로세스가 지연될 수 있습니다.

모든 환경에서 동일한 버전의 Node.js사용하도록 함으로써 이러한 호환성 문제를 완화하고 보다 원활한 개발 및 배포 프로세스를 보장할 수 있습니다.