콘텐츠로 이동하기
애플리케이션-개발

Google Cloud, Node.js용 Cloud 클라이언트 라이브러리가 버전 10에 대한 지원을 유지보수 모드로 전환

2022년 3월 21일
https://storage.googleapis.com/gweb-cloudblog-publish/images/appdev.max-2600x2600.jpg
Benjamin Coe

Developer Programs Engineer

* 본 아티클의 원문은 2022년 2월 8일 Google Cloud 블로그(영문)에 게재되었습니다.

2022년 3월 31일에 Node.js 10이 Google Cloud Node.js SDK에서 유지보수 모드로 전환됩니다. 그렇게 되면 라이브러리의 주요 버전이 시맨틱 버전 관리에 따라 증가합니다.

동기

Node.js LTS 버전의 수명 주기는 30개월이며, 이 기간 동안 중요 버그 수정 및 보안 업데이트가 수행됩니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/Scr_M.max-1800x1800.png
Node.js 제공 이미지. 허락하에 사용 가능. (내부 참고 사항: 게시를 위해 여기에 고해상도 필요)

Node.js 생태계의 많은 종속성은 동일한 출시 타임라인을 따르며 현재 유지보수 중인 버전의 Node.js(최소한으로)를 지원합니다. 지원 종료 런타임을 지원하면 Node.js SDK가 사용하는 종속성에 중요한 패치를 적용하기 어려워지기 때문에 사용자를 위험에 노출할 수 있습니다.

2021년 4월에 Node.js 10이 지원 종료됐습니다. 일부 핵심 종속성에 Node.js 12 이상이 필요한 것으로 보이므로 업데이트하는 것이 좋습니다. 그렇지 않으면 중요한 보안 패치를 제공하기가 어려워집니다. 그 예시로 node-pre-gyp#623을 참조하세요.

신규 주 버전에서 변경되는 사항

주 버전을 업그레이드하려면 Node.js 10에서 Node.js 12 이상으로 업그레이드 작업을 가능한 한 원활하게 수행해야 합니다. 종속성을 명시적으로 업데이트하기 전에는 런타임을 Node.js 12로 업데이트할 필요가 없습니다. 신규 주 버전에서 Google Cloud Node.js SDK는 다음을 업데이트합니다.

  • 버전 12 이상의 엔진 필드 
    "engines": {"node": ">=12"}
  • 고정된 종속성, 종속성이 더 빠른 일정으로 Node.js 10 지원을 중단한 경우
업그레이드로 인한 변화를 최소화하기 위해 최선을 다하고 있습니다. 그러나 때로는 함수 변경이 필요하며 이 경우 라이브러리의 GitHub CHANGELOG에 표시됩니다.

환경을 Node.js 10에서 Node.js 12 이상으로 업그레이드하려면 클라이언트 라이브러리의 최신 주 버전을 설치하고 애플리케이션을 Node.js 런타임의 현재 LTS 버전에 배포합니다.

즉시 업그레이드할 수 없는 경우

Google의 클라이언트 라이브러리는 계속해서 최선의 방식으로 Node.js 런타임의 기존 버전을 지원합니다. 그러나 외부 종속성에서 버그가 수정되고 해당 종속성이 더이상 기존 런타임을 지원하지 않는 경우 패치를 적용할 수 없습니다. 이와 같은 경우를 고려하여 최대한 빨리 업데이트하는 것이 좋습니다.

향후 정책

Node.js 12는 2022년 4월 지원 종료 상태로 전환됩니다. Node.js 8 및 10에서와 마찬가지로 Google은 Node.js 12를 지원 종료 날짜 이후 몇 개월 동안 계속해서 지원할 예정입니다. 앞으로 Node.js 지원 종료 날짜 이후 6개월 동안 지원할 예정이며, 이후 클라이언트 라이브러리에서 런타임 버전에 대한 지원이 종료됩니다. 이는 중요한 보안 패치에 따라 달라질 수 있습니다. 업데이트 피로를 최소화하기 위해 Node.js 12를 2023년 2월까지 지원할 예정입니다.

엔진 필드는 Google의 SDK가 지원하는 최소 버전을 나타냅니다. 애플리케이션 개발자는 현재 장기적 지원(LTS)을 받고 있는 Node.js 버전을 배포하는 것이 좋습니다. 2022년에도 Node.js 12를 지원하지만, Node.js 14 또는 Node.js 16 릴리스는 적극적으로 지원되는 LTS 대상이므로 이러한 버전의 애플리케이션을 배포하는 것이 좋습니다.


감사의 말씀: 이 게시물에 대한 추가 피드백을 제공해 주시고 버전 지원 전략을 수립하는 데 도움을 주신 Megan Potter와 Eileen Sasaki님께 감사드립니다.


게시 위치