[Python]웹환경에서의 글로벌 변수(global value) 사용
안녕하세요! JAY입니다!! :D
저는 오늘 카카오 코딩테스트를 보고 제자신에 대해 많은 실망을 하게 되었습니다...(후..비루한 나의 코딩실력)
무튼 우울하지만 다시한번 화이팅하고 오늘은 Python에서 글로벌 변수를 어떻게 사용하는지? 그리고 웹환경에서 글로벌 변수를 사용하면 어떻게 되는지에 대해 설명드리겠습니다.
1. 글로벌 변수(global value)란?
"전역 변수는 어떤 변수 영역 내에서도 접근할 수 있는 변수를 의미하는 전산학 용어이다. 지역 변수와 대비되는 개념이다. 어떤 스코프에서도 참조하고, 변경할 수 있기 때문에 지역성이 없다. 이것 때문에 될 수 있으면 피해야 하는 것으로 인식하는 경우가 많다. 여러 스레드에서 같은 전역 변수에 접근할 경우에 변수를 제대로 잠그지 않으면 스레드는 안전하지 않다. 예를 들어, C언어에서 전역변수는 최초의 실행 함수인 main 함수가 실행 되기 전에 생성되어 초기화 되며, 지역 변수와 다르게 데이터 영역에 저장된다."
라고 위키백과에 나오네요 ㅎㅎ 말그대로 프로그램 내 어디에서든지 사용 가능한 변수라고 생각하시면 됩니다. 전역변수, 지역변수에 대한 개념을 모르시면 따로 검색해보시길 바랍니다. :D
위키백과(전역변수) : https://ko.wikipedia.org/wiki/%EC%A0%84%EC%97%AD_%EB%B3%80%EC%88%98
2. 글로벌 변수의 사용
C나 C++에서의 글로벌 변수의 선언 및 사용은 매우 간단합니다.(사실 Python 도 간단하지만요)
아래 코드처럼 그냥 프로그램 내에 변수를 선언하고 그냥 사용하면 끝입니다.
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int gValue; // 전역변수 선언 int main(void) { gValue = 1; // 전역변수 사용 return 0; } |
python의 경우는 약간 다릅니다. 아래 코드처럼 함수 내에서 global 변수를 선언해주어야 사용할 수 있습니다.
1 2 3 4 5 6 | gValue = 0; # 전역변수 선언 def testFuntion() global gValue; # 함수내에서 전역변수 선언 gValue = 1; # 전역변수 사용 |
3. 결론
하지만!!! 웹 환경에서 글로벌 변수는 사용할 수 있을까요? 사용할 수 없을까요? 결론은 사용할 수는 있지만 사용하면 안됩니다.
왜냐하면 웹에서 글로벌 변수를 선어하게 되면 USER들이 이 글로벌 변수를 공유하게되어 변수의 값이 이리저리 바뀌게 됩니다.
그렇기 때문에 원하는 동작이 실행이 안되게 됩니다.(제가 이거때문에 몇일 고생했습니다..ㅜㅜ)
사실 누군가에게는 별 거 아닐수도 있는 Tip이기도 한데, 저같은 웹 뉴비들에게는 사실 생소했던 개념이었습니다. 저는 임베디드쪽에서만 개발하다보니 USER들이 하나의 웹사이트에 접속에서 얻는 자원들의 대한 공유라든지에 대한 개념이 없었습니다. 무튼 오늘도 즐거운 코딩하시고 재밌는 코드 생산하세요~!!!:D