종속성은 라이브러리, 모듈 또는 패키지의 형태에 관계없이 프로젝트의 올바른 작동을 위해 필수적인 촉진자 역할을 하는 프로그래밍 코드의 구성 요소입니다.

Node.js의 활용에는 패키지의 두 가지 분류, 즉 종속성과 devDependencies를 구분하는 것이 포함되며, 이는 프로젝트의 요구 사항을 감독하기 위해 package.json 파일 내에 지정할 수 있습니다. 효율적인 개발을 위해서는 이 두 가지 유형의 차이점을 이해하고 이를 프로젝트에 통합하는 기술에 익숙해지는 것이 중요합니다.

npm 프로젝트의 일반 종속성

앞서 언급한 “종속성”이란 애플리케이션이 작동하는 동안과 실제 환경에서 애플리케이션이 제대로 작동하는 데 필수적인 소프트웨어 패키지를 말합니다.

종속성에는

lodash에서 제공하는 것과 같이 사전 제작된 기능을 제공하는 외부 라이브러리를 활용하는 것이 특정 시나리오에서 유용할 수 있습니다.

앞서 언급한 프레임워크는 Express 및 React와 유사하게 소프트웨어 애플리케이션을 개발하기 위한 기초 또는 템플릿 역할을 합니다.

앞서 언급한 데이터베이스 드라이버(MongoDB 및 SQLite 포함)는 제안된 시스템 내에서 데이터 관리를 용이하게 하는 데 중요한 구성 요소 역할을 합니다.

앞서 언급한 소프트웨어 패키지는 네트워킹 작업을 용이하게 하도록 설계되었으며 Axios 및 Socket.io를 포함합니다.

Express는 서버를 작동시키는 데 없어서는 안 될 역할로 인해 Express.js 프레임워크를 활용하여 CRUD(생성, 읽기, 업데이트, 삭제) 애플리케이션 프로그래밍 인터페이스를 구성하는 데 중요한 구성 요소로 사용됩니다.

런타임 종속성을 설치하기 위해 Npm, 노드 패키지 관리자 또는 Yarn과 같은 패키징 관리자를 사용할 수 있습니다.

package.json 파일에는 “종속성”이라고 하는 필수 패키지의 이름과 버전이 나열된 “종속성” 객체가 포함되어 있습니다.

프로젝트에 특정 패키지가 필수로 설치되어 있는지 확인하려면 다음 명령을 실행하여 npm 패키지 관리자를 활용할 수 있습니다:

 npm install <package-name>

앞서 언급한 명령은 패키지를 쉽게 설치하는 동시에 패키지.json 파일에 나열된 프로젝트의 필수 구성 요소로 등록합니다.

 // package.json

"dependencies": {
    "package-name": "^package-version",
}

Git 기술을 사용하여 온라인 리포지토리에서 프로젝트를 복제할 때 다음 명령을 실행하여 필요한 모든 리소스를 쉽게 설치할 수 있습니다:

 npm install

앞서 언급한 명령을 실행하면 패키지 관리자가 package.json 파일에 액세스하고 패키지 저장소에서 지정된 종속 요소와 devDependencies를 검색하여 설치합니다.

개발 종속성 및 사용 방법

애플리케이션의 개발 단계에서는 ‘개발 종속성’ 또는 ‘devDependencies’라고 하는 특정 패키지가 필요할 수 있습니다. 이러한 패키지는 특정 용도로 사용되며 프로덕션 환경으로 배포하는 데 필요하지 않습니다.

이 글도 확인해 보세요:  자바스크립트에서 Intl API를 사용하는 방법

package.json의 devDependencies 섹션에는 개발 목적에는 필요하지만 프로덕션 배포에는 필요하지 않은 종속성 집합이 지정되어 있습니다. 여기에는 테스트 러너, 코드 분석 도구, 린터 등과 같이 개발 프로세스에서 사용되는 도구 및 라이브러리가 포함될 수 있습니다.

Jest와 Mocha는 소프트웨어 애플리케이션의 기능을 평가하는 데 널리 사용되는 테스트 프레임워크입니다.

Chai는 소프트웨어 개발 프로젝트에서 다양한 플랫폼에서 테스트를 실행하고 실행하는 데 사용되는 인기있는 테스트 러너입니다.

ESLint를 포함한 린터 및 포맷터는 코딩 표준 및 관행을 개선하기 위해 코드 구문 및 스타일에 대한 잠재적 문제를 감지하고 보고하는 데 도움이 되는 도구입니다.

앞서 언급한 소프트웨어 구성 요소에는 Swagger와 같은 문서화 도구가 포함됩니다.

개발 목적에 필요한 종속성의 일반적인 예로는 스크립트 파일에 대한 수정 사항을 식별하는 즉시 서버를 자동으로 다시 시작하는 Nodemon 패키지를 들 수 있습니다.

package.json 파일에는 개발 도구 및 해당 버전의 인벤토리 역할을 하는 devDependencies 개체가 포함될 수 있습니다. devDependencies 객체에는 이러한 도구의 이름과 버전이 나열되어 있어 개발 중에 쉽게 참조할 수 있습니다.

devDependency는 코드 개발 및 테스트에는 필요하지만 프로덕션 사용에는 필요하지 않은 종속성의 한 유형입니다.이러한 종속성을 설치하려면 다음 명령을 사용할 수 있습니다:

 npm install <package-name> --save-dev

프로젝트의 종속성 파일에 추가하는 대신 다음과 같은 설치 방법을 사용하여 “devDependency”로 포함할 수 있습니다.

 npm install -D <package-name>

앞서 언급한 지시어를 사용하면 다음과 같이 package.json 파일 내에 패키지를 쉽게 설치하고 등록할 수 있습니다:

 // package.json
"devDependencies": {
    "package-name": "^package-version"
}

웹 기반 리포지토리에서 프로젝트를 복제할 때 npm install 명령을 실행하면 필요한 종속 요소와 devDependencies가 자동으로 설치됩니다.

프로덕션 환경에 배포할 목적으로 앞서 언급한 명령을 실행하면 필요한 종속성만 설치하고 배포에 필요한 다른 작업은 수행하지 않습니다.

“사랑”이라는 단어는 종종 누군가 또는 무언가에 대한 강한 애정이나 애착을 묘사하는 데 사용됩니다. 또한 “사랑해요”라는 문구처럼 다른 사람의 안녕에 대한 깊은 배려와 관심을 의미하기도 합니다. 또한 “그 영화 정말 좋아해요”와 같이 호감이나 호감을 표현할 때 보다 자연스럽게 사용할 수도 있습니다.

 npm install --production

앞서 언급한 명령을 실행하면 패키지 관리자가 package.json 파일에 액세스하여 지정된 패키지 리포지토리에서 애플리케이션에 필요한 종속성을 검색합니다.

이 글도 확인해 보세요:  React Native에서 Flexbox를 사용하는 방법

NODE\_ENV 환경 변수를 “production” 값으로 구성하여 유사한 결과를 얻을 수도 있습니다.

다른 유형의 종속성

피어 종속성 및 옵션 종속성.

피어 종속성

피어 종속성의 활용은 최적의 기능 및 상호 운용성을 보장하기 위해 특정 버전 또는 추가 패키지의 호환 가능한 반복이 사용되는 소프트웨어 프레임워크 내에 존재할 것으로 기대하는 것을 수반합니다.

피어 종속성의 목적은 패키지 간의 원활한 상호 운용성을 보장하여 비호환성 또는 상충되는 상호 작용으로 인한 부작용을 방지하는 것입니다.

버전 7 이전 npm 버전에서는 피어 종속성 설치가 자동으로 수행되지 않으며, 코드에서 패키지 내에서 종속성으로 명시적으로 선언해야 합니다. 패키지가 그렇게 하지 않으면 npm에서 경고를 발행합니다.

앞서 언급한 엔티티는 “package.json” 파일의 “peerDependencies” 하위 섹션에 포함되어 있습니다.

 "peerDependencies": {
    "package": "^version"
}

선택적 종속성

선택적 종속성은 벤처의 기본 기능에 필수적이지는 않지만 액세스 가능한 경우 성능을 향상시킬 수 있는 패키지를 구성합니다.

선택적 종속성 설치를 생략해도 프로젝트가 제대로 작동하는 데 방해가 되지 않습니다.

다음 명령을 사용하여 패키지를 설치할 때 선택적 종속성을 우회하여 프로세스를 신속하게 처리할 수 있습니다:

 npm install --omit=optional

앞서 언급한 엔티티는 package.json 파일의 optionalDependencies 섹션에 등록되어 있습니다.

 "optionalDependencies": {
    "package": "^version"
}

카테고리를 사용하면 종속성을 더 쉽게 관리할 수 있습니다

종속성을 이해, 제어 및 분류하는 효과적인 시스템을 구현하면

이 차이를 구현하면 종속성의 효과적인 처리, 적절한 그룹화 및 프로젝트의 원활한 배포가 용이해집니다.

By 박준영

업계에서 7년간 경력을 쌓은 숙련된 iOS 개발자인 박준영님은 원활하고 매끄러운 사용자 경험을 만드는 데 전념하고 있습니다. 애플(Apple) 생태계에 능숙한 준영님은 획기적인 솔루션을 통해 지속적으로 기술 혁신의 한계를 뛰어넘고 있습니다. 소프트웨어 엔지니어링에 대한 탄탄한 지식과 세심한 접근 방식은 독자에게 실용적이면서도 세련된 콘텐츠를 제공하는 데 기여합니다.