브렌쏭의 Veritas_Garage

프로젝트와 package.json 본문

[Project_만들다]/[Project_자아내다]

프로젝트와 package.json

브렌쏭 2022. 3. 23. 14:50

node를 사용하면, 프로젝트를 init한 순간 무조건적으로 만들어지는 것이 있다.

바로 package.json 파일이다. 누가봐도 javascript의 오브젝트 형식을 문자열로 바꾼 json형식이며, 프로젝트에 있어서 몹시 중요하다. 

심부름을 할때,
물건은 잃어버려도 괜찮지만,
목록은 잃어버리면 ㅈ된다
- 나 -

왜냐하면 물건은 다시 사면 그만이지만, 목록을 잃어버리면 그냥 실패거든. 그리고 package.json이 그 목록이다. 서로 의존성이 있거나 A를 설치하려면 선행과정으로 C가 필요한데 그놈은 B와는 충돌한다던가 하는 무쟈게 복잡한 목록이다. 그리고 결국 그 목록대로 설치된 상황에서는 정상 작동을 한다는 담보이기도 하다. 그렇다고 버그가 없다는 건 아니지만.

더욱이 yarn이나 npm을 사용한다면 이것으로도 모자라서, 그 하위 요소들의 버젼과 리스트를 담고있는 yarn.lock과 npm.lock 파일까지 생성된다. 개발환경의 재현이라는건 상상만 해도 치가 떨리는 일이고, 그 난리를 피하기 위해 자바는 가상머신을 쓰고(지랄맞지만) 이윽고 사람들은 성능의 하락을 감수하면서까지 도커를 몇십개씩 돌린다. 게임 프레임 떨어지는 건 못참으면서!

그리하여 세상은 평온을 되찾았다

package.json이 있다면 걱정이 없다. 그 개발 세팅 목록이 버젼까지 포함, 심지어 모듈들의 임포트 방식이나 디버깅 방식 등등 필수 구현 요소들을 전부 기록해서 저장해두니까.

물론 반대로 말한다면 package.json을 날려먹었고 프로젝트를 신나게 진행하고 의존성은 기억이 안나고 백업은 없다?

그냥 밀고 새로 구축하자.
내 경험 상 ㅈㅙ었음을 깨달은 순간,
지체없이 행동하는 것이
가장 빠른 디버깅이었다.

몹시 중요하니까, git에도 올려야 한다. 물론 목록만 있으면 다시 환경 만들기는 별거 아니니까, node_modules폴더는 제외해야겠고.

Comments