개발자

node.js 전역 변수 없애는 방법?

2022년 11월 25일조회 322

안녕하세요! 사이드 프로젝트로 node.js로 친구들과 개발하고 있는데요. 코드를 계속 짜다보니 전역 변수가 너무 많아지는 것 같습니다. 혹시 전역 변수를 없애는 방법이 있나요? 예시를 들자면, 파일 A const state = { a: 1, b: 2, c: 3 } const useFoo = () => { console.log(state.a); } const useFoo2 = () => { console.log(state.b); state.c = state.a + state.c; } 이런 형태입니다! 계속 저 전역 state 객체가 커지고 있어서요 ㅠㅠ 아 또 다른 질문은 하나의 파일에 정의된 값을 다른 파일에서 수정할 수 없는건가요? 예를 들면, A 라는 파일에서 let to_be_exported_value = 10; 이라고 선언하고 B라는 파일에서 to_be_exported_value에 다른 값을 넣어주고 싶은데 안되더라구요? 감사합니다!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

안녕하세요! "전역 state 관리" 이거는 여러가지 방법이 있을 것 같습니다. 직접 만드실수도 있고, zustand 같은 상태 관리 라이브러리를 사용하셔도 될 것 같아요. 참고할만한 링크들 첨부할게요 참고: - https://github.com/pmndrs/zustand - https://www.npmjs.com/package/vanilla-state - https://dev.to/bnevilleoneill/state-management-pattern-in-javascript-sharing-data-across-components-2gkj - https://krasimirtsonev.com/blog/article/javascript-module-system-for-state-management "한 파일에 정의된 값을 다른 파일에서 수정할 수 없습니다" 기본적으로 한 파일에 작성된 코드는 따로 export를 하지 않는 이상 해당 파일에서만 사용 가능합니다. 이건 Module 시스템을 이해하시면 좋을 것 같아요. (ES6 이상이라는 가정하에) 간단히 설명하자면 한 파일에서 export 되는 것들은 read-only로 export 된다고 생각하시면 됩니다. let to_be_exported_value = 10의 경우는 primitive type 인 숫자를 사용했기에 다른 파일에서 import 될 때는 const로 선언한 것과 같습니다. 참고: - https://exploringjs.com/es6/ch_modules.html#sec_imports-as-views-on-exports - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules - https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!