이론공부/IT 개념정리
지역변수와 전역변수
뽀사장
2024. 4. 1. 14:23
728x90
반응형
[지역변수]
- 함수내에서 선언되고 그 함수 안에서만 유효한 변수
- 호출 시 생성되고 실행이 끝나면 소멸된다 즉, 함수의 생명주기와 일치한다
- 지역변수는 변수가 선언된 블록의 범위로 제한되기 때문에 다른 함수나 블록에서 접근할 수 없다
[전역변수]
- 함수 밖에서 선언되고 어디서는 접근할 수 있는 변수
- 프로그램이 실행되는 동안 메모리에 계속 상주하고 있다 즉 애플리케이션의 생명주기와 같다
- 모든 함수나 메서드에서 접근 가능하기 때문에 프로젝트 전반에 공유될 수 있다
- 명시적인 함수 호출 없이 실행되고 더 이상 실행할 문이 없을 때 종료됨
[전역변수의 위험성]
- 전역변수를 사용하면 해당 변수에 의존하는 코드가 여러곳에 분산될 수 있다
- 코드 변경 시 다른 부분에 예상치 못한 영향을 줄 수 있어서 예기치 않은 동작이 발생할 수 있다
- 의도치 않은 값 변경이 발생할 수 있어서 프로그램의 상태를 예측하기 어려워 지면서 디버깅 또한 어려워진다
- 변수의 상태에 따라 테스트 결과가 달라질 수 있어서 테스트 케이스의 독립성을 유지하기 어렵다
- 전역변수 상태를 설정하기 위해 추가적인 설정이 필요할 수 있어서 테스트 작성이 복잡해질 수 있다
- 메로리 리소스를 오랜기간 소비하고 상태를 면경할 수 있는 시간과 기회가 많음
- 중복선언을 허용하므로 변수이름이 중복되어 의도치 않은 재할당이 발생할 수 있다
728x90
반응형