반응형
전역변수 사용의 문제점
자바스크립트에서 전역변수는 전역객체의
생명주기와 일치한다.
즉 프로그램이 실행될 때 생성되고,
종료될 때 메모리를 반환한다.
이러한 특성 때문에, 전역변수를
사용하는 것은 다양한 문제점을
내재하고 있다.
1. 암묵적 결합
모든 스코프에서 전역변수에 접근이 가능하다.
즉 모든 지역에서 변수가 변경될 위험이
도사리고 있는 것이다.
주의깊지 못한 코드를 작성해서 전역변수의
값이 변경된다면 프로그램 자체가
destroy될 가능성을 가진다.
2. 전역변수는 생명주기가 길다.
함수 내 지역변수와는 다르게 전역변수의
생명주기는 전역객체와 동일하다.
즉 메모리가 한번 할당되면, 반환이
안된다는 것이다.
이는 리소스 낭비를 불러일으키는 주범이 된다.
전역변수 선언을 남발하다보면,
메모리 공간을 불필요하게 잡아먹게 되고,
프로그램 성능을 저하시킨다.
3. 검색속도 저하
자바스크립트에서 전역변수의 스코프 체인은
가장 밑단에 존재한다. 즉 변수를 사용할 경우,
자바스크립트 스코프 체인 단계별로 변수를
검색한다.
전역변수가 검색되는 순서는 가장 후순위이기
때문에, 프로그램 자체가 굉장히 느려지게 된다.
전역변수의 검색속도가 가장 느리다.
4. 변수 식별자 중첩 가능성
자바스크립트에서 변수를 선언할 때 식별자를
정하는 것은 굉장히 신중하게 이루어져야 한다.
특히, 전역 변수의 경우 식별자를 중첩하여
할당해도 프로그램은 정상작동하기 때문에,
더욱 신경을 써야 한다.
전역변수 중첩할당이 일어나게 되면 변수가
변경될 뿐만 아니라 지역변수의 스코프가
변경되고 값이 변경되기 때문에,
프로그램 작동에 문제를 불러일으킨다.
반응형
'Programming > JavaScript' 카테고리의 다른 글
JavaScript 프로토타임 체인이란? (0) | 2021.10.29 |
---|---|
JavaScript 객체 생성방식의 종류? (0) | 2021.10.29 |
JavaScript 프로토타입이란 (0) | 2021.10.29 |
JavaScript 기초 문법 #6 프로퍼티, 함수 일급객체, 프로토타입, 빌트인 객체, this, 실행 컨텍스트, 렉시컬 스코프, 클로저 (0) | 2021.10.25 |
JavaScript 기초 문법 #5 let, const 변수 (0) | 2021.10.20 |
JavaScript 기초 문법 #4 함수 스코프, 전역변수 문제점 (0) | 2021.10.20 |
댓글