ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 전역 변수의 문제점
    개발/프론트엔드 2023. 5. 24. 23:24

    변수의 생명 주기

    • 변수의 생명 주기는 메모리 공간이 확보된 시점부터 메모리 공간이 해제(스코프가 소멸)될 때 까지.
    • 만약 다른 누군가 스코프를 참조하고 있다면 스코프는 소멸하지 않음(클로져. 나중에 다룰 것.)
    • var로 선언한 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같다. 또한 전역 객체의 생명 주기와도 같다.
    • 호이스팅은 스코프를 단위로 동작함.

    전역 변수의 문제점

    • 암묵적 결합 : 모든 코드가 전역 변수를 참조, 변경할 수 있음.
    • 긴 생명 주기 : 불필요한 메모리 리소스 소비 뿐 아니라 상태가 변경될 수 있는 시간이 기므로 오류 발생 가능성을 높임
    • 스코프 체인 상에서 종점에 존재 : 검색 속도가 가장 느림.
    • 네임스페이스 오염 : 자바스크립트는 파일이 분리되어 있어도 하나의 전역 스코프를 공유함. 따라서 다른 파일 내에서 중복된 이름을 가진게 있을 수도 있고, 엉뚱한 걸 갖다 쓰게 될 수도 있음.

    전역 변수의 사용의 위험성을 낮추는 법

    • 즉시 실행 함수 이용 : 모든 코드를 즉시 실행 함수로 감싼다. 라이브러리 등에 자주 사용된다.
    • 모듈 패턴 : 관련 있는 변수와 함수를 모아 즉시 실행 함수로 감싸서 하나의 모듈로 만든다. 외부로 공개할 데이터나 메서드를 프로퍼티로 추가한 객체를 반환함으로써 캡슐화와 정보 은닉을 구현할 수도 있다.
    • ES6 모듈 사용 : ES6 모듈은 파일마다 독자적인 모듈 스코플르 제공해, var 키워드로 선언한 변수도 전역 변수가 아니고, window 객체의 프로퍼티도 아니게 된다.

    '개발 > 프론트엔드' 카테고리의 다른 글

    Virtual DOM  (0) 2023.07.03
    let, const 키워드와 블록 레벨 스코프  (0) 2023.05.24
    스코프  (0) 2023.05.23
    함수  (0) 2023.05.23
    원시 값과 객체의 비교  (0) 2023.05.23
Designed by Tistory.