왜 회사마다 사용하는 node.js 버전이 달라..

동동·2024년 3월 13일
0

TIL

목록 보기
10/13
post-thumbnail

회사의 개발팀에선 Node.js 버전이 제각각인 거 같다.
심지어 Node.js 버전 관리를 위해서 nvm(node version manager)를 사용해서 버전을 계속 바꿔가며 개발을 진행하고..

우선 버전에 대한 이해를 하기 전, Node.js에 대해 간단한 설명하려고 합니다.


🙋‍♂️ Node.js가 뭐죠 ?

Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 환경

Node.js 특징

  1. 이벤트 기반의 비동기 방식이라 빠른 백엔드 서비스를 구축할 수 있다.
  2. npm(node package manager)을 사용하여 다양한 라이브러리와 패키지를 설치, 사용할 수 있기에 효율적인 개발이 가능하다.
  3. 다른 언어에 비해 개발이 빠르고 쉽다 !
  4. 이벤트 기반의 비동기 방식이라 로직이 복잡할 경우엔 콜백 지옥에 빠질 수 있다...

⭐️ Github 사용률 1위 언어를 유지하고 있는 JavaScript (2023년 기준)

  • 2023년 기준으로, Github 사용률 1위 언어는 JavaScript이며, 그 이유는 Node.js라고 해도 과언이 아니다.
  • Node.js의 장점으로는 쉬운 난이도, 많은 자료와 커뮤니티, 빠른 개발 가능을 뽑을 수 있다.

그래서 어떤 경우에 사용하는 거죠 ?

Node.js는 주로 다음과 같은 경우에 사용되곤 합니다.
  • 간단한 로직을 사용하는 경우
  • 빠른 응답시간을 요구하는 경우
  • 빠른 개발이 필요한 경우
  • 비동기방식과 어울리는 서비스를 개발하는 경우 ( 채팅 서비스 등 )

요악을 하자면,

개발 환경을 구축하는데 걸리는 시간이 적으며, 활용하기에 간편하기에 생산성이 높기에 주로 스타트업 또는 새로운 서비스 구축이 필요한 곳에서 사용되곤 합니다.

🤔 그래서 왜 사용하는 Node 버전이 다른가 ??

Node 릴리즈 스케줄에 대해서..

위 사진과 같이 Node.js의 버전은 Current release, LTS(Active, Maintenance)로 나눠져 관리된다 !

  1. Current release status ( 6개월 )
    • Node.js의 가장 최근 버전
    • 이 기간은 다음 Major 버전이 나올때까지 유지되며, 중요한 변경사항이 공개되며, 또한 이 기간 내에 라이브러리의 작성자는 해당 버전에 대한 지원을 추가할 수 있습니다.
    • 6개월이 지난 후 다음 상태는 Major 버전의 숫자에 따라 차이가 있습니다.
      • 홀수 버전 (9, 11, ...) : 지원이 종료가 됩니다
      • 짝수 버전 (10, 12, ...) : LTS 상태(Active status)로 변경됩니다.
  2. LTS status ( 30개월 )
    • Long Term Support 의 약자이며, 일반적으로 이 기간동안 중요한 버그들은 수정될 것을 보장합니다.
    • Active status ( 대략 1년 )
      • 말 뜻 그대로 활발한 개발을 위한 단계
      • 새로운 기능 추가, 버그 수정, 잦은 업데이트가 이루어 집니다.
      • 새로운 기능 및 개선 사항의 추가로 인해 적극적인 개선이 이루어 집니다.
    • Maintenance status ( 대락 1년 6개월 )
      • 말 뜻 그대로 유지보수를 위한 단계
      • 보안 패치나 버그 수정에 대한 지원만 이루어 집니다.
      • 새로운 기능 추가는 없으며, 보안 및 버그에 대한 수정만 이루어짐으로 안정성을 유지합니다.

그래서 왜 ? (2024년 3월 기준)

  • Node.js v16 (LTS status 끝.)

    • LTS 단계가 끝이 났지만, 여전히 안정성이 제공됩니다.
    • 호환성 문제를 피하기 위해 v16을 사용하기도 합니다.
    • 하지만, 최신 기능과 성능 최적화에 대한 지원을 받지 못합니다.
    • 또한, 관련 커뮤니티가 줄어들 수 있습니다.
  • Node.js v18 ( Maintenance status )

    • v18은 maintenance 단계로 개발이 완료되었으며 버그 및 보안에 대한 수정만 이루어짐으로 안정성이 있습니다.
    • 가장 최근의 안정성이 있는 버전임으로 활발한 커뮤니티, 문서들이 존재합니다.
  • Node.js v20 ( Active status )

    • v20은 Node 의 새로운 기능을 경험하고 개발의 최신 트렌드를 활용할 수 있습니다.
    • 하지만, 아직 개발 단계에 있는 버전으로 예상치 못한 버그나 호환성 문제와 같은 안정성에 대한 문제가 발생할 수 있습니다.
    • 아직 개발 단계이므로 커뮤니티 및 문서, 지원이 부족할 수 있습니다.

개발 단계의 최신 버전을 사용하지 왜 낮은 버전을 굳이 사용하는가 ?

  1. 안정성과 신뢰성
    • 낮은 버전에서 최선 버전으로 업데이트 됐을지라도, 낮은 버전 또는 이전 버전의 경우 개발 단계에서 철저한 테스트와 안정성 검사를 거침.
    • 서비스에 대해 안정적이고 예측이 가능한 환경을 보장하기 위해 낮은 버전을 선택.
  2. 기존 코드와의 호환성
    • 낮은 버전에서 최신 버전으로 전환 시, 기존 코드에 대한 의존성에 대한 업데이트와 수정이 필요할 수 있음.
    • 규모가 큰 경우 호환성 문제와 코드 업데이트로 인한 부담을 피하기 위해 적절한 버전 선택.

각 버전 마다의 단계가 다름에 따라 버전의 특징이 달라진다.
결국, 안정성을 선택할 것인가, 아니면 새로운 기능 또는 최신 기능을 따라갈 것인가로 정해지는 것 같다.

profile
✍️ 끄적끄적

0개의 댓글

관련 채용 정보