본문 바로가기



프로그래밍/JAVA

[JAVA] static 전역 변수에 관한 의문 2

책으로 나온 자바  교재에서 static 변수에 대해서  설명할때  전역변수의  문제점에 대한 언급이  전혀  없어서 굉장히  답답했는데  다른 몇몇강의들을   보고 정리해 보았다. 실제로 몇달 정도 공부해보면 이게왜 bottom up으로  연결되는건지  의문이  생길것이다. 좀 더 자세히 말하자면 static 으로 고정된 변수가 있는데 이걸 한번도 아니고 무제한으로 다른 코드에서 계속 조작이 가능하다는것이다.  연속적으로 변경을 하고 출력을 할때마다 계속 변경된 값이 반영되는걸 보고 경악을 금치 못했다. "와 이게 뭐야!" 아직 자바의 모든  버전을 살펴볼 여유가 없긴한데, 차후에는  static에 변경가능횟수 제한을 설정할 수 있는 등의 개선이 있을듯 싶기도  하다. 

첫째,  절차지향인 프로그래맹에서 처럼 객체지향 OOP프로그래밍에서도 전역변수는 여전히 사용에 유의해야한다.  OOP적인 프로그래밍에서도 좀 더 안전한것 뿐이지,  다른  객체와 연결되어있는것이 완벽하게 파악되거나 바로 추적할 수 있는게 아니다. 

둘째, 객체 안에서만 사용되는 전역 변수로 제한하는 코드로 작성하도록 해야한다. 그래서 객체의 크기를 최소한 줄여야한다.

셋째, 결국은 만들때 전역변수보다는 파라메타로 받아들이도록 method 코드를 작성해놓는게 좋다.